about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Src/builtin.c3
-rw-r--r--Src/options.c1
-rw-r--r--Src/zsh.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index ae608cc39..c0b716d45 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -3152,7 +3152,8 @@ zexit(int val, int from_signal)
     HEAPALLOC {
 	if (isset(MONITOR) && !stopmsg && !from_signal) {
 	    scanjobs();    /* check if jobs need printing           */
-	    checkjobs();   /* check if any jobs are running/stopped */
+	    if (unset(SHJOBCONTROL))
+	        checkjobs();   /* check if any jobs are running/stopped */
 	    if (stopmsg) {
 		stopmsg = 2;
 		LASTALLOC_RETURN;
diff --git a/Src/options.c b/Src/options.c
index 25084a771..4ce858f7b 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -186,6 +186,7 @@ static struct optname optns[] = {
 {NULL, "shinstdin",	      OPT_SPECIAL,		 SHINSTDIN},
 {NULL, "shoptionletters",     OPT_EMULATE|OPT_BOURNE,	 SHOPTIONLETTERS},
 {NULL, "shortloops",	      OPT_ALL,			 SHORTLOOPS},
+{NULL, "shjobcontrol",	      OPT_EMULATE|OPT_NONZSH,	 SHJOBCONTROL},
 {NULL, "shwordsplit",	      OPT_EMULATE|OPT_BOURNE,	 SHWORDSPLIT},
 {NULL, "singlecommand",	      OPT_SPECIAL,		 SINGLECOMMAND},
 {NULL, "singlelinezle",	      OPT_KSH,			 SINGLELINEZLE},
diff --git a/Src/zsh.h b/Src/zsh.h
index 0d494cd84..b8613135b 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1359,6 +1359,7 @@ enum {
     SHINSTDIN,
     SHOPTIONLETTERS,
     SHORTLOOPS,
+    SHJOBCONTROL,
     SHWORDSPLIT,
     SINGLECOMMAND,
     SINGLELINEZLE,