From unknown Sat Aug 16 00:33:35 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#18987 <18987@debbugs.gnu.org> To: bug#18987 <18987@debbugs.gnu.org> Subject: Status: the bourne shell printf-vs-\xHH portability trap Reply-To: bug#18987 <18987@debbugs.gnu.org> Date: Sat, 16 Aug 2025 07:33:35 +0000 retitle 18987 the bourne shell printf-vs-\xHH portability trap reassign 18987 grep submitter 18987 Jim Meyering severity 18987 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 07 12:14:56 2014 Received: (at submit) by debbugs.gnu.org; 7 Nov 2014 17:14:56 +0000 Received: from localhost ([127.0.0.1]:53100 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xmn7g-0002H4-2W for submit@debbugs.gnu.org; Fri, 07 Nov 2014 12:14:56 -0500 Received: from eggs.gnu.org ([208.118.235.92]:37609) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xmn7d-0002Gv-7j for submit@debbugs.gnu.org; Fri, 07 Nov 2014 12:14:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xmn7c-0005Ba-D2 for submit@debbugs.gnu.org; Fri, 07 Nov 2014 12:14:53 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:53152) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmn7c-0005BT-9W for submit@debbugs.gnu.org; Fri, 07 Nov 2014 12:14:52 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39318) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmn7b-0002Nx-3i for bug-grep@gnu.org; Fri, 07 Nov 2014 12:14:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xmn7Y-0005Ap-Gy for bug-grep@gnu.org; Fri, 07 Nov 2014 12:14:51 -0500 Received: from mail-yh0-x232.google.com ([2607:f8b0:4002:c01::232]:42285) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmn7Y-0005AS-CR for bug-grep@gnu.org; Fri, 07 Nov 2014 12:14:48 -0500 Received: by mail-yh0-f50.google.com with SMTP id 29so1537596yhl.37 for ; Fri, 07 Nov 2014 09:14:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=qCzQqFqSv3RoeSCFF0wmmeMXahU7U7ILmlhS7t9TH5w=; b=FCxLfCfgXa/WSJx7q2tOBXgYV9p/eCiCmRtSZGQOVGYa3fy8eG3afU2AtCa5Ziokk4 wFOUCt/M3E28JKlVrUbubBa37frTMDC04YVwhwk9V2oIkNUnFi6vsYIEFSzSVqDfOoDW UquxWRpllHRTgH/62V79bXpnrBDHOuJHTcPx/XpEq7eXhmCD0hiIIvl+Qy8t8AXkPMN8 MW3yvCp4sjSQl5KXBweQEVhwxNQEv9MkwXQ8HVktJnasW92JcIoU9SLfjNnFWdkH7MpL H89U9mh1CsP2gsnmM2Tk+ut4Jxggejy5LZLPvEexIPTwiW+69/IW36e5ewHLJs+hz89D foAg== X-Received: by 10.236.23.136 with SMTP id v8mr12074427yhv.25.1415380486535; Fri, 07 Nov 2014 09:14:46 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Fri, 7 Nov 2014 09:14:21 -0800 (PST) From: Jim Meyering Date: Fri, 7 Nov 2014 11:14:21 -0600 X-Google-Sender-Auth: 1LZZu-cfx9lrju_vLoKkVTd5e7Y Message-ID: Subject: the bourne shell printf-vs-\xHH portability trap To: bug-grep@gnu.org Content-Type: multipart/mixed; boundary=089e013a032c1f61fa050747f31d X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) --089e013a032c1f61fa050747f31d Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 =E0 (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: --089e013a032c1f61fa050747f31d Content-Type: application/octet-stream; name="0001-maint-move-helper-function-hex_printf-to-init.cfg.patch" Content-Disposition: attachment; filename="0001-maint-move-helper-function-hex_printf-to-init.cfg.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i27sy9rl0 RnJvbSA5NWRlYTIxZmNhYTYyZDhkNWVmYjJhZmU5ZDdjMWFmY2Q1ZWM0OTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog RnJpLCA3IE5vdiAyMDE0IDA4OjMwOjMxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIG1haW50 OiBtb3ZlIGhlbHBlciBmdW5jdGlvbiwgaGV4X3ByaW50ZiB0byBpbml0LmNmZwoKKiB0ZXN0cy9p bml0LmNmZyAoaGV4X3ByaW50Zl8pOiBOZXcgZnVuY3Rpb24sIGZyb20gLi4uCiogdGVzdHMvbXVs dGlieXRlLXdoaXRlLXNwYWNlOiAuLi4gaGVyZS4gIFJlZmxlY3QgdGhlCnMvaGV4X3ByaW50L2hl eF9wcmludGZfLyByZW5hbWluZy4KLS0tCiB0ZXN0cy9pbml0LmNmZyAgICAgICAgICAgICAgfCAg OCArKysrKysrKwogdGVzdHMvbXVsdGlieXRlLXdoaXRlLXNwYWNlIHwgMTIgKystLS0tLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3Rlc3RzL2luaXQuY2ZnIGIvdGVzdHMvaW5pdC5jZmcKaW5kZXggODgyZmViMS4u OTM0MmQzZCAxMDA2NDQKLS0tIGEvdGVzdHMvaW5pdC5jZmcKKysrIGIvdGVzdHMvaW5pdC5jZmcK QEAgLTE1NCwzICsxNTQsMTEgQEAgb3IgdXNlIHRoZSBzaG9ydGN1dCB0YXJnZXQgb2YgdGhlIHRv cGxldmVsIE1ha2VmaWxlLAogJwogICBmaQogfQorCisjIExpa2UgcHJpbnRmIHdpdGggYSBzaW5n bGUgYXJndW1lbnQuCisjIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hpbGUgc29tZSBwcmludGYg aW1wbGVtZW50YXRpb25zIGZhaWwgdG8KKyMgaGFuZGxlIFx4SEggZXNjYXBlcywgbm8gYXdrIGlt cGxlbWVudGF0aW9uIGhhcyB0aGF0IHByb2JsZW0uCitoZXhfcHJpbnRmXygpCit7CisgICAke0FX Sy1hd2t9ICdCRUdJTiB7IHByaW50ZiAiJyIkMSInIiB9JyA8L2Rldi9udWxsCit9CmRpZmYgLS1n aXQgYS90ZXN0cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2UgYi90ZXN0cy9tdWx0aWJ5dGUtd2hpdGUt c3BhY2UKaW5kZXggNTgxNjY0My4uYmIxYmRhZiAxMDA3NTUKLS0tIGEvdGVzdHMvbXVsdGlieXRl LXdoaXRlLXNwYWNlCisrKyBiL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1zcGFjZQpAQCAtNTcsMTgg KzU3LDEwIEBAIEVPRgoKIGZhaWw9MAoKLSMgTGlrZSBwcmludGYgd2l0aCBhIHNpbmdsZSBhcmd1 bWVudC4KLSMgVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCB3aGlsZSBzb21lIHByaW50ZiBpbXBsZW1l bnRhdGlvbnMgZmFpbCB0bwotIyBoYW5kbGUgXHhISCBlc2NhcGVzLCBubyBhd2sgaW1wbGVtZW50 YXRpb24gaGFzIHRoYXQgcHJvYmxlbS4KLWhleF9wcmludGYoKQotewotICAgJHtBV0stYXdrfSAn QkVHSU4geyBwcmludGYgIiciJDEiJyIgfScgPC9kZXYvbnVsbAotfQotCiBmb3IgaSBpbiAkdXRm OF9zcGFjZV9jaGFyYWN0ZXJzOyBkbwotICBoZXhfcHJpbnRmICIkaVxuIiB8IGdyZXAgLXEgJ15c cyQnIFwKKyAgaGV4X3ByaW50Zl8gIiRpXG4iIHwgZ3JlcCAtcSAnXlxzJCcgXAogICAgICAgfHwg eyB3YXJuXyAiJGkgRkFJTEVEIHRvIG1hdGNoIFxccyI7IGZhaWw9MTsgfQotICBoZXhfcHJpbnRm ICIkaVxuIiB8IGdyZXAgLXEgJ1xTJworICBoZXhfcHJpbnRmXyAiJGlcbiIgfCBncmVwIC1xICdc UycKICAgdGVzdCAkPyA9IDEgXAogICAgICAgfHwgeyB3YXJuXyAiJGkgdnMuIFxcUyBGQUlMRUQi OyBmYWlsPTE7IH0KIGRvbmUKLS0gCjIuMS4yCgo= --089e013a032c1f61fa050747f31d Content-Type: application/octet-stream; name="0002-tests-avoid-printf-xHH-portability-trap.patch" Content-Disposition: attachment; filename="0002-tests-avoid-printf-xHH-portability-trap.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i27sy9s51 RnJvbSA4NDM1ZGE5ZDgxMDY1MTNhY2Q1Yzg3Yjc0ZjhhOTI4MDczZjJjZDVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog RnJpLCA3IE5vdiAyMDE0IDA4OjM0OjQyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIHRlc3Rz OiBhdm9pZCBwcmludGYrXHhISCBwb3J0YWJpbGl0eSB0cmFwCgoqIHRlc3RzL3dvcmQtbXVsdGli eXRlOiBVc2luZyB0aGUgYm91cm5lIHNoZWxsJ3MgcHJpbnRmIGZ1bmN0aW9uCndpdGggc3RyaW5n cyBsaWtlICJceEhIXHhISCIgaGFwcGVucyB0byB3b3JrIGZvciBtb3N0IGludGVyYWN0aXZlCnNo ZWxscywgYnV0IG5vdCBmb3IgZGFzaC4gIFRoYXQgaXMgbm90IHBvcnRhYmxlLiAgVXNlIG91ciBo ZXhfcHJpbnRmXwphd2sgd3JhcHBlciBpbnN0ZWFkLiBXaXRob3V0IHRoaXMgY2hhbmdlLCB0aGlz IHRlc3Qgd291bGQgZmFpbCBvbgphIERlYmlhbiBzeXN0ZW0gZm9yIHdoaWNoIC9iaW4vc2ggaXMg Y29uZmlndXJlZCB0byBiZSAiZGFzaCIuCi0tLQogdGVzdHMvd29yZC1tdWx0aWJ5dGUgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS90ZXN0cy93b3JkLW11bHRpYnl0ZSBiL3Rlc3RzL3dvcmQtbXVsdGlieXRlCmluZGV4IDJh NTU0MDYuLmYyY2FmOTcgMTAwNzU1Ci0tLSBhL3Rlc3RzL3dvcmQtbXVsdGlieXRlCisrKyBiL3Rl c3RzL3dvcmQtbXVsdGlieXRlCkBAIC00LDcgKzQsNyBAQAoKIHJlcXVpcmVfZW5fdXRmOF9sb2Nh bGVfCgotcHJpbnRmICdceGMzXHhhMVxuJyA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJlXworaGV4 X3ByaW50Zl8gJ1x4YzNceGExXG4nID4gaW4gfHwgZnJhbWV3b3JrX2ZhaWx1cmVfCiBMQ19BTEw9 ZW5fVVMuVVRGLTgKIGV4cG9ydCBMQ19BTEwKCi0tIAoyLjEuMgoK --089e013a032c1f61fa050747f31d-- From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 07 15:13:18 2014 Received: (at 18987-done) by debbugs.gnu.org; 7 Nov 2014 20:13:18 +0000 Received: from localhost ([127.0.0.1]:53165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XmpuH-0006gW-MX for submit@debbugs.gnu.org; Fri, 07 Nov 2014 15:13:17 -0500 Received: from mail-yh0-f45.google.com ([209.85.213.45]:38254) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XmpuG-0006gP-6B for 18987-done@debbugs.gnu.org; Fri, 07 Nov 2014 15:13:16 -0500 Received: by mail-yh0-f45.google.com with SMTP id f10so2782103yha.32 for <18987-done@debbugs.gnu.org>; Fri, 07 Nov 2014 12:13:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=MNnpH8fuVByKKPo0ZVfc5nxa8iRw5O/z2TuPLoElzWs=; b=AGiAhVTQPKnU43q/ng0JQ4OgsNkYHSaSUZM6pTTeSSDC7c23pejdn1hvFvRWIwTpxB I46JERsYFV1e9FKrGVL3tx9kqSjy+sPsdVPpXbOUV7fWCGILRy0K9FHYxNZ9IAT6O+D7 7CcjVDbwQqcIdC/G7ZTmtzliL3lsip6yhlsPALaTH4Cs2DF5f3sM126SxxJf+7Q3h0HL V4Rju6WQfVqn0y9uFT+yguxYx0Ns7M3CPiYIEHuejPPxRNg99CC7t3haGncn1xaW4QRm Rg1aDOwwF7ZIR0q4D2REN8JV+ubHN3sse/zJyc1Bxfug6FUGdy+O2pyXDZxIwiUCjB2y N/cQ== X-Received: by 10.170.117.73 with SMTP id j70mr15415655ykb.76.1415391195770; Fri, 07 Nov 2014 12:13:15 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Fri, 7 Nov 2014 12:12:55 -0800 (PST) In-Reply-To: References: From: Jim Meyering Date: Fri, 7 Nov 2014 12:12:55 -0800 X-Google-Sender-Auth: b0_u2ITOYnnr9rUL87aXysDbf5E Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: 18987-done@debbugs.gnu.org Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) I've pushed these, and will make a new snapshot soon. Holler if there's anything else you think should be included. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 07 17:30:15 2014 Received: (at 18987) by debbugs.gnu.org; 7 Nov 2014 22:30:15 +0000 Received: from localhost ([127.0.0.1]:53233 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xms2o-0001gz-E2 for submit@debbugs.gnu.org; Fri, 07 Nov 2014 17:30:14 -0500 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:51260) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xms2l-0001gn-C9 for 18987@debbugs.gnu.org; Fri, 07 Nov 2014 17:30:12 -0500 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id D66A067C75 for <18987@debbugs.gnu.org>; Sat, 8 Nov 2014 07:30:08 +0900 (JST) Received: from mail02.kcn.ne.jp ([61.86.6.181]) by imp01 with bizsmtp id CmW81p0063uLcVp01mW81h; Sat, 08 Nov 2014 07:30:08 +0900 X-OrgRCPT: 18987@debbugs.gnu.org Received: from [10.120.1.54] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail02.kcn.ne.jp (Postfix) with ESMTPA id 97705F1002D; Sat, 8 Nov 2014 07:30:08 +0900 (JST) Date: Sat, 08 Nov 2014 07:30:09 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap In-Reply-To: References: Message-Id: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Jim Meyering 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" }' ) id 1XmsFS-00029C-2v for submit@debbugs.gnu.org; Fri, 07 Nov 2014 17:43:18 -0500 Received: from mail-yh0-f44.google.com ([209.85.213.44]:59535) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XmsFP-00028z-8d for 18987@debbugs.gnu.org; Fri, 07 Nov 2014 17:43:16 -0500 Received: by mail-yh0-f44.google.com with SMTP id b6so2118532yha.31 for <18987@debbugs.gnu.org>; Fri, 07 Nov 2014 14:43:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=PUHagbquPVf1SSZjTpgaTNLaK4iyrnvzzEJF03DbZ+0=; b=fwaLCmN3k2sl9MNtil4xJ9r2aTcucXYXOtqji7f/pSisKrFDVMzNjmPbnTDzBhWdd+ DaH9GwxeXTZAfDP8P7Hd30U3aec2u2bCQLhrRJduEFlxsz1EbaswGklW6MLKG8H19a2s l5eIKseTu5LqsvdNmHffmwfhe7fzxeWsoF10wviEqECzWXjnwRTQyoJWkvpF91XO+mFs nhALSm2/TSwi0hA6BDSq/entWUnrzLh3di7FWhPHPxVTzgLUoGbH7kj65Xp1po8owVuS 0GN2pFvDMMiVLLhhUbHiuS0opM/nv6SpXYPKldjnpK9zcWFiEPdyr+dBTWzz3S6/7tDp 8XNA== X-Received: by 10.170.217.9 with SMTP id j9mr5996890ykf.45.1415400194500; Fri, 07 Nov 2014 14:43:14 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Fri, 7 Nov 2014 14:42:54 -0800 (PST) In-Reply-To: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Fri, 7 Nov 2014 14:42:54 -0800 X-Google-Sender-Auth: GBR4xSadvZL0QAPUeeXE66UBbfo Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Norihiro Tanaka Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, Nov 7, 2014 at 2:30 PM, Norihiro Tanaka wrote: > Jim Meyering 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" }' \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. From debbugs-submit-bounces@debbugs.gnu.org Fri Nov 07 17:45:28 2014 Received: (at 18987) by debbugs.gnu.org; 7 Nov 2014 22:45:29 +0000 Received: from localhost ([127.0.0.1]:53245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XmsHY-0002EP-MJ for submit@debbugs.gnu.org; Fri, 07 Nov 2014 17:45:28 -0500 Received: from mail-yh0-f53.google.com ([209.85.213.53]:56252) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XmsHW-0002EF-Rj for 18987@debbugs.gnu.org; Fri, 07 Nov 2014 17:45:27 -0500 Received: by mail-yh0-f53.google.com with SMTP id a41so585993yho.26 for <18987@debbugs.gnu.org>; Fri, 07 Nov 2014 14:45:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=8jZ/mOoCohPg7mrE8W1nlZEUHS/mZWNaQvCfpOCzxgA=; b=puLMippKhgMqk8iLcjBPYKyTqGQ2TDqnagEd+Mue6Ff0b6vUS55r8H/yySSd4LAEVl Og3R9TBHurYegzAcA5Hcc2/6Q5tYztHs/K4PJetxSx0cgzw1DuQz4AzGKdkWQQkqGAuE Rd2iDVjfUbsAGJU3VN9dchCAk89/4x5eNheOinmnAuUDJM/QTIAKD+q9sKiIiapOJpYn o4m8auJ0yfbvp0Ck243itdmrjFPfo8OKCVDVYK9/ZTGK615nsDEq6y/6NBCw5duCRkMc CQ939vQDcfsHqkhqMqvrclZAFlg5KneFrGp0iv9vCCkt7dveQJmobqmDsNSQ8r3sL918 xLEg== X-Received: by 10.170.217.9 with SMTP id j9mr6006448ykf.45.1415400326455; Fri, 07 Nov 2014 14:45:26 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Fri, 7 Nov 2014 14:45:06 -0800 (PST) In-Reply-To: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Fri, 7 Nov 2014 14:45:06 -0800 X-Google-Sender-Auth: l7Ei4hO_fcdZR5SC4YQGfdq57CM Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Norihiro Tanaka Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987 <18987@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, Nov 7, 2014 at 2:30 PM, Norihiro Tanaka wrote: > Jim Meyering 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" }' \x41 By the way, "no", we cannot rely on gawk for these tests. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 02:56:53 2014 Received: (at 18987) by debbugs.gnu.org; 8 Nov 2014 07:56:53 +0000 Received: from localhost ([127.0.0.1]:53334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xn0tA-0007Xe-QO for submit@debbugs.gnu.org; Sat, 08 Nov 2014 02:56:53 -0500 Received: from mailgw05.kcn.ne.jp ([61.86.7.212]:63288) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xn0t7-0007XQ-Bd for 18987@debbugs.gnu.org; Sat, 08 Nov 2014 02:56:50 -0500 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw05.kcn.ne.jp (Postfix) with ESMTP id A216467DC7 for <18987@debbugs.gnu.org>; Sat, 8 Nov 2014 16:56:46 +0900 (JST) Received: from mail04.kcn.ne.jp ([61.86.6.183]) by imp01 with bizsmtp id Cvwm1p0063wvxAM01vwmQa; Sat, 08 Nov 2014 16:56:46 +0900 X-OrgRCPT: 18987@debbugs.gnu.org Received: from [10.120.1.54] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id 39D591290022; Sat, 8 Nov 2014 16:56:46 +0900 (JST) Date: Sat, 08 Nov 2014 16:56:45 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap In-Reply-To: References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> Message-Id: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_545DCC0C00000000F3EE_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) --------_545DCC0C00000000F3EE_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Jim Meyering wrote: > 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. Thanks, I fixed left multibyte-white-space. Although I do not try it on Debian, passed on CentOS, Solaris, HP-UX and AIX. --------_545DCC0C00000000F3EE_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Disposition: attachment; filename="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Transfer-Encoding: base64 RnJvbSAyN2FkYmU1YmFlNGMwNjA1MTU1YWIxMzhhZGQ3MWJlNzVlOGRmOTMxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDggTm92IDIwMTQgMTY6MzQ6MjQgKzA5MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0 czogYXZvaWQgYXdrK3ByaW50ZitceEhIIHBvcnRhYmlsaXR5IHRyYXAKCiogdGVzdHMvbXVsdGli eXRlLXdoaXRlLXNwYWNlOiBVc2luZyBHYXdrJ3MgcHJpbnRmIGZ1bmN0aW9uIHdpdGggc3RyaW5n cwpsaWtlICJceEhIXHhISCIsIGhleGFkZWNpbWFsIGV4cHJlc3Npb25zIGFyZSBjaGFuZ2VkIGlu dG8gY2hhcmFjdGVycwpvZiB0aGUgZWFjaCBtZWFuLCBidXQgbm8gZm9yIG90aGVyIGF3aydzIGlt cHJlbWVudGF0aW9uLiAgVGhhdCBpcyBub3QKcG9ydGFibGUuICBVc2Ugb2N0YWwgZXhwcmVzc2lv biBpbiBwcmludGYgaW5zdGVhZCBvZiBoZXhfcHJpbnRmXyBhd2sKd3JhcHBlci4KLS0tCiB0ZXN0 cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2UgfCAxMCArKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL211bHRp Ynl0ZS13aGl0ZS1zcGFjZSBiL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1zcGFjZQppbmRleCBiYjFi ZGFmLi4yNzhiZjYzIDEwMDc1NQotLS0gYS90ZXN0cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2UKKysr IGIvdGVzdHMvbXVsdGlieXRlLXdoaXRlLXNwYWNlCkBAIC01NywxMCArNTcsMTYgQEAgRU9GCiAK IGZhaWw9MAogCitoZXhfcHJpbnQoKQoreworICBzZXQgLS0gJChlY2hvICIkMSIgfCBzZWQgJ3Mv XFx4LyAweC9nJykKKyAgcHJpbnRmICQocHJpbnRmICQocHJpbnRmICIlMCQjZCIgMCB8IHNlZCAn cy8wL1xcJW8vZycpICAkezErIiRAIn0pCit9CisKIGZvciBpIGluICR1dGY4X3NwYWNlX2NoYXJh Y3RlcnM7IGRvCi0gIGhleF9wcmludGZfICIkaVxuIiB8IGdyZXAgLXEgJ15ccyQnIFwKKyAgaGV4 X3ByaW50ICIkaSIgfCBncmVwIC1xICdeXHMkJyBcCiAgICAgICB8fCB7IHdhcm5fICIkaSBGQUlM RUQgdG8gbWF0Y2ggXFxzIjsgZmFpbD0xOyB9Ci0gIGhleF9wcmludGZfICIkaVxuIiB8IGdyZXAg LXEgJ1xTJworICBoZXhfcHJpbnQgIiRpIiB8IGdyZXAgLXEgJ1xTJwogICB0ZXN0ICQ/ID0gMSBc CiAgICAgICB8fCB7IHdhcm5fICIkaSB2cy4gXFxTIEZBSUxFRCI7IGZhaWw9MTsgfQogZG9uZQot LSAKMi4xLjMKCg== --------_545DCC0C00000000F3EE_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 10:57:11 2014 Received: (at 18987) by debbugs.gnu.org; 8 Nov 2014 15:57:11 +0000 Received: from localhost ([127.0.0.1]:53828 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xn8Nz-00044X-2y for submit@debbugs.gnu.org; Sat, 08 Nov 2014 10:57:11 -0500 Received: from mail-yh0-f51.google.com ([209.85.213.51]:46010) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xn8Nx-00044P-8A for 18987@debbugs.gnu.org; Sat, 08 Nov 2014 10:57:10 -0500 Received: by mail-yh0-f51.google.com with SMTP id z6so3251284yhz.38 for <18987@debbugs.gnu.org>; Sat, 08 Nov 2014 07:57:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=8ksuowBE93hEIzJiIh3aw8eB1Kd+qylawPW5Tx7p9W0=; b=Qvd17YLToQroIb4lGdpdpqlkN/wgLBAJAxTQy5wVt4qEoZUhoKVPlU2fl1ymcK5tkZ yv16kkFlJTnyCEvQq9EvlDlRW3KFgUOIHcpmmodKQ+GAtpNyVMXB8ra0wEHSrpkscZoi cmhI6xG9hl15HYfM5hHySNmbD68TGskdWajsItADbgo/JTW3CjPHLPcbMpmQKRoWAnYY bZ2TtMcWNJaiiPP1e3k/AJE2sFkv2/C7W3vqwZd0vmpd0sO4WnPNxE7Wrslf2M8hKtgn +n14IvaTw/Iat141/TcAK0Jj+KqgCk285UzbnPRTr8F+4XAuxrJDKCEf13Ba1viVNSwZ 7W4Q== X-Received: by 10.170.74.65 with SMTP id q62mr20833042ykq.114.1415462228690; Sat, 08 Nov 2014 07:57:08 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sat, 8 Nov 2014 07:56:48 -0800 (PST) In-Reply-To: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sat, 8 Nov 2014 07:56:48 -0800 X-Google-Sender-Auth: cmqTf8mGUpMtFfR7bhpRhL8_HKg Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=001a113a4b5455a68b05075afba6 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987 <18987@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a113a4b5455a68b05075afba6 Content-Type: text/plain; charset=ISO-8859-1 On Fri, Nov 7, 2014 at 11:56 PM, Norihiro Tanaka wrote: > Jim Meyering wrote: >> 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. > > Thanks, I fixed left multibyte-white-space. Although I do not try it > on Debian, passed on CentOS, Solaris, HP-UX and AIX. Thank you for working on that. I've improved your patch: update the now-shared hex_printf_ rather than making a copy, use a better definition of that function (knowing that "printf %s a b c d e" reuses the format string and prints just 5 bytes helps), also update word-multibyte to work with the new definition, and rewrite the commit log. I'll push after you ACK: --001a113a4b5455a68b05075afba6 Content-Type: application/octet-stream; name="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Disposition: attachment; filename="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i295m8u91 RnJvbSBiOTJiNTlmYzE4ZDRkZmY5ZDc5YzIyYWY0MjAyNzdkZDk5NjI0ODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDggTm92IDIwMTQgMDc6NDk6MjcgLTA4MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0 czogYXZvaWQgYXdrK3ByaW50ZitceEhIIHBvcnRhYmlsaXR5IHRyYXAKCiogdGVzdHMvaW5pdC5j ZmcgKGhleF9wcmludGZfKTogUmV3cml0ZSBpbiB0ZXJtcyBvZiBwcmludGYgYW5kIHNlZC4KVXNp bmcgYXdrJ3MgcHJpbnRmIHdpdGggXHhISCBpbiB0aGUgZm9ybWF0IHN0cmluZyB3YXMgbm90IHBv cnRhYmxlCnRvIHRoZSBhd2sgb2YgU29sYXJpcyAxMCwgQUlYIDcgb3IgSFAtVVggMTEuMjMsIGFz IHJlcG9ydGVkIGluCmh0dHA6Ly9kZWJidWdzLmdudS5vcmcvMTg5ODcuCiogdGVzdHMvd29yZC1t dWx0aWJ5dGU6IE5vdyB0aGF0IGhleF9wcmludGZfIGNhbiBubyBsb25nZXIgaGFuZGxlCmEgdHJh aWxpbmcgXG4gaW4gdGhlIGZvcm1hdCBzdHJpbmcsIGFkanVzdCBieSByZW1vdmluZyBpdCwgYW5k Cmluc3RlYWQgaW52b2tpbmcgZWNoby4KKiB0ZXN0cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2U6IFNp bXBseSByZW1vdmUgZWFjaCB0cmFpbGluZyBcbi4KVGhleSB3ZXJlIG5vdCBuZWVkZWQuCi0tLQog dGVzdHMvaW5pdC5jZmcgICAgICAgICAgICAgIHwgOCArKysrLS0tLQogdGVzdHMvbXVsdGlieXRl LXdoaXRlLXNwYWNlIHwgNCArKy0tCiB0ZXN0cy93b3JkLW11bHRpYnl0ZSAgICAgICAgfCAyICst CiAzIGZpbGVzIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS90ZXN0cy9pbml0LmNmZyBiL3Rlc3RzL2luaXQuY2ZnCmluZGV4IDkzNDJkM2QuLjFm YjI1ZjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2luaXQuY2ZnCisrKyBiL3Rlc3RzL2luaXQuY2ZnCkBA IC0xNTUsMTAgKzE1NSwxMCBAQCBvciB1c2UgdGhlIHNob3J0Y3V0IHRhcmdldCBvZiB0aGUgdG9w bGV2ZWwgTWFrZWZpbGUsCiAgIGZpCiB9CgotIyBMaWtlIHByaW50ZiB3aXRoIGEgc2luZ2xlIGFy Z3VtZW50LgotIyBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IHdoaWxlIHNvbWUgcHJpbnRmIGltcGxl bWVudGF0aW9ucyBmYWlsIHRvCi0jIGhhbmRsZSBceEhIIGVzY2FwZXMsIG5vIGF3ayBpbXBsZW1l bnRhdGlvbiBoYXMgdGhhdCBwcm9ibGVtLgorIyBMaWtlIHByaW50ZiB3aXRoIGEgc2luZ2xlIGFy Z3VtZW50LCBidXQgdGhhdCBhcmd1bWVudCBtdXN0IGJlIGEKKyMgc2VxdWVuY2Ugb2YgZm91ci1i eXRlIHN0cmluZ3MgXHhISCB3aGVyZSBlYWNoIEggaXMgYSBoZXhhZGVjaW1hbCBieXRlLgogaGV4 X3ByaW50Zl8oKQogewotICAgJHtBV0stYXdrfSAnQkVHSU4geyBwcmludGYgIiciJDEiJyIgfScg PC9kZXYvbnVsbAorICBwcmludGYgJChwcmludGYgJ1xcJW8nIFwKKyAgICAkKHByaW50ZiAlcyAi JDEifHNlZCAncyxcXHhcKFswLTlhLWZBLWZdWzAtOWEtZkEtZl1cKSwgMHhcMSxnJykpCiB9CmRp ZmYgLS1naXQgYS90ZXN0cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2UgYi90ZXN0cy9tdWx0aWJ5dGUt d2hpdGUtc3BhY2UKaW5kZXggYmIxYmRhZi4uYWJkNGRjNSAxMDA3NTUKLS0tIGEvdGVzdHMvbXVs dGlieXRlLXdoaXRlLXNwYWNlCisrKyBiL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1zcGFjZQpAQCAt NTgsOSArNTgsOSBAQCBFT0YKIGZhaWw9MAoKIGZvciBpIGluICR1dGY4X3NwYWNlX2NoYXJhY3Rl cnM7IGRvCi0gIGhleF9wcmludGZfICIkaVxuIiB8IGdyZXAgLXEgJ15ccyQnIFwKKyAgaGV4X3By aW50Zl8gIiRpIiB8IGdyZXAgLXEgJ15ccyQnIFwKICAgICAgIHx8IHsgd2Fybl8gIiRpIEZBSUxF RCB0byBtYXRjaCBcXHMiOyBmYWlsPTE7IH0KLSAgaGV4X3ByaW50Zl8gIiRpXG4iIHwgZ3JlcCAt cSAnXFMnCisgIGhleF9wcmludGZfICIkaSIgfCBncmVwIC1xICdcUycKICAgdGVzdCAkPyA9IDEg XAogICAgICAgfHwgeyB3YXJuXyAiJGkgdnMuIFxcUyBGQUlMRUQiOyBmYWlsPTE7IH0KIGRvbmUK ZGlmZiAtLWdpdCBhL3Rlc3RzL3dvcmQtbXVsdGlieXRlIGIvdGVzdHMvd29yZC1tdWx0aWJ5dGUK aW5kZXggZjJjYWY5Ny4uYzQ4MGRjZSAxMDA3NTUKLS0tIGEvdGVzdHMvd29yZC1tdWx0aWJ5dGUK KysrIGIvdGVzdHMvd29yZC1tdWx0aWJ5dGUKQEAgLTQsNyArNCw3IEBACgogcmVxdWlyZV9lbl91 dGY4X2xvY2FsZV8KCi1oZXhfcHJpbnRmXyAnXHhjM1x4YTFcbicgPiBpbiB8fCBmcmFtZXdvcmtf ZmFpbHVyZV8KK3sgaGV4X3ByaW50Zl8gJ1x4YzNceGExJzsgZWNobzsgfSA+IGluIHx8IGZyYW1l d29ya19mYWlsdXJlXwogTENfQUxMPWVuX1VTLlVURi04CiBleHBvcnQgTENfQUxMCgotLSAKMi4x LjIKCg== --001a113a4b5455a68b05075afba6-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 14:46:45 2014 Received: (at 18987) by debbugs.gnu.org; 8 Nov 2014 19:46:45 +0000 Received: from localhost ([127.0.0.1]:53981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnBy7-0005Pn-Pl for submit@debbugs.gnu.org; Sat, 08 Nov 2014 14:46:44 -0500 Received: from frenzy.freefriends.org ([66.54.153.139]:35073 helo=freefriends.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnBy4-0005Pc-CS for 18987@debbugs.gnu.org; Sat, 08 Nov 2014 14:46:41 -0500 X-Envelope-From: arnold@skeeve.com Received: from freefriends.org (localhost [127.0.0.1]) by freefriends.org (8.14.9/8.14.9) with ESMTP id sA8JkFS1005789; Sat, 8 Nov 2014 12:46:15 -0700 Received: (from arnold@localhost) by freefriends.org (8.14.9/8.14.9/submit) id sA8JkFNm005787; Sat, 8 Nov 2014 19:46:15 GMT From: arnold@skeeve.com Message-Id: <201411081946.sA8JkFNm005787@freefriends.org> X-Authentication-Warning: frenzy.freefriends.org: arnold set sender to arnold@skeeve.com using -f Date: Sat, 08 Nov 2014 12:46:15 -0700 To: noritnk@kcn.ne.jp, jim@meyering.net Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> In-Reply-To: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 18987 Cc: 18987@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Norihiro Tanaka wrote: > Thanks, but it seem that it is also unportable. On Solaris 10 and AIX 7, > below. Need Gawk for tests? > > $ awk 'BEGIN { printf "\x41" }' \x41 If you use octal it should work with any awk. Arnold From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 15:10:15 2014 Received: (at 18987) by debbugs.gnu.org; 8 Nov 2014 20:10:16 +0000 Received: from localhost ([127.0.0.1]:53997 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnCKr-00060k-4x for submit@debbugs.gnu.org; Sat, 08 Nov 2014 15:10:14 -0500 Received: from mail-yh0-f42.google.com ([209.85.213.42]:38015) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnCKl-00060X-9t for 18987@debbugs.gnu.org; Sat, 08 Nov 2014 15:10:08 -0500 Received: by mail-yh0-f42.google.com with SMTP id b6so3365668yha.1 for <18987@debbugs.gnu.org>; Sat, 08 Nov 2014 12:10:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=Wl6BH8ky0FNVOVPGioNsCYNlhRt0S5rjTP7nez8XERY=; b=qJjQhMN+FR4/oHgHLAnvj4+fIVVIOW7MzDYhhiE63JctGaJTa7LJvXXs3O43LbhO0L gosIIMTQQ8gGRpaQ9AD24oL9b1Rx61IFYlCLDYKrfOvs06SpdXnlYJX8OEagOBSo+JKW ZK22jzU0xtq97H2UcchG1h/AnQdI1kfnKWeRxxyTMoHVa7a6wO/vuDlcnVnjw89RwHJb Od29seslHoFIjeonrWwBphhYNPOug+Unf0KBFjl8W+r4kLfTNMQtp/2xkSObAiZezxhM Tj0Xa9n7VzGQlbNwIM3VQHXk9OoEEgrd9uJni07rmLKcPBBQMm2syo5U8s/xgJ7BmSTS QLEg== X-Received: by 10.170.74.65 with SMTP id q62mr22340604ykq.114.1415477406896; Sat, 08 Nov 2014 12:10:06 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sat, 8 Nov 2014 12:09:45 -0800 (PST) In-Reply-To: <201411081946.sA8JkFNm005787@freefriends.org> References: <20141108073008.F3DC.27F6AC2D@kcn.ne.jp> <201411081946.sA8JkFNm005787@freefriends.org> From: Jim Meyering Date: Sat, 8 Nov 2014 12:09:45 -0800 X-Google-Sender-Auth: wRII0Sc5TiE9fy-x2w_33QyjICA Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Aharon Robbins Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987 <18987@debbugs.gnu.org>, Norihiro Tanaka X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sat, Nov 8, 2014 at 11:46 AM, wrote: > Norihiro Tanaka wrote: > >> Thanks, but it seem that it is also unportable. On Solaris 10 and AIX 7, >> below. Need Gawk for tests? >> >> $ awk 'BEGIN { printf "\x41" }' > \x41 > > If you use octal it should work with any awk. Thanks, but octal would also work with printf. My only reason to use awk was because I thought (wrongly) that it could portably handle that use of hex constants. The trouble was that I have a strong preference for using hex constants in the tests. With the updated patch I sent today, the problem is resolved. From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 18:38:26 2014 Received: (at 18987) by debbugs.gnu.org; 8 Nov 2014 23:38:26 +0000 Received: from localhost ([127.0.0.1]:54097 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnFaK-0004xs-SE for submit@debbugs.gnu.org; Sat, 08 Nov 2014 18:38:25 -0500 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:35094) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnFaH-0004xW-14 for 18987@debbugs.gnu.org; Sat, 08 Nov 2014 18:38:22 -0500 Received: from imp02 (mailgw6.kcn.ne.jp [61.86.15.232]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 95520C8004 for <18987@debbugs.gnu.org>; Sun, 9 Nov 2014 08:38:18 +0900 (JST) Received: from mail03.kcn.ne.jp ([61.86.6.182]) by imp02 with bizsmtp id DBeJ1p00B3veGq501BeJTw; Sun, 09 Nov 2014 08:38:18 +0900 X-OrgRCPT: 18987@debbugs.gnu.org Received: from [10.120.1.12] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail03.kcn.ne.jp (Postfix) with ESMTPA id 55F35141009A; Sun, 9 Nov 2014 08:38:18 +0900 (JST) Date: Sun, 09 Nov 2014 08:38:18 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap In-Reply-To: References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> Message-Id: <20141109083817.2822.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_545EA86A000000002819_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18987 Cc: 18987@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) --------_545EA86A000000002819_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit On Sat, 8 Nov 2014 07:56:48 -0800 Jim Meyering wrote: > Thank you for working on that. > I've improved your patch: update the now-shared hex_printf_ > rather than making a copy, use a better definition of that function > (knowing that "printf %s a b c d e" reuses the format string and > prints just 5 bytes helps), also update word-multibyte to work > with the new definition, and rewrite the commit log. > > I'll push after you ACK: Thanks for the review. I added to a change the patch as word-multibyte uses \OOO in printf simply, because use it in other test module e.g. euc-mb. --------_545EA86A000000002819_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Disposition: attachment; filename="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Transfer-Encoding: base64 RnJvbSBlN2U4ZGI0YzdhYjEyZmY5NTJhZDdhNWQwMDk1OGVmMThjNTZiOTRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDggTm92IDIwMTQgMDc6NDk6MjcgLTA4MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0 czogYXZvaWQgYXdrK3ByaW50ZitceEhIIHBvcnRhYmlsaXR5IHRyYXAKCiogdGVzdHMvaW5pdC5j ZmcgKGhleF9wcmludGZfKTogUmV3cml0ZSBpbiB0ZXJtcyBvZiBwcmludGYgYW5kIHNlZC4KVXNp bmcgYXdrJ3MgcHJpbnRmIHdpdGggXHhISCBpbiB0aGUgZm9ybWF0IHN0cmluZyB3YXMgbm90IHBv cnRhYmxlCnRvIHRoZSBhd2sgb2YgU29sYXJpcyAxMCwgQUlYIDcgb3IgSFAtVVggMTEuMjMsIGFz IHJlcG9ydGVkIGluCmh0dHA6Ly9kZWJidWdzLmdudS5vcmcvMTg5ODcuCiogdGVzdHMvd29yZC1t dWx0aWJ5dGU6IE5vdyB0aGF0IGhleF9wcmludGZfIGNhbiBubyBsb25nZXIgaGFuZGxlCmEgdHJh aWxpbmcgXG4gaW4gdGhlIGZvcm1hdCBzdHJpbmcsIGFkanVzdCBieSByZW1vdmluZyBpdCwgYW5k Cmluc3RlYWQgaW52b2tpbmcgZWNoby4KKiB0ZXN0cy9tdWx0aWJ5dGUtd2hpdGUtc3BhY2U6IFVz ZSB0byBcT09PIGluIHByaW50ZiBpbnN0ZWFkIG9mCmhleF9wcmludGZfLgotLS0KIHRlc3RzL2lu aXQuY2ZnICAgICAgICAgICAgICB8IDggKysrKy0tLS0KIHRlc3RzL211bHRpYnl0ZS13aGl0ZS1z cGFjZSB8IDQgKystLQogdGVzdHMvd29yZC1tdWx0aWJ5dGUgICAgICAgIHwgMiArLQogMyBmaWxl cyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dGVzdHMvaW5pdC5jZmcgYi90ZXN0cy9pbml0LmNmZwppbmRleCA5MzQyZDNkLi4xZmIyNWY1IDEw MDY0NAotLS0gYS90ZXN0cy9pbml0LmNmZworKysgYi90ZXN0cy9pbml0LmNmZwpAQCAtMTU1LDEw ICsxNTUsMTAgQEAgb3IgdXNlIHRoZSBzaG9ydGN1dCB0YXJnZXQgb2YgdGhlIHRvcGxldmVsIE1h a2VmaWxlLAogICBmaQogfQogCi0jIExpa2UgcHJpbnRmIHdpdGggYSBzaW5nbGUgYXJndW1lbnQu Ci0jIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hpbGUgc29tZSBwcmludGYgaW1wbGVtZW50YXRp b25zIGZhaWwgdG8KLSMgaGFuZGxlIFx4SEggZXNjYXBlcywgbm8gYXdrIGltcGxlbWVudGF0aW9u IGhhcyB0aGF0IHByb2JsZW0uCisjIExpa2UgcHJpbnRmIHdpdGggYSBzaW5nbGUgYXJndW1lbnQs IGJ1dCB0aGF0IGFyZ3VtZW50IG11c3QgYmUgYQorIyBzZXF1ZW5jZSBvZiBmb3VyLWJ5dGUgc3Ry aW5ncyBceEhIIHdoZXJlIGVhY2ggSCBpcyBhIGhleGFkZWNpbWFsIGJ5dGUuCiBoZXhfcHJpbnRm XygpCiB7Ci0gICAke0FXSy1hd2t9ICdCRUdJTiB7IHByaW50ZiAiJyIkMSInIiB9JyA8L2Rldi9u dWxsCisgIHByaW50ZiAkKHByaW50ZiAnXFwlbycgXAorICAgICQocHJpbnRmICVzICIkMSJ8c2Vk ICdzLFxceFwoWzAtOWEtZkEtZl1bMC05YS1mQS1mXVwpLCAweFwxLGcnKSkKIH0KZGlmZiAtLWdp dCBhL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1zcGFjZSBiL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1z cGFjZQppbmRleCBiYjFiZGFmLi5hYmQ0ZGM1IDEwMDc1NQotLS0gYS90ZXN0cy9tdWx0aWJ5dGUt d2hpdGUtc3BhY2UKKysrIGIvdGVzdHMvbXVsdGlieXRlLXdoaXRlLXNwYWNlCkBAIC01OCw5ICs1 OCw5IEBAIEVPRgogZmFpbD0wCiAKIGZvciBpIGluICR1dGY4X3NwYWNlX2NoYXJhY3RlcnM7IGRv Ci0gIGhleF9wcmludGZfICIkaVxuIiB8IGdyZXAgLXEgJ15ccyQnIFwKKyAgaGV4X3ByaW50Zl8g IiRpIiB8IGdyZXAgLXEgJ15ccyQnIFwKICAgICAgIHx8IHsgd2Fybl8gIiRpIEZBSUxFRCB0byBt YXRjaCBcXHMiOyBmYWlsPTE7IH0KLSAgaGV4X3ByaW50Zl8gIiRpXG4iIHwgZ3JlcCAtcSAnXFMn CisgIGhleF9wcmludGZfICIkaSIgfCBncmVwIC1xICdcUycKICAgdGVzdCAkPyA9IDEgXAogICAg ICAgfHwgeyB3YXJuXyAiJGkgdnMuIFxcUyBGQUlMRUQiOyBmYWlsPTE7IH0KIGRvbmUKZGlmZiAt LWdpdCBhL3Rlc3RzL3dvcmQtbXVsdGlieXRlIGIvdGVzdHMvd29yZC1tdWx0aWJ5dGUKaW5kZXgg ZjJjYWY5Ny4uNDcxN2M5ZSAxMDA3NTUKLS0tIGEvdGVzdHMvd29yZC1tdWx0aWJ5dGUKKysrIGIv dGVzdHMvd29yZC1tdWx0aWJ5dGUKQEAgLTQsNyArNCw3IEBACiAKIHJlcXVpcmVfZW5fdXRmOF9s b2NhbGVfCiAKLWhleF9wcmludGZfICdceGMzXHhhMVxuJyA+IGluIHx8IGZyYW1ld29ya19mYWls dXJlXworcHJpbnRmICdcMzAzXDI0MVxuJyA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJlXwogTENf QUxMPWVuX1VTLlVURi04CiBleHBvcnQgTENfQUxMCiAKLS0gCjIuMS4zCgo= --------_545EA86A000000002819_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 20:02:54 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 01:02:54 +0000 Received: from localhost ([127.0.0.1]:54110 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnGu5-00014J-I0 for submit@debbugs.gnu.org; Sat, 08 Nov 2014 20:02:53 -0500 Received: from mail-yk0-f171.google.com ([209.85.160.171]:39539) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnGu2-000148-No for 18987-done@debbugs.gnu.org; Sat, 08 Nov 2014 20:02:51 -0500 Received: by mail-yk0-f171.google.com with SMTP id 200so3264168ykr.16 for <18987-done@debbugs.gnu.org>; Sat, 08 Nov 2014 17:02:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=/DhKdqR654I2DwgMd/ZXnoGSsJsR0SAa9KHEMEaip5U=; b=iOE2D6v9shAqB7OOsTqNLOR9VgaYL2vegjrrBcfu84I9b/zLszkGnYmEHsZ660KV9i AednuhElS2D+w9XeN+bwSw7c25sdBXlK1eYRblwac8aXYCMURgq211tOq46Ln4GqEUte 3KOMYqozhHLqFDOKcUEWD93BGjcPwgtNj5nNTonCx0K/VoU48t1WGoBfnuYZ9ELcRKlX pYHetMFzk1th9QkEiMHHPi4nYfllYSCUa6wL2vPA5iHBPpLOTqAnTfdx93SRAwDEEEUK WJrLva2XXtukRZnqIq3f18Ur+YpbY9Pyef08D0ywVMfMxknhpZw39XOoiaB699tdbtyd ptJg== X-Received: by 10.236.97.35 with SMTP id s23mr20323889yhf.103.1415494970038; Sat, 08 Nov 2014 17:02:50 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sat, 8 Nov 2014 17:02:28 -0800 (PST) In-Reply-To: <20141109083817.2822.27F6AC2D@kcn.ne.jp> References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sat, 8 Nov 2014 17:02:28 -0800 X-Google-Sender-Auth: SsWF-b99RAa804ZvROFGfzxf8is Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=001a11c1ee14df0d570507629ace X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c1ee14df0d570507629ace Content-Type: text/plain; charset=ISO-8859-1 On Sat, Nov 8, 2014 at 3:38 PM, Norihiro Tanaka wrote: > On Sat, 8 Nov 2014 07:56:48 -0800 > Jim Meyering wrote: >> Thank you for working on that. >> I've improved your patch: update the now-shared hex_printf_ >> rather than making a copy, use a better definition of that function >> (knowing that "printf %s a b c d e" reuses the format string and >> prints just 5 bytes helps), also update word-multibyte to work >> with the new definition, and rewrite the commit log. >> >> I'll push after you ACK: > > Thanks for the review. I added to a change the patch as word-multibyte > uses \OOO in printf simply, because use it in other test module e.g. > euc-mb. For reference, just because something is used in another test does not necessarily mean it is desirable. There is nontrivial variance in the style/quality of grep's test scripts. However, I can see how one might prefer to use printf directly, so since I've left your name on this change, I'll also let you choose octal here. To help with readability, I've given a name to the character we're using as input: e_acute, since that one is used in other tests. --001a11c1ee14df0d570507629ace Content-Type: application/octet-stream; name="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Disposition: attachment; filename="0001-tests-avoid-awk-printf-xHH-portability-trap.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i29ovqbe1 RnJvbSA3YzQ3NmNhYmE1NmM1ZDI1YWMwNDI2ZDIwOTJiM2QwMGFmNDM5MTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTYXQsIDggTm92IDIwMTQgMDc6NDk6MjcgLTA4MDAKU3ViamVjdDogW1BBVENIXSB0ZXN0 czogYXZvaWQgYXdrK3ByaW50ZitceEhIIHBvcnRhYmlsaXR5IHRyYXAKCiogdGVzdHMvaW5pdC5j ZmcgKGhleF9wcmludGZfKTogUmV3cml0ZSBpbiB0ZXJtcyBvZiBwcmludGYgYW5kIHNlZC4KVXNp bmcgYXdrJ3MgcHJpbnRmIHdpdGggXHhISCBpbiB0aGUgZm9ybWF0IHN0cmluZyB3YXMgbm90IHBv cnRhYmxlCnRvIHRoZSBhd2sgb2YgU29sYXJpcyAxMCwgQUlYIDcgb3IgSFAtVVggMTEuMjMsIGFz IHJlcG9ydGVkIGluCmh0dHA6Ly9kZWJidWdzLmdudS5vcmcvMTg5ODcuCiogdGVzdHMvd29yZC1t dWx0aWJ5dGU6IFVzZSBwcmludGYgcmF0aGVyIHRoYW4gaGV4X3ByaW50Zl8sCmFuZCBnaXZlIHRo ZSBjaGFyYWN0ZXIgd2UncmUgcHJpbnRpbmcgYSBuYW1lOiBlX2FjdXRlIChyYXRoZXIKdGhhbiBB LWdyYXZlKSwgc2luY2UgdGhhdCBpcyB1c2VkIGluIG90aGVyIHRlc3RzLgphIHRyYWlsaW5nIFxu IGluIHRoZSBmb3JtYXQgc3RyaW5nLCBhZGp1c3QgYnkgcmVtb3ZpbmcgaXQsIGFuZAppbnN0ZWFk IGludm9raW5nIGVjaG8uCiogdGVzdHMvbXVsdGlieXRlLXdoaXRlLXNwYWNlOiBTaW1wbHkgcmVt b3ZlIGVhY2ggdHJhaWxpbmcgXG4uClRoZXkgd2VyZSBub3QgbmVlZGVkLgotLS0KIHRlc3RzL2lu aXQuY2ZnICAgICAgICAgICAgICB8IDggKysrKy0tLS0KIHRlc3RzL211bHRpYnl0ZS13aGl0ZS1z cGFjZSB8IDQgKystLQogdGVzdHMvd29yZC1tdWx0aWJ5dGUgICAgICAgIHwgMyArKy0KIDMgZmls ZXMgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rlc3RzL2luaXQuY2ZnIGIvdGVzdHMvaW5pdC5jZmcKaW5kZXggOTM0MmQzZC4uMWZiMjVmNSAx MDA2NDQKLS0tIGEvdGVzdHMvaW5pdC5jZmcKKysrIGIvdGVzdHMvaW5pdC5jZmcKQEAgLTE1NSwx MCArMTU1LDEwIEBAIG9yIHVzZSB0aGUgc2hvcnRjdXQgdGFyZ2V0IG9mIHRoZSB0b3BsZXZlbCBN YWtlZmlsZSwKICAgZmkKIH0KCi0jIExpa2UgcHJpbnRmIHdpdGggYSBzaW5nbGUgYXJndW1lbnQu Ci0jIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgd2hpbGUgc29tZSBwcmludGYgaW1wbGVtZW50YXRp b25zIGZhaWwgdG8KLSMgaGFuZGxlIFx4SEggZXNjYXBlcywgbm8gYXdrIGltcGxlbWVudGF0aW9u IGhhcyB0aGF0IHByb2JsZW0uCisjIExpa2UgcHJpbnRmIHdpdGggYSBzaW5nbGUgYXJndW1lbnQs IGJ1dCB0aGF0IGFyZ3VtZW50IG11c3QgYmUgYQorIyBzZXF1ZW5jZSBvZiBmb3VyLWJ5dGUgc3Ry aW5ncyBceEhIIHdoZXJlIGVhY2ggSCBpcyBhIGhleGFkZWNpbWFsIGJ5dGUuCiBoZXhfcHJpbnRm XygpCiB7Ci0gICAke0FXSy1hd2t9ICdCRUdJTiB7IHByaW50ZiAiJyIkMSInIiB9JyA8L2Rldi9u dWxsCisgIHByaW50ZiAkKHByaW50ZiAnXFwlbycgXAorICAgICQocHJpbnRmICVzICIkMSJ8c2Vk ICdzLFxceFwoWzAtOWEtZkEtZl1bMC05YS1mQS1mXVwpLCAweFwxLGcnKSkKIH0KZGlmZiAtLWdp dCBhL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1zcGFjZSBiL3Rlc3RzL211bHRpYnl0ZS13aGl0ZS1z cGFjZQppbmRleCBiYjFiZGFmLi5hYmQ0ZGM1IDEwMDc1NQotLS0gYS90ZXN0cy9tdWx0aWJ5dGUt d2hpdGUtc3BhY2UKKysrIGIvdGVzdHMvbXVsdGlieXRlLXdoaXRlLXNwYWNlCkBAIC01OCw5ICs1 OCw5IEBAIEVPRgogZmFpbD0wCgogZm9yIGkgaW4gJHV0Zjhfc3BhY2VfY2hhcmFjdGVyczsgZG8K LSAgaGV4X3ByaW50Zl8gIiRpXG4iIHwgZ3JlcCAtcSAnXlxzJCcgXAorICBoZXhfcHJpbnRmXyAi JGkiIHwgZ3JlcCAtcSAnXlxzJCcgXAogICAgICAgfHwgeyB3YXJuXyAiJGkgRkFJTEVEIHRvIG1h dGNoIFxccyI7IGZhaWw9MTsgfQotICBoZXhfcHJpbnRmXyAiJGlcbiIgfCBncmVwIC1xICdcUycK KyAgaGV4X3ByaW50Zl8gIiRpIiB8IGdyZXAgLXEgJ1xTJwogICB0ZXN0ICQ/ID0gMSBcCiAgICAg ICB8fCB7IHdhcm5fICIkaSB2cy4gXFxTIEZBSUxFRCI7IGZhaWw9MTsgfQogZG9uZQpkaWZmIC0t Z2l0IGEvdGVzdHMvd29yZC1tdWx0aWJ5dGUgYi90ZXN0cy93b3JkLW11bHRpYnl0ZQppbmRleCBm MmNhZjk3Li5iYTM3Yjg1IDEwMDc1NQotLS0gYS90ZXN0cy93b3JkLW11bHRpYnl0ZQorKysgYi90 ZXN0cy93b3JkLW11bHRpYnl0ZQpAQCAtNCw3ICs0LDggQEAKCiByZXF1aXJlX2VuX3V0ZjhfbG9j YWxlXwoKLWhleF9wcmludGZfICdceGMzXHhhMVxuJyA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJl XworZV9hY3V0ZT0kKHByaW50ZiAnXDMwM1wyNTEnKQorcHJpbnRmICIkZV9hY3V0ZVxuIiA+IGlu IHx8IGZyYW1ld29ya19mYWlsdXJlXwogTENfQUxMPWVuX1VTLlVURi04CiBleHBvcnQgTENfQUxM CgotLSAKMi4xLjIKCg== --001a11c1ee14df0d570507629ace-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 20:54:29 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 01:54:29 +0000 Received: from localhost ([127.0.0.1]:54114 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnHi0-0002pz-VG for submit@debbugs.gnu.org; Sat, 08 Nov 2014 20:54:29 -0500 Received: from mail-yh0-f48.google.com ([209.85.213.48]:63708) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnHhw-0002pm-UZ for 18987-done@debbugs.gnu.org; Sat, 08 Nov 2014 20:54:25 -0500 Received: by mail-yh0-f48.google.com with SMTP id v1so299220yhn.7 for <18987-done@debbugs.gnu.org>; Sat, 08 Nov 2014 17:54:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=zMNTPGg3EApGV7t6tC64JgMP2vYCV6+fGH58sMPkSY4=; b=gc2sTVzq0+p7bMihnW7lWR+z9Og0GfG/UfNLKsYqzY5tPYZf4A+PxLf20kfXxiSNnP ZXrki+K2Wcfzl5Cmn/Ai1pSBastgkleUfDkrHm5ZCxN6PlMnE4Zhj97mo2w4btUVYpga 6ZO30j2Ye9PVDWnCGPRp2GW7poyY6ecoXX5UYoy8V5U2DxPy/U95k543xIlvh/itgIoq CbKu/DqcosQ3OHfieDnNomRBCAJGiQqvri68ck/Gtl2y8Y5GCkETbCdtXbYYfxRKeec0 eJ10c8kdAf0YdcqdKgW/7+aMqqMSwKRY3WCIInWRx0iWI8D8pO0+rSR6IZqU36s6Yxhd Qg+Q== X-Received: by 10.236.53.197 with SMTP id g45mr20786617yhc.134.1415498064416; Sat, 08 Nov 2014 17:54:24 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sat, 8 Nov 2014 17:54:03 -0800 (PST) In-Reply-To: References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> From: Jim Meyering Date: Sat, 8 Nov 2014 17:54:03 -0800 X-Google-Sender-Auth: 2PxDbaNzomWlOzqThzqJWO2dgzU Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Norihiro Tanaka Content-Type: multipart/mixed; boundary=001a1132e2204f67980507635364 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a1132e2204f67980507635364 Content-Type: text/plain; charset=ISO-8859-1 On Sat, Nov 8, 2014 at 5:02 PM, Jim Meyering wrote: > On Sat, Nov 8, 2014 at 3:38 PM, Norihiro Tanaka wrote: >> On Sat, 8 Nov 2014 07:56:48 -0800 >> Jim Meyering wrote: >>> Thank you for working on that. >>> I've improved your patch: update the now-shared hex_printf_ >>> rather than making a copy, use a better definition of that function >>> (knowing that "printf %s a b c d e" reuses the format string and >>> prints just 5 bytes helps), also update word-multibyte to work >>> with the new definition, and rewrite the commit log. >>> >>> I'll push after you ACK: >> >> Thanks for the review. I added to a change the patch as word-multibyte >> uses \OOO in printf simply, because use it in other test module e.g. >> euc-mb. > > For reference, just because something is used in another test > does not necessarily mean it is desirable. There is nontrivial > variance in the style/quality of grep's test scripts. > > However, I can see how one might prefer to use printf > directly, so since I've left your name on this change, I'll > also let you choose octal here. > > To help with readability, I've given a name to > the character we're using as input: e_acute, since that > one is used in other tests. I pushed that, then tested more and found an error I'd introduced. Here's the fix: --001a1132e2204f67980507635364 Content-Type: application/octet-stream; name="0001-tests-fix-typo-in-previous-change.patch" Content-Disposition: attachment; filename="0001-tests-fix-typo-in-previous-change.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i29qzgk81 RnJvbSA3OWMxNDc5YzhkYmFkMDMyMTQ2OTZiMTZhNzhhNjFiMDNkMjViM2ExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U2F0LCA4IE5vdiAyMDE0IDE3OjQ5OjI4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gdGVzdHM6IGZp eCB0eXBvIGluIHByZXZpb3VzIGNoYW5nZQoKKiB0ZXN0cy9pbml0LmNmZyAoaGV4X3ByaW50Zl8p OiBGaXggdHlwbyBzL0EtZi9BLUYvLgpGb3IgdGhlIHJlY29yZCwgSSBpbnRyb2R1Y2VkIHRoYXQg ZXJyb3IsIG5vdCBOb3JpaGlyby4KLS0tCiB0ZXN0cy9pbml0LmNmZyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Rlc3Rz L2luaXQuY2ZnIGIvdGVzdHMvaW5pdC5jZmcKaW5kZXggMWZiMjVmNS4uNzVhOTQ5NCAxMDA2NDQK LS0tIGEvdGVzdHMvaW5pdC5jZmcKKysrIGIvdGVzdHMvaW5pdC5jZmcKQEAgLTE2MCw1ICsxNjAs NSBAQCBvciB1c2UgdGhlIHNob3J0Y3V0IHRhcmdldCBvZiB0aGUgdG9wbGV2ZWwgTWFrZWZpbGUs CiBoZXhfcHJpbnRmXygpCiB7CiAgIHByaW50ZiAkKHByaW50ZiAnXFwlbycgXAotICAgICQocHJp bnRmICVzICIkMSJ8c2VkICdzLFxceFwoWzAtOWEtZkEtZl1bMC05YS1mQS1mXVwpLCAweFwxLGcn KSkKKyAgICAkKHByaW50ZiAlcyAiJDEifHNlZCAncyxcXHhcKFswLTlhLWZBLUZdWzAtOWEtZkEt Rl1cKSwgMHhcMSxnJykpCiB9Ci0tIAoyLjEuMgoK --001a1132e2204f67980507635364-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 22:52:27 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 03:52:27 +0000 Received: from localhost ([127.0.0.1]:54130 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnJYB-0005zr-1E for submit@debbugs.gnu.org; Sat, 08 Nov 2014 22:52:27 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:41423) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnJY7-0005zh-SO for 18987-done@debbugs.gnu.org; Sat, 08 Nov 2014 22:52:24 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 93D92A60001; Sat, 8 Nov 2014 19:52:22 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ctHhNMG4Z8Uz; Sat, 8 Nov 2014 19:52:13 -0800 (PST) Received: from [192.168.1.9] (pool-71-177-17-123.lsanca.dsl-w.verizon.net [71.177.17.123]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 68036A60007; Sat, 8 Nov 2014 19:52:13 -0800 (PST) Message-ID: <545EE4ED.9010202@cs.ucla.edu> Date: Sat, 08 Nov 2014 19:52:13 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) I have some qualms about that patch. It assumes the C locale, and it's a bit safer to spell it out as in '0-9abcdefABCDEF'. Also, the temporary streams (i.e., the output of 'COMMAND inside '$(COMMAND)') are not text, and arguably this does not conform to POSIX (POSIX is murky here) and anyway I suspect some picky shells will complain. Third and most important, it'd be nicer if hex_printf_ worked like 'printf', except with support for hexadecimal escapes. How about something like the following instead? It's brute-force, but it should be portable. hex_printf_() { hex_printf_format=$(printf '%s\n' "$1" | sed ' s/^/_/ s/$/_/ s/\([^\\]\(\\\\\)*\\x\)\([0-9aAbBcCdDeEfF][^0-9aAbBcCdDeEfF]\)/\10\3/g s/\([^\\]\(\\\\\)*\\x\)\([0-3]\)/\10\3/g s/\([^\\]\(\\\\\)*\\x\)\([4-7]\)/\11\3/g s/\([^\\]\(\\\\\)*\\x\)\([89aAbB]\)/\12\3/g s/\([^\\]\(\\\\\)*\\x\)\([cCdDeEfF]\)/\13\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([0-7]\)/\1,0\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([89aAbBcCdDeEfF]\)/\1,1\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([0-7]\)/\1,2\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([89abcdef]\)/\1,3\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([0-7]\)/\1,4\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([89aAbBcCdDeEfF]\)/\1,5\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([0-7]\)/\1,6\3/g s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([89aAbBcCdDeEfF]\)/\1,7\3/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[08]/\1\3\40/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[19]/\1\3\41/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[2aA]/\1\3\42/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[3bB]/\1\3\43/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[4cC]/\1\3\44/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[5dD]/\1\3\45/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[6eE]/\1\3\46/g s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[7fF]/\1\3\47/g s/^_// s/_$// ') shift printf "$hex_printf_format" "$@" } hex_printf_ '\x34\\x%dX\x45\n' 100 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 08 23:20:08 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 04:20:08 +0000 Received: from localhost ([127.0.0.1]:54134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnJyx-0006fD-KT for submit@debbugs.gnu.org; Sat, 08 Nov 2014 23:20:07 -0500 Received: from mail-yk0-f171.google.com ([209.85.160.171]:38780) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnJyu-0006f3-Mv for 18987-done@debbugs.gnu.org; Sat, 08 Nov 2014 23:20:05 -0500 Received: by mail-yk0-f171.google.com with SMTP id 200so3320461ykr.2 for <18987-done@debbugs.gnu.org>; Sat, 08 Nov 2014 20:20:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=+zAOyTobCghg3ya696Mr2rum1FYHKjp0PDD1Z5vIS3o=; b=okBX/EAxjkrpjV/4iu03BFJRIBgA9tCmJ5Z2p8+UL7hxaHRpeqI3lIneRaig9FGMti b5HH1Y4VN00LePTnt1QJ9T6RHUDcngoz/yY1l3kJgSbxMhWVUTOz26a9ivuRB3/ewk3R sflZsSSQ2v8up6NuBStvVeMTsD952zw+nP5P5XZxN2yug8lHnXvpy/bM+yOcpt3GYQme icnivYZOWW4RC/tbZy35tnOUHeKui1+6DREioAYkzBM4ATqr58H7px9vb+HbtzTIz7xe MhtA1Z0C7I5oMmkla0GHdLOLTwBHMyGZR3tbnAoWEyascq5LfdEFa2f9M6gw5rZqogKe uDEw== X-Received: by 10.170.110.9 with SMTP id c9mr24469343ykb.94.1415506804257; Sat, 08 Nov 2014 20:20:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sat, 8 Nov 2014 20:19:44 -0800 (PST) In-Reply-To: <545EE4ED.9010202@cs.ucla.edu> References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> <545EE4ED.9010202@cs.ucla.edu> From: Jim Meyering Date: Sat, 8 Nov 2014 20:19:44 -0800 X-Google-Sender-Auth: tUBQLGpWM0QHxIRDMAYegbCZvRk Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Paul Eggert Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sat, Nov 8, 2014 at 7:52 PM, Paul Eggert wrote: > hex_printf_() > { > hex_printf_format=$(printf '%s\n' "$1" | sed ' > s/^/_/ > s/$/_/ > s/\([^\\]\(\\\\\)*\\x\)\([0-9aAbBcCdDeEfF][^0-9aAbBcCdDeEfF]\)/\10\3/g > s/\([^\\]\(\\\\\)*\\x\)\([0-3]\)/\10\3/g > s/\([^\\]\(\\\\\)*\\x\)\([4-7]\)/\11\3/g > s/\([^\\]\(\\\\\)*\\x\)\([89aAbB]\)/\12\3/g > s/\([^\\]\(\\\\\)*\\x\)\([cCdDeEfF]\)/\13\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([0-7]\)/\1,0\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([89aAbBcCdDeEfF]\)/\1,1\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([0-7]\)/\1,2\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([89abcdef]\)/\1,3\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([0-7]\)/\1,4\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([89aAbBcCdDeEfF]\)/\1,5\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([0-7]\)/\1,6\3/g > s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([89aAbBcCdDeEfF]\)/\1,7\3/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[08]/\1\3\40/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[19]/\1\3\41/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[2aA]/\1\3\42/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[3bB]/\1\3\43/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[4cC]/\1\3\44/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[5dD]/\1\3\45/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[6eE]/\1\3\46/g > s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[7fF]/\1\3\47/g > s/^_// > s/_$// > ') > shift > printf "$hex_printf_format" "$@" > } How elegantly twisted ;-) I like it. Do you have time to write the complete patch? I'd like to make a pre-release snapshot tomorrow. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 09 00:01:51 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 05:01:51 +0000 Received: from localhost ([127.0.0.1]:54139 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnKdL-0007ie-09 for submit@debbugs.gnu.org; Sun, 09 Nov 2014 00:01:51 -0500 Received: from mailgw01.kcn.ne.jp ([61.86.7.208]:38333) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnKdG-0007iU-SR for 18987-done@debbugs.gnu.org; Sun, 09 Nov 2014 00:01:48 -0500 Received: from imp01 (mailgw5.kcn.ne.jp [61.86.15.231]) by mailgw01.kcn.ne.jp (Postfix) with ESMTP id A823080303 for <18987-done@debbugs.gnu.org>; Sun, 9 Nov 2014 14:01:44 +0900 (JST) Received: from mail04.kcn.ne.jp ([61.86.6.183]) by imp01 with bizsmtp id DH1k1p00Y3wvxAM01H1kBX; Sun, 09 Nov 2014 14:01:44 +0900 X-OrgRCPT: 18987-done@debbugs.gnu.org Received: from [10.120.1.12] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail04.kcn.ne.jp (Postfix) with ESMTPA id 6E5C3129009A; Sun, 9 Nov 2014 14:01:44 +0900 (JST) Date: Sun, 09 Nov 2014 14:01:43 +0900 From: Norihiro Tanaka To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap In-Reply-To: References: Message-Id: <20141109140142.282A.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) On Sat, 8 Nov 2014 17:54:03 -0800 Jim Meyering wrote: > I pushed that, then tested more and found an error I'd introduced. > Here's the fix: Ah, I could not find it. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 09 13:20:21 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 18:20:21 +0000 Received: from localhost ([127.0.0.1]:55057 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnX64-0005L6-OU for submit@debbugs.gnu.org; Sun, 09 Nov 2014 13:20:21 -0500 Received: from mail-yk0-f173.google.com ([209.85.160.173]:49015) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnX62-0005Ky-Qw for 18987-done@debbugs.gnu.org; Sun, 09 Nov 2014 13:20:19 -0500 Received: by mail-yk0-f173.google.com with SMTP id 20so3568258yks.18 for <18987-done@debbugs.gnu.org>; Sun, 09 Nov 2014 10:20:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=xEkdDiv6BMKsKmEd78GI7MFi9ZqrCqiKyqYQaL7pqRo=; b=p6fLlf6iY3tjCKBJXsAWhoY/BEWB0b39hfEngqa77pKHig4+ZfggFgy0LA4ipdE74g XegpicuBekG1P7lozvKe7udB6xrjSYzHnKztyDXq9uWKIal1MDQKRMdu91ALE+GoSJGq FoY+iLuyQ/uZzMtHdcDRxWstMCHKXgn6QWLMQeFxLL/pRRBuXx8K/vzJQBm0zc6IroqC BIQDi2TOuSKiiAtu7i+w4mZJW3zpkUBRUk3djj76Ho14b4HEEN7duUFSnLqYK1jwa9mS x0Qjskzw1vkQekqOEZem34JiA5kcURfn+tUZREIcWo4bgEtCTvtNIe29OZdrwYcGVeS8 UFBQ== X-Received: by 10.236.11.129 with SMTP id 1mr25011918yhx.43.1415557218282; Sun, 09 Nov 2014 10:20:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sun, 9 Nov 2014 10:19:57 -0800 (PST) In-Reply-To: References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> <545EE4ED.9010202@cs.ucla.edu> From: Jim Meyering Date: Sun, 9 Nov 2014 10:19:57 -0800 X-Google-Sender-Auth: p6g6_YwmdZnaSe0RyjWCo0TRPnA Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Paul Eggert Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) 2014-11-08 20:19 GMT-08:00 Jim Meyering : > On Sat, Nov 8, 2014 at 7:52 PM, Paul Eggert wrote: >> hex_printf_() >> { >> hex_printf_format=$(printf '%s\n' "$1" | sed ' >> s/^/_/ >> s/$/_/ >> s/\([^\\]\(\\\\\)*\\x\)\([0-9aAbBcCdDeEfF][^0-9aAbBcCdDeEfF]\)/\10\3/g >> s/\([^\\]\(\\\\\)*\\x\)\([0-3]\)/\10\3/g >> s/\([^\\]\(\\\\\)*\\x\)\([4-7]\)/\11\3/g >> s/\([^\\]\(\\\\\)*\\x\)\([89aAbB]\)/\12\3/g >> s/\([^\\]\(\\\\\)*\\x\)\([cCdDeEfF]\)/\13\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([0-7]\)/\1,0\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[048cC]\([89aAbBcCdDeEfF]\)/\1,1\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([0-7]\)/\1,2\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[159dD]\([89abcdef]\)/\1,3\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([0-7]\)/\1,4\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[26aAeE]\([89aAbBcCdDeEfF]\)/\1,5\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([0-7]\)/\1,6\3/g >> s/\([^\\]\(\\\\\)*\\x[0-3]\)[37bBfF]\([89aAbBcCdDeEfF]\)/\1,7\3/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[08]/\1\3\40/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[19]/\1\3\41/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[2aA]/\1\3\42/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[3bB]/\1\3\43/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[4cC]/\1\3\44/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[5dD]/\1\3\45/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[6eE]/\1\3\46/g >> s/\([^\\]\(\\\\\)*\\\)x\([0-3]\),\([0-7]\)[7fF]/\1\3\47/g >> s/^_// >> s/_$// >> ') >> shift >> printf "$hex_printf_format" "$@" >> } > > How elegantly twisted ;-) > I like it. > > Do you have time to write the complete patch? > I'd like to make a pre-release snapshot tomorrow. I tried it, and found that this new function makes the multibyte-white-space test fail with GNU sed. Here's a simplified example showing where it goes wrong. This shows that only the first \x285 is transformed into \x2,05: $ printf '%s\n' '_\x285\x285\n_' \ |sed 's/\([^\\]\(\\\\\)*\\x[0-3]\)[ 048cC]\([0-7]\)/\1,0\3/g' _\x2,05\x285\n_ The intent was that it transform both, of course. The trouble arises when the regexp consumes all 3 hex digits. Then there is no longer a non-backslash remaining to be consumed on 2nd and subsequent iterations. There is also a portability problem in that Solaris 5.10's /bin/sed seems unable to handle some of that code. For example, using that same example with its /bin/sed, neither \x285 string is transformed. From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 09 13:29:24 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 18:29:25 +0000 Received: from localhost ([127.0.0.1]:55061 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnXEq-0005Y1-E4 for submit@debbugs.gnu.org; Sun, 09 Nov 2014 13:29:24 -0500 Received: from mail-yk0-f178.google.com ([209.85.160.178]:37283) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnXEn-0005Xq-GK for 18987-done@debbugs.gnu.org; Sun, 09 Nov 2014 13:29:22 -0500 Received: by mail-yk0-f178.google.com with SMTP id 79so2874575ykr.37 for <18987-done@debbugs.gnu.org>; Sun, 09 Nov 2014 10:29:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=wXa/ev8U5Oe4Qq1lzHNlAKHDM4IN0asuBgBP8b7/xE4=; b=RwIWmOy2/M/vDHgfF2tsTRHgOHvqJw/iA10h0FINIksDyYXKzUdCr8I6gMP/KsKGy0 g0L/tod4exO6DjKuDjSAY/wf2L3HVZMtOeU637zuV0jlpOU6HejMcFMsfoplhj8yxM4T BPrkHxZMy//GXAUeXZpDUEEd75okOSHucTF3jEr6M8UneKi8qQnaKg6J5n6mKz1l/h6S 4ZfzlGlolm7uAK8umJ9Gl/V9OrfP1XnAX2fG6iJCghqSjXxxzEP94kF+4OGvUDDT7ZUw HD27LMYJdCrOChLBxci+VWGIgg7tyXIL7FaQlpZ5LrBFfWH6gOcETyYfVRIL/mAGmU7e rcFA== X-Received: by 10.170.74.65 with SMTP id q62mr28453305ykq.114.1415557760928; Sun, 09 Nov 2014 10:29:20 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sun, 9 Nov 2014 10:29:00 -0800 (PST) In-Reply-To: References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> <545EE4ED.9010202@cs.ucla.edu> From: Jim Meyering Date: Sun, 9 Nov 2014 10:29:00 -0800 X-Google-Sender-Auth: yheBQzMPeCr0ApeRo1e8m6Z9Kns Message-ID: Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Paul Eggert Content-Type: multipart/mixed; boundary=001a113a4b5480c58d0507713923 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a113a4b5480c58d0507713923 Content-Type: text/plain; charset=ISO-8859-1 On Sun, Nov 9, 2014 at 10:19 AM, Jim Meyering wrote: > 2014-11-08 20:19 GMT-08:00 Jim Meyering : >> On Sat, Nov 8, 2014 at 7:52 PM, Paul Eggert wrote: >>> hex_printf_() >>> { >>> hex_printf_format=$(printf '%s\n' "$1" | sed ' >>> s/^/_/ >>> s/$/_/ ... >> Do you have time to write the complete patch? >> I'd like to make a pre-release snapshot tomorrow. > > I tried it, and found that this new function makes the multibyte-white-space > test fail with GNU sed. Here's a simplified example showing where ... I do like the idea, but now prefer to defer that until after the release. Instead, I'll address the portability issues you mentioned, with this: --001a113a4b5480c58d0507713923 Content-Type: application/octet-stream; name="0001-tests-avoid-hex_printf_-portability-problems.patch" Content-Disposition: attachment; filename="0001-tests-avoid-hex_printf_-portability-problems.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2aqj4860 RnJvbSAwNjA0YzZkZTAxODZjMjE3MjQ1NDZlY2U3ZmQxOWNmNzM2MTdmOGFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U3VuLCA5IE5vdiAyMDE0IDA5OjI2OjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHRlc3Rz OiBhdm9pZCBoZXhfcHJpbnRmXyBwb3J0YWJpbGl0eSBwcm9ibGVtcwoKKiB0ZXN0cy9pbml0LmNm ZyAoaGV4X3ByaW50Zl8pOiBTcGVsbCBvdXQgYS1mIGFuZCBBLUYsIGZvcgpub24tQyBsb2NhbGVz LCBlbnN1cmUgdGhhdCB0aGUgaW5wdXQgdG8gc2VkIGlzIG5ld2xpbmUtdGVybWluYXRlZCwKYW5k IHF1b3RlIHRoZSBmaW5hbCBvY3RhbCBmb3JtYXQgc3RyaW5nLgpTdWdnZXN0aW9ucyBmcm9tIFBh dWwgRWdnZXJ0LgotLS0KIHRlc3RzL2luaXQuY2ZnIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5p dC5jZmcgYi90ZXN0cy9pbml0LmNmZwppbmRleCBlN2EyMzg5Li44YzcxMDA4IDEwMDY0NAotLS0g YS90ZXN0cy9pbml0LmNmZworKysgYi90ZXN0cy9pbml0LmNmZwpAQCAtMTU5LDggKzE1OSwxMCBA QCBvciB1c2UgdGhlIHNob3J0Y3V0IHRhcmdldCBvZiB0aGUgdG9wbGV2ZWwgTWFrZWZpbGUsCiAj IHNlcXVlbmNlIG9mIGZvdXItYnl0ZSBzdHJpbmdzIFx4SEggd2hlcmUgZWFjaCBIIGlzIGEgaGV4 YWRlY2ltYWwgYnl0ZS4KIGhleF9wcmludGZfKCkKIHsKLSAgcHJpbnRmICQocHJpbnRmICdcXCVv JyBcCi0gICAgJChwcmludGYgJXMgIiQxInxzZWQgJ3MsXFx4XChbMC05YS1mQS1GXVswLTlhLWZB LUZdXCksIDB4XDEsZycpKQorICBsb2NhbCBvY3RhbF9mbXQ9JChwcmludGYgJ1xcJW8nIFwKKyAg ICAkKHByaW50ZiAnJXNcbicgIiQxIiBcCisgICAgICB8IHNlZCAncyxcXHhcKFswLTlhYmNkZWZB QkNERUZdWzAtOWFiY2RlZkFCQ0RFRl1cKSwgMHhcMSxnJykpCisgIHByaW50ZiAiJG9jdGFsX2Zt dCIKIH0KCiAjIFdyYXAgdHIgc28gdGhhdCBpdCBhbHdheXMgcnVucyBpbiB0aGUgQyBsb2NhbGUu Ci0tIAoyLjEuMgoK --001a113a4b5480c58d0507713923-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 09 13:32:15 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 18:32:16 +0000 Received: from localhost ([127.0.0.1]:55065 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnXHb-0005dU-68 for submit@debbugs.gnu.org; Sun, 09 Nov 2014 13:32:15 -0500 Received: from mail-yk0-f173.google.com ([209.85.160.173]:54909) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnXHZ-0005dM-7l for 18987-done@debbugs.gnu.org; Sun, 09 Nov 2014 13:32:14 -0500 Received: by mail-yk0-f173.google.com with SMTP id 20so3599788yks.32 for <18987-done@debbugs.gnu.org>; Sun, 09 Nov 2014 10:32:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=etiviA+ZSoVawKmyEIPFrNkTOTI0hzsEZCZdNtdEOUU=; b=TZaZM9403G+TSKciN1X9anFRuGAahxXIt9RyHUsiyfFV+Wk0POqglyY3MHzORCYIZA iiaR0OvtxPpBIkdH8vr4MLr8BZrWnLWptRHWYhZqzt0FHZAp6ol5VwhAmKGubky+Rvc0 Iq1bqd499onLX4KGiWB42mYK+4G7CDdqHRImlaPH1+nljlTKJ0Aj+MNnReMChjt/5TnV HK1HIBHdjxVPdV4j7VRo2hOrgZoXl7/RUzCOKlHYmgQcE1GCI3a4KB4JcBmViP1b7JY+ caqeuhSIje2J8mQe4P7Lydu0V5M+gsAtprPnDsvKh++tcoUoYW85pSHncDIzgVnFGZOn d9rw== X-Received: by 10.236.104.196 with SMTP id i44mr24774704yhg.12.1415557932863; Sun, 09 Nov 2014 10:32:12 -0800 (PST) MIME-Version: 1.0 Received: by 10.170.157.9 with HTTP; Sun, 9 Nov 2014 10:31:51 -0800 (PST) In-Reply-To: References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> <545EE4ED.9010202@cs.ucla.edu> From: Jim Meyering Date: Sun, 9 Nov 2014 10:31:51 -0800 X-Google-Sender-Auth: QuQqTADQpKbEKfaDRYL6b3eR_Lw Message-ID: Subject: Fwd: bug#18987: the bourne shell printf-vs-\xHH portability trap To: 18987-done <18987-done@debbugs.gnu.org> Content-Type: multipart/mixed; boundary=001a11c2cbb0bf6ea90507714386 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 18987-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --001a11c2cbb0bf6ea90507714386 Content-Type: text/plain; charset=ISO-8859-1 Forwarding to the bug tracking system: ---------- Forwarded message ---------- From: Jim Meyering Date: Sun, Nov 9, 2014 at 10:23 AM Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap To: Paul Eggert On Sun, Nov 9, 2014 at 9:36 AM, Jim Meyering wrote: > On Sat, Nov 8, 2014 at 7:52 PM, Paul Eggert wrote: >> I have some qualms about that patch. It assumes the C locale, and it's a >> bit safer to spell it out as in '0-9abcdefABCDEF'. Also, the temporary >> streams (i.e., the output of 'COMMAND inside '$(COMMAND)') are not text, and >> arguably this does not conform to POSIX (POSIX is murky here) and anyway I >> suspect some picky shells will complain. Third and most important, it'd be >> nicer if hex_printf_ worked like 'printf', except with support for >> hexadecimal escapes. >> >> How about something like the following instead? It's brute-force, but it >> should be portable. >> >> hex_printf_() >> { >> hex_printf_format=$(printf '%s\n' "$1" | sed ' >> s/^/_/ >> s/$/_/ >> s/\([^\\]\(\\\\\)*\\x\)\([0-9aAbBcCdDeEfF][^0-9aAbBcCdDeEfF]\)/\10\3/g > > I do like the idea, but now prefer to defer that until after the release. > Instead, I'll address the portability issues you mentioned, with this: --001a11c2cbb0bf6ea90507714386 Content-Type: application/octet-stream; name="0001-tests-avoid-hex_printf_-portability-problems.patch" Content-Disposition: attachment; filename="0001-tests-avoid-hex_printf_-portability-problems.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i2aqbdyv1 RnJvbSAwNjA0YzZkZTAxODZjMjE3MjQ1NDZlY2U3ZmQxOWNmNzM2MTdmOGFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U3VuLCA5IE5vdiAyMDE0IDA5OjI2OjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIHRlc3Rz OiBhdm9pZCBoZXhfcHJpbnRmXyBwb3J0YWJpbGl0eSBwcm9ibGVtcwoKKiB0ZXN0cy9pbml0LmNm ZyAoaGV4X3ByaW50Zl8pOiBTcGVsbCBvdXQgYS1mIGFuZCBBLUYsIGZvcgpub24tQyBsb2NhbGVz LCBlbnN1cmUgdGhhdCB0aGUgaW5wdXQgdG8gc2VkIGlzIG5ld2xpbmUtdGVybWluYXRlZCwKYW5k IHF1b3RlIHRoZSBmaW5hbCBvY3RhbCBmb3JtYXQgc3RyaW5nLgpTdWdnZXN0aW9ucyBmcm9tIFBh dWwgRWdnZXJ0LgotLS0KIHRlc3RzL2luaXQuY2ZnIHwgNiArKysrLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaW5p dC5jZmcgYi90ZXN0cy9pbml0LmNmZwppbmRleCBlN2EyMzg5Li44YzcxMDA4IDEwMDY0NAotLS0g YS90ZXN0cy9pbml0LmNmZworKysgYi90ZXN0cy9pbml0LmNmZwpAQCAtMTU5LDggKzE1OSwxMCBA QCBvciB1c2UgdGhlIHNob3J0Y3V0IHRhcmdldCBvZiB0aGUgdG9wbGV2ZWwgTWFrZWZpbGUsCiAj IHNlcXVlbmNlIG9mIGZvdXItYnl0ZSBzdHJpbmdzIFx4SEggd2hlcmUgZWFjaCBIIGlzIGEgaGV4 YWRlY2ltYWwgYnl0ZS4KIGhleF9wcmludGZfKCkKIHsKLSAgcHJpbnRmICQocHJpbnRmICdcXCVv JyBcCi0gICAgJChwcmludGYgJXMgIiQxInxzZWQgJ3MsXFx4XChbMC05YS1mQS1GXVswLTlhLWZB LUZdXCksIDB4XDEsZycpKQorICBsb2NhbCBvY3RhbF9mbXQ9JChwcmludGYgJ1xcJW8nIFwKKyAg ICAkKHByaW50ZiAnJXNcbicgIiQxIiBcCisgICAgICB8IHNlZCAncyxcXHhcKFswLTlhYmNkZWZB QkNERUZdWzAtOWFiY2RlZkFCQ0RFRl1cKSwgMHhcMSxnJykpCisgIHByaW50ZiAiJG9jdGFsX2Zt dCIKIH0KCiAjIFdyYXAgdHIgc28gdGhhdCBpdCBhbHdheXMgcnVucyBpbiB0aGUgQyBsb2NhbGUu Ci0tIAoyLjEuMgoK --001a11c2cbb0bf6ea90507714386-- From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 09 15:05:19 2014 Received: (at 18987-done) by debbugs.gnu.org; 9 Nov 2014 20:05:19 +0000 Received: from localhost ([127.0.0.1]:55121 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnYje-0007yb-Td for submit@debbugs.gnu.org; Sun, 09 Nov 2014 15:05:19 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:40969) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XnYjb-0007yP-SQ for 18987-done@debbugs.gnu.org; Sun, 09 Nov 2014 15:05:17 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id A2FDEA6002C; Sun, 9 Nov 2014 12:05:14 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6xCXSZWxnXir; Sun, 9 Nov 2014 12:05:06 -0800 (PST) Received: from [192.168.1.9] (pool-71-177-17-123.lsanca.dsl-w.verizon.net [71.177.17.123]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id F1839A6002D; Sun, 9 Nov 2014 12:05:05 -0800 (PST) Message-ID: <545FC8E8.2050006@cs.ucla.edu> Date: Sun, 09 Nov 2014 12:04:56 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#18987: the bourne shell printf-vs-\xHH portability trap References: <20141108165644.F3E4.27F6AC2D@kcn.ne.jp> <20141109083817.2822.27F6AC2D@kcn.ne.jp> <545EE4ED.9010202@cs.ucla.edu> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.9 (--) X-Debbugs-Envelope-To: 18987-done Cc: 18987 <18987-done@debbugs.gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.9 (--) Jim Meyering wrote: > I tried it, and found that this new function makes the multibyte-white-space > test fail with GNU sed. Yes, and the more I look at it the less I like it. I'm afraid I'm now going back to the idea that we should just use octal. This outputting-hex business is more trouble than it's worth. What happens with the current code, for example, when one of the printfs fail? No error is reported. If we just used octal it'd all be saner. From unknown Sat Aug 16 00:33:35 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 08 Dec 2014 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator