Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: interrupting loops
- X-seq: zsh-workers 89
- From: P.Stephenson@xxxxxxxxxxxxx
- To: zsh-list@xxxxxxxxxxxx
- Subject: Re: interrupting loops
- Date: Thu, 08 Jun 95 19:53:16 +0100
- In-reply-to: "mark%eggman.uucp@xxxxxxxx"'s message of "Tue, 18 Apr 95 22:20:34 PDT." <9504190520.AA12684@xxxxxxxxxxx>
Just found this old message:
mark%eggman.uucp@xxxxxxxx wrote:
> Richard writes:
> >> prompt% for x in 1 2 3 4 5; do
> >> > echo $x
> >> > sleep 1
> >> > done
> >> If you try to interrupt that loop, the sleep command gets interrupted,
> >> but then the loop continues with the next iteration. I tried the same
> >> loop on ksh and sh, and both of the popped out of the loop just fine.
> >
> >I'm not able to duplicate this. What machine type and zsh options
> >are you using?
> It looks like it's triggered by my having a TRAPZERR function defined.
dotrap() was being called although the function itself didn't do
anything because of the error flag. I've put a test into dotrap(),
but note the comment. The last part of the comment refers to another
bug I found at the same time which I'll post separately.
*** Src/signals.cerrt Wed May 31 05:10:36 1995
--- Src/signals.c Thu Jun 8 19:48:18 1995
***************
*** 681,688 ****
sav = sigtrapped[sig];
savval = lastval;
! if (sav == 2) /* if signal is being ignored, return */
return;
sigtrapped[sig] = 2;
if (sigfuncs[sig]) {
Lklist args;
--- 681,696 ----
sav = sigtrapped[sig];
savval = lastval;
! if (errflag || sav == 2)
return;
+ /* If signal is being ignored, return.
+ *
+ * Also return if errflag is set. In fact, the code in the
+ * function will test for this, but this way we keep status flags
+ * intact without working too hard. Special cases (e.g. calling
+ * a trap for SIGINT after the error flag was set) are handled
+ * by the calling code. (PWS 1995/06/08).
+ */
sigtrapped[sig] = 2;
if (sigfuncs[sig]) {
Lklist args;
--
Peter Stephenson <P.Stephenson@xxxxxxxxxxxxx> Tel: +44 1792 205678 extn. 4461
WWW: http://python.swan.ac.uk/~pypeters/ Fax: +44 1792 295324
Department of Physics, University of Wales, Swansea,
Singleton Park, Swansea, SA2 8PP, U.K.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author