diff options
Diffstat (limited to 'shell')
| -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 8c2098dd9..b0c7dac54 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 | ||
