NetBSD/bin/sh
kre 265b061776 PR bin/54112
Fix handling of "$@" (that is, double quoted dollar at), when it
appears in a string which will be subject to field splitting.

Eg:
	${0+"$@" }

More common usages, like the simple "$@" or ${0+"$@"} end up
being entirely quoted, so no field splitting happens, and the
problem was avoided.

See the PR for more details.

This ends up making a bunch of old hack code (and some that was
relatively new) vanish - for now it is just #if 0'd or commented out.
Cleanups of that stuff will happen later.

That some of the worst $@ hacks are now gone does not mean that processing
of "$@" does not retain a very special place in every hackers heart.
RIP extreme ugliness - long live the merely ordinary ugly.

Added a new bin/sh ATF test case to verify that all this remains fixed.
2019-04-10 08:13:11 +00:00
..
USD.doc Fix "every" typo in quote from The Mythical Man-Month 2018-09-14 05:59:10 +00:00
bltin Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
funcs delete clauses 3,4 2016-02-29 23:50:59 +00:00
Makefile Change the (commented out) setting of -DDEBUG to the form that 2018-10-28 18:13:47 +00:00
TOUR Fix grammar in couple of sentences. 2016-10-25 13:01:59 +00:00
alias.c Allocate alias pointers for qsort() to use on the stack, rather than 2019-02-09 09:11:07 +00:00
alias.h Revamp aliases - as dumb an idea as they are, if we're going 2018-12-03 06:40:26 +00:00
arith_token.c Do a better job of reporting invalid numeric constants in arithmetic exprs. 2017-12-17 04:06:03 +00:00
arith_tokens.h Add support for ++ and -- (pre & post) and ',' to arithmetic. 2017-07-24 13:21:14 +00:00
arithmetic.c In uses like $(( var )) (un-dollared vars in arithmetic) we allow 2018-04-21 23:01:29 +00:00
arithmetic.h A better LINENO implementation. This version deletes (well, #if 0's out) 2017-06-07 05:08:32 +00:00
builtins.def Add the "specialvar" built-in command. Discussed (well, mentioned 2019-02-14 11:15:24 +00:00
cd.c DEBUG only changes. Convert the TRACE() calls in the remaining files 2017-07-05 20:00:27 +00:00
cd.h
error.c PR bin/53919 2019-02-04 11:16:41 +00:00
error.h PR bin/53919 2019-02-04 11:16:41 +00:00
eval.c DEBUG mode build changes - add extra trace output. 2019-02-09 09:17:59 +00:00
eval.h PR bin/53919 2019-02-04 11:16:41 +00:00
exec.c Fix several bugs in the command / type builtin ( including PR bin/48499 ) 2018-07-25 14:42:50 +00:00
exec.h Deal with ref after free found by ASAN when a function redefines 2018-06-22 11:04:55 +00:00
expand.c PR bin/54112 2019-04-10 08:13:11 +00:00
expand.h Rationalise (slightly) the way that expansions are processed 2018-11-18 17:23:37 +00:00
histedit.c Remove a function prototype which was added to <histedit.h> in 2005. 2019-02-10 19:21:52 +00:00
init.h
input.c KNF - white space changes, indent using tabs not spaces. NFC. 2019-02-09 09:20:47 +00:00
input.h PR bin/48875 (is related, and ameliorated, but not exactly "fixed") 2018-08-19 23:50:27 +00:00
jobs.c Fix a logic botch that prevented "wait -n" (with no pid args) from 2019-03-26 13:32:26 +00:00
jobs.h Whitespace cleanup from last update. NFC. 2018-09-11 03:30:40 +00:00
machdep.h
mail.c If we are going to keep the MAILPATH % hack, then at least do something 2017-06-04 20:28:13 +00:00
mail.h
main.c When an interactive shell exits due to an EOF on stdin, send a newline 2019-02-09 09:33:20 +00:00
main.h When forking a child shell, arrange for errors/exit to always unwind 2018-12-03 02:38:30 +00:00
memalloc.c INTON / INTOFF audit and cleanup. 2019-02-09 03:35:55 +00:00
memalloc.h Fix (hopefully) the problem reported on current-users by Patrick Welche. 2018-08-22 20:08:54 +00:00
miscbltin.c Fix inconsistent whitespace 2017-05-13 15:03:34 +00:00
miscbltin.h
mkbuiltins
mkinit.sh Use printf, rather than echo (via echo redefined as a function that 2018-12-05 09:20:18 +00:00
mknodenames.sh In the older debug code (not using the new macros added in the 2018-08-18 03:09:37 +00:00
mknodes.sh Add some error checking, and stop assuming what the input 2019-01-19 13:08:50 +00:00
mkoptions.sh Sort options with long names that differ only by char case in 2017-11-15 09:21:19 +00:00
mktokens Add a comment explaining the ordering reltionship of the tokens 2017-07-26 03:46:54 +00:00
myhistedit.h Now libedit supports embedded mode switch sequence, improve sh 2017-06-28 13:46:06 +00:00
mystring.c Remove atoi() 2018-07-13 22:43:44 +00:00
mystring.h
nodes.c.pat Deal with ref after free found by ASAN when a function redefines 2018-06-22 11:04:55 +00:00
nodetypes Remove some left over baggage from the LINENO v1 implementation that 2017-06-08 13:12:17 +00:00
option.list Avoid long option names that differ only in character case. 2018-11-23 20:40:06 +00:00
options.c Remove atoi() 2018-07-13 22:43:44 +00:00
options.h Arrange for set -o and $- output to be sorted, rather than more 2017-05-28 00:38:01 +00:00
output.c Remove the -X option from SMALL shells (as used on boot floppies, 2017-11-21 03:42:39 +00:00
output.h Remove the -X option from SMALL shells (as used on boot floppies, 2017-11-21 03:42:39 +00:00
parser.c Finish the fixes from Feb 4 for handling of random data that 2019-02-27 04:10:56 +00:00
parser.h Delete a no-longer-used #define that referred to a struct field that 2019-02-13 21:40:50 +00:00
redir.c The previous commit was obviously made by a broken mindless automoton 2019-03-01 06:15:01 +00:00
redir.h Include redirections in trace output from "set -x" 2017-06-30 23:01:21 +00:00
sh.1 Add the "specialvar" built-in command. Discussed (well, mentioned 2019-02-14 11:15:24 +00:00
shell.h NFCI - DEBUG mode only change. 2019-01-22 13:48:28 +00:00
show.c DEBUG mode only change. When pretty-printing a word from a parse 2019-02-14 13:27:59 +00:00
show.h NFC: DEBUG only change - provide an externally visible (to the DEBUG sh 2017-06-30 23:00:40 +00:00
syntax.c Add a couple of comments. NFC. 2019-02-04 09:56:48 +00:00
syntax.h Finish the fixes from Feb 4 for handling of random data that 2019-02-27 04:10:56 +00:00
trap.c Finish (hopefully) the second half of 1.47 ... make sure 2019-01-18 06:28:09 +00:00
trap.h Make pendingsigs forward declaration match the definition. 2018-12-03 10:53:29 +00:00
var.c Add the "specialvar" built-in command. Discussed (well, mentioned 2019-02-14 11:15:24 +00:00
var.h Alter a design botch when magic (self modifying) variables 2018-12-04 14:03:30 +00:00
version.h The time has come, the Walrus said... (but no shoes, 2018-12-12 12:16:42 +00:00