diff options
author | jilles <jilles@FreeBSD.org> | 2011-04-20 22:24:54 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2011-04-20 22:24:54 +0000 |
commit | 1347144ea42604e45974ddf810b80ac1af548384 (patch) | |
tree | 85bc887cbbe56b0aa0f5700dc4f7350dc2764745 /tools | |
parent | bda5dc08022a9410c11ce6c121bff19ea5fc095a (diff) | |
download | FreeBSD-src-1347144ea42604e45974ddf810b80ac1af548384.zip FreeBSD-src-1347144ea42604e45974ddf810b80ac1af548384.tar.gz |
sh: Do not word split "${#parameter}".
This is only a problem if IFS contains digits, which is unusual but valid.
Because of an incorrect fix for PR bin/12137, "${#parameter}" was treated
as ${#parameter}. The underlying problem was that "${#parameter}"
erroneously added CTLESC bytes before determining the length. This
was properly fixed for PR bin/56147 but the incorrect fix was not backed
out.
Reported by: Seeker on forums.freebsd.org
MFC after: 2 weeks
Diffstat (limited to 'tools')
-rw-r--r-- | tools/regression/bin/sh/expansion/length6.0 | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/expansion/length6.0 b/tools/regression/bin/sh/expansion/length6.0 new file mode 100644 index 0000000..6b78309 --- /dev/null +++ b/tools/regression/bin/sh/expansion/length6.0 @@ -0,0 +1,8 @@ +# $FreeBSD$ + +x='!@#$%^&*()[]' +[ ${#x} = 12 ] || echo bad 1 +[ "${#x}" = 12 ] || echo bad 2 +IFS=2 +[ ${#x} = 1 ] || echo bad 3 +[ "${#x}" = 12 ] || echo bad 4 |