summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjilles <jilles@FreeBSD.org>2011-06-12 12:27:17 +0000
committerjilles <jilles@FreeBSD.org>2011-06-12 12:27:17 +0000
commit5f34a4c1c49bd32e09046627552c249a770ebbce (patch)
tree6878a3bbe0dd35e441056707f385942d6e03dd62 /tools
parent01ffb61bd7784f5de579d8f3a1f42dc5b08bb31e (diff)
downloadFreeBSD-src-5f34a4c1c49bd32e09046627552c249a770ebbce.zip
FreeBSD-src-5f34a4c1c49bd32e09046627552c249a770ebbce.tar.gz
sh: Add test for case pattern matching with iso-8859-1 charset.
This also passes on stable/8.
Diffstat (limited to 'tools')
-rw-r--r--tools/regression/bin/sh/builtins/case6.052
1 files changed, 52 insertions, 0 deletions
diff --git a/tools/regression/bin/sh/builtins/case6.0 b/tools/regression/bin/sh/builtins/case6.0
new file mode 100644
index 0000000..8d79183
--- /dev/null
+++ b/tools/regression/bin/sh/builtins/case6.0
@@ -0,0 +1,52 @@
+# $FreeBSD$
+
+unset LC_ALL
+LC_CTYPE=de_DE.ISO8859-1
+export LC_CTYPE
+
+c1=e
+# o umlaut
+c2=$(printf '\366')
+# non-break space
+c3=$(printf '\240')
+c4=$(printf '\240')
+# $c2$c3$c4 form one utf-8 character
+
+ok=0
+case $c1$c2$c3$c4 in
+*) ok=1 ;;
+esac
+if [ $ok = 0 ]; then
+ echo wrong at $LINENO
+ exit 3
+fi
+
+case $c1$c2$c3$c4 in
+$c1$c2$c3$c4) ;;
+*) echo wrong at $LINENO ;;
+esac
+
+case $c1$c2$c3$c4 in
+"$c1$c2$c3$c4") ;;
+*) echo wrong at $LINENO ;;
+esac
+
+case $c1$c2$c3$c4 in
+????) ;;
+*) echo wrong at $LINENO ;;
+esac
+
+case $c1$c2$c3$c4 in
+[!$c2][!b][!c][!d]) ;;
+*) echo wrong at $LINENO ;;
+esac
+
+case $c1$c2$c3$c4 in
+[$c1][$c2][$c3][$c4]) ;;
+*) echo wrong at $LINENO ;;
+esac
+
+case $c1$c2$c3$c4 in
+["$c1"]["$c2"]["$c3"]["$c4"]) ;;
+*) echo wrong at $LINENO ;;
+esac
OpenPOWER on IntegriCloud