On Thu, Dec 26, 2019 at 3:24 PM Bruno Haible <br...@clisp.org> wrote: > > 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
Thanks, Bruno. I've also made this tiny additional change: LC_ALL=en_US.UTF-8 printf "\\351" 2>/dev/null \ - | LC_ALL=C tr "\\351" x | LC_ALL=C grep x > /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 \ + | LC_ALL=C tr "\\351" x | LC_ALL=C grep "^x$" > /dev/null \