summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <p.w.stephenson@ntlworld.com>2017-12-22 20:00:54 +0000
committerPeter Stephenson <p.w.stephenson@ntlworld.com>2017-12-22 20:21:23 +0000
commit5f6a52c06ca956cf61eacd7f45f270899337d45e (patch)
treeb8743b8d42059b329ab6d65fb4019dba45566318 /Src
parent349c95765a030cf614c3c2a9fdc45941d3b115fc (diff)
downloadzsh-5f6a52c06ca956cf61eacd7f45f270899337d45e.tar.gz
zsh-5f6a52c06ca956cf61eacd7f45f270899337d45e.tar.xz
zsh-5f6a52c06ca956cf61eacd7f45f270899337d45e.zip
42156: new CHECK_RUNNING_JOBS option demanded by bash groupies
Also new job options.

Also suppress debug error if rows or columns are reported as zero as
this is normal without a physical terminal.
Diffstat (limited to 'Src')
-rw-r--r--Src/builtin.c3
-rw-r--r--Src/options.c1
-rw-r--r--Src/utils.c4
-rw-r--r--Src/zsh.h1
4 files changed, 6 insertions, 3 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index f002b9912..0211f2721 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -5594,7 +5594,8 @@ checkjobs(void)
 
     for (i = 1; i <= maxjob; i++)
 	if (i != thisjob && (jobtab[i].stat & STAT_LOCKED) &&
-	    !(jobtab[i].stat & STAT_NOPRINT))
+	    !(jobtab[i].stat & STAT_NOPRINT) &&
+	    (isset(CHECKRUNNINGJOBS) || jobtab[i].stat & STAT_STOPPED))
 	    break;
     if (i <= maxjob) {
 	if (jobtab[i].stat & STAT_STOPPED) {
diff --git a/Src/options.c b/Src/options.c
index 2b5795bab..590652ea9 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -111,6 +111,7 @@ static struct optname optns[] = {
 {{NULL, "chasedots",	      OPT_EMULATE},		 CHASEDOTS},
 {{NULL, "chaselinks",	      OPT_EMULATE},		 CHASELINKS},
 {{NULL, "checkjobs",	      OPT_EMULATE|OPT_ZSH},	 CHECKJOBS},
+{{NULL, "checkrunningjobs",   OPT_EMULATE|OPT_ZSH},	 CHECKRUNNINGJOBS},
 {{NULL, "clobber",	      OPT_EMULATE|OPT_ALL},	 CLOBBER},
 {{NULL, "combiningchars",     0},			 COMBININGCHARS},
 {{NULL, "completealiases",    0},			 COMPLETEALIASES},
diff --git a/Src/utils.c b/Src/utils.c
index 4c0ebe6f5..74fdac31f 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -1832,7 +1832,7 @@ adjustlines(int signalled)
     else
 	shttyinfo.winsize.ws_row = zterm_lines;
 #endif /* TIOCGWINSZ */
-    if (zterm_lines <= 0) {
+    if (zterm_lines < 0) {
 	DPUTS(signalled, "BUG: Impossible TIOCGWINSZ rows");
 	zterm_lines = tclines > 0 ? tclines : 24;
     }
@@ -1856,7 +1856,7 @@ adjustcolumns(int signalled)
     else
 	shttyinfo.winsize.ws_col = zterm_columns;
 #endif /* TIOCGWINSZ */
-    if (zterm_columns <= 0) {
+    if (zterm_columns < 0) {
 	DPUTS(signalled, "BUG: Impossible TIOCGWINSZ cols");
 	zterm_columns = tccolumns > 0 ? tccolumns : 80;
     }
diff --git a/Src/zsh.h b/Src/zsh.h
index 22ae95480..92f75769a 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -2339,6 +2339,7 @@ enum {
     CHASEDOTS,
     CHASELINKS,
     CHECKJOBS,
+    CHECKRUNNINGJOBS,
     CLOBBER,
     APPENDCREATE,
     COMBININGCHARS,