aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/mingw.h1
-rw-r--r--include/platform.h1
-rw-r--r--shell/ash.c2
-rw-r--r--win32/mingw.c9
4 files changed, 12 insertions, 1 deletions
diff --git a/include/mingw.h b/include/mingw.h
index d48ad3814..74a65116c 100644
--- a/include/mingw.h
+++ b/include/mingw.h
@@ -210,6 +210,7 @@ int unsetenv(const char *env);
210 */ 210 */
211char *strndup(char const *s, size_t n); 211char *strndup(char const *s, size_t n);
212char *mingw_strerror(int errnum); 212char *mingw_strerror(int errnum);
213char *strsignal(int sig);
213 214
214#define strerror mingw_strerror 215#define strerror mingw_strerror
215 216
diff --git a/include/platform.h b/include/platform.h
index 37e48dcc5..7bb39fd93 100644
--- a/include/platform.h
+++ b/include/platform.h
@@ -473,7 +473,6 @@ typedef unsigned smalluint;
473# undef HAVE_STRCASESTR 473# undef HAVE_STRCASESTR
474# undef HAVE_STRCHRNUL 474# undef HAVE_STRCHRNUL
475# undef HAVE_STRSEP 475# undef HAVE_STRSEP
476# undef HAVE_STRSIGNAL
477# undef HAVE_STRVERSCMP 476# undef HAVE_STRVERSCMP
478#if !defined(__MINGW64_VERSION_MAJOR) 477#if !defined(__MINGW64_VERSION_MAJOR)
479# undef HAVE_VASPRINTF 478# undef HAVE_VASPRINTF
diff --git a/shell/ash.c b/shell/ash.c
index f91cd7e1f..613bb97a0 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -4835,6 +4835,8 @@ waitpid_child(int *status, int wait_flags)
4835 if (idx < pid_nr) { 4835 if (idx < pid_nr) {
4836 GetExitCodeProcess(proclist[idx], &win_status); 4836 GetExitCodeProcess(proclist[idx], &win_status);
4837 *status = (int)win_status << 8; 4837 *status = (int)win_status << 8;
4838 if (win_status == 128 + SIGTERM || win_status == 128 + SIGKILL)
4839 *status += win_status - 128;
4838 pid = pidlist[idx]; 4840 pid = pidlist[idx];
4839 } 4841 }
4840 done: 4842 done:
diff --git a/win32/mingw.c b/win32/mingw.c
index 40714296f..b8dd6a511 100644
--- a/win32/mingw.c
+++ b/win32/mingw.c
@@ -171,6 +171,15 @@ char *mingw_strerror(int errnum)
171 return strerror(errnum); 171 return strerror(errnum);
172} 172}
173 173
174char *strsignal(int sig)
175{
176 if (sig == SIGTERM)
177 return (char *)"Terminated";
178 else if (sig == SIGKILL)
179 return (char *)"Killed";
180 return (char *)get_signame(sig);
181}
182
174static int zero_fd = -1; 183static int zero_fd = -1;
175static int rand_fd = -1; 184static int rand_fd = -1;
176 185