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, 15 insertions, 2 deletions
diff --git a/Src/jobs.c b/Src/jobs.c
index 38666ef55..c201ecd96 100644
--- a/Src/jobs.c
+++ b/Src/jobs.c
@@ -806,7 +806,10 @@ should_report_time(Job j)
* synch = 2 means called synchronously from jobs
*
* Returns 1 if some output was done.
-*/
+ *
+ * The function also deletes the job if it was done, even it
+ * is not printed.
+ */
/**/
int
@@ -818,8 +821,18 @@ printjob(Job jn, int lng, int synch)
int doneprint = 0;
FILE *fout = (synch == 2) ? stdout : shout;
- if (jn->stat & STAT_NOPRINT)
+ if (jn->stat & STAT_NOPRINT) {
+ if (jn->stat & STAT_DONE) {
+ deletejob(jn);
+ if (job == curjob) {
+ curjob = prevjob;
+ prevjob = job;
+ }
+ if (job == prevjob)
+ setprevjob();
+ }
return 0;
+ }
/*
* Wow, what a hack. Did I really write this? --- pws