1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-11 13:01:28 +02:00
Commit graph

269 commits

Author SHA1 Message Date
Peter Stephenson
ec57c91b58 users/20203: nested functions in always blocks when exit pending 2015-05-13 16:17:04 +01:00
Peter Stephenson
c96a993d51 34989: AUTO_CD needs to call cd --.
Otherwise directories looking like options do the wrong thing.
2015-04-28 20:42:26 +01:00
Peter Stephenson
df5115a741 34979: Preserve job text when doing shell job fix.
This handles list_pipe_text in execlist() along with other
variables that are saved and restored and, in the special
case of source, cleared.
2015-04-28 09:22:37 +01:00
Peter Stephenson
e0cdf39fd9 34955: save and restore list_pipe_job with its friends
This is needed to stop source() messing up job control.
2015-04-24 16:34:51 +01:00
Peter Stephenson
3bf8cab82e 34900: assignment before an "exec".
Without POSXIBUILTIN: restore after, so we only get side effects.

With POSXIBUILTIN: keep set variable
2015-04-15 21:16:17 +01:00
Peter Stephenson
a2c579050f 34887: Fix POSIX_BUILTINS with assignment.
In the form
  var=val command special-builtin-or-func
the var is restored after execution, unlike the case where "command"
is absent.

Clear up case in code that handles this.

Add tests.
2015-04-15 09:44:19 +01:00
Barton E. Schaefer
a4ff8e6957 34590: queue_signals() around more scopes that manipulate global state 2015-02-20 18:45:36 -08:00
Peter Stephenson
8ebe18c081 34530: PRINT_EXIT_VALUE with anonymous functions.
Simpler fix, avoiding structural changes.
2015-02-16 12:37:38 +00:00
Peter Stephenson
daa7d99702 34546: further $_ with anon function fix.
Also add tests.
2015-02-13 21:31:31 +00:00
Peter Stephenson
7e6faf7237 34519: $_ for arguments of anonymous function 2015-02-12 19:48:50 +00:00
Barton E. Schaefer
7398fea059 34514: Back out 34485, an alternate solution needs to be worked out.
(Tweaked to keep the unrelated hunk of the E01 test.)
2015-02-12 09:27:53 -08:00
Peter Stephenson
da86d6b4f2 34485: More rationalisation for anonymous functions.
Don't attempt to treat as "simple" case as there are too many
hidden problems.

Pull out some post-execution functions to a common case in
execcmd().
2015-02-09 16:39:29 +00:00
Peter Stephenson
e6d9642467 users/19751: remove error on failure to close file descriptor by number.
Keep it when closing file descriptor stored in a variable, i.e.
explicitly opened by the user.
2015-01-20 09:29:22 +00:00
Peter Stephenson
c6c9f5daf2 34322: bug with interface to parsestr() etc.
Was showing up in places like ${(e)...} where command substitution
could reallocate the token string, but actually there was never any
guarantee that the lexer wouldn't do that, so this was always
a bit iffy.
2015-01-18 22:38:57 +00: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
Mikael Magnusson
bd2175fe7d 34134: anon funcs: don't leak shf and related data
Found by Coverity (Issue 439076).
2015-01-06 23:50:37 +01:00
Takeshi Banse
1cd8023570 34064: assignment before command replaces array with export even when KSH_ARRAYS 2014-12-27 22:05:05 -08:00
Barton E. Schaefer
d6a32ddeed 34065: following an "if" condition, do not test lastval for ERR_EXIT until a new command is run
Includes unposted regression tests.
2014-12-27 21:55:58 -08: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
Oliver Kiddle
0d4b548d1e 33818: fix types passed to sizeof detected by coverity as being wrong 2014-11-30 23:19:55 +01:00
Barton E. Schaefer
49d6aace41 33816, 33819: GLOB_ASSIGN changes integer and floating type variables to string scalars 2014-11-28 13:30:22 -08:00
Barton E. Schaefer
2b615bedaf 33775: error opening file in $(<...) is not fatal 2014-11-23 16:02:48 -08:00
Barton E. Schaefer
7abd611a23 33614 (based on RedHat BZ-978613): signal safety when updating global state in execshfunc() 2014-11-06 10:50:20 -08:00
Peter Stephenson
023c2236e1 Treat exec from subshell as if forked
This removes weird behaviour when optimising the last command.
In particular SHLVL is correct from a subshell executed as the last
command.
2014-11-02 15:29:06 +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
2d4743ce50 33493: use correct command name in error messages about "ulimit" failure; restore internal copy of limits if setrlimit() fails, so the error won't repeat 2014-10-22 08:42:37 -07:00
Mikael Magnusson
49a3086bb6 33365: avoid buffer overflow for very long fds in >& fd syntax 2014-10-06 20:34:28 +02:00
Peter Stephenson
f16813792e 33325: fix ksh autoloads with redirections on function definitions 2014-10-02 16:15:10 +01: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
8cb67e721b 33286: handle redirections for multiply named functions 2014-09-29 21:31:37 +01: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
Barton E. Schaefer
a3b1e3ffb1 33100: check $fd more rigorously in "exec {fd}<&-" 2014-09-03 08:46:56 -07:00
Barton E. Schaefer
839a72de10 33077: SHTTY = -1 when closing it in closem() 2014-08-31 13:53:25 -07:00
Peter Stephenson
b5198b10a1 32768 with further modifications: LOCAL_LOOPS option. 2014-06-13 21:39:44 +01:00
Barton E. Schaefer
848badaa5f 32568: consistency in handling of errflag condition during substitutions
Affects for/select word lists, function definition name position, and
anonymous function argument lists.
2014-04-20 10:27:15 -07:00
Andrew Waldron
8189e12312 32552 (updated by 32560): fix segfault when using process substitution in anonymous function argument list
Also disallow process substitution in function name position.
2014-04-18 07:30:36 -07:00
Peter Stephenson
aede5c52bf 32176: plug additional deadlock-inducing pipe descriptor leaks 2013-12-21 17:41:21 -08:00
Barton E. Schaefer
9887fc3d7b 32171: close pipe descriptor in parent when left side is a shell construct to
prevent deadlock

Also clean up ChangeLog entry that attributed 32119 to 32114
2013-12-20 23:03:46 -08:00
Daniel Shahaf
b28a6365f6 32091: WARN_CREATE_GLOBAL false positive.
In cases like () { foo=bar =true; }
2013-12-06 09:28:42 +00:00
Barton E. Schaefer
c98cbe25d2 31919: fix deadlock when a shell builtin with a multio redirection is used on the left side of a pipeline
Make sure stdin/out/err file descriptors are closed for the multio copy
process, which means not re-using those descriptors after they are closed
and marked FDT_UNUSED in fdtable[].  For completeness, initialize their
fdtable[] state to FDT_EXTERNAL.
2013-10-27 15:42:00 -07:00
Barton E. Schaefer
c39d2f8e49 31912: in closemn(), distinguish closing for >&- from closing for a real redirect
Fixes knock-on multios bug introduced by workers/20666 way back in 2005.
2013-10-27 11:27:41 -07:00
Peter Stephenson
9a044f1a6a Use VERBOSE option in execstring() 2013-10-19 23:08:24 +01:00
Peter Stephenson
8879c46a48 31846: fix NOEXEC option in execsimple() optimisation 2013-10-18 23:42:07 +01:00
Bart Schaefer
978b5bcc8d 31832: make execrestore() more signal-safe. 2013-10-17 07:35:05 -07:00
Peter Stephenson
68a9bab11d 31809: Make whitespace clear in trace output for patterns. 2013-10-10 17:12:50 +01:00
Peter Stephenson
709dbbbda8 31549: Fix third problem with file descriptor management.
Replace ad-hoc subsh_close file descriptor for pipe management with the new
job-based addfilelist() mechanism.
2013-07-21 18:23:04 +01:00
Peter Stephenson
39ab9952e8 31545: Use of FD_CLOEXEC to remove possibility of fd reuse.
File descriptors of mmap'd dump files are closed if and only if
an exec is performed.
2013-07-20 23:23:18 +01:00
Peter Stephenson
3c5732223f 31528: use job table to record file descriptors associated with process subst 2013-07-17 21:33:16 +01:00
Peter Stephenson
fdf2867e5f 31444: Basic code for enable/disable -p 2013-06-13 18:38:33 +01:00