freebsd-dev/bin/sh
Stefan Farfeleder 85170a4a2a Implement some of the differences between special built-ins and other builtins
demanded by POSIX.
- A redirection error is only fatal (meaning the execution of a shell script is
  terminated) for special built-ins.  Previously it was fatal for all shell
  builtins, causing problems like the one reported in PR 88845.
- Variable assignments remain in effect for special built-ins.
- Option or operand errors are only fatal for special built-ins.
This change also makes errors from 'fc' non-fatal (I could not find any reasons
for this behaviour).

Somewhat independently from the above down-grade the error handling in the
shift built-in if the operand is bigger than $# from an error() call (which is
now fatal) to a return 1.  I'm not sure if this should be considered a POSIX
"operand error", however this change is needed for now as we trigger that error
while building libncurses.  Comparing with other shells, zsh does the same as
our sh before this change (write a diagnostic, return 1), bash behaves as our
sh after this commit (no diagnostic, return 1) and ksh93 and NetBSD's sh treat
it as a fatal error.
2006-04-09 12:21:20 +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 Return 1 from the unalias builtin if _any_ removal fails, not just the last 2005-09-02 22:43:28 +00:00
alias.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
arith_lex.l cvs -d stefanf@ncvs.FreeBSD.org:/home/ncvs 2005-08-13 07:54:23 +00:00
arith.h cvs -d stefanf@ncvs.FreeBSD.org:/home/ncvs 2005-08-13 07:54:23 +00:00
arith.y cvs -d stefanf@ncvs.FreeBSD.org:/home/ncvs 2005-08-13 07:54:23 +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 Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
cd.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
error.c Remove some white space at EOL. 2006-02-04 14:37:50 +00:00
error.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
eval.c Implement some of the differences between special built-ins and other builtins 2006-04-09 12:21:20 +00:00
eval.h Add the times builtin. It reports the user and system time for the shell 2005-12-04 18:44:21 +00:00
exec.c Implement some of the differences between special built-ins and other builtins 2006-04-09 12:21:20 +00:00
exec.h Implement some of the differences between special built-ins and other builtins 2006-04-09 12:21:20 +00:00
expand.c Remove some white space at EOL. 2006-02-04 14:37:50 +00:00
expand.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
histedit.c Use the new name H_SETSIZE instead of the old H_EVENT to set the history 2005-10-19 15:37:43 +00:00
init.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
input.c Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
input.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
jobs.c Remove some white space at EOL. 2006-02-04 14:37:50 +00:00
jobs.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
mail.c Include missing headers. 2005-08-13 08:26:58 +00:00
mail.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
main.c Issue an error when . (dot) is invoked without a filename. The synopsis 2006-04-02 18:51:32 +00:00
main.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
Makefile Recent cleanups made it possible to bump WARNS to 3. 2005-08-14 07:46:56 +00:00
memalloc.c Protect malloc, realloc and free calls with INT{ON,OFF} directly in chkalloc, 2005-10-28 10:45:19 +00:00
memalloc.h Protect malloc, realloc and free calls with INT{ON,OFF} directly in chkalloc, 2005-10-28 10:45:19 +00:00
miscbltin.c Remove some white space at EOL. 2006-02-04 14:37:50 +00:00
mkbuiltins Use -s to flag POSIX's "special built-in" utilities in builtins.def. Add a 2006-04-02 18:43:33 +00:00
mkinit.c - Provide all initialisers for a struct event. 2005-08-13 08:38:02 +00:00
mknodes.c Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
mksyntax.c Put the comparison with PEOF into a new macro is_eof(). Don't use it if the 2005-08-13 15:47:13 +00:00
mktokens /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
myhistedit.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
mystring.c Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
mystring.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
nodes.c.pat Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
nodetypes /*- or .\"- or #- to begin license clauses. 2005-01-10 08:39:26 +00:00
options.c Implement some of the differences between special built-ins and other builtins 2006-04-09 12:21:20 +00:00
options.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
output.c Print empty quotes ('') when an empty string is passed to outqstr(). 2005-12-08 21:00:39 +00:00
output.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
parser.c Remove a hack for an ancient gdb. 2005-08-15 17:49:38 +00:00
parser.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
redir.c Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
redir.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
sh.1 Document that '#' starts a comment. 2006-01-01 16:02:12 +00:00
shell.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
show.c Remove extra getenv() declaration. 2005-09-02 22:28:27 +00:00
show.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
TOUR
trap.c Correctly quote the output when showing the installed trap actions. 2005-12-08 20:08:36 +00:00
trap.h Remove clause 3 from the UCB licenses. 2004-04-06 20:06:54 +00:00
var.c s/varable/variable/; s/tored/stored/ 2006-02-04 14:38:37 +00:00
var.h s/staticly/statically/g 2006-02-04 14:41:27 +00:00