X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=driver%2Futils%2FgetLocation.c;fp=driver%2Futils%2FgetLocation.c;h=fcbe1b940c2fbfed5bed5e4ef16be5a60aba067a;hp=0000000000000000000000000000000000000000;hb=6cf8982ac30be6836a0cdd8be5a6ac1a1a144213;hpb=48196c3c2a365ce085d0b0567cbd4ea047af59df diff --git a/driver/utils/getLocation.c b/driver/utils/getLocation.c new file mode 100644 index 0000000..fcbe1b9 --- /dev/null +++ b/driver/utils/getLocation.c @@ -0,0 +1,40 @@ + +#include "getLocation.h" +#include +#include + +static void die(char *msg) { + fprintf(stderr, "%s", msg); + exit(1); +} + +char *getExecutable(void) { + char *p; + int i; + int r; + + i = 2048; /* plenty, PATH_MAX is 512 under Win32 */ + p = malloc(i); + if (p == NULL) { + die("Malloc failed\n"); + } + r = GetModuleFileNameA(NULL, p, i); + if (r == 0) { + die("getModuleFileName failed\n"); + } + return p; +} + +char *getExecutablePath(void) { + char *p; + char *f; + + p = getExecutable(); + f = strrchr(p, '\\'); + if (f == NULL) { + die("No '\\' in executable location\n"); + } + f[0] = '\0'; + return p; +} +