fix haddock submodule pointer
[ghc-hetmet.git] / driver / utils / getLocation.c
1
2 #include "getLocation.h"
3 #include <stdio.h>
4 #include <windows.h>
5
6 static void die(char *msg) {
7     fprintf(stderr, "%s", msg);
8     exit(1);
9 }
10
11 char *getExecutable(void) {
12     char *p;
13     int i;
14     int r;
15
16     i = 2048; /* plenty, PATH_MAX is 512 under Win32 */
17     p = malloc(i);
18     if (p == NULL) {
19         die("Malloc failed\n");
20     }
21     r = GetModuleFileNameA(NULL, p, i);
22     if (r == 0) {
23         die("getModuleFileName failed\n");
24     }
25     return p;
26 }
27
28 char *getExecutablePath(void) {
29     char *p;
30     char *f;
31
32     p = getExecutable();
33     f = strrchr(p, '\\');
34     if (f == NULL) {
35         die("No '\\' in executable location\n");
36     }
37     f[0] = '\0';
38     return p;
39 }
40