diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/system.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/win32/system.c b/win32/system.c index 44a47f861..00b594242 100644 --- a/win32/system.c +++ b/win32/system.c | |||
@@ -6,6 +6,7 @@ int mingw_system(const char *cmd) | |||
6 | intptr_t proc; | 6 | intptr_t proc; |
7 | HANDLE h; | 7 | HANDLE h; |
8 | DWORD ret = 0; | 8 | DWORD ret = 0; |
9 | int sig; | ||
9 | 10 | ||
10 | if (cmd == NULL) | 11 | if (cmd == NULL) |
11 | return 1; | 12 | return 1; |
@@ -18,5 +19,9 @@ int mingw_system(const char *cmd) | |||
18 | GetExitCodeProcess(h, &ret); | 19 | GetExitCodeProcess(h, &ret); |
19 | CloseHandle(h); | 20 | CloseHandle(h); |
20 | 21 | ||
22 | // Was process terminated as if by a signal? | ||
23 | sig = ret >> 24; | ||
24 | if (sig != 0 && ret == sig << 24 && is_valid_signal(sig)) | ||
25 | return sig; | ||
21 | return ret << 8; | 26 | return ret << 8; |
22 | } | 27 | } |