summaryrefslogtreecommitdiff
path: root/Src/jobs.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/jobs.c')
-rw-r--r--Src/jobs.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/Src/jobs.c b/Src/jobs.c
index af0a1233d..a91ef787f 100644
--- a/Src/jobs.c
+++ b/Src/jobs.c
@@ -1368,6 +1368,18 @@ deletefilelist(LinkList file_list, int disowning)
/**/
void
+cleanfilelists(void)
+{
+ int i;
+
+ DPUTS(shell_exiting >= 0, "BUG: cleanfilelists() before exit");
+
+ for (i = 1; i <= maxjob; i++)
+ deletefilelist(jobtab[i].filelist, 0);
+}
+
+/**/
+void
freejob(Job jn, int deleting)
{
struct process *pn, *nx;
@@ -1476,7 +1488,10 @@ addproc(pid_t pid, char *text, int aux, struct timeval *bgtime,
* set it for that, too.
*/
if (gleader != -1) {
- jobtab[thisjob].gleader = gleader;
+ if (jobtab[thisjob].stat & STAT_CURSH)
+ jobtab[thisjob].gleader = gleader;
+ else
+ jobtab[thisjob].gleader = pid;
if (list_pipe_job_used != -1)
jobtab[list_pipe_job_used].gleader = gleader;
/*