about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--Doc/Zsh/modules.yo8
-rw-r--r--Src/signals.c4
3 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 74f78a944..2b7f1e15c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-09-25  Barton E. Schaefer  <schaefer@brasslantern.com>
+
+	* 29769: Src/signals.c: handle thisjob == -1 (no foreground job)
+	when checking for whether a background job is allowed to suspend.
+
+	* unposted: Doc/Zsh/modules.yo: cross-reference zmodload.
+
 2011-09-22  Peter Stephenson  <pws@csr.com>
 
 	* Daniel Friesel: 29796: Completion/X/Command/_mplayer: complete
@@ -15440,5 +15447,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5472 $
+* $Revision: 1.5473 $
 *****************************************************
diff --git a/Doc/Zsh/modules.yo b/Doc/Zsh/modules.yo
index 3f9986096..c8b846b95 100644
--- a/Doc/Zsh/modules.yo
+++ b/Doc/Zsh/modules.yo
@@ -6,7 +6,11 @@ Some optional parts of zsh are in modules, separate from the core
 of the shell.  Each of these modules may be linked in to the
 shell at build time,
 or can be dynamically linked while the shell is running
-if the installation supports this feature.  The modules that
-are bundled with the zsh distribution are:
+if the installation supports this feature.
+Modules are linked at runtime with the tt(zmodload) command,
+see ifzman(zmanref(zshbuiltins))\
+ifnzman(noderef(Shell Builtin Commands)).
+
+The modules that are bundled with the zsh distribution are:
 
 includefile(Zsh/modlist.yo)
diff --git a/Src/signals.c b/Src/signals.c
index dd39158d0..ad688094b 100644
--- a/Src/signals.c
+++ b/Src/signals.c
@@ -491,7 +491,9 @@ wait_for_processes(void)
 	 */
 	if (findproc(pid, &jn, &pn, 0)) {
 	    if (((jn->stat & STAT_BUILTIN) ||
-		 (list_pipe && (jobtab[thisjob].stat & STAT_BUILTIN))) &&
+		 (list_pipe &&
+		  (thisjob == -1 ||
+		   (jobtab[thisjob].stat & STAT_BUILTIN)))) &&
 		WIFSTOPPED(status) && WSTOPSIG(status) == SIGTSTP) {
 		killjb(jn, SIGCONT);
 		zwarn("job can't be suspended");