source: branches/samba-3.3.x/source/lib/os2path.c @ 372

Last change on this file since 372 was 372, checked in by Silvan Scherrer, 11 years ago

remove hardcoded path, remove some files

File size: 1.2 KB
Line 
1/* This file contains helper functions for OS/2 - don't try and compile on other platforms */
2
3#ifdef __OS2__
4
5#define INCL_DOSPROCESS
6#define INCL_DOSERRORS
7#define INCL_DOSMODULEMGR
8#include <os2.h>
9#include <stdlib.h>
10#include <stdio.h>
11#include <string.h>
12
13// Samba DEBUG() needs the following includes and defines
14#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
15#include <stdbool.h>
16#include "local.h"
17#include "xfile.h"
18#include "debug.h"
19
20// we search the path of the .exe and return it
21int os2_GetExePath(char *buff)
22{
23        APIRET rc = NO_ERROR;
24        PPIB ppib = NULL;
25        char sExePath [_MAX_PATH];
26        char sDrive [_MAX_PATH], sDir [_MAX_DIR]; 
27
28        // we search for the infoblock to get the module name
29        rc = DosGetInfoBlocks(NULL, &ppib);
30        if (rc != NO_ERROR)
31        {
32                return -1;
33        }
34
35        // with the module name we get the path (including the exe name)
36        rc = DosQueryModuleName(ppib->pib_hmte, sizeof(sExePath), sExePath);
37        if (rc != NO_ERROR)
38        {
39                return -1;
40        }
41
42        // we split to the different values
43        _splitpath(sExePath, sDrive, sDir, NULL, NULL);
44        // strcat(sDrive, sDir);
45        strncat(sDrive, sDir, strlen(sDir) -1);
46        strcpy(buff, sDrive);
47
48        return 0;
49}
50
51#endif
Note: See TracBrowser for help on using the repository browser.