Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
# 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
--- /dev/null
+Ok
+Ok
+Done
--- /dev/null
+# 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