summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xshell/ash_test/ash-redir/redir7.tests4
-rw-r--r--shell/ash_test/ash-redir/redir8.right3
-rwxr-xr-xshell/ash_test/ash-redir/redir8.tests15
3 files changed, 21 insertions, 1 deletions
diff --git a/shell/ash_test/ash-redir/redir7.tests b/shell/ash_test/ash-redir/redir7.tests
index e9bedd0..17d1040 100755
--- a/shell/ash_test/ash-redir/redir7.tests
+++ b/shell/ash_test/ash-redir/redir7.tests
@@ -2,7 +2,9 @@
# 0x81 is CTLESC (see ash.c).
# The bug was that quoting and unquoting of them
# was out of sync for redirect filenames.
-echo -e 'echo Ok >uni\x81code' >unicode.sh
+
+>unicode.sh
+echo -e 'echo Ok >uni\x81code' >>unicode.sh
echo -e 'cat uni\x81code' >>unicode.sh
echo -e 'cat uni?code' >>unicode.sh
. unicode.sh
diff --git a/shell/ash_test/ash-redir/redir8.right b/shell/ash_test/ash-redir/redir8.right
new file mode 100644
index 0000000..6430b02
--- /dev/null
+++ b/shell/ash_test/ash-redir/redir8.right
@@ -0,0 +1,3 @@
+Ok
+Ok
+Done
diff --git a/shell/ash_test/ash-redir/redir8.tests b/shell/ash_test/ash-redir/redir8.tests
new file mode 100755
index 0000000..32ab607
--- /dev/null
+++ b/shell/ash_test/ash-redir/redir8.tests
@@ -0,0 +1,15 @@
+# Chars above 0x7f are used as special codes.
+# 0x81 is CTLESC (see ash.c).
+# The bug was that quoting and unquoting of them
+# was out of sync for redirect filenames.
+
+# Subcase when redirect filename is specified in a variable.
+
+>unicode.sh
+echo -e 'v=uni\x81code' >>unicode.sh
+echo -e 'echo Ok >"$v"' >>unicode.sh
+echo -e 'cat uni\x81code' >>unicode.sh
+echo -e 'cat uni?code' >>unicode.sh
+. unicode.sh
+rm uni*code*
+echo Done