diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-15 01:13:25 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-07-15 01:13:25 +0000 |
commit | bdc406d15d5efa45970ebaf404f0d2a411abff91 (patch) | |
tree | 09b12bfa7057850b8e49dde7a87d804d74484e41 | |
parent | 39125bec38ac3a13ae550ee7ba3e924a42a73e18 (diff) | |
download | busybox-w32-bdc406d15d5efa45970ebaf404f0d2a411abff91.tar.gz busybox-w32-bdc406d15d5efa45970ebaf404f0d2a411abff91.tar.bz2 busybox-w32-bdc406d15d5efa45970ebaf404f0d2a411abff91.zip |
ash: make "jobs | cat" work like in bash (was giving empty output)
-rw-r--r-- | shell/ash.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/shell/ash.c b/shell/ash.c index 6173a2505..06c4698f9 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -4374,8 +4374,10 @@ clear_traps(void) | |||
4374 | } | 4374 | } |
4375 | } | 4375 | } |
4376 | } | 4376 | } |
4377 | /* lives far away from here, needed for forkchild */ | 4377 | |
4378 | /* Lives far away from here, needed for forkchild */ | ||
4378 | static void closescript(void); | 4379 | static void closescript(void); |
4380 | /* Called after fork(), in child */ | ||
4379 | static void | 4381 | static void |
4380 | forkchild(struct job *jp, union node *n, int mode) | 4382 | forkchild(struct job *jp, union node *n, int mode) |
4381 | { | 4383 | { |
@@ -4419,11 +4421,18 @@ forkchild(struct job *jp, union node *n, int mode) | |||
4419 | setsignal(SIGQUIT); | 4421 | setsignal(SIGQUIT); |
4420 | setsignal(SIGTERM); | 4422 | setsignal(SIGTERM); |
4421 | } | 4423 | } |
4424 | #if JOBS | ||
4425 | /* For "jobs | cat" to work like in bash, we must retain list of jobs | ||
4426 | * in child, but we do need to remove ourself */ | ||
4427 | freejob(jp); | ||
4428 | #else | ||
4422 | for (jp = curjob; jp; jp = jp->prev_job) | 4429 | for (jp = curjob; jp; jp = jp->prev_job) |
4423 | freejob(jp); | 4430 | freejob(jp); |
4431 | #endif | ||
4424 | jobless = 0; | 4432 | jobless = 0; |
4425 | } | 4433 | } |
4426 | 4434 | ||
4435 | /* Called after fork(), in parent */ | ||
4427 | static void | 4436 | static void |
4428 | forkparent(struct job *jp, union node *n, int mode, pid_t pid) | 4437 | forkparent(struct job *jp, union node *n, int mode, pid_t pid) |
4429 | { | 4438 | { |