Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
PATCH: Re: jobs command in precmd
- X-seq: zsh-workers 12121
- From: Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx (Zsh hackers list), Rob Egelink <rob@xxxxxxxxxxxxxxxxxxxx>
- Subject: PATCH: Re: jobs command in precmd
- Date: Thu, 29 Jun 2000 10:25:42 +0100
- In-reply-to: "Your message of Wed, 28 Jun 2000 11:20:38 BST." <0FWV001LZ0QDKS@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
> Maybe simply saving and restoring stopmsg when executing
> precmd would be enough.
This seems to be OK; here's the patch for the latest code in CVS. I'll
send a patch for 3.0.8, too.
The last hunk keeps variables in read_poll() under control; it should
patch against 3.1.9 or 3.1.9-dev-1 if that's left out.
I couldn't find any description of the current logic for checking jobs, so
I added a short description to the CHECK_JOBS option.
Index: Doc/Zsh/options.yo
===================================================================
RCS file: /cvsroot/zsh/zsh/Doc/Zsh/options.yo,v
retrieving revision 1.8
diff -u -r1.8 options.yo
--- Doc/Zsh/options.yo 2000/05/24 17:20:26 1.8
+++ Doc/Zsh/options.yo 2000/06/29 09:21:46
@@ -244,8 +244,14 @@
cindex(logging out, checking jobs when)
item(tt(CHECK_JOBS) <Z>)(
Report the status of background and suspended jobs before exiting a shell
-with job control. tt(NO_CHECK_JOBS) is best used only in combination with
-tt(NO_HUP), else such jobs will be killed automatically.
+with job control; a second attempt to exit the shell will succeed.
+tt(NO_CHECK_JOBS) is best used only in combination with tt(NO_HUP), else
+such jobs will be killed automatically.
+
+The check is omitted if the commands run from the previous command line
+included a `tt(jobs)' command, since it is assumed the user is aware that
+there are background or suspended jobs. A `tt(jobs)' command run from the
+tt(precmd) function is not counted for this purpose.
)
pindex(CLOBBER)
cindex(clobbering, of files)
Index: Src/utils.c
===================================================================
RCS file: /cvsroot/zsh/zsh/Src/utils.c,v
retrieving revision 1.9
diff -u -r1.9 utils.c
--- Src/utils.c 2000/06/26 21:27:08 1.9
+++ Src/utils.c 2000/06/29 09:21:46
@@ -644,11 +644,16 @@
/* If a shell function named "precmd" exists, *
* then execute it. */
if ((prog = getshfunc("precmd")) != &dummy_eprog) {
- int osc = sfcontext;
+ /*
+ * Save stopmsg, since user doesn't get a chance to respond
+ * to a list of jobs generated in precmd.
+ */
+ int osc = sfcontext, osm = stopmsg;
sfcontext = SFC_HOOK;
doshfunc("precmd", prog, NULL, 0, 1);
sfcontext = osc;
+ stopmsg = osm;
}
if (errflag)
return;
@@ -1316,12 +1321,13 @@
int ret = 0;
long mode = -1;
char c;
-#ifdef FIONREAD
- int val;
-#endif
#ifdef HAVE_SELECT
fd_set foofd;
struct timeval expire_tv;
+#else
+#ifdef FIONREAD
+ int val;
+#endif
#endif
#ifdef HAS_TIO
struct ttyinfo ti;
--
Peter Stephenson <pws@xxxxxxxxxxxxxxxxxxxxxxxxx>
Cambridge Silicon Radio, Unit 300, Science Park, Milton Road,
Cambridge, CB4 0XL, UK Tel: +44 (0)1223 392070
Messages sorted by:
Reverse Date,
Date,
Thread,
Author