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