Hi Jim,

> Would you please amend into it the attached grammar tweak
> (subjunctive) and change to avoid crossing the 80-byte line length
> limits:

Done, and also implemented Paul's suggestion.

Regarding the grammar: I wasn't aware of this "weird quirk in English
language" [1].

[1] https://www.englishforums.com/English/RequireThat/cbmhv/post.htm


2019-12-26  Bruno Haible  <br...@clisp.org>

        test-framework-sh: Avoid /bin/sh on AIX 7.2 due to its printf built-in.
        Reported by Paul Eggert in
        <https://lists.gnu.org/archive/html/grep-devel/2019-12/msg00020.html>.
        Simplification by Jim Meyering.
        * tests/init.sh (gl_shell_test_script_): Add a test of printf of an
        octal escape sequence in a UTF-8 locale.

diff --git a/tests/init.sh b/tests/init.sh
index 8ca5c90..049e0d3 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -129,6 +129,8 @@ else
 fi
 
 # We require $(...) support unconditionally.
+# We require that the printf built-in work correctly regarding octal escapes;
+# this eliminates /bin/sh on AIX 7.2.
 # We require non-surprising "local" semantics (this eliminates dash).
 # This takes the admittedly draconian step of eliminating dash, because the
 # assignment tab=$(printf '\t') works fine, yet preceding it with "local "
@@ -158,6 +160,12 @@ fi
 #  ? - not ok
 gl_shell_test_script_='
 test $(echo y) = y || exit 1
+LC_ALL=en_US.UTF-8 printf "\\351" 2>/dev/null \
+  | LC_ALL=C tr "\\351" x | LC_ALL=C grep x > /dev/null \
+  || exit 1
+printf "\\351" 2>/dev/null \
+  | LC_ALL=C tr "\\351" x | LC_ALL=C grep x > /dev/null \
+  || exit 1
 f_local_() { local v=1; }; f_local_ || exit 1
 f_dash_local_fail_() { local t=$(printf " 1"); }; f_dash_local_fail_
 score_=10


Reply via email to