summaryrefslogtreecommitdiff
path: root/Src/loop.c
AgeCommit message (Collapse)AuthorFilesLines
2025-01-0353294: fix multibyte handling in "select" promptsBart Schaefer1-3/+15
2024-08-0553025: fix memory leaks and pointer errors upon named reference self-referenceBart Schaefer1-1/+1
2023-02-1251402: Some ksh/bash features, additional sanity checkingBart Schaefer1-3/+3
* Add "unset -n" * Allow and enforce "typeset -n -r" for read-only references * "can't change type via subscript reference" error * Better checking for self-referential declarations/assignments * Ksh-style "foo=bar; typeset -n foo" creates foo=bar reference * Support "typeset -n ref; for ref in ..." * Subscripted references use NO_EXEC for safety * References assigned in called scopes reset scope at end * Allow named references to $! $? $$ $- $0 $_
2023-01-1051258, 51272: refactor handling of terminal attributes, removing OFF flags ↵Oliver Kiddle1-1/+1
in zattr
2022-12-0351094: consistent use of bit-manipulation for noerrexit value changesPhilippe Altherr1-1/+1
2022-12-0351098: remove unreachable NOERREXIT_UNTIL_EXEC code and effectsPhilippe Altherr1-12/+3
2022-12-0351001: fix for ERR_EXIT with "always" blocks; update testsPhilippe Altherr1-0/+1
2022-12-0351001: Reverts 8839e969b, most of 1ba8714a, and d873ed60.Philippe Altherr1-6/+6
Also correct ChangeLog
2022-11-0850897: nonzero status of complex commands should trigger ERR_EXITBart Schaefer1-6/+6
2021-05-1648857: declare "volatile" all globals that may be modified by signal handlersBart Schaefer1-1/+1
2021-05-0648787: Fix command status after failed ifPeter Stephenson1-1/+1
If "if" had a hard error in the condition, and there was no else clause, the command status was incorrectly cleared to zero. Add test.
2020-08-0847296 (+ unposted additional tests and comments): 'repeat' loops: Let the ↵Daniel Shahaf1-1/+1
repeat count use $?. It's an arithmetic expression.
2020-03-2645616: Remove token from count argument to repeatPeter Stephenson1-1/+3
2020-03-07Merge remote-tracking branch 'origin/master' into 5.9Daniel Shahaf1-1/+1
* Test/D02glob.ztst: On the "unreadable directories can be globbed (users/24619, users/24626)" test, resolve conflicts by removing the Cygwin-only skip that has been added in master, since the test is passing on this branch. This effectively reverts workers/45492. See discussion starting in workers/45504. * origin/master: unposted: Remove 'sgi', as that OpenBSD port has been discontinued. 45509: fix typos in B01cd.ztst 45490 (+45495 and a test): refactor rlimits.c github #49: Fix typo: longson should be loongson users/24710: Fix job control problem with sudo. 45492: skip test added by users/24633 on Cygwin 45488: COMP_WORDS for bash need "$@"-style quoting 45487: Missing mod_export declarations for AIX 45447: Complete vcs_info_hookadd and vcs_info_hookdel. Expose _vcs_info_hooks as a top-level helper function. 45463: test: kill: Document why we use SIGURG 45453: builtins: kill: Do not signal current process group when pid is empty 45452: builtins: kill: Add `kill ''` regression test with explicit sigspec 45451: builtins: kill: Add basic test suite github #48/0002: vcs_info git: properly detect bare repositories github #48/0001: vcs_info git: avoid warnings in bare repositories unposted: Post-release version bump unposted: Release 5.8 CVE-2019-20044: Update change log for preceding commits Update NEWS/README Add unsetopt/PRIVILEGED tests Clean up error-message white space Improve PRIVILEGED fixes (again) Improve PRIVILEGED fixes Drop privileges securely unposted: V01zmodload: Fix failing test from workers/45385 45423: _su: Improve arg handling, shell look-ups unposted: _zip: Recognise '--' 45385: Add a test for 'zmodload -Fa' preemptively disabling ("blacklisting"?) features. unposted: Test release: 5.7.1-test-3 zsh/system: Fix infinite loop in sysread _diff_options: Restore -w completion lost in workers/43351 unposted: Fix ChangeLog typo. 45368: Add tests for workers/45367's issue about double slashes in 'cd -P' and /home/daniel/in/zsh. 45373: Fix ERR_EXIT bug in else branch of if. 45372: Record a symlink loop bug involving :P 45365: _git: Fix __git_recent_branches for the case when a commit has an empty message 45343: Queue signals around arithmetic evaluations 45344: Document where third-party completion functions should be installed. 45345: internal: ztst.vim: Fix highlighting of zsh comments in test payload unposted: internal: Add some comments and fix indentation. No functional change. 45340: internal: Document the difference between paramtab and realparamtab. 45332: _git: add completion for git-version _brace_parameter: add missing \ Conflicts: ChangeLog Test/D02glob.ztst Test/V01zmodload.ztst
2020-02-0245373: Fix ERR_EXIT bug in else branch of if.Peter Stephenson1-1/+1
The flags need resetting for this branch otherwise e.g. command substitution with non-zero status doesn't cause exit.
2020-01-1645304: Do execute the always block even when the try/always block itself is ↵Daniel Shahaf1-1/+1
the last command. Fixes the test added in the previous commit (workers/45305).
2019-12-1845076: internal: Simplify handling of try_tryflag. No functional change.Daniel Shahaf1-6/+3
try_tryflag isn't assigned anywhere, other than at initialization and by these lines, so we don't need to save and restore the value.
2019-05-0344271: Fix breaks propagated from until or return.Peter Stephenson1-2/+6
If the until or return test caused continuation but there was a pending return, breaks didn't get cancelled causing enclosing scope to skip commands.
2017-09-1841723: one more case of 41627 in "while" loops.Barton E. Schaefer1-1/+1
2017-08-31Fix problem with ERR_RETURN.Peter Stephenson1-4/+3
It wasn't suppressed properly in the code following an if in some circumstances, in particular in initialsation scripts and also in a nested function where the caller had suppressed it.
2017-08-2441590 modified as 41595: make ERR_RETURN more logical.Peter Stephenson1-2/+7
It now operates separately at each function depth. To keep ERR_EXIT global, make the noerrexit variable usd bit flags. Extend tests.
2017-01-2940453: signal handler safety for callers of patcompile(PAT_STATIC), which is ↵Barton E. Schaefer1-1/+5
not re-entrant.
2016-12-05Extra case for ERR_RETURN and ERR_EXIT.Peter Stephenson1-0/+6
Don't trigger just because status is non-zero at end of complex shell construct as this may be a case we've already suppressed.
2016-11-0539844: fix "while" condition as per 39839 (commit 2c56c7e5)Barton E. Schaefer1-4/+3
2016-11-0539839: fix "return" from "if" conditionBarton E. Schaefer1-1/+2
2016-10-1339625: case needs to reset lastval if no pattern matchedMartijn Dekker1-2/+6
2016-10-1039599: Don't reset status before "case" executionPeter Stephenson1-1/+0
2016-09-2639448: reset REPLY in select on user actionMartijn Dekker1-0/+2
2016-06-2138734: fix final case clauses terminating with ;&Peter Stephenson1-1/+1
2016-01-2737804 (plus 37816): first word following "repeat" should be evaluated as mathBarton E. Schaefer1-1/+3
2015-10-03unposted: back out 36707, add test case for 36766Barton E. Schaefer1-6/+2
2015-09-3036707: distinguish ERR_RETURN value of retflag so that execif() can ignore ↵Barton E. Schaefer1-2/+6
it in the test sublist
2015-08-0936022 fix bug that some loop constructs could not be interrupted, revise ↵Barton E. Schaefer1-3/+38
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-05-1835168: Improve parsing of case patterns.Peter Stephenson1-37/+51
"|" is now found properly by looking for words that come from the lexical analyser, rather than hacking a pattern returned in one dollop. Update some completion functions that need extra quoting as a result. Add test for new parsing. Update version number to 5.0.8-dev-3 because of wordcode incompatibility.
2015-01-10select: Fix leak of 256 bytes on every loop when zle is not usedMikael Magnusson1-1/+1
Reproduce by yes | head -n 1000000 | zsh -c 'select foo in a b c; do done; sleep 30; echo' Found by Coverity (Issue 439082).
2014-12-2734065: following an "if" condition, do not test lastval for ERR_EXIT until a ↵Barton E. Schaefer1-5/+11
new command is run Includes unposted regression tests.
2014-12-1133876: etc.: Separate errors and keyboards interruptsPeter Stephenson1-4/+24
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-2533791: fatal errors in an "always" construct yield nonzero statusBarton E. Schaefer1-2/+3
Fatal errors in the try-block part of an "always" construct cause the entire construct to have nonzero status, even when TRY_BLOCK_ERROR is used to suppress the error.
2014-04-2032569: lastval ($?) should not be reset between word list substitution and ↵Barton E. Schaefer1-3/+3
loop body execution in for/select Remove one other redundant and therefore confusing assignment to lastval.
2014-04-2032568: consistency in handling of errflag condition during substitutionsBarton E. Schaefer1-2/+12
Affects for/select word lists, function definition name position, and anonymous function argument lists.
2011-05-0929165: use term.h globally if needed at all.Peter Stephenson1-3/+3
2008-07-3125345, 25347: neaten interface from main shell to zlePeter Stephenson1-2/+3
2008-05-1225002: only ZLE should update attributes resulting from prompt expansionPeter Stephenson1-2/+2
2008-05-1124996: improve xtrace output for patternsPeter Stephenson1-3/+3
2008-05-11users/12848: return, break, continue in always block override try blockPeter Stephenson1-7/+7
2007-06-2723670: rationalise some linked list functionsPeter Stephenson1-8/+2
2007-01-1923115: ";|" at end of case clause causes later patterns to be testedPeter Stephenson1-3/+4
2006-05-3022474: use variable argument lists to improve error message handlingPeter Stephenson1-1/+1
2005-12-1521814: error handling for traps in "always" constructs.Bart Schaefer1-1/+10
2005-11-15Got rid of some unsigned-char/char pointer casts.Wayne Davison1-1/+1