aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
Diffstat (limited to 'win32')
-rw-r--r--win32/system.c5
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}