summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2011-04-20 22:24:54 +0000
committerjilles <jilles@FreeBSD.org>2011-04-20 22:24:54 +0000
commit1347144ea42604e45974ddf810b80ac1af548384 (patch)
tree85bc887cbbe56b0aa0f5700dc4f7350dc2764745 /tools
parentbda5dc08022a9410c11ce6c121bff19ea5fc095a (diff)
downloadFreeBSD-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.08
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
OpenPOWER on IntegriCloud