summaryrefslogtreecommitdiff
path: root/Src/exec.c
AgeCommit message (Collapse)AuthorFilesLines
2015-08-1136104: change order of child_block() and dont_queue_signals() to resolve yet ↵Barton E. Schaefer1-1/+1
another race condition
2015-08-0936022 fix bug that some loop constructs could not be interrupted, revise ↵Barton E. Schaefer1-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.
2015-07-2335849: close fd's from process substitution after forkPeter Stephenson1-2/+3
Leaving these hanging in parent could cause deadlock: test added.
2015-07-0935751: Fix ERR_RETURN and ERR_EXIT in "else"Peter Stephenson1-1/+7
2015-06-2935655: APPEND_CREATE option for POSIX copmatible NO_CLOBBERPeter Stephenson1-1/+2
2015-06-2735634: handle failure of gettempname() in namedpipe()Barton E. Schaefer1-0/+4
2015-06-2535604: create empty arrays in typeset with array=()Peter Stephenson1-9/+12
2015-06-24various posts: Implement assignment parsing for typeset.Peter Stephenson1-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.
2015-06-1635493: erase $_ when the command line is an assignmentBarton E. Schaefer1-0/+1
2015-06-02GLOB_ASSIGN should only affect scalar assignmentsMikael Magnusson1-2/+2
2015-05-2835318: POSIX_BUILTINS behaviour for getopts.Peter Stephenson1-4/+8
It needs to keep OPTIND, as well as the index within the string pointed to by OPTIND, global in this case.
2015-05-22Tweak test for function level of exit.Peter Stephenson1-1/+1
Sometimes local level jumps so we need an inequality instead of an equality.
2015-05-13users/20203: nested functions in always blocks when exit pendingPeter Stephenson1-1/+9
2015-04-2834989: AUTO_CD needs to call cd --.Peter Stephenson1-0/+1
Otherwise directories looking like options do the wrong thing.
2015-04-2834979: Preserve job text when doing shell job fix.Peter Stephenson1-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.
2015-04-2434955: save and restore list_pipe_job with its friendsPeter Stephenson1-2/+4
This is needed to stop source() messing up job control.
2015-04-1534900: assignment before an "exec".Peter Stephenson1-7/+14
Without POSXIBUILTIN: restore after, so we only get side effects. With POSXIBUILTIN: keep set variable
2015-04-1534887: Fix POSIX_BUILTINS with assignment.Peter Stephenson1-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.
2015-02-2034590: queue_signals() around more scopes that manipulate global stateBarton E. Schaefer1-1/+3
2015-02-1634530: PRINT_EXIT_VALUE with anonymous functions.Peter Stephenson1-2/+12
Simpler fix, avoiding structural changes.
2015-02-1334546: further $_ with anon function fix.Peter Stephenson1-4/+13
Also add tests.
2015-02-1234519: $_ for arguments of anonymous functionPeter Stephenson1-1/+4
2015-02-1234514: Back out 34485, an alternate solution needs to be worked out.Barton E. Schaefer1-25/+26
(Tweaked to keep the unrelated hunk of the E01 test.)
2015-02-0934485: More rationalisation for anonymous functions.Peter Stephenson1-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().
2015-01-20users/19751: remove error on failure to close file descriptor by number.Peter Stephenson1-1/+6
Keep it when closing file descriptor stored in a variable, i.e. explicitly opened by the user.
2015-01-1834322: bug with interface to parsestr() etc.Peter Stephenson1-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.
2015-01-09Rearrange context saving.Peter Stephenson1-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.
2015-01-0634134: anon funcs: don't leak shf and related dataMikael Magnusson1-0/+6
Found by Coverity (Issue 439076).
2014-12-2734064: assignment before command replaces array with export even when KSH_ARRAYSTakeshi Banse1-0/+2
2014-12-2734065: following an "if" condition, do not test lastval for ERR_EXIT until a ↵Barton E. Schaefer1-0/+4
new command is run Includes unposted regression tests.
2014-12-1133876: etc.: Separate errors and keyboards interruptsPeter Stephenson1-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.
2014-11-3033818: fix types passed to sizeof detected by coverity as being wrongOliver Kiddle1-2/+2
2014-11-2833816, 33819: GLOB_ASSIGN changes integer and floating type variables to ↵Barton E. Schaefer1-1/+9
string scalars
2014-11-2333775: error opening file in $(<...) is not fatalBarton E. Schaefer1-2/+2
2014-11-0633614 (based on RedHat BZ-978613): signal safety when updating global state ↵Barton E. Schaefer1-0/+6
in execshfunc()
2014-11-02Treat exec from subshell as if forkedPeter Stephenson1-0/+9
This removes weird behaviour when optimising the last command. In particular SHLVL is correct from a subshell executed as the last command.
2014-10-2633531 with additions: retain status of exited background jobs.Peter Stephenson1-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.
2014-10-2233493: use correct command name in error messages about "ulimit" failure; ↵Barton E. Schaefer1-0/+1
restore internal copy of limits if setrlimit() fails, so the error won't repeat
2014-10-0633365: avoid buffer overflow for very long fds in >& fd syntaxMikael Magnusson1-1/+1
2014-10-0233325: fix ksh autoloads with redirections on function definitionsPeter Stephenson1-19/+63
2014-09-29Merge branch 'master' of git://git.code.sf.net/p/zsh/codeBarton E. Schaefer1-4/+88
Conflicts: ChangeLog
2014-09-2933286: handle redirections for multiply named functionsPeter Stephenson1-1/+16
2014-09-2933285: apply function definition redirections at executionPeter Stephenson1-4/+73
2014-09-2933268: interactive shells treat SIGPIPE like SIGHUP if and only if SHTTY is ↵Barton E. Schaefer1-0/+2
disconnected
2014-09-0333100: check $fd more rigorously in "exec {fd}<&-"Barton E. Schaefer1-6/+18
2014-08-3133077: SHTTY = -1 when closing it in closem()Barton E. Schaefer1-1/+4
2014-06-1332768 with further modifications: LOCAL_LOOPS option.Peter Stephenson1-2/+15
2014-04-2032568: consistency in handling of errflag condition during substitutionsBarton E. Schaefer1-2/+9
Affects for/select word lists, function definition name position, and anonymous function argument lists.
2014-04-1832552 (updated by 32560): fix segfault when using process substitution in ↵Andrew Waldron1-8/+18
anonymous function argument list Also disallow process substitution in function name position.
2013-12-2132176: plug additional deadlock-inducing pipe descriptor leaksPeter Stephenson1-1/+4