X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fghc-inplace.c;h=2e345bcd58a4253461cd9c4552278279ad6a7e4e;hb=refs%2Ftags%2FBefore_type_family_merge;hp=78cffba229df1b9c9e0f8b7d59348cd623daf269;hpb=af2db474c2bb80e29924430e3c730bc217e55189;p=ghc-hetmet.git diff --git a/compiler/ghc-inplace.c b/compiler/ghc-inplace.c index 78cffba..2e345bc 100644 --- a/compiler/ghc-inplace.c +++ b/compiler/ghc-inplace.c @@ -36,6 +36,7 @@ int main(int argc, char **argv) { args[2] = "-fhardwire-lib-paths"; if ((argc >= 2) && (strcmp(argv[1], "-v") == 0)) { printf("Using %s %s %s\n", args[0], args[1], args[2]); + fflush(stdout); } memcpy(args + 3, argv + 1, sizeof(char *) * (argc - 1)); args[argc+2] = NULL; @@ -51,6 +52,7 @@ int run(char *this, char *program, int argc, char** argv) { int run(char *this, char *program, int argc, char** argv) { TCHAR programShort[MAX_PATH+1]; DWORD dwSize; + DWORD dwExitCode; int i; char* new_cmdline; char *ptr; @@ -131,7 +133,12 @@ int run(char *this, char *program, int argc, char** argv) { switch (WaitForSingleObject(pi.hProcess, INFINITE) ) { case WAIT_OBJECT_0: - return 0; + if (GetExitCodeProcess(pi.hProcess, &dwExitCode)) { + return dwExitCode; + } + else { + return 1; + } case WAIT_ABANDONED: case WAIT_FAILED: /* in the event we get any hard errors, bring the child