diff options
-rw-r--r-- | tests/init.cfg | 8 | ||||
-rwxr-xr-x | tests/multibyte-white-space | 4 | ||||
-rwxr-xr-x | tests/word-multibyte | 3 |
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 |