NetBSD/bin
kre 58e34de6bb Fix an old bug (very old) that was made worse in 1.128 (the "${1+$@}"
fixes) where a variable containing a CTL char (the only possibility used
to be CTLESC (0x81)) would lose that character if the variable was expanded
when "set -f" (noglob) was in effect.

1.128 made this worse by adding more 0x8z values (a couple more) which would
see the same behaviour, and one of those was noticed by Martijn Dekker.

The reasoning was that when noglob is on, when a var is expanded, there are
no magic chars, so (apparently) no need to escape anything.  Hence nothing
was escaped .. including any CTL chars that happened to be present.  When
we later rmescapes() the CTL chars that we expect might occur are summarily
removed - even if they weren't really CTL chars, but just data masquerading.

We must *always* escape any CTL char clones that are in the var value,
no matter what other conditions apply, and what we expect to happen next.

While here, fix rmescapes() (and its $(()) clone, rmescapes_nl()) to
be more robust, less likely to forget to delete anything (which was
not the issue here, just the reverse) and in a DEBUG shell, have the
shell abort() if it encounters something in rmescapes() it is not
anticipating, so the code can be made to handle it, or if it should
not happen, we can find out why it did.

XXX pullup -8 (but will need to be via patch, code is quite different).
2019-02-04 09:56:26 +00:00
..
cat Add cross reference to tac(1). 2017-10-02 08:24:17 +00:00
chio typo: unvalid -> invalid 2017-10-16 17:08:35 +00:00
chmod Use Ex. 2017-07-04 06:46:51 +00:00
cp Clarify a sentence about the error handling of cp(1)'s -p option. 2018-12-23 01:29:23 +00:00
csh compare pointers with NULL not '\0'. 2019-02-01 08:29:03 +00:00
date Remove trailing whitespace and Tn macro. 2018-01-27 18:59:38 +00:00
dd Fix typos; use American spelling consistently. Remove an unnecessary macro. 2019-01-30 10:28:50 +00:00
df -G cannot be specified alongside -i or -P. 2018-08-26 23:34:52 +00:00
domainname
echo Use Ex. 2017-07-04 06:46:51 +00:00
ed Unifdef compatibility for broken realloc. 2019-01-04 19:13:58 +00:00
expr Add a missing check to handle correctly 0 * 0 in expr(1) 2018-06-27 17:23:36 +00:00
hostname
kill Reverse a decision made when the printsignals() routines from 2018-12-12 20:22:43 +00:00
ksh - use -Wno-error=implicit-fallthrough with GCC7. 2019-02-04 04:05:15 +00:00
ln Update usage to include -w 2018-08-26 23:01:06 +00:00
ls Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
mkdir Use Ex. Remove superfluous Pp. 2017-07-04 06:49:35 +00:00
mt Bump date for previous. 2018-09-01 07:26:56 +00:00
mv Use Ex. 2017-07-04 06:50:04 +00:00
pax - bump buffer sizes to avoid potential truncation issues 2019-02-04 04:36:41 +00:00
ps Don't display l_wchan, either there is something in l_wmesg and we display 2018-09-19 15:20:39 +00:00
pwd Use Ex. 2017-07-04 06:50:04 +00:00
rcmd Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
rcp
rm Remove workaround for ancient HTML generation code. 2017-07-03 21:28:48 +00:00
rmdir PR/48182: Fix rmdir -p handling of top-level (root) directory. 2017-08-10 22:52:13 +00:00
sh Fix an old bug (very old) that was made worse in 1.128 (the "${1+$@}" 2019-02-04 09:56:26 +00:00
sleep Sort sections. 2019-01-27 17:42:53 +00:00
stty Remove Tn. 2017-10-30 15:38:52 +00:00
sync Drop main() prototype. 2016-09-05 01:00:07 +00:00
test Allow SMALL (and TINY) builds of test (for SMALL/TINY builds of sh) 2018-09-13 22:00:58 +00:00
Makefile
Makefile.inc