about summary refs log tree commit diff
path: root/Src/exec.c
Commit message (Collapse)AuthorAgeFilesLines
* 36104: change order of child_block() and dont_queue_signals() to resolve yet ↵Barton E. Schaefer2015-08-111-1/+1
| | | | another race condition
* 36022 fix bug that some loop constructs could not be interrupted, revise ↵Barton E. Schaefer2015-08-091-7/+42
| | | | | | | | | | | 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.
* 35849: close fd's from process substitution after forkPeter Stephenson2015-07-231-2/+3
| | | | Leaving these hanging in parent could cause deadlock: test added.
* 35751: Fix ERR_RETURN and ERR_EXIT in "else"Peter Stephenson2015-07-091-1/+7
|
* 35655: APPEND_CREATE option for POSIX copmatible NO_CLOBBERPeter Stephenson2015-06-291-1/+2
|
* 35634: handle failure of gettempname() in namedpipe()Barton E. Schaefer2015-06-271-0/+4
|
* 35604: create empty arrays in typeset with array=()Peter Stephenson2015-06-251-9/+12
|
* various posts: Implement assignment parsing for typeset.Peter Stephenson2015-06-241-18/+158
| | | | | | | | | | | | Typeset assignments now work like raw assignments except for no "+=" and no GLOB_ASSIGN. Documented in typeset builtin doc and mentioned in release notes. Tests to ensure basic sanity. Enabled by default, can be turned off by "disable -r" with typeset family of commands.
* 35493: erase $_ when the command line is an assignmentBarton E. Schaefer2015-06-161-0/+1
|
* GLOB_ASSIGN should only affect scalar assignmentsMikael Magnusson2015-06-021-2/+2
|
* 35318: POSIX_BUILTINS behaviour for getopts.Peter Stephenson2015-05-281-4/+8
| | | | | It needs to keep OPTIND, as well as the index within the string pointed to by OPTIND, global in this case.
* Tweak test for function level of exit.Peter Stephenson2015-05-221-1/+1
| | | | | Sometimes local level jumps so we need an inequality instead of an equality.
* users/20203: nested functions in always blocks when exit pendingPeter Stephenson2015-05-131-1/+9
|
* 34989: AUTO_CD needs to call cd --.Peter Stephenson2015-04-281-0/+1
| | | | Otherwise directories looking like options do the wrong thing.
* 34979: Preserve job text when doing shell job fix.Peter Stephenson2015-04-281-1/+14
| | | | | | This handles list_pipe_text in execlist() along with other variables that are saved and restored and, in the special case of source, cleared.
* 34955: save and restore list_pipe_job with its friendsPeter Stephenson2015-04-241-2/+4
| | | | This is needed to stop source() messing up job control.
* 34900: assignment before an "exec".Peter Stephenson2015-04-151-7/+14
| | | | | | Without POSXIBUILTIN: restore after, so we only get side effects. With POSXIBUILTIN: keep set variable
* 34887: Fix POSIX_BUILTINS with assignment.Peter Stephenson2015-04-151-7/+21
| | | | | | | | | | | 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.
* 34590: queue_signals() around more scopes that manipulate global stateBarton E. Schaefer2015-02-201-1/+3
|
* 34530: PRINT_EXIT_VALUE with anonymous functions.Peter Stephenson2015-02-161-2/+12
| | | | Simpler fix, avoiding structural changes.
* 34546: further $_ with anon function fix.Peter Stephenson2015-02-131-4/+13
| | | | Also add tests.
* 34519: $_ for arguments of anonymous functionPeter Stephenson2015-02-121-1/+4
|
* 34514: Back out 34485, an alternate solution needs to be worked out.Barton E. Schaefer2015-02-121-25/+26
| | | | (Tweaked to keep the unrelated hunk of the E01 test.)
* 34485: More rationalisation for anonymous functions.Peter Stephenson2015-02-091-26/+25
| | | | | | | | 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().
* users/19751: remove error on failure to close file descriptor by number.Peter Stephenson2015-01-201-1/+6
| | | | | Keep it when closing file descriptor stored in a variable, i.e. explicitly opened by the user.
* 34322: bug with interface to parsestr() etc.Peter Stephenson2015-01-181-4/+5
| | | | | | | 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.
* Rearrange context saving.Peter Stephenson2015-01-091-4/+4
| | | | | | | 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.
* 34134: anon funcs: don't leak shf and related dataMikael Magnusson2015-01-061-0/+6
| | | | Found by Coverity (Issue 439076).
* 34064: assignment before command replaces array with export even when KSH_ARRAYSTakeshi Banse2014-12-271-0/+2
|
* 34065: following an "if" condition, do not test lastval for ERR_EXIT until a ↵Barton E. Schaefer2014-12-271-0/+4
| | | | | | new command is run Includes unposted regression tests.
* 33876: etc.: Separate errors and keyboards interruptsPeter Stephenson2014-12-111-21/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* 33818: fix types passed to sizeof detected by coverity as being wrongOliver Kiddle2014-11-301-2/+2
|
* 33816, 33819: GLOB_ASSIGN changes integer and floating type variables to ↵Barton E. Schaefer2014-11-281-1/+9
| | | | string scalars
* 33775: error opening file in $(<...) is not fatalBarton E. Schaefer2014-11-231-2/+2
|
* 33614 (based on RedHat BZ-978613): signal safety when updating global state ↵Barton E. Schaefer2014-11-061-0/+6
| | | | in execshfunc()
* Treat exec from subshell as if forkedPeter Stephenson2014-11-021-0/+9
| | | | | This removes weird behaviour when optimising the last command. In particular SHLVL is correct from a subshell executed as the last command.
* 33531 with additions: retain status of exited background jobs.Peter Stephenson2014-10-261-2/+0
| | | | | | | | 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.
* 33493: use correct command name in error messages about "ulimit" failure; ↵Barton E. Schaefer2014-10-221-0/+1
| | | | restore internal copy of limits if setrlimit() fails, so the error won't repeat
* 33365: avoid buffer overflow for very long fds in >& fd syntaxMikael Magnusson2014-10-061-1/+1
|
* 33325: fix ksh autoloads with redirections on function definitionsPeter Stephenson2014-10-021-19/+63
|
* Merge branch 'master' of git://git.code.sf.net/p/zsh/codeBarton E. Schaefer2014-09-291-4/+88
|\ | | | | | | | | Conflicts: ChangeLog
| * 33286: handle redirections for multiply named functionsPeter Stephenson2014-09-291-1/+16
| |
| * 33285: apply function definition redirections at executionPeter Stephenson2014-09-291-4/+73
| |
* | 33268: interactive shells treat SIGPIPE like SIGHUP if and only if SHTTY is ↵Barton E. Schaefer2014-09-291-0/+2
|/ | | | disconnected
* 33100: check $fd more rigorously in "exec {fd}<&-"Barton E. Schaefer2014-09-031-6/+18
|
* 33077: SHTTY = -1 when closing it in closem()Barton E. Schaefer2014-08-311-1/+4
|
* 32768 with further modifications: LOCAL_LOOPS option.Peter Stephenson2014-06-131-2/+15
|
* 32568: consistency in handling of errflag condition during substitutionsBarton E. Schaefer2014-04-201-2/+9
| | | | | Affects for/select word lists, function definition name position, and anonymous function argument lists.
* 32552 (updated by 32560): fix segfault when using process substitution in ↵Andrew Waldron2014-04-181-8/+18
| | | | | | anonymous function argument list Also disallow process substitution in function name position.
* 32176: plug additional deadlock-inducing pipe descriptor leaksPeter Stephenson2013-12-211-1/+4
|