From unknown Thu Aug 14 17:26:49 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#16919 <16919@debbugs.gnu.org> To: bug#16919 <16919@debbugs.gnu.org> Subject: Status: [PATCH] fix mismatch between dfa and regex for treatment of titlecase Reply-To: bug#16919 <16919@debbugs.gnu.org> Date: Fri, 15 Aug 2025 00:26:49 +0000 retitle 16919 [PATCH] fix mismatch between dfa and regex for treatment of t= itlecase reassign 16919 grep submitter 16919 Norihiro Tanaka severity 16919 normal tag 16919 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 01 19:33:06 2014 Received: (at submit) by debbugs.gnu.org; 2 Mar 2014 00:33:07 +0000 Received: from localhost ([127.0.0.1]:47185 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WJuL4-0003tW-Ij for submit@debbugs.gnu.org; Sat, 01 Mar 2014 19:33:06 -0500 Received: from pbsg501.nifty.com ([202.248.238.71]:36701) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WJuKz-0003t2-S2 for submit@debbugs.gnu.org; Sat, 01 Mar 2014 19:33:04 -0500 Received: from [10.120.1.51] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s220Wbjh023920 for ; Sun, 2 Mar 2014 09:32:37 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Sun, 02 Mar 2014 09:32:38 +0900 From: Norihiro Tanaka To: submit@debbugs.gnu.org Subject: [PATCH] fix mismatch between dfa and regex for treatment of titlecase Message-Id: <20140302093238.25C0.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_531277B40000000025B8_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Package: grep Tags: patch I found difference between dfa and regex (glibc) treatment of titlecase. In case-insensitive matching in UTF8 locale, U+01C7 (LATIN CAPITAL LETTER LJ) matches with U+01C8 (LATIN CAPITAL LETTER L WITH SMALL LETTER J on regex, but it doesn't on dfa. [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 1.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type 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: 1.3 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Package: grep Tags: patch I found difference between dfa and regex (glibc) treatment of titlecase. In case-insensitive matching in UTF8 locale, U+01C7 (LATIN CAPITAL LETTER LJ) matches with U+01C8 (LATIN CAPITAL LETTER L WITH SMALL LETTER J on regex, but it doesn't on dfa. [...] Content analysis details: (1.3 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain 1.3 OBFU_TEXT_ATTACH BODY: Text attachment with non-text MIME type --------_531277B40000000025B8_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Package: grep Tags: patch I found difference between dfa and regex (glibc) treatment of titlecase. In case-insensitive matching in UTF8 locale, U+01C7 (LATIN CAPITAL LETTER LJ) matches with U+01C8 (LATIN CAPITAL LETTER L WITH SMALL LETTER J on regex, but it doesn't on dfa. The patch fixes mismatch between dfa and regex for treatment of titlecase. Norihiro --------_531277B40000000025B8_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 RnJvbSAwOGQ3NWEwZTY2OTI0MzhkNTg4MzA2YzUxNmM4MGY0MmRlOTczN2QxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBTdW4sIDIgTWFyIDIwMTQgMDk6MTE6MDcgKzA5MDAKU3ViamVjdDogW1BBVENIXSBmaXgg bWlzbWF0Y2ggYmV0d2VlbiBkZmEgYW5kIHJlZ2V4IGZvciBvZiB0cmVhdG1lbnQgb2YKIHRpdGxl Y2FzZQoKLS0tCiBzcmMvZGZhLmMgfCAzNyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDgwYmI4MDcuLmY3ZjUy NmMgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTkwLDYgKzkwLDgg QEAKIC8qIFNldHMgb2YgdW5zaWduZWQgY2hhcmFjdGVycyBhcmUgc3RvcmVkIGFzIGJpdCB2ZWN0 b3JzIGluIGFycmF5cyBvZiBpbnRzLiAgKi8KIHR5cGVkZWYgdW5zaWduZWQgaW50IGNoYXJjbGFz c1tDSEFSQ0xBU1NfSU5UU107CiAKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgd2N0bmFtZVtd ID0geyAidG9sb3dlciIsICJ0b3VwcGVyIiwgInRvdGl0bGUiLCBOVUxMIH07CisKIC8qIENvbnZl cnQgYSBwb3NzaWJseS1zaWduZWQgY2hhcmFjdGVyIHRvIGFuIHVuc2lnbmVkIGNoYXJhY3Rlci4g IFRoaXMgaXMKICAgIGEgYml0IHNhZmVyIHRoYW4gY2FzdGluZyB0byB1bnNpZ25lZCBjaGFyLCBz aW5jZSBpdCBjYXRjaGVzIHNvbWUgdHlwZQogICAgZXJyb3JzIHRoYXQgdGhlIGNhc3QgZG9lc24n dC4gICovCkBAIC03MjUsOCArNzI3LDE3IEBAIHNldGJpdF9jYXNlX2ZvbGRfYyAoaW50IGIsIGNo YXJjbGFzcyBjKQogICAgICAgICByZXR1cm47CiAgICAgICBpZiAoY2FzZV9mb2xkKQogICAgICAg ICB7Ci0gICAgICAgICAgc2V0Yml0X3djICh0b3dsb3dlciAod2MpLCBjKTsKLSAgICAgICAgICBz ZXRiaXRfd2MgKHRvd3VwcGVyICh3YyksIGMpOworICAgICAgICAgIHVuc2lnbmVkIGludCBpOwor ICAgICAgICAgIGZvciAoaSA9IDA7IHdjdG5hbWVbaV07IGkrKykKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgd2N0cmFuc190IHdjdCA9IHdjdHJhbnMgKHdjdG5hbWVbaV0pOworICAgICAg ICAgICAgICBpZiAod2N0KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIHdp bnRfdCBmb2xkZWQgPSB0b3djdHJhbnMgKHdjLCB3Y3QpOworICAgICAgICAgICAgICAgICAgaWYg KGZvbGRlZCAhPSB3YykKKyAgICAgICAgICAgICAgICAgICAgc2V0Yml0X3djIChmb2xkZWQsIGMp OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAg ZWxzZQpAQCAtMTc1OSwxNyArMTc3MCwxOSBAQCBhdG9tICh2b2lkKQogICAgICAgYWRkdG9rX3dj ICh3Y3Rvayk7CiAgICAgICBpZiAoY2FzZV9mb2xkKQogICAgICAgICB7Ci0gICAgICAgICAgd2lu dF90IGZvbGRlZCA9IHRvd2xvd2VyICh3Y3Rvayk7Ci0gICAgICAgICAgaWYgKGZvbGRlZCAhPSB3 Y3RvaykKKyAgICAgICAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICAgICAgICBmb3IgKGkgPSAwOyB3 Y3RuYW1lW2ldOyBpKyspCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGFkZHRva193YyAo Zm9sZGVkKTsKLSAgICAgICAgICAgICAgYWRkdG9rIChPUik7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgICAgZm9sZGVkID0gdG93dXBwZXIgKHdjdG9rKTsKLSAgICAgICAgICBpZiAoZm9sZGVkICE9 IHdjdG9rKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBhZGR0b2tfd2MgKGZvbGRlZCk7 Ci0gICAgICAgICAgICAgIGFkZHRvayAoT1IpOworICAgICAgICAgICAgICB3Y3RyYW5zX3Qgd2N0 ID0gd2N0cmFucyAod2N0bmFtZVtpXSk7CisgICAgICAgICAgICAgIGlmICh3Y3QpCisgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgd2ludF90IGZvbGRlZCA9IHRvd2N0cmFucyAo d2N0b2ssIHdjdCk7CisgICAgICAgICAgICAgICAgICBpZiAoZm9sZGVkICE9IHdjdG9rKQorICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgYWRkdG9rX3djIChmb2xk ZWQpOworICAgICAgICAgICAgICAgICAgICAgIGFkZHRvayAoT1IpOworICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLS0g CjEuOC41LjIKCg== --------_531277B40000000025B8_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="tests.txt" Content-Disposition: attachment; filename="tests.txt" Content-Transfer-Encoding: base64 VT1gcHJpbnRmICdcXHhDN1xceDg3J2ANClQ9YHByaW50ZiAnXFx4QzdcXHg4OCdgDQpMPWBwcmlu dGYgJ1xceEM3XFx4ODknYA0KDQo8PCBCZWZvcmUgdGhlIHBhdGNoID4+DQoNCiMgdXNlIHJlZ2V4 DQplY2hvICJhYSRUIiB8IGVudiBMQ19BTEw9ZW5fVVMuVVRGLTggc3JjL2dyZXAgLXFpICJcKGFc KVwxJFUiICYmIGVjaG8gbWF0Y2hlZCB8fCBlY2hvIG5vdCBtYWNoZWQNCm1hdGNoZWQNCmVjaG8g ImFhJFQiIHwgZW52IExDX0FMTD1lbl9VUy5VVEYtOCBzcmMvZ3JlcCAtcWkgIlwoYVwpXDEkTCIg JiYgZWNobyBtYXRjaGVkIHx8IGVjaG8gbm90IG1hY2hlZA0KbWF0Y2hlZA0KDQojIHVzZSBkZmEN CmVjaG8gImEkVCIgfCBlbnYgTENfQUxMPWVuX1VTLlVURi04IHNyYy9ncmVwIC1xaSAiXChhXCkk VSIgJiYgZWNobyBtYXRjaGVkIHx8IGVjaG8gbm90IG1hY2hlZA0Kbm90IG1hY2hlZA0KZWNobyAi YSRUIiB8IGVudiBMQ19BTEw9ZW5fVVMuVVRGLTggc3JjL2dyZXAgLXFpICJcKGFcKSRMIiAmJiBl Y2hvIG1hdGNoZWQgfHwgZWNobyBub3QgbWFjaGVkDQpub3QgbWFjaGVkDQoNCjw8IEFmdGVyIHRo ZSBwYXRjaCA+Pg0KDQojIHVzZSByZWdleA0KJCBlY2hvICJhYSRUIiB8IGVudiBMQ19BTEw9ZW5f VVMuVVRGLTggc3JjL2dyZXAgLXFpICJcKGFcKVwxJFUiICYmIGVjaG8gbWF0Y2hlZCB8fCBlY2hv IG5vdCBtYWNoZWQNCm1hdGNoZWQNCiQgZWNobyAiYWEkVCIgfCBlbnYgTENfQUxMPWVuX1VTLlVU Ri04IHNyYy9ncmVwIC1xaSAiXChhXClcMSRMIiAmJiBlY2hvIG1hdGNoZWQgfHwgZWNobyBub3Qg bWFjaGVkDQptYXRjaGVkDQoNCiMgdXNlIGRmYQ0KJCBlY2hvICJhJFQiIHwgZW52IExDX0FMTD1l bl9VUy5VVEYtOCBzcmMvZ3JlcCAtcWkgIlwoYVwpJFUiICYmIGVjaG8gbWF0Y2hlZCB8fCBlY2hv IG5vdCBtYWNoZWQNCm1hdGNoZWQNCiQgZWNobyAiYSRUIiB8IGVudiBMQ19BTEw9ZW5fVVMuVVRG LTggc3JjL2dyZXAgLXFpICJcKGFcKSRMIiAmJiBlY2hvIG1hdGNoZWQgfHwgZWNobyBub3QgbWFj aGVkDQptYXRjaGVkDQo= --------_531277B40000000025B8_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 02 15:37:13 2014 Received: (at 16919) by debbugs.gnu.org; 2 Mar 2014 20:37:13 +0000 Received: from localhost ([127.0.0.1]:48202 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKD8L-0004Xn-2J for submit@debbugs.gnu.org; Sun, 02 Mar 2014 15:37:13 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:42964) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKD8I-0004Xf-T6 for 16919@debbugs.gnu.org; Sun, 02 Mar 2014 15:37:11 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 3193839E8018; Sun, 2 Mar 2014 12:37:10 -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 pkPYGjX2LJUB; Sun, 2 Mar 2014 12:37:09 -0800 (PST) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id C669339E8008; Sun, 2 Mar 2014 12:37:09 -0800 (PST) Message-ID: <53139675.70103@cs.ucla.edu> Date: Sun, 02 Mar 2014 12:37:09 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Norihiro Tanaka , 16919@debbugs.gnu.org Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <20140302093238.25C0.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140302093238.25C0.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919 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: > I found difference between dfa and regex (glibc) treatment of titlecase. Thanks for bringing this up, but I'm afraid that it appears that regex is buggy in this area. The regex code does the match by converting pattern and text to uppercase, and then trying a match with uppercase. But this is incorrect for an example like the following, which uses '\(\)\1' to force using the regex code: echo 'ς' | grep -i '\(\)\1σ' This should output nothing, because terminal sigma is not the same as lowercase sigma even when case is ignored. But since the uppercase counterpart of both characters is capital sigma, grep incorrectly outputs the terminal sigma. The dfa code gets it right. POSIX is muddy in this area, unfortunately, but I don't see any interpretation whereby ς and σ should match when case is ignored. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 03 00:05:15 2014 Received: (at 16919) by debbugs.gnu.org; 3 Mar 2014 05:05:15 +0000 Received: from localhost ([127.0.0.1]:48425 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKL3y-0001wp-VS for submit@debbugs.gnu.org; Mon, 03 Mar 2014 00:05:15 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:58312) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKL3w-0001wg-89 for 16919@debbugs.gnu.org; Mon, 03 Mar 2014 00:05:12 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 9D95339E8012; Sun, 2 Mar 2014 21:05:11 -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 ljZ0uwV+nXCm; Sun, 2 Mar 2014 21:05:11 -0800 (PST) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 3596239E8008; Sun, 2 Mar 2014 21:05:11 -0800 (PST) Message-ID: <53140D86.50008@cs.ucla.edu> Date: Sun, 02 Mar 2014 21:05:10 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Norihiro Tanaka , 16919@debbugs.gnu.org Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <20140302093238.25C0.27F6AC2D@kcn.ne.jp> <53139675.70103@cs.ucla.edu> In-Reply-To: <53139675.70103@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919 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 (--) Paul Eggert wrote: > POSIX is muddy in this area, unfortunately, but I don't see any > interpretation whereby ς and σ should match when case is ignored. On second thought, I may have been too strict here. I suppose one could interpret POSIX to say that since 'σ' == tolower (toupper ('ς')), that it should be OK for the pattern 'σ' to match the string 'ς' when ignoring case, even though the characters differ and are both lowercase. Still, there's a problem that the dfa code behaves differently than the regex code. One way to make them behave the same would be for the dfa code to set *backref to 1 when ignoring case and when an alphabetic character in the pattern is matched in a non-POSIX locale. This would have performance consequences, though. Perhaps we can think of a better way. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 03 18:57:13 2014 Received: (at 16919) by debbugs.gnu.org; 3 Mar 2014 23:57:14 +0000 Received: from localhost ([127.0.0.1]:49506 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKcjQ-0001x3-GS for submit@debbugs.gnu.org; Mon, 03 Mar 2014 18:57:12 -0500 Received: from pbsg501.nifty.com ([202.248.238.71]:17202) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKcjM-0001wq-Ee for 16919@debbugs.gnu.org; Mon, 03 Mar 2014 18:57:11 -0500 Received: from [10.120.1.25] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s23Nv3Kh032265; Tue, 4 Mar 2014 08:57:03 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Tue, 04 Mar 2014 08:57:03 +0900 From: Norihiro Tanaka To: Paul Eggert Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase In-Reply-To: <53140D86.50008@cs.ucla.edu> References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> Message-Id: <20140304085656.6D95.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 16919 Cc: 16919@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.0 (/) Paul Eggert wrote: > On second thought, I may have been too strict here. I suppose one > could interpret POSIX to say that since '$B&R(B' == tolower (toupper ('?')), > that it should be OK for the pattern '$B&R(B' to match the string '?' when > ignoring case, even though the characters differ and are both lowercase. I don't think such. Final sigma is neither uppwercase nor lowercase of sigma, as you have said firstly. In addition, it isn't even titlecase of sigma. Even if that behavior of regex is right, it won't work correctly for a character that only one lowercase is assigned to two uppercases. (Though, I don't know such a character.) Norihiro From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 04 02:01:49 2014 Received: (at 16919) by debbugs.gnu.org; 4 Mar 2014 07:01:49 +0000 Received: from localhost ([127.0.0.1]:49756 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKjMK-00058r-1W for submit@debbugs.gnu.org; Tue, 04 Mar 2014 02:01:48 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:42183) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKjMH-00058g-8Z for 16919@debbugs.gnu.org; Tue, 04 Mar 2014 02:01:46 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id DDF93A60004; Mon, 3 Mar 2014 23:01:43 -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 k3euoDTBVaT1; Mon, 3 Mar 2014 23:01:39 -0800 (PST) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 1B159A60001; Mon, 3 Mar 2014 23:01:39 -0800 (PST) Message-ID: <53157A4F.6050106@cs.ucla.edu> Date: Mon, 03 Mar 2014 23:01:35 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> <20140304085656.6D95.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140304085656.6D95.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919 Cc: 16919@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: > Final sigma is neither uppwercase nor lowercase of > sigma, as you have said firstly. In addition, it isn't even titlecase > of sigma. That's what I thought, too. Certainly an implementation should be free to say that stigma and sigma do not match when ignoring case. That is how Solaris 11 /usr/xpg4/bin/grep -i behaves, for example. But it's not clear that POSIX requires such an implementation. > Even if that behavior of regex is right, it won't work correctly for a > character that only one lowercase is assigned to two uppercases. (Though, > I don't know such a character.) Here's an example: 'İ' (U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE) along with ASCII 'i' and 'I'. On GNU and Solaris platforms in the en_US.UTF-8 locale, towlower (L'İ') == L'i', so 'i' has two uppercase counterparts. Solaris 11 /usr/xpg4/bin/grep -i says that 'i' and 'I' match each other but do not match 'İ', and reports a syntax error when attempting to match 'İ' to itself: $ echo 'İ' | /usr/xpg4/bin/grep -i 'İ' grep: input file "(standard input)": line 1: syntax error so Solaris 'grep' is clearly busted here. The GNU regex code says that 'i' and 'I' match only each other, and that 'İ' matches only itself. But the dfa code in the current trunk behaves differently: it says that the patterns 'i' and 'I' match each other, whereas the pattern 'İ' matches itself and 'i'. So we have inconsistent behavior with the grep current master 5aa1413: $ printf 'İ\ni\nI\n' | grep -i 'İ' # Use the DFA code. İ i $ printf 'İ\ni\nI\n' | grep -i '\(\)\1İ' # Use the regex code. İ Here the DFA behavior is more plausible; but the DFA code is supposed to accelerate the regex code without changing behavior, so there is a problem. After writing the above, I discovered a web page that talks about this issue, written about 10 years ago and committed by Charles Levert: http://www.gnu.org/software/grep/devel.html Look for the string "POSIX and --ignore-case". The regex code takes the "uc(input_wchar) == uc(pattern_wchar)" approach, whereas the DFA code takes an approach not mentioned in that web page, namely "input_wchar == pattern_wchar || input_wchar == lc(pattern_wchar) || input_wchar == uc(pattern_wchar)". I'm inclined to fix the DFA code so that it behaves like the regex code even if the regex code isn't that nice, because arguably the regex code does conform to POSIX and anyway its behavior is longstanding and I doubt whether people care all that much about the details so long as the two are consistent. From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 04 14:37:22 2014 Received: (at 16919) by debbugs.gnu.org; 4 Mar 2014 19:37:22 +0000 Received: from localhost ([127.0.0.1]:50722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKv9V-0006BD-Ob for submit@debbugs.gnu.org; Tue, 04 Mar 2014 14:37:22 -0500 Received: from mail-pa0-f42.google.com ([209.85.220.42]:45533) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WKv9T-0006B5-6s for 16919@debbugs.gnu.org; Tue, 04 Mar 2014 14:37:19 -0500 Received: by mail-pa0-f42.google.com with SMTP id fb1so4134980pad.1 for <16919@debbugs.gnu.org>; Tue, 04 Mar 2014 11:37: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=O1MZwXHrmvyKVqhbn/4mh6emNrrE/cmsfgVlZuTFfXk=; b=gKe56rwT0VLlOPWXBCv/Ncg5+5tVkcV9pcVb+g8YI7ZCpnFwlti+UULqv056v8uCHb F1s3jW1cVIwXXJBTcygCe8txXrg3s2nDAio1xRNjtl0LaBM1gy0adfZ0FOMICIoDMbRk 2yfMzfUM6d1HicKVso1EJh2Up2vf992xAT8yTw0QBZckA5h8lAJbmXNNwMfpqYcmJy3b xbxmm4yxD2UEzhCICJqv/wialQXCQXTSK6QM3aFcJBw1aQN7GQSa9TltR7DtPNK8hQiU zLnLJSX3XACZ5DLhbFhgckxypMvc434XTK7CZex1udcgYQcd6blQPdXvFtCYYACtQlnq 2Hig== X-Received: by 10.67.5.233 with SMTP id cp9mr1348653pad.147.1393961838224; Tue, 04 Mar 2014 11:37:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Tue, 4 Mar 2014 11:36:57 -0800 (PST) In-Reply-To: <53157A4F.6050106@cs.ucla.edu> References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> <20140304085656.6D95.27F6AC2D@kcn.ne.jp> <53157A4F.6050106@cs.ucla.edu> From: Jim Meyering Date: Tue, 4 Mar 2014 11:36:57 -0800 X-Google-Sender-Auth: 3OHV7ilHn_4y1rIsitWS2FY_zVY Message-ID: Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase To: Paul Eggert Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 16919 Cc: Norihiro Tanaka , 16919@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 Mon, Mar 3, 2014 at 11:01 PM, Paul Eggert wrote: ... > I'm inclined to fix the DFA code so that it behaves like the regex code even > if the regex code isn't that nice, because arguably the regex code does > conform to POSIX and anyway its behavior is longstanding and I doubt whether > people care all that much about the details so long as the two are > consistent. That is my preference, too. Thanks for digging into this. From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 05 09:11:50 2014 Received: (at 16919) by debbugs.gnu.org; 5 Mar 2014 14:11:50 +0000 Received: from localhost ([127.0.0.1]:51191 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLCY2-0007Yy-8o for submit@debbugs.gnu.org; Wed, 05 Mar 2014 09:11:50 -0500 Received: from pbsg500.nifty.com ([202.248.238.70]:47245) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLCXw-0007Yj-T7 for 16919@debbugs.gnu.org; Wed, 05 Mar 2014 09:11:48 -0500 Received: from [10.120.1.41] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg500.nifty.com with ESMTP id s25EBdQJ021490; Wed, 5 Mar 2014 23:11:40 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Wed, 05 Mar 2014 23:11:40 +0900 From: Norihiro TANAKA To: Paul Eggert Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase In-Reply-To: <53157A4F.6050106@cs.ucla.edu> References: <20140304085656.6D95.27F6AC2D@kcn.ne.jp> <53157A4F.6050106@cs.ucla.edu> Message-Id: <20140305231139.788D.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_53172C6000000000789B_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Paul, Thanks for a lot of investigation. I have understood that we cannot generally tell whether DFA's or regex's behavior is right. I have tested the behavior of sereral regex engines. What's interesting is that most of results differ from others. And nobody will understand which is right. [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain X-Debbugs-Envelope-To: 16919 Cc: 16919@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: 1.2 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: Hi Paul, Thanks for a lot of investigation. I have understood that we cannot generally tell whether DFA's or regex's behavior is right. I have tested the behavior of sereral regex engines. What's interesting is that most of results differ from others. And nobody will understand which is right. [...] Content analysis details: (1.2 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.2 RCVD_IN_BL_SPAMCOP_NET RBL: Received via a relay in bl.spamcop.net [Blocked - see ] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain --------_53172C6000000000789B_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Hi Paul, Thanks for a lot of investigation. I have understood that we cannot generally tell whether DFA's or regex's behavior is right. I have tested the behavior of sereral regex engines. What's interesting is that most of results differ from others. And nobody will understand which is right. -- GNU grep (DFA): $ env LANG=en_US.utf8 ./test.sh "src/grep -i" 2>/dev/null | nl -ba 1 c7 87 | c7 89 2 c7 87 | c7 88 | c7 89 3 c7 87 | c7 89 4 49 | 69 5 49 | 69 6 69 | c4 b0 7 49 | c4 b1 GNU grep (regex): $ env LANG=en_US.utf8 ./test.sh "src/grep -i" '\(\)\1' 2>/dev/null | nl -ba 1 c7 87 | c7 88 | c7 89 2 c7 87 | c7 88 | c7 89 3 c7 87 | c7 88 | c7 89 4 49 | 69 | c4 b1 5 49 | 69 | c4 b1 6 c4 b0 7 49 | 69 | c4 b1 pcregrep: $ env LANG=en_US.utf8 ./test.sh "pcregrep -iu" 2>/dev/null | nl -ba 1 c7 87 | c7 88 | c7 89 2 c7 87 | c7 88 | c7 89 3 c7 87 | c7 88 | c7 89 4 49 | 69 5 49 | 69 6 c4 b0 7 c4 b1 Solaris grep (xpg4): $ env LANG=ja_JP.UTF-8 ./test.sh "/usr/xpg4/bin/grep -i" 2>/dev/null | nl -ba 1 c7 87 | c7 89 2 c7 88 3 c7 87 | c7 89 4 49 | 69 5 49 | 69 6 error 7 error HP-UX grep: $ env LANG=en_US.utf8 ./test.sh "/bin/grep -i" 2>/dev/null | nl -ba 1 c7 87 | c7 88 | c7 89 2 c7 87 | c7 88 | c7 89 3 c7 87 | c7 88 | c7 89 4 49 | 69 5 49 | 69 6 c4 b0 7 c4 b1 -- Norihiro --------_53172C6000000000789B_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="test.sh" Content-Disposition: attachment; filename="test.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2gNCg0KKA0KcHJpbnRmICdceEM3XHg4N1xuJw0KcHJpbnRmICdceEM3XHg4OFxu Jw0KcHJpbnRmICdceEM3XHg4OVxuJw0KKSA+IGluDQoNCiMgVSswMUM3ICBMQVRJTiBDQVBJVEFM IExFVFRFUiBMSg0KUEFUPWBzZWQgLW5lIDFwIGluYA0KKCBzZXQgLXg7ICR7MS1ncmVwfSAiJHsy LX0kUEFUIiBpbiApIHwgb2QgLXR4MSAtQW4gfCBoZWFkIC0xIHwNCiAgc2VkIC1lICdzLyAwXHsw LDFcfWEkLy87IHMvIDBcezAsMVx9YSAvIHwgL2cnDQoNCiMgVSswMUM4ICBMQVRJTiBDQVBJVEFM IExFVFRFUiBMIFdJVEggU01BTEwgTEVUVEVSIEoNClBBVD1gc2VkIC1uZSAycCBpbmANCiggc2V0 IC14OyAkezEtZ3JlcH0gIiR7Mi19JFBBVCIgaW4gKSB8IG9kIC10eDEgLUFuIHwgaGVhZCAtMSB8 DQogIHNlZCAtZSAncy8gMFx7MCwxXH1hJC8vOyBzLyAwXHswLDFcfWEgLyB8IC9nJw0KDQojIFUr MDFDOSAgTEFUSU4gU01BTEwgTEVUVEVSIExKDQpQQVQ9YHNlZCAtbmUgM3AgaW5gDQooIHNldCAt eDsgJHsxLWdyZXB9ICIkezItfSRQQVQiIGluICkgfCBvZCAtdHgxIC1BbiB8IGhlYWQgLTEgfA0K ICBzZWQgLWUgJ3MvIDBcezAsMVx9YSQvLzsgcy8gMFx7MCwxXH1hIC8gfCAvZycNCg0KKA0KcHJp bnRmICdJXG4nDQpwcmludGYgJ2lcbicNCnByaW50ZiAnXHhDNFx4QjBcbicNCnByaW50ZiAnXHhD NFx4QjFcbicNCikgPiBpbg0KDQojIFUrMDA2OSAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSAoSSkN ClBBVD1gc2VkIC1uZSAxcCBpbmANCiggc2V0IC14OyAkezEtZ3JlcH0gIiR7Mi19JFBBVCIgaW4g KSB8IG9kIC10eDEgLUFuIHwgaGVhZCAtMSB8DQogIHNlZCAtZSAncy8gMFx7MCwxXH1hJC8vOyBz LyAwXHswLDFcfWEgLyB8IC9nJw0KDQojIFUrMDA2OSAgTEFUSU4gU01BTEwgTEVUVEVSIEkgKGkp DQpQQVQ9YHNlZCAtbmUgMnAgaW5gDQooIHNldCAteDsgJHsxLWdyZXB9ICIkezItfSRQQVQiIGlu ICkgfCBvZCAtdHgxIC1BbiB8IGhlYWQgLTEgfA0KICBzZWQgLWUgJ3MvIDBcezAsMVx9YSQvLzsg cy8gMFx7MCwxXH1hIC8gfCAvZycNCg0KIyBVKzAxMzAgIExBVElOIENBUElUQUwgTEVUVEVSIEkg V0lUSCBET1QgQUJPVkUNClBBVD1gc2VkIC1uZSAzcCBpbmANCiggc2V0IC14OyAkezEtZ3JlcH0g IiR7Mi19JFBBVCIgaW4gKSB8IG9kIC10eDEgLUFuIHwgaGVhZCAtMSB8DQogIHNlZCAtZSAncy8g MFx7MCwxXH1hJC8vOyBzLyAwXHswLDFcfWEgLyB8IC9nJw0KDQojIFUrMDEzMSAgTEFUSU4gU01B TEwgTEVUVEVSIERPVExFU1MgSQ0KUEFUPWBzZWQgLW5lIDRwIGluYA0KKCBzZXQgLXg7ICR7MS1n cmVwfSAiJHsyLX0kUEFUIiBpbiApIHwgb2QgLXR4MSAtQW4gfCBoZWFkIC0xIHwNCiAgc2VkIC1l ICdzLyAwXHswLDFcfWEkLy87IHMvIDBcezAsMVx9YSAvIHwgL2cnDQo= --------_53172C6000000000789B_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 05 10:11:37 2014 Received: (at 16919) by debbugs.gnu.org; 5 Mar 2014 15:11:37 +0000 Received: from localhost ([127.0.0.1]:51835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLDTt-0000rf-6T for submit@debbugs.gnu.org; Wed, 05 Mar 2014 10:11:37 -0500 Received: from pbsg501.nifty.com ([202.248.238.71]:64032) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLDTn-0000rP-99 for 16919@debbugs.gnu.org; Wed, 05 Mar 2014 10:11:34 -0500 Received: from [10.120.1.41] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s25FBHQq022216; Thu, 6 Mar 2014 00:11:18 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Thu, 06 Mar 2014 00:11:18 +0900 From: Norihiro Tanaka To: Norihiro TANAKA Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase In-Reply-To: <20140305231139.788D.27F6AC2D@kcn.ne.jp> References: <53157A4F.6050106@cs.ucla.edu> <20140305231139.788D.27F6AC2D@kcn.ne.jp> Message-Id: <20140306001106.789B.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.64.06 [ja] X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 16919 Cc: Paul Eggert , 16919@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.0 (/) Norihiro Tanaka wrote: > And nobody will understand which is right. However, I still believe that upper or lower case of a character should also match title case, because I think that title case is extension of cases (such as upper or lower), and furthermore they also matches title case (though it may be by chance) in regex. Norihiro From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 05 13:51:01 2014 Received: (at 16919) by debbugs.gnu.org; 5 Mar 2014 18:51:01 +0000 Received: from localhost ([127.0.0.1]:51936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLGuC-0007Ae-98 for submit@debbugs.gnu.org; Wed, 05 Mar 2014 13:51:00 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:55724) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WLGu9-0007AV-8e for 16919@debbugs.gnu.org; Wed, 05 Mar 2014 13:50:58 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 13C7139E8018; Wed, 5 Mar 2014 10:50:56 -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 C21XP+mFK21o; Wed, 5 Mar 2014 10:50:55 -0800 (PST) Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 8750B39E8017; Wed, 5 Mar 2014 10:50:55 -0800 (PST) Message-ID: <5317720E.5050802@cs.ucla.edu> Date: Wed, 05 Mar 2014 10:50:54 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Norihiro Tanaka Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <53157A4F.6050106@cs.ucla.edu> <20140305231139.788D.27F6AC2D@kcn.ne.jp> <20140306001106.789B.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140306001106.789B.27F6AC2D@kcn.ne.jp> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919 Cc: 16919@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 (--) On 03/05/2014 07:11 AM, Norihiro Tanaka wrote: > I still believe that upper or lower case of a character should > also match title case The (soon-to-be-fixed) gnulib regex code agrees with you, assuming that towupper (X) agrees for all three values of X, because it uses (towupper (input) == towupper (pattern)). However, the most-plausible reading of POSIX does not agree with you, as it would require (input == pattern || towlower (input) == pattern || towupper (input) == pattern), which means a titlecase pattern will match only itself. It seems pretty clear to me that the most-plausible reading of POSIX is buggy, for this reason. No wonder so many implementations fail to conform to it. I thought of a different way where gnulib/glibc regex does not conform to POSIX, and here there doesn't seem to be any ambiguity about it. In the POSIX locale when ignoring case, the pattern '[Z-a]' matches the data 'Z', 'z', 'A', 'a', and the nonalphabetic characters like '^' that collate between 'Z' and 'a'. But the glibc regex code rejects that pattern entirely. Conversely, in the same situation the glibc regex code says '[A-z]' matches only alphabetic characters, whereas POSIX says it should also match the nonalphabetic characters like '^' that collate between 'Z' and 'a'. It appears that nobody cares, as this incompatibility has been present for years and I don't recall anyone complaining. Though it is weird that this means "grep PAT" can match some lines that "grep -i PAT" doesn't. Here POSIX is not merely ambiguous, it's clearly disagreeing with common practice. It's not clear whether the bug is in POSIX or in the implementation. From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 07 21:33:59 2014 Received: (at 16919-done) by debbugs.gnu.org; 8 Mar 2014 02:33:59 +0000 Received: from localhost ([127.0.0.1]:55401 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM75K-0006FC-Ae for submit@debbugs.gnu.org; Fri, 07 Mar 2014 21:33:59 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:40954) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM75G-0006F1-4I for 16919-done@debbugs.gnu.org; Fri, 07 Mar 2014 21:33:56 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 165E4A60004; Fri, 7 Mar 2014 18:33:53 -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 dLnnKIk-9+tY; Fri, 7 Mar 2014 18:33:51 -0800 (PST) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 3519039E8011; Fri, 7 Mar 2014 18:33:51 -0800 (PST) Message-ID: <531A818E.8000207@cs.ucla.edu> Date: Fri, 07 Mar 2014 18:33:50 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> <20140304085656.6D95.27F6AC2D@kcn.ne.jp> <53157A4F.6050106@cs.ucla.edu> In-Reply-To: Content-Type: multipart/mixed; boundary="------------020301030509030903040607" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919-done Cc: 16919-done@debbugs.gnu.org, Aharon Robbins , 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: -2.3 (--) This is a multi-part message in MIME format. --------------020301030509030903040607 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Jim Meyering wrote: > That is my preference, too. OK, thanks, I installed the attached patch, which should do just that, and I'm marking this bug as done. I'll CC: this to Aharon since it might affect Gawk. The code still needs cleanup but so far I'm just trying to fix bugs. --------------020301030509030903040607 Content-Type: text/plain; charset=UTF-8; name="0001-grep-fix-case-fold-mismatches-between-DFA-and-regex.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-grep-fix-case-fold-mismatches-between-DFA-and-regex.pat"; filename*1="ch" RnJvbSBkZjk1MDAyMWRmMDNkMzNmMDZlNTQ1MDVlM2U2OGJlNTk4OWQ3MmE2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDcgTWFyIDIwMTQgMTg6Mjc6MjggLTA4MDAKU3ViamVjdDogW1BBVENI XSBncmVwOiBmaXggY2FzZS1mb2xkIG1pc21hdGNoZXMgYmV0d2VlbiBERkEgYW5kIHJlZ2V4 CgpUaGUgREZBIGNvZGUgYW5kIHRoZSByZWdleCBjb2RlIGRpZG4ndCB1c2UgdGhlIHNhbWUg c2VtYW50aWNzIGZvcgpjYXNlLWZvbGRpbmcuICBUaGUgcmVnZXggY29kZSBzYXlzIHRoYXQg dGhlIGRhdGEgY2hhciBkIG1hdGNoZXMKdGhlIHBhdHRlcm4gY2hhciBwIGlmIHVjIChkKSA9 PSB1YyAocCkuICBQT1NJWCBpcyB1bmNsZWFyIGluIHRoaXMKYXJlYTsgdGhlIHNpbXBsZXN0 IGZpeCBmb3Igbm93IGlzIHRvIGNoYW5nZSB0aGUgREZBIGNvZGUgdG8gYWdyZWUKd2l0aCB0 aGUgcmVnZXggY29kZS4gIFNlZSA8aHR0cDovL2J1Z3MuZ251Lm9yZy8xNjkxOT4uCiogc3Jj L2RmYS5jIChzdGF0aWNfYXNzZXJ0KTogTmV3IG1hY3JvLCBpZiBub3QgYWxyZWFkeSBkZWZp bmVkLgooc2V0Yml0X2Nhc2VfZm9sZF9jKTogQXNzdW1lIE1CX0NVUl9NQVggaXMgMSBhbmQg dGhhdCBjYXNlX2ZvbGQKaXMgbm9uemVybzsgYWxsIGNhbGxlcnMgY2hhbmdlZC4KKHNldGJp dF9jYXNlX2ZvbGRfYywgcGFyc2VfYnJhY2tldF9leHAsIGxleCwgYXRvbSk6CkNhc2UtZm9s ZCBsaWtlIHRoZSByZWdleCBjb2RlIGRvZXMuCihsb25lc29tZV9sb3dlcik6IE5ldyBjb25z dGFudC4KKGNhc2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyk6IE5ldyBmdW5jdGlvbi4KKHBhcnNl X2JyYWNrZXRfZXhwKTogUHJlZmVyIHBsYWluIHNldGJpdCB3aGVuIGNhc2UtZm9sZGluZyBp cwpub3QgbmVlZGVkLgoqIHNyYy9kZmEuaCAoQ0FTRV9GT0xERURfQlVGU0laRSk6IE5ldyBj b25zdGFudC4KKGNhc2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyk6IE5ldyBmdW5jdGlvbiBkZWNs LgoqIHNyYy9tYWluLmMgKHRyaXZpYWxfY2FzZV9pZ25vcmUpOiBDYXNlLWZvbGQgbGlrZSB0 aGUgcmVnZXggY29kZSBkb2VzLgoobWFpbik6IFRyeSB0byBpbXByb3ZlIGNvbW1lbnQgcmUg dHJpdmlhbF9jYXNlX2lnbm9yZS4KKiB0ZXN0cy9jYXNlLWZvbGQtdGl0bGVjYXNlOiBBZGQg bG90cyBtb3JlIHRlc3QgY2FzZXMuCi0tLQogc3JjL2RmYS5jICAgICAgICAgICAgICAgICB8 IDE0MyArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9kZmEu aCAgICAgICAgICAgICAgICAgfCAgIDggKysrCiBzcmMvbWFpbi5jICAgICAgICAgICAgICAg IHwgIDU3ICsrKysrKysrLS0tLS0tLS0KIHRlc3RzL2Nhc2UtZm9sZC10aXRsZWNhc2UgfCAx NjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogNCBm aWxlcyBjaGFuZ2VkLCAyODIgaW5zZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2RmYS5jIGIvc3JjL2RmYS5jCmluZGV4IDU4NWE1OTkuLjU5MTAyNjgg MTAwNjQ0Ci0tLSBhL3NyYy9kZmEuYworKysgYi9zcmMvZGZhLmMKQEAgLTM0LDYgKzM0LDEy IEBACiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAjaW5jbHVkZSA8c3RkYm9vbC5oPgogCisvKiBH YXdrIGRvZXNuJ3QgdXNlIEdudWxpYiwgc28gZG9uJ3QgYXNzdW1lIHN0YXRpY19hc3NlcnQg aXMgcHJlc2VudC4gICovCisjaWZuZGVmIHN0YXRpY19hc3NlcnQKKyMgZGVmaW5lIHN0YXRp Y19hc3NlcnQoY29uZCwgZGlhZ25vc3RpYykgXAorICAgIGV4dGVybiBpbnQgKCpmb28gKHZv aWQpKSBbISFzaXplb2YgKHN0cnVjdCB7IGludCBmb286IChjb25kKSA/IDggOiAtMTsgfSld CisjZW5kaWYKKwogI2RlZmluZSBTVFJFUShhLCBiKSAoc3RyY21wIChhLCBiKSA9PSAwKQog CiAvKiBJU0FTQ0lJRElHSVQgZGlmZmVycyBmcm9tIGlzZGlnaXQsIGFzIGZvbGxvd3M6CkBA IC03MTAsMzQgKzcxNiwxNiBAQCBzZXRiaXRfd2MgKHdpbnRfdCB3YywgY2hhcmNsYXNzIGMp CiAjZW5kaWYKIH0KIAotLyogU2V0IGEgYml0IGZvciBCIGluIHRoZSBjaGFyY2xhc3MgQywg aWYgQiBpcyBhIHZhbGlkIHNpbmdsZSBieXRlCi0gICBjaGFyYWN0ZXIgaW4gdGhlIGN1cnJl bnQgY2hhcmFjdGVyIHNldC4gIElmIGNhc2UgaXMgZm9sZGVkLCBzZXQgQidzCi0gICBsb3dl ciBhbmQgdXBwZXIgY2FzZSB2YXJpYW50cyBzaW1pbGFybHkuICBJZiBNQl9DVVJfTUFYID4g MSwgdGhlCi0gICByZXN1bHRpbmcgY2hhcnNldCBpcyB1c2VkIG9ubHkgYXMgYW4gb3B0aW1p emF0aW9uLCBhbmQgdGhlIGNhbGxlcgotICAgc2hvdWxkIHNldCB0aGUgYXBwcm9wcmlhdGUg ZmllbGQgb2Ygc3RydWN0IG1iX2NoYXJfY2xhc3Nlcy4gICovCisvKiBTZXQgYSBiaXQgZm9y IEIgYW5kIGl0cyBjYXNlIHZhcmlhbnRzIGluIHRoZSBjaGFyY2xhc3MgQy4KKyAgIE1CX0NV Ul9NQVggbXVzdCBiZSAxLiAgKi8KIHN0YXRpYyB2b2lkCiBzZXRiaXRfY2FzZV9mb2xkX2Mg KGludCBiLCBjaGFyY2xhc3MgYykKIHsKLSAgaWYgKE1CX0NVUl9NQVggPiAxKQotICAgIHsK LSAgICAgIHdpbnRfdCB3YyA9IGJ0b3djIChiKTsKLSAgICAgIGlmICh3YyA9PSBXRU9GKQot ICAgICAgICByZXR1cm47Ci0gICAgICBpZiAoY2FzZV9mb2xkKQotICAgICAgICB7Ci0gICAg ICAgICAgc2V0Yml0X3djICh0b3dsb3dlciAod2MpLCBjKTsKLSAgICAgICAgICBzZXRiaXRf d2MgKHRvd3VwcGVyICh3YyksIGMpOwotICAgICAgICB9Ci0gICAgfQotICBlbHNlCi0gICAg ewotICAgICAgaWYgKGNhc2VfZm9sZCkKLSAgICAgICAgewotICAgICAgICAgIHNldGJpdCAo dG9sb3dlciAoYiksIGMpOwotICAgICAgICAgIHNldGJpdCAodG91cHBlciAoYiksIGMpOwot ICAgICAgICB9Ci0gICAgfQotICBzZXRiaXQgKGIsIGMpOworICBpbnQgdWIgPSB0b3VwcGVy IChiKTsKKyAgaW50IGk7CisgIGZvciAoaSA9IDA7IGkgPCBOT1RDSEFSOyBpKyspCisgICAg aWYgKHRvdXBwZXIgKGkpID09IHViKQorICAgICAgc2V0Yml0IChpLCBjKTsKIH0KIAogCkBA IC04OTgsNiArODg2LDUwIEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGNvbnN0ICpidWZfZW5k OyAgICAvKiByZWZlcmVuY2UgdG8gZW5kIGluIGRmYWV4ZWMuICAqLwogIyBkZWZpbmUgTUlO KGEsYikgKChhKSA8IChiKSA/IChhKSA6IChiKSkKICNlbmRpZgogCisvKiBUaGUgc2V0IG9m IHdjaGFyX3QgdmFsdWVzIEMgc3VjaCB0aGF0IHRoZXJlJ3MgYSB1c2VmdWwgbG9jYWxlCisg ICBzb21ld2hlcmUgd2hlcmUgQyAhPSB0b3d1cHBlciAoQykgJiYgQyAhPSB0b3dsb3dlciAo dG93dXBwZXIgKEMpKS4KKyAgIEZvciBleGFtcGxlLCAweDAwQjUgKFUrMDBCNSBNSUNSTyBT SUdOKSBpcyBpbiB0aGlzIHRhYmxlLCBiZWNhdXNlCisgICB0b3d1cHBlciAoMHgwMEI1KSA9 PSAweDAzOUMgKFUrMDM5QyBHUkVFSyBDQVBJVEFMIExFVFRFUiBNVSksIGFuZAorICAgdG93 bG93ZXIgKDB4MDM5QykgPT0gMHgwM0JDIChVKzAzQkMgR1JFRUsgU01BTEwgTEVUVEVSIE1V KS4gICovCitzdGF0aWMgc2hvcnQgY29uc3QgbG9uZXNvbWVfbG93ZXJbXSA9CisgIHsKKyAg ICAweDAwQjUsIDB4MDEzMSwgMHgwMTdGLCAweDAxQzUsIDB4MDFDOCwgMHgwMUNCLCAweDAx RjIsIDB4MDM0NSwKKyAgICAweDAzQzIsIDB4MDNEMCwgMHgwM0QxLCAweDAzRDUsIDB4MDNE NiwgMHgwM0YwLCAweDAzRjEsCisKKyAgICAvKiBVKzAzRjIgR1JFRUsgTFVOQVRFIFNJR01B IFNZTUJPTCBsYWNrcyBhIHNwZWNpZmljIHVwcGVyY2FzZQorICAgICAgIGNvdW50ZXJwYXJ0 IGluIGxvY2FsZXMgcHJlZGF0aW5nIFVuaWNvZGUgNC4wLjAgKEFwcmlsIDIwMDMpLiAgKi8K KyAgICAweDAzRjIsCisKKyAgICAweDAzRjUsIDB4MUU5QiwgMHgxRkJFLAorICB9OworCitz dGF0aWNfYXNzZXJ0ICgoc2l6ZW9mIGxvbmVzb21lX2xvd2VyIC8gc2l6ZW9mICpsb25lc29t ZV9sb3dlciArIDIKKyAgICAgICAgICAgICAgICA9PSBDQVNFX0ZPTERFRF9CVUZTSVpFKSwK KyAgICAgICAgICAgICAgICJDQVNFX0ZPTERFRF9CVUZTSVpFIGlzIHdyb25nIik7CisKKy8q IEZpbmQgdGhlIGNoYXJhY3RlcnMgZXF1YWwgdG8gQyBhZnRlciBjYXNlLWZvbGRpbmcsIG90 aGVyIHRoYW4gQworICAgaXRzZWxmLCBhbmQgc3RvcmUgdGhlbSBpbnRvIEZPTERFRC4gIFJl dHVybiB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMKKyAgIHN0b3JlZC4gICovCitpbnQKK2Nh c2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2NoYXJfdCBjLCB3Y2hhcl90IGZvbGRlZFtDQVNF X0ZPTERFRF9CVUZTSVpFXSkKK3sKKyAgaW50IGk7CisgIGludCBuID0gMDsKKyAgd2ludF90 IHVjID0gdG93dXBwZXIgKGMpOworICB3aW50X3QgbGMgPSB0b3dsb3dlciAodWMpOworICBp ZiAodWMgIT0gYykKKyAgICBmb2xkZWRbbisrXSA9IHVjOworICBpZiAobGMgIT0gdWMgJiYg bGMgIT0gYyAmJiB0b3d1cHBlciAobGMpID09IHVjKQorICAgIGZvbGRlZFtuKytdID0gbGM7 CisgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YgbG9uZXNvbWVfbG93ZXIgLyBzaXplb2YgKmxv bmVzb21lX2xvd2VyOyBpKyspCisgICAgeworICAgICAgd2ludF90IGxpID0gbG9uZXNvbWVf bG93ZXJbaV07CisgICAgICBpZiAobGkgIT0gbGMgJiYgbGkgIT0gdWMgJiYgbGkgIT0gYyAm JiB0b3d1cHBlciAobGkpID09IHVjKQorICAgICAgICBmb2xkZWRbbisrXSA9IGxpOworICAg IH0KKyAgcmV0dXJuIG47Cit9CisKIHR5cGVkZWYgaW50IHByZWRpY2F0ZSAoaW50KTsKIAog LyogVGhlIGZvbGxvd2luZyBsaXN0IG1hcHMgdGhlIG5hbWVzIG9mIHRoZSBQb3NpeCBuYW1l ZCBjaGFyYWN0ZXIgY2xhc3NlcwpAQCAtMTA1OCw3ICsxMDkwLDcgQEAgcGFyc2VfYnJhY2tl dF9leHAgKHZvaWQpCiAKICAgICAgICAgICAgICAgICAgIGZvciAoYzIgPSAwOyBjMiA8IE5P VENIQVI7ICsrYzIpCiAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVkLT5mdW5jIChjMikp Ci0gICAgICAgICAgICAgICAgICAgICAgc2V0Yml0X2Nhc2VfZm9sZF9jIChjMiwgY2NsKTsK KyAgICAgICAgICAgICAgICAgICAgICBzZXRiaXQgKGMyLCBjY2wpOwogICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGtub3duX2JyYWNr ZXRfZXhwID0gZmFsc2U7CkBAIC0xMTI1LDggKzExNTcsMjEgQEAgcGFyc2VfYnJhY2tldF9l eHAgKHZvaWQpCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAg ICAgICAgICAgICAgIGVsc2UgaWYgKHVzaW5nX3NpbXBsZV9sb2NhbGUgKCkpCi0gICAgICAg ICAgICAgICAgZm9yICg7IGMgPD0gYzI7IGMrKykKLSAgICAgICAgICAgICAgICAgIHNldGJp dF9jYXNlX2ZvbGRfYyAoYywgY2NsKTsKKwkJeworICAgICAgICAgICAgICAgICAgZm9yIChj MSA9IGM7IGMxIDw9IGMyOyBjMSsrKQorICAgICAgICAgICAgICAgICAgICBzZXRiaXQgKGMx LCBjY2wpOworICAgICAgICAgICAgICAgICAgaWYgKGNhc2VfZm9sZCkKKyAgICAgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgIGludCB1YyA9IHRvdXBwZXIgKGMp OworICAgICAgICAgICAgICAgICAgICAgIGludCB1YzIgPSB0b3VwcGVyIChjMik7CisgICAg ICAgICAgICAgICAgICAgICAgZm9yIChjMSA9IDA7IGMxIDwgTk9UQ0hBUjsgYzErKykKKyAg ICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IHVjMSA9IHRvdXBwZXIgKGMxKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVj IDw9IHVjMSAmJiB1YzEgPD0gdWMyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl dGJpdCAoYzEsIGNjbCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UKICAg ICAgICAgICAgICAgICBrbm93bl9icmFja2V0X2V4cCA9IGZhbHNlOwogCkBAIC0xMTQ1LDI2 ICsxMTkwLDIyIEBAIHBhcnNlX2JyYWNrZXRfZXhwICh2b2lkKQogCiAgICAgICBpZiAoTUJf Q1VSX01BWCA9PSAxKQogICAgICAgICB7Ci0gICAgICAgICAgc2V0Yml0X2Nhc2VfZm9sZF9j IChjLCBjY2wpOworICAgICAgICAgIGlmIChjYXNlX2ZvbGQpCisgICAgICAgICAgICBzZXRi aXRfY2FzZV9mb2xkX2MgKGMsIGNjbCk7CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAg c2V0Yml0IChjLCBjY2wpOwogICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAg ICAgIGlmIChjYXNlX2ZvbGQpCiAgICAgICAgIHsKLSAgICAgICAgICB3aW50X3QgZm9sZGVk ID0gdG93bG93ZXIgKHdjKTsKLSAgICAgICAgICBpZiAoZm9sZGVkICE9IHdjICYmICFzZXRi aXRfd2MgKGZvbGRlZCwgY2NsKSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgUkVB TExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5jaGFycywgY2hhcnNfYWwsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrX21iYy0+bmNoYXJzICsgMSk7Ci0g ICAgICAgICAgICAgIHdvcmtfbWJjLT5jaGFyc1t3b3JrX21iYy0+bmNoYXJzKytdID0gZm9s ZGVkOwotICAgICAgICAgICAgfQotICAgICAgICAgIGZvbGRlZCA9IHRvd3VwcGVyICh3Yyk7 Ci0gICAgICAgICAgaWYgKGZvbGRlZCAhPSB3YyAmJiAhc2V0Yml0X3djIChmb2xkZWQsIGNj bCkpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIFJFQUxMT0NfSUZfTkVDRVNTQVJZ ICh3b3JrX21iYy0+Y2hhcnMsIGNoYXJzX2FsLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd29ya19tYmMtPm5jaGFycyArIDEpOwotICAgICAgICAgICAgICB3b3Jr X21iYy0+Y2hhcnNbd29ya19tYmMtPm5jaGFycysrXSA9IGZvbGRlZDsKLSAgICAgICAgICAg IH0KKyAgICAgICAgICB3Y2hhcl90IGZvbGRlZFtDQVNFX0ZPTERFRF9CVUZTSVpFXTsKKyAg ICAgICAgICBpbnQgaSwgbiA9IGNhc2VfZm9sZGVkX2NvdW50ZXJwYXJ0cyAod2MsIGZvbGRl ZCk7CisgICAgICAgICAgUkVBTExPQ19JRl9ORUNFU1NBUlkgKHdvcmtfbWJjLT5jaGFycywg Y2hhcnNfYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfbWJjLT5u Y2hhcnMgKyBuKTsKKyAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorICAgICAg ICAgICAgaWYgKCFzZXRiaXRfd2MgKGZvbGRlZFtpXSwgY2NsKSkKKyAgICAgICAgICAgICAg d29ya19tYmMtPmNoYXJzW3dvcmtfbWJjLT5uY2hhcnMrK10gPSBmb2xkZWRbaV07CiAgICAg ICAgIH0KICAgICAgIGlmICghc2V0Yml0X3djICh3YywgY2NsKSkKICAgICAgICAgewpAQCAt MTUxMCw3ICsxNTUxLDcgQEAgbGV4ICh2b2lkKQogICAgICAgICAgIGlmIChNQl9DVVJfTUFY ID4gMSkKICAgICAgICAgICAgIHJldHVybiBsYXN0dG9rID0gV0NIQVI7CiAKLSAgICAgICAg ICBpZiAoY2FzZV9mb2xkICYmICh0b2xvd2VyIChjKSAhPSBjIHx8IHRvdXBwZXIgKGMpICE9 IGMpKQorICAgICAgICAgIGlmIChjYXNlX2ZvbGQgJiYgaXNhbHBoYSAoYykpCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgIHplcm9zZXQgKGNjbCk7CiAgICAgICAgICAgICAgIHNl dGJpdF9jYXNlX2ZvbGRfYyAoYywgY2NsKTsKQEAgLTE3NTcsMTggKzE3OTgsMTQgQEAgYXRv bSAodm9pZCkKICAgaWYgKE1CU19TVVBQT1JUICYmIHRvayA9PSBXQ0hBUikKICAgICB7CiAg ICAgICBhZGR0b2tfd2MgKHdjdG9rKTsKKwogICAgICAgaWYgKGNhc2VfZm9sZCkKICAgICAg ICAgewotICAgICAgICAgIHdpbnRfdCBmb2xkZWQgPSB0b3dsb3dlciAod2N0b2spOwotICAg ICAgICAgIGlmIChmb2xkZWQgIT0gd2N0b2spCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgIGFkZHRva193YyAoZm9sZGVkKTsKLSAgICAgICAgICAgICAgYWRkdG9rIChPUik7Ci0g ICAgICAgICAgICB9Ci0gICAgICAgICAgZm9sZGVkID0gdG93dXBwZXIgKHdjdG9rKTsKLSAg ICAgICAgICBpZiAoZm9sZGVkICE9IHdjdG9rKQorICAgICAgICAgIHdjaGFyX3QgZm9sZGVk W0NBU0VfRk9MREVEX0JVRlNJWkVdOworICAgICAgICAgIGludCBpLCBuID0gY2FzZV9mb2xk ZWRfY291bnRlcnBhcnRzICh3Y3RvaywgZm9sZGVkKTsKKyAgICAgICAgICBmb3IgKGkgPSAw OyBpIDwgbjsgaSsrKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICBhZGR0b2tfd2Mg KGZvbGRlZCk7CisgICAgICAgICAgICAgIGFkZHRva193YyAoZm9sZGVkW2ldKTsKICAgICAg ICAgICAgICAgYWRkdG9rIChPUik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAt LWdpdCBhL3NyYy9kZmEuaCBiL3NyYy9kZmEuaAppbmRleCA3ZTA2NzRmLi5hZDJiODU0IDEw MDY0NAotLS0gYS9zcmMvZGZhLmgKKysrIGIvc3JjL2RmYS5oCkBAIC0xMDEsMyArMTAxLDEx IEBAIGV4dGVybiB2b2lkIGRmYXdhcm4gKGNvbnN0IGNoYXIgKik7CiBleHRlcm4gX05vcmV0 dXJuIHZvaWQgZGZhZXJyb3IgKGNvbnN0IGNoYXIgKik7CiAKIGV4dGVybiBpbnQgdXNpbmdf dXRmOCAodm9pZCk7CisKKy8qIE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCBj YW4gYmUgdGhlIGNhc2UtZm9sZGVkCisgICBjb3VudGVycGFydHMgb2YgYSBzaW5nbGUgY2hh cmFjdGVyLCBub3QgY291bnRpbmcgdGhlIGNoYXJhY3RlcgorICAgaXRzZWxmLiAgVGhpcyBp cyAxIGZvciB0b3d1cHBlciwgMSBmb3IgdG93bG93ZXIsIGFuZCAxIGZvciBlYWNoCisgICBl bnRyeSBpbiBMT05FU09NRV9MT1dFUjsgc2VlIGRmYS5jLiAgKi8KK2VudW0geyBDQVNFX0ZP TERFRF9CVUZTSVpFID0gMSArIDEgKyAxOSB9OworCitpbnQgY2FzZV9mb2xkZWRfY291bnRl cnBhcnRzICh3Y2hhcl90LCB3Y2hhcl90W0NBU0VfRk9MREVEX0JVRlNJWkVdKTsKZGlmZiAt LWdpdCBhL3NyYy9tYWluLmMgYi9zcmMvbWFpbi5jCmluZGV4IDgwOGU0N2EuLjRmOGYxZWYg MTAwNjQ0Ci0tLSBhL3NyYy9tYWluLmMKKysrIGIvc3JjL21haW4uYwpAQCAtMTg5MiwxMSAr MTg5MiwxMiBAQCB0cml2aWFsX2Nhc2VfaWdub3JlIChzaXplX3QgbGVuLCBjaGFyIGNvbnN0 ICprZXlzLAogICAgIHJldHVybiBmYWxzZTsKIAogICAvKiBXb3JzdCBjYXNlIGlzIHRoYXQg ZWFjaCBieXRlIEIgb2YgS0VZUyBpcyBBU0NJSSBhbHBoYWJldGljIGFuZAotICAgICB0aGUg dHdvIG90aGVyX2Nhc2UoQikgY2hhcmFjdGVycywgQyBhbmQgRCwgZWFjaCBvY2N1cGllcwot ICAgICBNQl9DVVJfTUFYIGJ5dGVzLCBzbyBlYWNoIEIgbWFwcyB0byBbQkNEXSwgd2hpY2gg cmVxdWlyZXMgMiAqCi0gICAgIE1CX0NVUl9NQVggKyAzIGJ5dGVzOyB0aGlzIGlzIGJvdW5k ZWQgYWJvdmUgYnkgdGhlIGNvbnN0YW50Ci0gICAgIGV4cHJlc3Npb24gMiAqIE1CX0xFTl9N QVggKyAzLiAgKi8KLSAgKm5ld19rZXlzID0geG5tYWxsb2MgKGxlbiArIDEsIDIgKiBNQl9M RU5fTUFYICsgMyk7CisgICAgIENBU0VfRk9MREVEX0JVRlNJWkUgb3RoZXJfY2FzZShCKSBj aGFyYWN0ZXJzLCBDIHRocm91Z2ggWiwgZWFjaAorICAgICBvY2N1cHlpbmcgTUJfQ1VSX01B WCBieXRlcywgc28gZWFjaCBCIG1hcHMgdG8gW0JDLi4uWl0sIHdoaWNoCisgICAgIHJlcXVp cmVzIENBU0VfRk9MREVEX0JVRlNJWkUgKiBNQl9DVVJfTUFYICsgMyBieXRlczsgdGhpcyBp cworICAgICBib3VuZGVkIGFib3ZlIGJ5IHRoZSBjb25zdGFudCBleHByZXNzaW9uIENBU0Vf Rk9MREVEX0JVRlNJWkUgKgorICAgICBNQl9MRU5fTUFYICsgMy4gICovCisgICpuZXdfa2V5 cyA9IHhubWFsbG9jIChsZW4gKyAxLCBDQVNFX0ZPTERFRF9CVUZTSVpFICogTUJfTEVOX01B WCArIDMpOwogICBjaGFyICpwID0gKm5ld19rZXlzOwogCiAgIG1ic3RhdGVfdCBtYl9zdGF0 ZSA9IHsgMCB9OwpAQCAtMTkxOCw5ICsxOTE5LDkgQEAgdHJpdmlhbF9jYXNlX2lnbm9yZSAo c2l6ZV90IGxlbiwgY2hhciBjb25zdCAqa2V5cywKICAgICAgIGtleXMgKz0gbjsKICAgICAg IGxlbiAtPSBuOwogCi0gICAgICB3aW50X3QgbGMgPSB0b3dsb3dlciAod2MpOwotICAgICAg d2ludF90IHVjID0gdG93dXBwZXIgKHdjKTsKLSAgICAgIGlmIChsYyA9PSB3YyAmJiB1YyA9 PSB3YykKKyAgICAgIHdjaGFyX3QgZm9sZGVkW0NBU0VfRk9MREVEX0JVRlNJWkVdOworICAg ICAgaW50IG5mb2xkZWQgPSBjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMgKHdjLCBmb2xkZWQp OworICAgICAgaWYgKG5mb2xkZWQgPD0gMCkKICAgICAgICAgewogICAgICAgICAgIG1lbWNw eSAocCwgb3JpZywgbik7CiAgICAgICAgICAgcCArPSBuOwpAQCAtMTkzMywyMCArMTkzNCwx OCBAQCB0cml2aWFsX2Nhc2VfaWdub3JlIChzaXplX3QgbGVuLCBjaGFyIGNvbnN0ICprZXlz LAogICAgICAgICAgIG1lbWNweSAocCwgb3JpZywgbik7CiAgICAgICAgICAgcCArPSBuOwog Ci0gICAgICAgICAgaWYgKGxjICE9IHdjKQotICAgICAgICAgICAgewotICAgICAgICAgICAg ICBzaXplX3QgbGNieXRlcyA9IFdDUlRPTUIgKHAsIGxjLCAmbWJfc3RhdGUpOwotICAgICAg ICAgICAgICBpZiAobGNieXRlcyA9PSAoc2l6ZV90KSAtMSkKLSAgICAgICAgICAgICAgICBn b3RvIHNraXBfY2FzZV9pZ25vcmVfb3B0aW1pemF0aW9uOwotICAgICAgICAgICAgICBwICs9 IGxjYnl0ZXM7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKHVjICE9IHdjKQorICAg ICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICBkbwogICAgICAgICAgICAgewotICAgICAg ICAgICAgICBzaXplX3QgdWNieXRlcyA9IFdDUlRPTUIgKHAsIHVjLCAmbWJfc3RhdGUpOwot ICAgICAgICAgICAgICBpZiAodWNieXRlcyA9PSAoc2l6ZV90KSAtMSB8fCAhIG1ic2luaXQg KCZtYl9zdGF0ZSkpCisgICAgICAgICAgICAgIHNpemVfdCBuYnl0ZXMgPSBXQ1JUT01CIChw LCBmb2xkZWRbaV0sICZtYl9zdGF0ZSk7CisgICAgICAgICAgICAgIGlmIChuYnl0ZXMgPT0g KHNpemVfdCkgLTEpCiAgICAgICAgICAgICAgICAgZ290byBza2lwX2Nhc2VfaWdub3JlX29w dGltaXphdGlvbjsKLSAgICAgICAgICAgICAgcCArPSB1Y2J5dGVzOworICAgICAgICAgICAg ICBwICs9IG5ieXRlczsKICAgICAgICAgICAgIH0KKyAgICAgICAgICB3aGlsZSAoKytpIDwg bmZvbGRlZCk7CisKKyAgICAgICAgICBpZiAoISBtYnNpbml0ICgmbWJfc3RhdGUpKQorICAg ICAgICAgICAgZ290byBza2lwX2Nhc2VfaWdub3JlX29wdGltaXphdGlvbjsKIAogICAgICAg ICAgICpwKysgPSAnXSc7CiAgICAgICAgIH0KQEAgLTIzNTEsMTYgKzIzNTAsMTYgQEAgbWFp biAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBlbHNlCiAgICAgdXNhZ2UgKEVYSVRfVFJP VUJMRSk7CiAKLSAgLyogQXMgY3VycmVudGx5IGltcGxlbWVudGVkLCBjYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIGlzIGV4cGVuc2l2ZSBpbgotICAgICBtdWx0aS1ieXRlIGxvY2FsZXMg YmVjYXVzZSBvZiBhIGZldyBvdXRsaWVyIGxvY2FsZXMgaW4gd2hpY2ggc29tZQotICAgICBj aGFyYWN0ZXJzIGNoYW5nZSBzaXplIHdoZW4gY29udmVydGVkIHRvIHVwcGVyIG9yIGxvd2Vy IGNhc2UuICBUbwotICAgICBhY2NvbW1vZGF0ZSB0aG9zZSwgd2UgcmV2ZXJ0IHRvIHNlYXJj aGluZyB0aGUgaW5wdXQgb25lIGxpbmUgYXQgYQotICAgICB0aW1lLCByYXRoZXIgdGhhbiB1 c2luZyB0aGUgbXVjaCBtb3JlIGVmZmljaWVudCBidWZmZXIgc2VhcmNoLgotICAgICBIb3dl dmVyLCBpZiB3ZSBoYXZlIGEgcmVndWxhciBleHByZXNzaW9uLCAvZm9vL2ksIHdlIGNhbiBj b252ZXJ0Ci0gICAgIGl0IHRvIGFuIGVxdWl2YWxlbnQgY2FzZS1pbnNlbnNpdGl2ZSAvW2ZG XVtvT11bb09dLywgYW5kIHRodXMKLSAgICAgYXZvaWQgdGhlIGV4cGVuc2l2ZSByZWFkLWFu ZC1wcm9jZXNzLWEtbGluZS1hdC1hLXRpbWUgcmVxdWlyZW1lbnQuCi0gICAgIE9wdGltaXpl LWF3YXkgdGhlICItaSIgb3B0aW9uLCB3aGVuIHBvc3NpYmxlLCBjb252ZXJ0aW5nIGVhY2gK LSAgICAgY2FuZGlkYXRlIGFscGhhLCBDLCBpbiB0aGUgcmVnZXhwIHRvIFtDY10uICAqLwor ICAvKiBDYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5nIGlzIGV4cGVuc2l2ZSBpbiBtdWx0aWJ5 dGUgbG9jYWxlcworICAgICBiZWNhdXNlIGEgZmV3IGNoYXJhY3RlcnMgbWF5IGNoYW5nZSBz aXplIHdoZW4gY29udmVydGVkIHRvIHVwcGVyCisgICAgIG9yIGxvd2VyIGNhc2UuICBUbyBh Y2NvbW1vZGF0ZSB0aG9zZSwgc2VhcmNoIHRoZSBpbnB1dCBvbmUgbGluZQorICAgICBhdCBh IHRpbWUsIHJhdGhlciB0aGFuIHVzaW5nIHRoZSBtdWNoIG1vcmUgZWZmaWNpZW50IGJ1ZmZl ciBzZWFyY2guCisKKyAgICAgVHJ5IHRvIGNvbnZlcnQgYSByZWd1bGFyIGV4cHJlc3Npb24g J2ZvbycgKGlnbm9yaW5nIGNhc2UpIHRvIGFuCisgICAgIGVxdWl2YWxlbnQgcmVndWxhciBl eHByZXNzaW9uICdbZkZdW29PXVtvT10nICh3aGVyZSBjYXNlIG1hdHRlcnMpLgorICAgICBO b3Qgb25seSBkb2VzIHRoaXMgYXZvaWQgdGhlIGV4cGVuc2l2ZSByZXF1aXJlbWVudCB0byBy ZWFkIGFuZAorICAgICBwcm9jZXNzIGEgbGluZSBhdCBhIHRpbWUsIGl0IGFsc28gYWxsb3dz IHVzZSBvZiB0aGUga3dzZXQgZW5naW5lLAorICAgICBhIHdpbiBpbiBub24tVVRGLTggbXVs dGlieXRlIGxvY2FsZXMuICAqLwogICBpZiAobWF0Y2hfaWNhc2UpCiAgICAgewogICAgICAg c2l6ZV90IG5ld19rZXljYzsKZGlmZiAtLWdpdCBhL3Rlc3RzL2Nhc2UtZm9sZC10aXRsZWNh c2UgYi90ZXN0cy9jYXNlLWZvbGQtdGl0bGVjYXNlCmluZGV4IDBlY2U1YzguLmYxNjAyMmIg MTAwNzU1Ci0tLSBhL3Rlc3RzL2Nhc2UtZm9sZC10aXRsZWNhc2UKKysrIGIvdGVzdHMvY2Fz ZS1mb2xkLXRpdGxlY2FzZQpAQCAtMSw1ICsxLDUgQEAKICMhL2Jpbi9zaAotIyBDaGVjayB0 aGF0IGNhc2UgZm9sZGluZyB3b3JrcyBldmVuIHdpdGggdGl0bGVjYXNlIGNoYXJhY3RlcnMu CisjIENoZWNrIHRoYXQgY2FzZSBmb2xkaW5nIHdvcmtzIGV2ZW4gd2l0aCB0aXRsZWNhc2Ug YW5kIHNpbWlsYXJseSBvZGQgY2hhcnMuCiAKICMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKQEAgLTI1LDE3ICsyNSwxNjIgQEAgZXhwb3J0IExD X0FMTAogCiBmYWlsPTAKIAotTEo9J1wzMDdcMjA3JyAjIFUrMDFDNyBMQVRJTiBDQVBJVEFM IExFVFRFUiBMSgotTGo9J1wzMDdcMjEwJyAjIFUrMDFDOCBMQVRJTiBDQVBJVEFMIExFVFRF UiBMIFdJVEggU01BTEwgTEVUVEVSIEoKLWxqPSdcMzA3XDIxMScgIyBVKzAxQzkgTEFUSU4g U01BTEwgTEVUVEVSIExKCi1wYXR0ZXJuPSQocHJpbnRmICIkTGpcbiIpIHx8IGZyYW1ld29y a19mYWlsdXJlXwotcHJpbnRmICIkbGokbGpcbiRMaiRMalxuJExKJExKXG4iID5pbiB8fCBm cmFtZXdvcmtfZmFpbHVyZV8KK2ZvciB0ZXN0Y2FzZSBpbiBcCisgIDAgMSAyIDMgNCA1IDYg NyA4IDkgMTAgMTEgMTIgMTMgMTQgMTUgMTYgMTcgMTggMTkgMjAgMjEgMjIgMjMgMjQKK2Rv CisgIGNhc2UgJHRlc3RjYXNlIGluCisgICAgMCkKKyAgICAgIGE9J1wzMDJcMjY1JyAgICAg IyBVKzAwQjUKKyAgICAgIGI9J1wzMTZcMjM0JyAgICAgIyBVKzAzOUMKKyAgICAgIGM9J1wz MTZcMjc0JyAgICAgIyBVKzAzQkMKKyAgICAgIDs7CisgICAgMSkKKyAgICAgIGE9J1wxMTEn ICAgICAgICAgIyBVKzAwNDkKKyAgICAgIGI9J1wxNTEnICAgICAgICAgIyBVKzAwNjkKKyAg ICAgIGM9J1wzMDRcMjYwJyAgICAgIyBVKzAxMzAKKyAgICAgIDs7CisgICAgMikKKyAgICAg IGE9J1wxMTEnICAgICAgICAgIyBVKzAwNDkKKyAgICAgIGI9J1wxNTEnICAgICAgICAgIyBV KzAwNjkKKyAgICAgIGM9J1wzMDRcMjYxJyAgICAgIyBVKzAxMzEKKyAgICAgIDs7CisgICAg MykKKyAgICAgIGE9J1wxMjMnICAgICAgICAgIyBVKzAwNTMKKyAgICAgIGI9J1wxNjMnICAg ICAgICAgIyBVKzAwNzMKKyAgICAgIGM9J1wzMDVcMjc3JyAgICAgIyBVKzAxN0YKKyAgICAg IDs7CisgICAgNCkKKyAgICAgIGE9J1wzMDdcMjA0JyAgICAgIyBVKzAxQzQKKyAgICAgIGI9 J1wzMDdcMjA1JyAgICAgIyBVKzAxQzUKKyAgICAgIGM9J1wzMDdcMjA2JyAgICAgIyBVKzAx QzYKKyAgICAgIDs7CisgICAgNSkKKyAgICAgIGE9J1wzMDdcMjA3JyAgICAgIyBVKzAxQzcK KyAgICAgIGI9J1wzMDdcMjEwJyAgICAgIyBVKzAxQzgKKyAgICAgIGM9J1wzMDdcMjExJyAg ICAgIyBVKzAxQzkKKyAgICAgIDs7CisgICAgNikKKyAgICAgIGE9J1wzMDdcMjEyJyAgICAg IyBVKzAxQ0EKKyAgICAgIGI9J1wzMDdcMjEzJyAgICAgIyBVKzAxQ0IKKyAgICAgIGM9J1wz MDdcMjE0JyAgICAgIyBVKzAxQ0MKKyAgICAgIDs7CisgICAgNykKKyAgICAgIGE9J1wzMDdc MjYxJyAgICAgIyBVKzAxRjEKKyAgICAgIGI9J1wzMDdcMjYyJyAgICAgIyBVKzAxRjIKKyAg ICAgIGM9J1wzMDdcMjYzJyAgICAgIyBVKzAxRjMKKyAgICAgIDs7CisgICAgOCkKKyAgICAg IGE9J1wzMTVcMjA1JyAgICAgIyBVKzAzNDUKKyAgICAgIGI9J1wzMTZcMjMxJyAgICAgIyBV KzAzOTkKKyAgICAgIGM9J1wzMTZcMjcxJyAgICAgIyBVKzAzQjkKKyAgICAgIDs7CisgICAg OSkKKyAgICAgIGE9J1wzMTZcMjQzJyAgICAgIyBVKzAzQTMKKyAgICAgIGI9J1wzMTdcMjAy JyAgICAgIyBVKzAzQzIKKyAgICAgIGM9J1wzMTdcMjAzJyAgICAgIyBVKzAzQzMKKyAgICAg IDs7CisgICAgMTApCisgICAgICBhPSdcMzE2XDIyMicgICAgICMgVSswMzkyCisgICAgICBi PSdcMzE2XDI2MicgICAgICMgVSswM0IyCisgICAgICBjPSdcMzE3XDIyMCcgICAgICMgVSsw M0QwCisgICAgICA7OworICAgIDExKQorICAgICAgYT0nXDMxNlwyMzAnICAgICAjIFUrMDM5 OAorICAgICAgYj0nXDMxNlwyNzAnICAgICAjIFUrMDNCOAorICAgICAgYz0nXDMxN1wyMjEn ICAgICAjIFUrMDNEMQorICAgICAgOzsKKyAgICAxMikKKyAgICAgIGE9J1wzMTZcMjQ2JyAg ICAgIyBVKzAzQTYKKyAgICAgIGI9J1wzMTdcMjA2JyAgICAgIyBVKzAzQzYKKyAgICAgIGM9 J1wzMTdcMjI1JyAgICAgIyBVKzAzRDUKKyAgICAgIDs7CisgICAgMTMpCisgICAgICBhPSdc MzE2XDI0MCcgICAgICMgVSswM0EwCisgICAgICBiPSdcMzE3XDIwMCcgICAgICMgVSswM0Mw CisgICAgICBjPSdcMzE3XDIyNicgICAgICMgVSswM0Q2CisgICAgICA7OworICAgIDE0KQor ICAgICAgYT0nXDMxNlwyMzInICAgICAjIFUrMDM5QQorICAgICAgYj0nXDMxNlwyNzInICAg ICAjIFUrMDNCQQorICAgICAgYz0nXDMxN1wyNjAnICAgICAjIFUrMDNGMAorICAgICAgOzsK KyAgICAxNSkKKyAgICAgIGE9J1wzMTZcMjQxJyAgICAgIyBVKzAzQTEKKyAgICAgIGI9J1wz MTdcMjAxJyAgICAgIyBVKzAzQzEKKyAgICAgIGM9J1wzMTdcMjYxJyAgICAgIyBVKzAzRjEK KyAgICAgIDs7CisgICAgMTYpCisgICAgICBhPSdcMzE2XDIzMCcgICAgICMgVSswMzk4Cisg ICAgICBiPSdcMzE2XDI3MCcgICAgICMgVSswM0I4CisgICAgICBjPSdcMzE3XDI2NCcgICAg ICMgVSswM0Y0CisgICAgICA7OworICAgIDE3KQorICAgICAgYT0nXDMxNlwyMjUnICAgICAj IFUrMDM5NQorICAgICAgYj0nXDMxNlwyNjUnICAgICAjIFUrMDNCNQorICAgICAgYz0nXDMx N1wyNjUnICAgICAjIFUrMDNGNQorICAgICAgOzsKKyAgICAxOCkKKyAgICAgIGE9J1wzNDFc MjcxXDI0MCcgIyBVKzFFNjAKKyAgICAgIGI9J1wzNDFcMjcxXDI0MScgIyBVKzFFNjEKKyAg ICAgIGM9J1wzNDFcMjcyXDIzMycgIyBVKzFFOUIKKyAgICAgIDs7CisgICAgMTkpCisgICAg ICBhPSdcMzAzXDIzNycgICAgICMgVSswMERGCisgICAgICBiPSdcMzAzXDIzNycgICAgICMg VSswMERGCisgICAgICBjPSdcMzQxXDI3MlwyMzYnICMgVSsxRTlFCisgICAgICA7OworICAg IDIwKQorICAgICAgYT0nXDMxNlwyMzEnICAgICAjIFUrMDM5OQorICAgICAgYj0nXDMxNlwy NzEnICAgICAjIFUrMDNCOQorICAgICAgYz0nXDM0MVwyNzZcMjc2JyAjIFUrMUZCRQorICAg ICAgOzsKKyAgICAyMSkKKyAgICAgIGE9J1wzMTZcMjUxJyAgICAgIyBVKzAzQTkKKyAgICAg IGI9J1wzMTdcMjExJyAgICAgIyBVKzAzQzkKKyAgICAgIGM9J1wzNDJcMjA0XDI0NicgIyBV KzIxMjYKKyAgICAgIDs7CisgICAgMjIpCisgICAgICBhPSdcMTEzJyAgICAgICAgICMgVSsw MDRCCisgICAgICBiPSdcMTUzJyAgICAgICAgICMgVSswMDZCCisgICAgICBjPSdcMzQyXDIw NFwyNTInICMgVSsyMTJBCisgICAgICA7OworICAgIDIzKQorICAgICAgYT0nXDMwM1wyMDUn ICAgICAjIFUrMDBDNQorICAgICAgYj0nXDMwM1wyNDUnICAgICAjIFUrMDBFNQorICAgICAg Yz0nXDM0MlwyMDRcMjUzJyAjIFUrMjEyQgorICAgICAgOzsKKyAgICAyNCkKKyAgICAgIGE9 J1wzMTZcMjQzJyAgICAgIyBVKzAzQTMKKyAgICAgIGI9J1wzMTdcMjAzJyAgICAgIyBVKzAz QzMKKyAgICAgIGM9J1wzMTdcMjYyJyAgICAgIyBVKzAzRjIKKyAgICAgIDs7CisgIGVzYWMK IAotZ3JlcCAtaSAiJHBhdHRlcm4iIGluID5vdXQgfHwgZmFpbD0xCi1jb21wYXJlIGluIG91 dCB8fCBmYWlsPTEKKyAgcHJpbnRmICIkYVxcbiRiXFxuJGNcXG4iID5pbiB8fCBmcmFtZXdv cmtfZmFpbHVyZV8KKyAgZm9yIHBhdHRlcm4gaW4gIiRhIiAiJGIiICIkYyI7IGRvCisgICAg IHBhdD0kKHByaW50ZiAiJHBhdHRlcm5cXG4iKSB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KKyAg ICAgZ3JlcCAtaSAiXFwoXFwpXFwxJHBhdCIgaW4gPm91dC1yZWdleCB8fCBmYWlsPTEKKyAg ICAgZ3JlcCAtaSAiJHBhdCIgaW4gPm91dC1kZmEgfHwgZmFpbD0xCisgICAgIGNvbXBhcmVf IG91dC1yZWdleCBvdXQtZGZhIHx8IGZhaWw9MQorICBkb25lCitkb25lCiAKLXBhdHRlcm49 IigkcGF0dGVybilcXDEiCi1ncmVwIC1FaSAiJHBhdHRlcm4iIGluID5vdXQgfHwgZmFpbD0x Ci1jb21wYXJlIGluIG91dCB8fCBmYWlsPTEKKyMgVHJ5IGEgdW5pYnl0ZSB0ZXN0IHdpdGgg SVNPIDg4NTktNywgaWYgYXZhaWxhYmxlLgoraWYgdGVzdCAiJChnZXQtbWItY3VyLW1heCBl bF9HUi5pc284ODU5NykiIC1lcSAxOyB0aGVuCisgIExDX0FMTD1lbF9HUi5pc284ODU5Nwor ICBleHBvcnQgTENfQUxMCisKKyAgYT0nXDMyMycgIyBTSUdNQQorICBiPSdcMzYyJyAjIHN0 aWdtYQorICBjPSdcMzYzJyAjIHNpZ21hCisKKyAgcHJpbnRmICIkYVxcbiRiXFxuJGNcXG4i ID5pbiB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KKyAgZm9yIHBhdHRlcm4gaW4gIiRhIiAiJGIi ICIkYyI7IGRvCisgICAgIHBhdD0kKHByaW50ZiAiJHBhdHRlcm5cXG4iKSB8fCBmcmFtZXdv cmtfZmFpbHVyZV8KKyAgICAgZ3JlcCAtaSAiXFwoXFwpXFwxJHBhdCIgaW4gPm91dC1yZWdl eCB8fCBmYWlsPTEKKyAgICAgZ3JlcCAtaSAiJHBhdCIgaW4gPm91dC1kZmEgfHwgZmFpbD0x CisgICAgIGNvbXBhcmVfIG91dC1yZWdleCBvdXQtZGZhIHx8IGZhaWw9MQorICBkb25lCitm aQogCiBFeGl0ICRmYWlsCi0tIAoxLjguNS4zCgo= --------------020301030509030903040607-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 07 22:23:20 2014 Received: (at 16919-done) by debbugs.gnu.org; 8 Mar 2014 03:23:20 +0000 Received: from localhost ([127.0.0.1]:55432 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM7r5-0007hj-W5 for submit@debbugs.gnu.org; Fri, 07 Mar 2014 22:23:20 -0500 Received: from mail-pd0-f176.google.com ([209.85.192.176]:61778) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM7r3-0007hb-Ks for 16919-done@debbugs.gnu.org; Fri, 07 Mar 2014 22:23:18 -0500 Received: by mail-pd0-f176.google.com with SMTP id r10so4806866pdi.7 for <16919-done@debbugs.gnu.org>; Fri, 07 Mar 2014 19:23:16 -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=bFnUOdeGhhIE3wbzl3tYG7XqKXt+s6/Jb9c088BS2oo=; b=H9QXHgmYU77/UPhEq8YFIHl/QYzbcBdX+hQrjemt27a7+NzRCqX2aSss0zpmkik+19 Ih0zBbn1/M7/QmvjHoAlq5ZW1EuzhMZIA4BVP7wTSUVYfnbO98k5MOsHs9aMMerRQaVD YGBtMrNuXn2+41m1lKqO8d7JsEYdCW8krILWheB37EU0eOfQ99DI6bxM57Rcjwklc4X1 15MT8ZzjBgi99HPJ37Mc2w8EnQwXvA3/ZmAJSUe7o19DOTVRRoXGHR7ExbgNVAWXuOiw pD1UBneMhsl/nwa7/h/WwD214b3yQe0AMS59PmgsgO/H7rpqPB/4aD44nNeIog9iRYHF Hauw== X-Received: by 10.66.145.166 with SMTP id sv6mr26394140pab.31.1394248996675; Fri, 07 Mar 2014 19:23:16 -0800 (PST) MIME-Version: 1.0 Received: by 10.68.201.231 with HTTP; Fri, 7 Mar 2014 19:22:56 -0800 (PST) In-Reply-To: <531A818E.8000207@cs.ucla.edu> References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> <20140304085656.6D95.27F6AC2D@kcn.ne.jp> <53157A4F.6050106@cs.ucla.edu> <531A818E.8000207@cs.ucla.edu> From: Jim Meyering Date: Fri, 7 Mar 2014 19:22:56 -0800 X-Google-Sender-Auth: JZqDuae37NtBqNMZkHMJob4O21U Message-ID: Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase To: Paul Eggert Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 16919-done Cc: 16919-done@debbugs.gnu.org, Aharon Robbins , 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.0 (/) On Fri, Mar 7, 2014 at 6:33 PM, Paul Eggert wrote: > Jim Meyering wrote: >> >> That is my preference, too. > > > OK, thanks, I installed the attached patch, which should do just that, and > I'm marking this bug as done. Impressive. After a first pass, I'd say it's perfect. Thanks a lot for all that fine work! From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 07 22:43:02 2014 Received: (at 16919-done) by debbugs.gnu.org; 8 Mar 2014 03:43:02 +0000 Received: from localhost ([127.0.0.1]:55438 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM8A9-0008HS-Qz for submit@debbugs.gnu.org; Fri, 07 Mar 2014 22:43:02 -0500 Received: from smtp.cs.ucla.edu ([131.179.128.62]:42974) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WM8A6-0008HE-T2 for 16919-done@debbugs.gnu.org; Fri, 07 Mar 2014 22:42:59 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 3F92A39E8011; Fri, 7 Mar 2014 19:42:58 -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 pWQXXr3CZ-tz; Fri, 7 Mar 2014 19:42:57 -0800 (PST) Received: from [192.168.1.9] (pool-108-0-233-62.lsanca.fios.verizon.net [108.0.233.62]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 2474D39E8008; Fri, 7 Mar 2014 19:42:57 -0800 (PST) Message-ID: <531A91C0.9050004@cs.ucla.edu> Date: Fri, 07 Mar 2014 19:42:56 -0800 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Jim Meyering Subject: Re: bug#16919: [PATCH] fix mismatch between dfa and regex for treatment of titlecase References: <53139675.70103@cs.ucla.edu> <53140D86.50008@cs.ucla.edu> <20140304085656.6D95.27F6AC2D@kcn.ne.jp> <53157A4F.6050106@cs.ucla.edu> <531A818E.8000207@cs.ucla.edu> In-Reply-To: Content-Type: multipart/mixed; boundary="------------070001040505060702000807" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 16919-done Cc: 16919-done@debbugs.gnu.org, Aharon Robbins , 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: -2.3 (--) This is a multi-part message in MIME format. --------------070001040505060702000807 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I noticed that fgrep disagreed with the regex code as well, so while I'm in the neighborhood I applied the attached patch. --------------070001040505060702000807 Content-Type: text/plain; charset=UTF-8; name="0001-fgrep-fix-case-fold-incompatibility-with-plain-grep.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-fgrep-fix-case-fold-incompatibility-with-plain-grep.pat"; filename*1="ch" RnJvbSAwZGM4MmQ4OTU4NTVmYjNmOWM5NWIxNDMxNWI5ODEzYTQ3ZmI3NDNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBGcmksIDcgTWFyIDIwMTQgMTk6NDA6MjggLTA4MDAKU3ViamVjdDogW1BBVENI XSBmZ3JlcDogZml4IGNhc2UtZm9sZCBpbmNvbXBhdGliaWxpdHkgd2l0aCBwbGFpbiAnZ3Jl cCcKCmZncmVwIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UsIHdoZXJlYXMgdGhlIHJlZ2V4IGNv ZGUgY29udmVydGVkCnRvIHVwcGVyY2FzZS4gIFRoZSByZXN1bHRpbmcgYmVoYXZpb3JzIGRv bid0IGFncmVlIGluIG9mZmJlYXQKY2FzZXMgbGlrZSBHcmVlayBzaWdtYXMgYW5kIFR1cmtp c2ggSXMuICBGaXggdGhpcyBieSBjaGFuZ2luZwpmZ3JlcCB0byBhZ3JlZSB3aXRoIHRoZSBy ZWdleCBjb2RlLgoqIHNyYy9rd3NlYXJjaC5jIChGY29tcGlsZSwgRmV4ZWN1dGUpOgoqIHNy Yy9zZWFyY2h1dGlscy5jIChrd3Npbml0LCBtYnRvdXBwZXIpOgpDb252ZXJ0IHRvIHVwcGVy Y2FzZSwgbm90IHRvIGxvd2VyY2FzZSwgZm9yIGNvbXBhdGliaWxpdHkgd2l0aApwbGFpbiAn Z3JlcCcuCiogc3JjL3NlYXJjaC5oLCBzcmMvc2VhcmNodXRpbHMuYyAobWJ0b3VwcGVyKToK UmVuYW1lIGZyb20gbWJ0b2xvd2VyLCBzaW5jZSBpdCBub3cgY29udmVydHMgdG8gdXBwZXJj YXNlLgpBbGwgdXNlcyBjaGFuZ2VkLgoqIHRlc3RzL2Nhc2UtZm9sZC10aXRsZWNhc2U6IEFk ZCB0ZXN0cyBmb3IgdGhpcy4KLS0tCiBzcmMva3dzZWFyY2guYyAgICAgICAgICAgIHwgIDYg KysrLS0tCiBzcmMvc2VhcmNoLmggICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9zZWFyY2h1 dGlscy5jICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0K IHRlc3RzL2Nhc2UtZm9sZC10aXRsZWNhc2UgfCAgNCArKysrCiA0IGZpbGVzIGNoYW5nZWQs IDI0IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9r d3NlYXJjaC5jIGIvc3JjL2t3c2VhcmNoLmMKaW5kZXggMDZmMGI3OS4uZGQwMTUxOCAxMDA2 NDQKLS0tIGEvc3JjL2t3c2VhcmNoLmMKKysrIGIvc3JjL2t3c2VhcmNoLmMKQEAgLTM2LDcg KzM2LDcgQEAgRmNvbXBpbGUgKGNoYXIgY29uc3QgKnBhdHRlcm4sIHNpemVfdCBzaXplKQog ICBzaXplX3QgcHNpemUgPSBzaXplOwogICBtYl9sZW5fbWFwX3QgKm1hcCA9IE5VTEw7CiAg IGNoYXIgY29uc3QgKnBhdCA9IChtYXRjaF9pY2FzZSAmJiBNQl9DVVJfTUFYID4gMQotICAg ICAgICAgICAgICAgICAgICAgPyBtYnRvbG93ZXIgKHBhdHRlcm4sICZwc2l6ZSwgJm1hcCkK KyAgICAgICAgICAgICAgICAgICAgID8gbWJ0b3VwcGVyIChwYXR0ZXJuLCAmcHNpemUsICZt YXApCiAgICAgICAgICAgICAgICAgICAgICA6IHBhdHRlcm4pOwogCiAgIGt3c2luaXQgKCZr d3NldCk7CkBAIC03NSw3ICs3NSw3IEBAIEZjb21waWxlIChjaGFyIGNvbnN0ICpwYXR0ZXJu LCBzaXplX3Qgc2l6ZSkKICAgICBlcnJvciAoRVhJVF9UUk9VQkxFLCAwLCAiJXMiLCBlcnIp OwogfQogCi0vKiBBcHBseSB0aGUgTUFQIChjcmVhdGVkIGJ5IG1idG9sb3dlcikgdG8gdGhl IGxvd2VyY2FzZS1idWZmZXItcmVsYXRpdmUKKy8qIEFwcGx5IHRoZSBNQVAgKGNyZWF0ZWQg YnkgbWJ0b3VwcGVyKSB0byB0aGUgdXBwZXJjYXNlLWJ1ZmZlci1yZWxhdGl2ZQogICAgKk9G RiBhbmQgKkxFTiwgY29udmVydGluZyB0aGVtIHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBvcmln aW5hbCBidWZmZXIuICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMTEwLDcgKzExMCw3IEBAIEZl eGVjdXRlIChjaGFyIGNvbnN0ICpidWYsIHNpemVfdCBzaXplLCBzaXplX3QgKm1hdGNoX3Np emUsCiAgICAgewogICAgICAgaWYgKG1hdGNoX2ljYXNlKQogICAgICAgICB7Ci0gICAgICAg ICAgY2hhciAqY2FzZV9idWYgPSBtYnRvbG93ZXIgKGJ1ZiwgJnNpemUsICZtYXApOworICAg ICAgICAgIGNoYXIgKmNhc2VfYnVmID0gbWJ0b3VwcGVyIChidWYsICZzaXplLCAmbWFwKTsK ICAgICAgICAgICBpZiAoc3RhcnRfcHRyKQogICAgICAgICAgICAgc3RhcnRfcHRyID0gY2Fz ZV9idWYgKyAoc3RhcnRfcHRyIC0gYnVmKTsKICAgICAgICAgICBidWYgPSBjYXNlX2J1ZjsK ZGlmZiAtLWdpdCBhL3NyYy9zZWFyY2guaCBiL3NyYy9zZWFyY2guaAppbmRleCA5MWYwMjcx Li42OWUzYWZkIDEwMDY0NAotLS0gYS9zcmMvc2VhcmNoLmgKKysrIGIvc3JjL3NlYXJjaC5o CkBAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgc2lnbmVkIGNoYXIgbWJfbGVuX21hcF90Owog Lyogc2VhcmNodXRpbHMuYyAqLwogZXh0ZXJuIHZvaWQga3dzaW5pdCAoa3dzZXRfdCAqKTsK IAotZXh0ZXJuIGNoYXIgKm1idG9sb3dlciAoY29uc3QgY2hhciAqLCBzaXplX3QgKiwgbWJf bGVuX21hcF90ICoqKTsKK2V4dGVybiBjaGFyICptYnRvdXBwZXIgKGNvbnN0IGNoYXIgKiwg c2l6ZV90ICosIG1iX2xlbl9tYXBfdCAqKik7CiBleHRlcm4gdm9pZCBidWlsZF9tYmNsZW5f Y2FjaGUgKHZvaWQpOwogZXh0ZXJuIGJvb2wgaXNfbWJfbWlkZGxlIChjb25zdCBjaGFyICoq LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90KTsKIApkaWZmIC0tZ2l0IGEv c3JjL3NlYXJjaHV0aWxzLmMgYi9zcmMvc2VhcmNodXRpbHMuYwppbmRleCA3MzYzNzAxLi5i YWJiMzFmIDEwMDY0NAotLS0gYS9zcmMvc2VhcmNodXRpbHMuYworKysgYi9zcmMvc2VhcmNo dXRpbHMuYwpAQCAtMzcsNyArMzcsNyBAQCBrd3Npbml0IChrd3NldF90ICprd3NldCkKICAg aWYgKG1hdGNoX2ljYXNlICYmIE1CX0NVUl9NQVggPT0gMSkKICAgICB7CiAgICAgICBmb3Ig KGkgPSAwOyBpIDwgTkNIQVI7ICsraSkKLSAgICAgICAgdHJhbnNbaV0gPSB0b2xvd2VyIChp KTsKKyAgICAgICAgdHJhbnNbaV0gPSB0b3VwcGVyIChpKTsKIAogICAgICAgKmt3c2V0ID0g a3dzYWxsb2MgKHRyYW5zKTsKICAgICB9CkBAIC00OSwzOCArNDksMzcgQEAga3dzaW5pdCAo a3dzZXRfdCAqa3dzZXQpCiB9CiAKICNpZiBNQlNfU1VQUE9SVAotLyogQ29udmVydCB0aGUg Kk4tYnl0ZSBzdHJpbmcsIEJFRywgdG8gbG93ZXItY2FzZSwgYW5kIHdyaXRlIHRoZQorLyog Q29udmVydCBCRUcsIGFuICpOLWJ5dGUgc3RyaW5nLCB0byB1cHBlcmNhc2UsIGFuZCB3cml0 ZSB0aGUKICAgIE5VTC10ZXJtaW5hdGVkIHJlc3VsdCBpbnRvIG1hbGxvYydkIHN0b3JhZ2Uu ICBVcG9uIHN1Y2Nlc3MsIHNldCAqTgogICAgdG8gdGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9m IHRoZSByZXN1bHRpbmcgc3RyaW5nIChub3QgaW5jbHVkaW5nIHRoZQotICAgdHJhaWxpbmcg TlVMIGJ5dGUpLCBhbmQgcmV0dXJuIGEgcG9pbnRlciB0byB0aGUgbG93ZXItY2FzZSBzdHJp bmcuCi0gICBVcG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsIHRoaXMgZnVuY3Rpb24g ZXhpdHMuCi0gICBOb3RlIHRoYXQgb24gaW5wdXQsICpOIG11c3QgYmUgbGFyZ2VyIHRoYW4g emVyby4KKyAgIHRyYWlsaW5nIE5VTCBieXRlKSwgYW5kIHJldHVybiBhIHBvaW50ZXIgdG8g dGhlIHVwcGVyY2FzZSBzdHJpbmcuCisgICBVcG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1 cmUsIGV4aXQuICAqTiBtdXN0IGJlIHBvc2l0aXZlLgogCi0gICBOb3RlIHRoYXQgd2hpbGUg dGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgcG9pbnRlciB0byBtYWxsb2MnZCBzdG9yYWdlLAor ICAgQWx0aG91Z2ggdGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgcG9pbnRlciB0byBtYWxsb2Mn ZCBzdG9yYWdlLAogICAgdGhlIGNhbGxlciBtdXN0IG5vdCBmcmVlIGl0LCBzaW5jZSB0aGlz IGZ1bmN0aW9uIHJldGFpbnMgYSBwb2ludGVyCiAgICB0byB0aGUgYnVmZmVyIGFuZCByZXVz ZXMgaXQgb24gYW55IHN1YnNlcXVlbnQgY2FsbC4gIEFzIGEgY29uc2VxdWVuY2UsCiAgICB0 aGlzIGZ1bmN0aW9uIGlzIG5vdCB0aHJlYWQtc2FmZS4KIAotICAgV2hlbiBlYWNoIGNoYXJh Y3RlciBpbiB0aGUgbG93ZXItY2FzZSByZXN1bHQgc3RyaW5nIGhhcyB0aGUgc2FtZSBsZW5n dGgKKyAgIFdoZW4gZWFjaCBjaGFyYWN0ZXIgaW4gdGhlIHVwcGVyY2FzZSByZXN1bHQgc3Ry aW5nIGhhcyB0aGUgc2FtZSBsZW5ndGgKICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIGNoYXJh Y3RlciBpbiB0aGUgaW5wdXQgc3RyaW5nLCBzZXQgKkxFTl9NQVBfUAogICAgdG8gTlVMTC4g IE90aGVyd2lzZSwgc2V0IGl0IHRvIGEgbWFsbG9jJ2QgYnVmZmVyIChsaWtlIHRoZSByZXR1 cm5lZAogICAgYnVmZmVyLCB0aGlzIG11c3Qgbm90IGJlIGZyZWVkIGJ5IGNhbGxlcikgb2Yg dGhlIHNhbWUgbGVuZ3RoIGFzIHRoZQogICAgcmVzdWx0IHN0cmluZy4gICgqTEVOX01BUF9Q KVtKXSBpcyB0aGUgY2hhbmdlIGluIGJ5dGUtbGVuZ3RoIG9mIHRoZQogICAgY2hhcmFjdGVy IGluIEJFRyB0aGF0IGZvcm1lZCBieXRlIEogb2YgdGhlIHJlc3VsdCBhcyBpdCB3YXMgY29u dmVydGVkIHRvCi0gICBsb3dlci1jYXNlLiAgSXQgaXMgdXN1YWxseSB6ZXJvLiAgRm9yIHRo ZSB1cHBlci1jYXNlIFR1cmtpc2ggSS13aXRoLWRvdAotICAgaXQgaXMgLTEsIHNpbmNlIHRo ZSB1cHBlci1jYXNlIGNoYXJhY3RlciBvY2N1cGllcyB0d28gYnl0ZXMsIHdoaWxlIHRoZQot ICAgbG93ZXItY2FzZSBvbmUgb2NjdXBpZXMgb25seSBvbmUgYnl0ZS4gIEZvciB0aGUgVHVy a2lzaC1JLXdpdGhvdXQtZG90Ci0gICBpbiB0aGUgdHJfVFIudXRmOCBsb2NhbGUsIGl0IGlz IDEgYmVjYXVzZSB0aGUgbG93ZXItY2FzZSByZXByZXNlbnRhdGlvbgorICAgdXBwZXJjYXNl LiAgSXQgaXMgdXN1YWxseSB6ZXJvLiAgRm9yIGxvd2VyY2FzZSBUdXJraXNoIGRvdGxlc3Mg SSBpdAorICAgaXMgLTEsIHNpbmNlIHRoZSBsb3dlcmNhc2UgaW5wdXQgb2NjdXBpZXMgdHdv IGJ5dGVzLCB3aGlsZSB0aGUKKyAgIHVwcGVyY2FzZSBvdXRwdXQgb2NjdXBpZXMgb25seSBv bmUgYnl0ZS4gIEZvciBsb3dlcmNhc2UgSSBpbiB0aGUKKyAgIHRyX1RSLnV0ZjggbG9jYWxl LCBpdCBpcyAxIGJlY2F1c2UgdGhlIHVwcGVyY2FzZSBUdXJraXNoIGRvdHRlZCBJCiAgICBp cyBvbmUgYnl0ZSBsb25nZXIgdGhhbiB0aGUgb3JpZ2luYWwuICBXaGVuIHRoYXQgaGFwcGVu cywgd2UgaGF2ZSB0d28KICAgIG9yIG1vcmUgc2xvdHMgaW4gKkxFTl9NQVBfUCBmb3IgZWFj aCBzdWNoIGNoYXJhY3Rlci4gIFdlIHN0b3JlIHRoZQogICAgZGlmZmVyZW5jZSBpbiB0aGUg Zmlyc3Qgb25lIGFuZCAwJ3MgaW4gYW55IHJlbWFpbmluZyBzbG90cy4KIAogICAgVGhpcyBt YXAgaXMgdXNlZCBieSB0aGUgY2FsbGVyIHRvIGNvbnZlcnQgb2Zmc2V0LGxlbmd0aCBwYWly cyB0aGF0Ci0gICByZWZlcmVuY2UgdGhlIGxvd2VyLWNhc2UgcmVzdWx0IHRvIG51bWJlcnMg dGhhdCByZWZlciB0byB0aGUgbWF0Y2hlZAorICAgcmVmZXJlbmNlIHRoZSB1cHBlcmNhc2Ug cmVzdWx0IHRvIG51bWJlcnMgdGhhdCByZWZlciB0byB0aGUgbWF0Y2hlZAogICAgcGFydCBv ZiB0aGUgb3JpZ2luYWwgYnVmZmVyLiAgKi8KIAogY2hhciAqCi1tYnRvbG93ZXIgKGNvbnN0 IGNoYXIgKmJlZywgc2l6ZV90ICpuLCBtYl9sZW5fbWFwX3QgKipsZW5fbWFwX3ApCittYnRv dXBwZXIgKGNvbnN0IGNoYXIgKmJlZywgc2l6ZV90ICpuLCBtYl9sZW5fbWFwX3QgKipsZW5f bWFwX3ApCiB7CiAgIHN0YXRpYyBjaGFyICpvdXQ7CiAgIHN0YXRpYyBtYl9sZW5fbWFwX3Qg Kmxlbl9tYXA7CkBAIC05NCw3ICs5Myw3IEBAIG1idG9sb3dlciAoY29uc3QgY2hhciAqYmVn LCBzaXplX3QgKm4sIG1iX2xlbl9tYXBfdCAqKmxlbl9tYXBfcCkKIAogICBpZiAoKm4gPiBv dXRhbGxvYyB8fCBvdXRhbGxvYyA9PSAwKQogICAgIHsKLSAgICAgIG91dGFsbG9jID0gTUFY KDEsICpuKTsKKyAgICAgIG91dGFsbG9jID0gTUFYICgxLCAqbik7CiAgICAgICBvdXQgPSB4 cmVhbGxvYyAob3V0LCBvdXRhbGxvYyk7CiAgICAgICBsZW5fbWFwID0geHJlYWxsb2MgKGxl bl9tYXAsIG91dGFsbG9jKTsKICAgICB9CkBAIC0xNzUsOCArMTc0LDggQEAgbWJ0b2xvd2Vy IChjb25zdCBjaGFyICpiZWcsIHNpemVfdCAqbiwgbWJfbGVuX21hcF90ICoqbGVuX21hcF9w KQogICAgICAgICAgIC8qIEhhbmRsZSBVbmljb2RlIGNoYXJhY3RlcnMgYmV5b25kIHRoZSBi YXNlIHBsYW5lLiAgKi8KICAgICAgICAgICBpZiAobWJjbGVuID09IDQpCiAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgIC8qIHRvd2xvd2VyLCB0YWtpbmcgd2ludF90ICg0IGJ5dGVz KSwgaGFuZGxlcyBVQ1MtNCB2YWx1ZXMuICAqLwotICAgICAgICAgICAgICB3Y2kgPSB0b3ds b3dlciAod2NpKTsKKyAgICAgICAgICAgICAgLyogdG93dXBwZXIsIHRha2luZyB3aW50X3Qg KDQgYnl0ZXMpLCBoYW5kbGVzIFVDUy00IHZhbHVlcy4gICovCisgICAgICAgICAgICAgIHdj aSA9IHRvd3VwcGVyICh3Y2kpOwogICAgICAgICAgICAgICBpZiAod2NpID49IDB4MTAwMDAp CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgd2NpIC09IDB4MTAwMDA7 CkBAIC0xOTcsNyArMTk2LDcgQEAgbWJ0b2xvd2VyIChjb25zdCBjaGFyICpiZWcsIHNpemVf dCAqbiwgbWJfbGVuX21hcF90ICoqbGVuX21hcF9wKQogICAgICAgICAgICAgfQogICAgICAg ICAgIGVsc2UKICNlbmRpZgotICAgICAgICAgIG9tYmNsZW4gPSB3Y3J0b21iIChwLCB0b3ds b3dlciAoKHdpbnRfdCkgd2MpLCAmb3MpOworICAgICAgICAgIG9tYmNsZW4gPSB3Y3J0b21i IChwLCB0b3d1cHBlciAod2MpLCAmb3MpOwogICAgICAgICAgICptID0gbWJjbGVuIC0gb21i Y2xlbjsKICAgICAgICAgICBtZW1zZXQgKG0gKyAxLCAwLCBvbWJjbGVuIC0gMSk7CiAgICAg ICAgICAgbSArPSBvbWJjbGVuOwpkaWZmIC0tZ2l0IGEvdGVzdHMvY2FzZS1mb2xkLXRpdGxl Y2FzZSBiL3Rlc3RzL2Nhc2UtZm9sZC10aXRsZWNhc2UKaW5kZXggZjE2MDIyYi4uYmEzMjBj NyAxMDA3NTUKLS0tIGEvdGVzdHMvY2FzZS1mb2xkLXRpdGxlY2FzZQorKysgYi90ZXN0cy9j YXNlLWZvbGQtdGl0bGVjYXNlCkBAIC0xNjIsNiArMTYyLDggQEAgZG8KICAgICAgZ3JlcCAt aSAiXFwoXFwpXFwxJHBhdCIgaW4gPm91dC1yZWdleCB8fCBmYWlsPTEKICAgICAgZ3JlcCAt aSAiJHBhdCIgaW4gPm91dC1kZmEgfHwgZmFpbD0xCiAgICAgIGNvbXBhcmVfIG91dC1yZWdl eCBvdXQtZGZhIHx8IGZhaWw9MQorICAgICBncmVwIC1pRiAiJHBhdCIgaW4gPm91dC1maXhl ZCB8fCBmYWlsPTEKKyAgICAgY29tcGFyZV8gb3V0LXJlZ2V4IG91dC1maXhlZCB8fCBmYWls PTEKICAgZG9uZQogZG9uZQogCkBAIC0xODAsNiArMTgyLDggQEAgaWYgdGVzdCAiJChnZXQt bWItY3VyLW1heCBlbF9HUi5pc284ODU5NykiIC1lcSAxOyB0aGVuCiAgICAgIGdyZXAgLWkg IlxcKFxcKVxcMSRwYXQiIGluID5vdXQtcmVnZXggfHwgZmFpbD0xCiAgICAgIGdyZXAgLWkg IiRwYXQiIGluID5vdXQtZGZhIHx8IGZhaWw9MQogICAgICBjb21wYXJlXyBvdXQtcmVnZXgg b3V0LWRmYSB8fCBmYWlsPTEKKyAgICAgZ3JlcCAtaUYgIiRwYXQiIGluID5vdXQtZml4ZWQg fHwgZmFpbD0xCisgICAgIGNvbXBhcmVfIG91dC1yZWdleCBvdXQtZml4ZWQgfHwgZmFpbD0x CiAgIGRvbmUKIGZpCiAKLS0gCjEuOC41LjMKCg== --------------070001040505060702000807-- From unknown Thu Aug 14 17:26:49 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 05 Apr 2014 11:24:03 +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