1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-19 03:31:14 +02:00
Commit graph

76 commits

Author SHA1 Message Date
Barton E. Schaefer
9958684574 36022 fix bug that some loop constructs could not be interrupted, revise signal queueing
There are two underlying ideas here:  (1) Keeping signals queued around
anything that's doing memory management (including push/pop of the heap)
has become crucial.  (2) Anytime the shell is going to run a command, be
it buitin or external, it must be both safe and necessary to process any
queued signals, so that the apparent order of signal arrival and command
execution is preserved.
2015-08-09 16:13:52 -07:00
Peter Stephenson
cfd91eac07 Rearrange context saving.
Variables are now associated with the module that declares them, being
initialised and saved/restored there.  However, as many variables are
used for communication between modules, many of them are set in multiple
places, so the assignment is ambiguous.
2015-01-09 21:33:39 +00:00
Peter Stephenson
d067ebcacd 33876: etc.: Separate errors and keyboards interrupts
Combination of 12 commits from interrupt_abort branch.

Basic strategy is to introduce bits to errflag and to set and
reset them separately.

Remove interrupt status on return to main keymap.

Turn off ERRFLAG_INT for always block.

Restore bit thereafter: we probably need a new variable in order
to allow user interrupts to be reset in the always block.

Add TRY_BLOCK_INTERRUPT

This works the same as TRY_BLOCK_ERROR, but for a SIGINT, too.

Ensure propagation of SIGINT from exited job.

If received by foreground job, shell uses ERRFLAG_INT, not
ERRFLAG_ERROR, to set the new state.

Reset errflag before precmd()

Add always block in _main_completion to fix ZLS_COLORS

Ensures we get the right state of $ZLS_COLORS at the end of _main_complete
even if there's an interrupt.  However, the "right state" is a bit messy
as it depends on styles.
2014-12-11 09:41:17 +00:00
Peter Stephenson
b4f7ccecd9 33531 with additions: retain status of exited background jobs.
Add linked list of unwaited-for background jobs.
Truncate at value of _SC_CHILD_MAX discarding oldest.
Remove old lastpid_status mechanism for latest exited process only.
Slightly tighten safety of permanently allocated linked lists so
that this doesn't compromise signal handling.
2014-10-26 17:47:42 +00:00
Barton E. Schaefer
32473f59a3 Merge branch 'master' of git://git.code.sf.net/p/zsh/code
Conflicts:
	ChangeLog
2014-09-29 17:52:33 -07:00
Peter Stephenson
cf6b0f5663 33285: apply function definition redirections at execution 2014-09-29 21:02:59 +01:00
Barton E. Schaefer
60e31a45b0 33268: interactive shells treat SIGPIPE like SIGHUP if and only if SHTTY is disconnected 2014-09-29 08:59:31 -07:00
Nikolas Garofil
4f4d2b8247 32737, 32736 (32741), 32735, 32734, 32733, 32732 (32739): Strict compilation
fixes

	Src/utils.c: properly ifdef declarations
	Src/zsh_system.h: memmove() should return its dest argument
	Src/signals.c: define ret before use
	Src/mem.c: remove unused pointers
	Src/prototypes.h: use size_t in bcopy()
	Src/compat.c: fix const declaration inconsistency
2014-06-07 13:48:40 -07:00
Peter Stephenson
a06cd1766a 32479: POSIXTRAPS and implicit return values.
With POSIXTRAPS never propagate implicit return value.
In any case if not forcing a return value don't use lastval
from within the trap, use the one from the surrounding code.
2014-03-14 12:52:41 +00:00
Peter Stephenson
375115c7df unposted: updates for 4.0.2-test-1.
Update references to 4.0.2 to 4.0.3.
Additional mod_export declarations.
Additions to .distfiles.
2013-11-06 19:25:07 +00:00
Peter Stephenson
4b86cc48f7 30726: make shell options passed to emulate stick along with the emulation 2012-10-11 20:14:01 +00:00
Bart Schaefer
748bd73d88 unposted: cross-reference zmodload from the modules intro doc.
29769: follow-up 29677 to handle the case where thisjob == -1.
2011-09-25 18:09:13 +00:00
Bart Schaefer
516ea294b8 29677: Do not allow external processes in a pipeline to become suspended
when the end of the pipe is controlled by a builtin in the current shell
which cannot itself become suspended.
2011-08-14 18:34:27 +00:00
Peter Stephenson
a3ae9f5d12 29643: set incompfunc to zero when executing hook or trap function 2011-08-04 08:30:50 +00:00
Bart Schaefer
98b29d02ca 29481: always return a matching job in findproc() but scan the whole list
to prefer running jobs
2011-06-15 15:38:14 +00:00
Peter Stephenson
3b6b4982b9 28258: fix undefined variable in traps 2010-09-14 12:52:31 +00:00
Peter Stephenson
ade705cf5b 28253: document -h argument to atribute commands 2010-09-12 18:56:40 +00:00
Peter Stephenson
c7ff1b79dd 28179, users/15314, users/15310, users/15200:
various job and process control fixes
2010-08-22 20:08:57 +00:00
Peter Stephenson
09960dc5b9 27951: Add $ZSH_EVAL_CONTEXT and $zsh_eval_contxt 2010-05-12 10:06:59 +00:00
Peter Stephenson
3206b8a2ea 27442 plus tweak: wait returns status for $! even if exited 2009-12-02 09:46:12 +00:00
Bart Schaefer
bda90c969f 27159: restore pre-23067 behavior of SIGINT outside a "wait", so that
foreground jobs that handle or ignore interrupts are not orphaned.
2009-07-20 04:38:56 +00:00
Peter Stephenson
73be7ee553 27106: reset status on command that expands to empty
27122: add POSIX_JOBS option
2009-07-10 11:08:39 +00:00
Peter Stephenson
c7d8b0dfb8 26546, 26556: sticky emulation for functions defined in emulate ... -c ...
environments, plus documentation
2009-02-11 20:42:15 +00:00
Peter Stephenson
e3fd25b181 25775: fix logical problem with function line numbering inside eval-style traps 2008-09-29 21:46:58 +00:00
Peter Stephenson
b2d08a2155 25744: dynamic named directories and further doshfunc() simplification 2008-09-26 09:11:27 +00:00
Peter Stephenson
2920c227d3 25677: add %x and %I prompt escapes for shell source code debugging
tidy up interface to doshfunc()
2008-09-16 15:02:01 +00:00
Peter Stephenson
2853ca830a 25247 with further modifications: add $funcsourcetrace 2008-08-11 19:22:54 +00:00
Peter Stephenson
2706eac454 25415: Make DEBUG_BEFORE_CMD the default.
Reuse ERR_EXIT in DEBUG traps.
Clean up trapreturn code.
2008-08-07 16:25:14 +00:00
Peter Stephenson
506d73299c fix problems with trapreturn, in particular in source inside trap 2008-08-01 13:53:43 +00:00
Peter Stephenson
0c9830d23c 25345, 25347: neaten interface from main shell to zle 2008-07-31 08:44:16 +00:00
Peter Stephenson
a9ad660bd3 users/12812: fix hang with confusion over process numbers 2008-05-02 22:48:58 +00:00
Peter Stephenson
6e5279f8b4 Guillaume Chazarain: 23364: fix race in POSIX signal blocking
by using local variables
2007-05-01 09:35:04 +00:00
Wayne Davison
914364061e Mark an arg as UNUSED(). 2007-01-26 19:18:37 +00:00
Peter Stephenson
b4a7ad8269 23101: various combinations of ZERR with function returns were feature-ridden 2007-01-12 23:10:15 +00:00
Peter Stephenson
8b800f8fd1 document OS may handle negative or zero PID in kill 2006-12-19 10:35:54 +00:00
Peter Stephenson
dd5602f59b 22474: use variable argument lists to improve error message handling 2006-05-30 22:35:03 +00:00
Wayne Davison
4cb83571c4 Changed some structures to avoid gcc's type-punned warnings. 2006-03-07 21:30:36 +00:00
Peter Stephenson
31f6b3fb07 22317: exit status from code backgrounded in function
22277, 22281, tweaks: standardize behaviour of wait builtin
with trapped signals
2006-03-02 22:05:21 +00:00
Bart Schaefer
174ad4a80f 21814: error handling for traps in "always" constructs. 2005-12-15 04:24:04 +00:00
Peter Stephenson
2c208c7743 21197: Fix LOCAL_TRAPS inside another trap 2005-04-27 09:58:42 +00:00
Peter Stephenson
05b06b1c08 fix autoloaded trap bug; rejig use of trapfuncs
(now traplists); improve trap tests
2005-02-06 20:36:09 +00:00
Peter Stephenson
88a37cc187 c.f. 20675: improve zle as a basis for Unicode.
unposted: update version to 4.2.3-dev-1
2005-01-14 13:04:47 +00:00
Peter Stephenson
138c5df2bb 20576: fix core dump on TRAPEXIT 2004-11-23 16:29:50 +00:00
Peter Stephenson
5141e68daa 20572: Allow alternative signal names 2004-11-22 10:33:03 +00:00
Peter Stephenson
8a67a66a61 20467: Reintroduce rusage-based escapes for TIMEFMT. 2004-10-08 14:36:51 +00:00
Peter Stephenson
cc72740775 20462: Use getrusage for timing again.
Time processes from before rather than after fork.
2004-10-07 09:45:43 +00:00
Peter Stephenson
640bbab78f 20221: $LINENO in trap '...' DEBUG was wrong. 2004-07-29 15:09:51 +00:00
Peter Stephenson
17e576782c 20198: fix TRAPEXIT. 2004-07-26 13:18:07 +00:00
Peter Stephenson
885509c023 Fix TRAPS_ASYNC so that it handles signals correctly. 2004-05-02 19:55:54 +00:00
Peter Stephenson
5747147aff 19809: improve NO_TRAPS_ASYNC by queueing traps alone 2004-04-21 11:18:45 +00:00