summaryrefslogtreecommitdiffstats
path: root/osdep
diff options
context:
space:
mode:
Diffstat (limited to 'osdep')
-rw-r--r--osdep/win32-console-wrapper.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/osdep/win32-console-wrapper.c b/osdep/win32-console-wrapper.c
index 9d86ea3872..c8c297b482 100644
--- a/osdep/win32-console-wrapper.c
+++ b/osdep/win32-console-wrapper.c
@@ -34,10 +34,11 @@ void cr_perror(const wchar_t *prefix)
LocalFree(error);
}
-void cr_runproc(wchar_t *name, wchar_t *cmdline)
+int cr_runproc(wchar_t *name, wchar_t *cmdline)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
+ DWORD retval = 1;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
@@ -54,9 +55,12 @@ void cr_runproc(wchar_t *name, wchar_t *cmdline)
cr_perror(L"CreateProcess");
} else {
WaitForSingleObject(pi.hProcess, INFINITE);
+ GetExitCodeProcess(pi.hProcess, &retval);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
+
+ return (int)retval;
}
int wmain(int argc, wchar_t **argv, wchar_t **envp)
@@ -68,7 +72,5 @@ int wmain(int argc, wchar_t **argv, wchar_t **envp)
GetModuleFileNameW(NULL, exe, MAX_PATH);
wcscpy(wcsrchr(exe, '.') + 1, L"exe");
- cr_runproc(exe, cmd);
-
- return 0;
+ return cr_runproc(exe, cmd);
}