diff options
-rw-r--r-- | shell/ash.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/shell/ash.c b/shell/ash.c index 2e1d1e7b7..7a11305bd 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -4022,15 +4022,19 @@ sprint_status48(char *s, int status, int sigonly) | |||
4022 | 4022 | ||
4023 | col = 0; | 4023 | col = 0; |
4024 | if (!WIFEXITED(status)) { | 4024 | if (!WIFEXITED(status)) { |
4025 | if (JOBS && WIFSTOPPED(status)) | 4025 | #if JOBS |
4026 | if (WIFSTOPPED(status)) | ||
4026 | st = WSTOPSIG(status); | 4027 | st = WSTOPSIG(status); |
4027 | else | 4028 | else |
4029 | #endif | ||
4028 | st = WTERMSIG(status); | 4030 | st = WTERMSIG(status); |
4029 | if (sigonly) { | 4031 | if (sigonly) { |
4030 | if (st == SIGINT || st == SIGPIPE) | 4032 | if (st == SIGINT || st == SIGPIPE) |
4031 | goto out; | 4033 | goto out; |
4032 | if (JOBS && WIFSTOPPED(status)) | 4034 | #if JOBS |
4035 | if (WIFSTOPPED(status)) | ||
4033 | goto out; | 4036 | goto out; |
4037 | #endif | ||
4034 | } | 4038 | } |
4035 | st &= 0x7f; | 4039 | st &= 0x7f; |
4036 | //TODO: use bbox's get_signame? strsignal adds ~600 bytes to text+rodata | 4040 | //TODO: use bbox's get_signame? strsignal adds ~600 bytes to text+rodata |
@@ -4182,8 +4186,10 @@ dowait(int block, struct job *job) | |||
4182 | goto out; | 4186 | goto out; |
4183 | } | 4187 | } |
4184 | /* The process wasn't found in job list */ | 4188 | /* The process wasn't found in job list */ |
4185 | if (JOBS && !WIFSTOPPED(status)) | 4189 | #if JOBS |
4190 | if (!WIFSTOPPED(status)) | ||
4186 | jobless--; | 4191 | jobless--; |
4192 | #endif | ||
4187 | out: | 4193 | out: |
4188 | INT_ON; | 4194 | INT_ON; |
4189 | 4195 | ||