summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/init.cfg8
-rwxr-xr-xtests/multibyte-white-space4
-rwxr-xr-xtests/word-multibyte3
3 files changed, 8 insertions, 7 deletions
diff --git a/tests/init.cfg b/tests/init.cfg
index 9342d3d6..1fb25f53 100644
--- a/tests/init.cfg
+++ b/tests/init.cfg
@@ -155,10 +155,10 @@ or use the shortcut target of the toplevel Makefile,
fi
}
-# Like printf with a single argument.
-# The difference is that while some printf implementations fail to
-# handle \xHH escapes, no awk implementation has that problem.
+# Like printf with a single argument, but that argument must be a
+# sequence of four-byte strings \xHH where each H is a hexadecimal byte.
hex_printf_()
{
- ${AWK-awk} 'BEGIN { printf "'"$1"'" }' </dev/null
+ printf $(printf '\\%o' \
+ $(printf %s "$1"|sed 's,\\x\([0-9a-fA-f][0-9a-fA-f]\), 0x\1,g'))
}
diff --git a/tests/multibyte-white-space b/tests/multibyte-white-space
index bb1bdaf6..abd4dc55 100755
--- a/tests/multibyte-white-space
+++ b/tests/multibyte-white-space
@@ -58,9 +58,9 @@ EOF
fail=0
for i in $utf8_space_characters; do
- hex_printf_ "$i\n" | grep -q '^\s$' \
+ hex_printf_ "$i" | grep -q '^\s$' \
|| { warn_ "$i FAILED to match \\s"; fail=1; }
- hex_printf_ "$i\n" | grep -q '\S'
+ hex_printf_ "$i" | grep -q '\S'
test $? = 1 \
|| { warn_ "$i vs. \\S FAILED"; fail=1; }
done
diff --git a/tests/word-multibyte b/tests/word-multibyte
index f2caf977..ba37b85d 100755
--- a/tests/word-multibyte
+++ b/tests/word-multibyte
@@ -4,7 +4,8 @@
require_en_utf8_locale_
-hex_printf_ '\xc3\xa1\n' > in || framework_failure_
+e_acute=$(printf '\303\251')
+printf "$e_acute\n" > in || framework_failure_
LC_ALL=en_US.UTF-8
export LC_ALL