Subject: bug#18987: closed (Re: bug#18987: the bourne shell printf-vs-\xHH portability trap)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 07 Nov 2014 20:14:02 +0000

Your bug report

#18987: the bourne shell printf-vs-\xHH portability trap

which was filed against the grep package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18987: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18987
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Fri, 7 Nov 2014 12:12:55 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

I've pushed these, and will make a new snapshot soon.
Holler if there's anything else you think should be included.

Subject: the bourne shell printf-vs-\xHH portability trap
From: Jim Meyering <[email-masked]>
To: [email-masked]
Date: Fri, 7 Nov 2014 11:14:21 -0600
List-Id: <debbugs-submit.debbugs.gnu.org>

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-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: