On Fri, Nov 7, 2014 at 2:30 PM, Norihiro Tanaka <nori...@kcn.ne.jp> wrote: > Jim Meyering <j...@meyering.net> wrote: > >> I ran grep's tests on a debian system this morning and was >> surprised to see the word-multibyte test fail... >> Until I realized it was because that system was configured >> to use dash for /bin/sh, and this test relied on the unportable >> printf '\xc3\xa1\n' to print an a (A-grave). Using \xHH >> hexadecimal constants works with bash and zsh, but that >> is not portable, and dash's printf built-in emits the 9 bytes >> rather than the expected three. >> >> This isn't the first time this has happened, so I'll be writing >> a syntax-check rule to help avoid another repeat. >> >> Here's how I've fixed it: > > Thanks, but it seem that it is also unportable. On Solaris 10 and AIX 7, > below. Need Gawk for tests? > > $ awk 'BEGIN { printf "\x41" }' </dev/null > \x41 > > BTW, On Solaris 10, AIX 7, HP-UX 11.23, below. > > $ /usr/bin/printf '\x41' > \x41
Thank you for testing and reporting that! I have a marked preference for using hexadecimal (readability), but if I can't find a good, universally-portable converter that is sufficiently simple, I'll just revert to using octal.