freebsd-dev/bin/sh
Jilles Tjoelker ae7c0700dc sh: Fix break/continue/return sometimes not skipping the rest of dot script.
In our implementation and most others, a break or continue in a dot script
can break or continue a loop outside the dot script. This should cause all
further commands in the dot script to be skipped. However, cmdloop() did not
know about this and continued to parse and execute commands from the dot
script.

As described in the man page, a return in a dot script in a function returns
from the function, not only from the dot script. There was a similar issue
as with break and continue. In various other shells, the return appears to
return from the dot script, but POSIX seems not very clear about this.
2010-08-15 21:06:53 +00:00
..
bltin Declare echocmd() and testcmd(). 2005-08-13 15:04:30 +00:00
funcs /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
alias.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
alias.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith_lex.l sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
arith.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
arith.y sh: Use stalloc for arith variable names. 2010-04-25 20:43:19 +00:00
builtins.def Use -s to flag POSIX's "special built-in" utilities in builtins.def. Add a 2006-04-02 18:43:33 +00:00
cd.c sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
cd.h sh: On startup of the shell, use PWD from the environment if it is valid. 2010-04-17 14:35:46 +00:00
error.c sh: Fix shadowing of sigset. 2010-08-13 13:36:18 +00:00
error.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
eval.c sh: Add a forgotten const. 2010-08-13 20:29:43 +00:00
eval.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
exec.c sh: Improve the command builtin: 2010-03-06 16:57:53 +00:00
exec.h sh: Improve the command builtin: 2010-03-06 16:57:53 +00:00
expand.c sh: Fix heap-based buffer overflow in pathname generation. 2010-08-10 22:45:59 +00:00
expand.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
histedit.c sh: Do not enter consecutive duplicates into the history. 2010-08-01 16:37:51 +00:00
init.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
input.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
input.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
jobs.c sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
jobs.h sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
mail.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
mail.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
main.c sh: Fix break/continue/return sometimes not skipping the rest of dot script. 2010-08-15 21:06:53 +00:00
main.h sh: Do not run callers' exception handlers in subshells. 2009-12-25 20:21:35 +00:00
Makefile Reduce the WARNS level to avoid a compiler warning about a variable 2007-11-18 01:53:07 +00:00
memalloc.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
memalloc.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
miscbltin.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkbuiltins sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mkinit.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mknodes.c sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
mksyntax.c Remove unnecessary duplicate letters in mksyntax.c, 2010-08-08 21:04:27 +00:00
mktokens /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
myhistedit.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
mystring.c sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
mystring.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
nodes.c.pat sh: Fix crash with empty functions (f() { }) introduced in r196483 2009-08-28 22:41:25 +00:00
nodetypes /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
options.c sh: Automatically enable -o emacs in interactive shells with terminals. 2010-04-05 14:15:51 +00:00
options.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
output.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
output.h sh: Fix some bugs with backquoted builtins: 2010-01-01 18:17:46 +00:00
parser.c sh: Fix crash due to uninitialized here-document. 2010-07-25 22:25:52 +00:00
parser.h sh: Various warning fixes (from WARNS=6 NO_WERROR=1): 2009-12-27 18:04:05 +00:00
redir.c Fix some cases where file descriptors from redirections leak to programs. 2009-11-29 22:33:59 +00:00
redir.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
sh.1 sh: Forget about terminated background processes sooner. 2010-06-29 22:37:45 +00:00
shell.h - Fix bugs where the value of arithmetic expansion$((...)) was trucated 2008-04-27 20:46:45 +00:00
show.c sh: Constify various strings. 2009-12-24 18:41:14 +00:00
show.h sh: Constify various strings. 2009-12-24 18:41:14 +00:00
TOUR Correct assorted grammos and typos. 2006-04-16 11:54:01 +00:00
trap.c trap: do not consider a bad signal name a fatal error. 2009-11-21 20:44:34 +00:00
trap.h sh: Add some __dead2 to indicate functions that do not return. 2009-12-24 20:55:14 +00:00
var.c sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00
var.h sh: Pass TERM changes to libedit. 2010-06-02 19:16:58 +00:00