From unknown Sat Aug 16 15:54:23 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#17019 <17019@debbugs.gnu.org> To: bug#17019 <17019@debbugs.gnu.org> Subject: Status: [PATCH] grep: removal of trivial_case_ignore Reply-To: bug#17019 <17019@debbugs.gnu.org> Date: Sat, 16 Aug 2025 22:54:23 +0000 retitle 17019 [PATCH] grep: removal of trivial_case_ignore reassign 17019 grep submitter 17019 Norihiro Tanaka severity 17019 normal tag 17019 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 15 21:29:42 2014 Received: (at submit) by debbugs.gnu.org; 16 Mar 2014 01:29:42 +0000 Received: from localhost ([127.0.0.1]:37837 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WOztV-0002Gw-5c for submit@debbugs.gnu.org; Sat, 15 Mar 2014 21:29:41 -0400 Received: from pbsg501.nifty.com ([202.248.238.71]:21172) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WOztQ-0002Gh-QC for submit@debbugs.gnu.org; Sat, 15 Mar 2014 21:29:40 -0400 Received: from [10.120.1.44] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s2G1TErf002365 for ; Sun, 16 Mar 2014 10:29:15 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Sun, 16 Mar 2014 10:29:16 +0900 From: Norihiro Tanaka To: submit@debbugs.gnu.org Subject: [PATCH] grep: removal of trivial_case_ignore Message-Id: <20140316102817.7346.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_531AAC47000000000212_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [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: Package: grep Tags: patch I believe that the purpose of trivial_case_ignore function helped DFA which couldn't process case-insensitive matching fast. Though now DFA can process it fast, I kept it still, because I thought that kwset is never used for case_insensitive matching in multi-byte locales if get rid of it. [...] 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 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record 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.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: Package: grep Tags: patch I believe that the purpose of trivial_case_ignore function helped DFA which couldn't process case-insensitive matching fast. Though now DFA can process it fast, I kept it still, because I thought that kwset is never used for case_insensitive matching in multi-byte locales if get rid of it. [...] 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 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record --------_531AAC47000000000212_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Package: grep Tags: patch I believe that the purpose of trivial_case_ignore function helped DFA which couldn't process case-insensitive matching fast. Though now DFA can process it fast, I kept it still, because I thought that kwset is never used for case_insensitive matching in multi-byte locales if get rid of it. However, when change kwsmusts as it's used even if fill MB_CUR_MAX > 1 and case-insensitive, DFA gives the same result in spite of whether use trivial_case_ignore function or not. Now remove it, because I think that it served one's purpose. Sorry, Jim. Norihiro --------_531AAC47000000000212_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: 7bit >From 180ad10aa80c22b3ca67ff7201cf578a594f6de9 Mon Sep 17 00:00:00 2001 From: Norihiro Tanaka Date: Sun, 16 Mar 2014 09:33:25 +0900 Subject: [PATCH] grep: removal of trivial_case_ignore When change kwsmusts as it's used even if fill MB_CUR_MAX > 1 and case-insensitive, DFA gives the same result in spite of whether use trivial_case_ignore function or not. So remove it. * src/main.c (trivial_case_ignore): Remove it. (main): Remove its use; this optimization is no longer needed. * src/dfasearch.c (kwsmusts): Use kwset even if fill MB_CUR_MAX > 1 and case-insensitive. --- src/dfasearch.c | 6 --- src/main.c | 118 -------------------------------------------------------- 2 files changed, 124 deletions(-) diff --git a/src/dfasearch.c b/src/dfasearch.c index 0b56960..8f17312 100644 --- a/src/dfasearch.c +++ b/src/dfasearch.c @@ -81,12 +81,6 @@ dfawarn (char const *mesg) static void kwsmusts (void) { - /* With case-insensitive matching in a multi-byte locale, do not - use kwsearch, because in that case, it would be too expensive, - requiring that we case-convert all searched input. */ - if (MB_CUR_MAX > 1 && match_icase) - return; - struct dfamust const *dm = dfamusts (dfa); if (dm) { diff --git a/src/main.c b/src/main.c index c536a5a..77b3ade 100644 --- a/src/main.c +++ b/src/main.c @@ -1866,95 +1866,6 @@ parse_grep_colors (void) return; } -#define MBRTOWC(pwc, s, n, ps) \ - (MB_CUR_MAX == 1 \ - ? (*(pwc) = btowc (*(unsigned char *) (s)), 1) \ - : mbrtowc (pwc, s, n, ps)) -#define WCRTOMB(s, wc, ps) \ - (MB_CUR_MAX == 1 \ - ? (*(s) = wctob ((wint_t) (wc)), 1) \ - : wcrtomb (s, wc, ps)) - -/* If the newline-separated regular expressions, KEYS (with length, LEN - and no trailing NUL byte), are amenable to transformation into - otherwise equivalent case-ignoring ones, perform the transformation, - put the result into malloc'd memory, *NEW_KEYS with length *NEW_LEN, - and return true. Otherwise, return false. */ - -static bool -trivial_case_ignore (size_t len, char const *keys, - size_t *new_len, char **new_keys) -{ - /* FIXME: consider removing the following restriction: - Reject if KEYS contain ASCII '\\' or '['. */ - if (memchr (keys, '\\', len) || memchr (keys, '[', len)) - return false; - - /* Worst case is that each byte B of KEYS is ASCII alphabetic and - CASE_FOLDED_BUFSIZE other_case(B) characters, C through Z, each - occupying MB_CUR_MAX bytes, so each B maps to [BC...Z], which - requires CASE_FOLDED_BUFSIZE * MB_CUR_MAX + 3 bytes; this is - bounded above by the constant expression CASE_FOLDED_BUFSIZE * - MB_LEN_MAX + 3. */ - *new_keys = xnmalloc (len + 1, CASE_FOLDED_BUFSIZE * MB_LEN_MAX + 3); - char *p = *new_keys; - - mbstate_t mb_state = { 0 }; - while (len) - { - bool initial_state = mbsinit (&mb_state) != 0; - wchar_t wc; - size_t n = MBRTOWC (&wc, keys, len, &mb_state); - - /* For an invalid, incomplete or L'\0', skip this optimization. */ - if ((size_t) -2 <= n) - { - skip_case_ignore_optimization: - free (*new_keys); - return false; - } - - char const *orig = keys; - keys += n; - len -= n; - - wchar_t folded[CASE_FOLDED_BUFSIZE]; - int nfolded = case_folded_counterparts (wc, folded); - if (nfolded <= 0) - { - memcpy (p, orig, n); - p += n; - } - else if (! initial_state) - goto skip_case_ignore_optimization; - else - { - *p++ = '['; - memcpy (p, orig, n); - p += n; - - int i = 0; - do - { - size_t nbytes = WCRTOMB (p, folded[i], &mb_state); - if (nbytes == (size_t) -1) - goto skip_case_ignore_optimization; - p += nbytes; - } - while (++i < nfolded); - - if (! mbsinit (&mb_state)) - goto skip_case_ignore_optimization; - - *p++ = ']'; - } - } - - *new_len = p - *new_keys; - - return true; -} - int main (int argc, char **argv) { @@ -2349,35 +2260,6 @@ main (int argc, char **argv) else usage (EXIT_TROUBLE); - /* Case-insensitive matching is expensive in multibyte locales - because a few characters may change size when converted to upper - or lower case. To accommodate those, search the input one line - at a time, rather than using the much more efficient buffer search. - - Try to convert a regular expression 'foo' (ignoring case) to an - equivalent regular expression '[fF][oO][oO]' (where case matters). - Not only does this avoid the expensive requirement to read and - process a line at a time, it also allows use of the kwset engine, - a win in non-UTF-8 multibyte locales. */ - if (match_icase) - { - size_t new_keycc; - char *new_keys; - /* It is not possible with -F, not useful with -P (pcre) and there is no - point when there is no regexp. It also depends on which constructs - appear in the regexp. See trivial_case_ignore for those details. */ - if (keycc - && ! (matcher - && (STREQ (matcher, "fgrep") || STREQ (matcher, "pcre"))) - && trivial_case_ignore (keycc, keys, &new_keycc, &new_keys)) - { - match_icase = 0; - free (keys); - keys = new_keys; - keycc = new_keycc; - } - } - #if MBS_SUPPORT if (MB_CUR_MAX > 1) build_mbclen_cache (); -- 1.9.0 --------_531AAC47000000000212_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 01 04:55:43 2014 Received: (at 17019) by debbugs.gnu.org; 1 Apr 2014 08:55:43 +0000 Received: from localhost ([127.0.0.1]:58743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WUuTv-0004ZF-8h for submit@debbugs.gnu.org; Tue, 01 Apr 2014 04:55:43 -0400 Received: from mail-we0-f180.google.com ([74.125.82.180]:50717) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WUuTr-0004Z5-1j for 17019@debbugs.gnu.org; Tue, 01 Apr 2014 04:55:39 -0400 Received: by mail-we0-f180.google.com with SMTP id p61so5973332wes.11 for <17019@debbugs.gnu.org>; Tue, 01 Apr 2014 01:55:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=68DxrYcct29kbyk+OfpLprxsOFND9SfMtzi92rfXPIQ=; b=WXsXMtmAMiAQL2Qnp+qi4XbCqAhN84ve+CYF82IUmnR7d4IamQw0bNfYDmdGXeHtCm lNqo6iM8q+c1Cmyf9RSQgntHY2bpnnknTZiwys3lqDWCXysZ67tCtQfbSZ2hodAx2AdK WIrK8ZDBY/Cw53ie71lDAj7eqpitdw2WnH5BATTqq+2d3GsmURmGOe32buLHqdObOX1m UvFjezRys2rA/p4XpagEfczEkRTPeOCe3MEgqrpvYTi8ZvZFJRkcfEIxOLnBU1llQ7O8 yr+IilOmB97kFb0lFKF7UvHO0dO6wpdB14/GgsmmC4KoZZDWeuU6uwLwScpdkpUxLGal DGGQ== X-Received: by 10.180.81.228 with SMTP id d4mr18255255wiy.49.1396342538129; Tue, 01 Apr 2014 01:55:38 -0700 (PDT) Received: from yakj.usersys.redhat.com (net-37-117-156-129.cust.vodafonedsl.it. [37.117.156.129]) by mx.google.com with ESMTPSA id h47sm39064513eey.13.2014.04.01.01.55.36 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 01 Apr 2014 01:55:36 -0700 (PDT) Message-ID: <533A7F06.5010803@gnu.org> Date: Tue, 01 Apr 2014 10:55:34 +0200 From: Paolo Bonzini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17019@debbugs.gnu.org Subject: Re: bug#17019: [PATCH] grep: removal of trivial_case_ignore References: <20140316102817.7346.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140316102817.7346.27F6AC2D@kcn.ne.jp> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 17019 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 (/) Il 16/03/2014 02:29, Norihiro Tanaka ha scritto: > However, when change kwsmusts as it's used even if fill MB_CUR_MAX > 1 > and case-insensitive, DFA gives the same result in spite of whether use > trivial_case_ignore function or not. > > Now remove it, because I think that it served one's purpose. Hi Norihiro, it is not clear to me what are the prerequisites of this patch. Are they already in? Paolo From debbugs-submit-bounces@debbugs.gnu.org Tue Apr 01 10:36:26 2014 Received: (at 17019) by debbugs.gnu.org; 1 Apr 2014 14:36:26 +0000 Received: from localhost ([127.0.0.1]:59440 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WUznd-0007Kg-Gb for submit@debbugs.gnu.org; Tue, 01 Apr 2014 10:36:25 -0400 Received: from pbsg501.nifty.com ([202.248.238.71]:37164) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WUznY-0007KT-F5 for 17019@debbugs.gnu.org; Tue, 01 Apr 2014 10:36:23 -0400 Received: from [10.120.1.62] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) (authenticated) by pbsg501.nifty.com with ESMTP id s31Ea1Xj021628; Tue, 1 Apr 2014 23:36:02 +0900 X-Nifty-SrcIP: [118.21.128.66] Date: Tue, 01 Apr 2014 23:36:03 +0900 From: Norihiro Tanaka To: Paolo Bonzini Subject: bug#17019: [PATCH] grep: removal of trivial_case_ignore In-Reply-To: <533A7F06.5010803@gnu.org> References: <20140316102817.7346.27F6AC2D@kcn.ne.jp> <533A7F06.5010803@gnu.org> Message-Id: <20140401233602.78C0.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: 17019 Cc: 17019@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 (/) Hi Paolo, I wrote the patch to speed-up Boyer-Moore algorithm in KWSet at bug#17013. As next step, I want to be able to use it for case-insensitive matching, too. Further more, I wrote the patch which when case_fold flag is set Boyer-Moore algorithm can be used for CSET at patch#17034. However, this function is prevented from using the kwset for case-insensitive matching because it turns off case_fold flag. Norihiro From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 07 23:32:46 2014 Received: (at 17019-done) by debbugs.gnu.org; 8 Apr 2014 03:32:46 +0000 Received: from localhost ([127.0.0.1]:40128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXMmD-0007cE-0D for submit@debbugs.gnu.org; Mon, 07 Apr 2014 23:32:45 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:59023) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WXMmA-0007c6-KV for 17019-done@debbugs.gnu.org; Mon, 07 Apr 2014 23:32:43 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 243FE39E8017; Mon, 7 Apr 2014 20:32:42 -0700 (PDT) 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 LWDvN+DtDPpy; Mon, 7 Apr 2014 20:32:37 -0700 (PDT) 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 97D5039E8008; Mon, 7 Apr 2014 20:32:37 -0700 (PDT) Message-ID: <53436DD5.4020903@cs.ucla.edu> Date: Mon, 07 Apr 2014 20:32:37 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Norihiro Tanaka , 17019-done@debbugs.gnu.org Subject: Re: bug#17019: [PATCH] grep: removal of trivial_case_ignore References: <20140316102817.7346.27F6AC2D@kcn.ne.jp> In-Reply-To: <20140316102817.7346.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------000506090704090604080504" X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 17019-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: -2.6 (--) This is a multi-part message in MIME format. --------------000506090704090604080504 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Thanks for this patch; it's nice to remove code. This one required several alterations while merging, due to other changes made recently in this area; I'm attaching the patch I pushed. --------------000506090704090604080504 Content-Type: text/plain; charset=UTF-8; name="0001-grep-remove-trival_case_ignore.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-grep-remove-trival_case_ignore.patch" RnJvbSBiZDAxMmFiMTYxYzAxN2ZlY2EzZjc4Njc3NzZhYTljODBlOGFlODkxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDcgQXByIDIwMTQgMjA6Mjg6MjYgLTA3MDAKU3ViamVjdDogW1BBVENI XSBncmVwOiByZW1vdmUgdHJpdmFsX2Nhc2VfaWdub3JlCgpUaGlzIG9wdGltaXphdGlvbiBp cyBubyBsb25nZXIgbmVlZGVkLCBnaXZlbiB0aGUgb3RoZXIKb3B0aW1pemF0aW9ucyByZWNl bnRseSBpbnN0YWxsZWQuICBEZXJpdmVkIGZyb20gYSBwYXRjaCBieQpOb3JpaGlybyBUYW5h a2E7IHNlZSA8aHR0cDovL2J1Z3MuZ251Lm9yZy8xNzAxOT4uCiogYm9vdHN0cmFwLmNvbmYg KGdudWxpYl9tb2R1bGVzKTogUmVtb3ZlIGFzc2VydC1oLgoqIHNyYy9kZmEuYyAoQ0FTRV9G T0xERURfQlVGU0laRSk6IE1vdmUgaGVyZSBmcm9tIGRmYS5oLgpSZW1vdmUgbm93LXVubmVj ZXNzYXJ5IHN0YXRpYyBhc3NlcnQuCihjYXNlX2ZvbGRlZF9jb3VudGVycGFydHMpOiBOb3cg c3RhdGljLgoqIHNyYy9kZmEuaCAoQ0FTRV9GT0xERURfQlVGU0laRSwgY2FzZV9mb2xkZWRf Y291bnRlcnBhcnRzKToKUmVtb3ZlIGRlY2xzOyBubyBsb25nZXIgcHVibGljLgoqIHNyYy9k ZmFzZWFyY2guYyAoa3dzbXVzdHMpOiBVc2Uga3dzZXQgZXZlbiBpZiBmaWxsIE1CX0NVUl9N QVggPiAxCmFuZCBjYXNlLWluc2Vuc2l0aXZlLgoqIHNyYy9ncmVwLmMgKE1CUlRPV0MsIFdD UlRPTUIpOiBSZW1vdmUuCihmZ3JlcF90b19ncmVwX3BhdHRlcm4pOiBVc2UgbWJydG93Yywg bm90IE1CUlRPV0MuCih0cml2aWFsX2Nhc2VfaWdub3JlKTogUmVtb3ZlOyB0aGlzIG9wdGlt aXphdGlvbiBpcyBubyBsb25nZXIgbmVlZGVkLgpBbGwgdXNlcyByZW1vdmVkLgotLS0KIGJv b3RzdHJhcC5jb25mICB8ICAgMSAtCiBzcmMvZGZhLmMgICAgICAgfCAgMTEgKysrKy0tCiBz cmMvZGZhLmggICAgICAgfCAgIDggLS0tLQogc3JjL2RmYXNlYXJjaC5jIHwgICA2IC0tLQog c3JjL2dyZXAuYyAgICAgIHwgMTE5ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9u cygrKSwgMTM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Jvb3RzdHJhcC5jb25mIGIv Ym9vdHN0cmFwLmNvbmYKaW5kZXggODZjZDgxZC4uMzY3NDI3ZCAxMDA2NDQKLS0tIGEvYm9v dHN0cmFwLmNvbmYKKysrIGIvYm9vdHN0cmFwLmNvbmYKQEAgLTI0LDcgKzI0LDYgQEAgZ251 bGliX21vZHVsZXM9JwogYWxsb2NhCiBhbm5vdW5jZS1nZW4KIGFyZ21hdGNoCi1hc3NlcnQt aAogYmluYXJ5LWlvCiBidG93YwogYy1jdHlwZQpkaWZmIC0tZ2l0IGEvc3JjL2RmYS5jIGIv c3JjL2RmYS5jCmluZGV4IGI2YzEyNTAuLmQ4NzQ0ZDcgMTAwNjQ0Ci0tLSBhL3NyYy9kZmEu YworKysgYi9zcmMvZGZhLmMKQEAgLTkzMywxNCArOTMzLDE3IEBAIHN0YXRpYyBzaG9ydCBj b25zdCBsb25lc29tZV9sb3dlcltdID0KICAgICAweDAzRjUsIDB4MUU5QiwgMHgxRkJFLAog ICB9OwogCi1zdGF0aWNfYXNzZXJ0ICgoc2l6ZW9mIGxvbmVzb21lX2xvd2VyIC8gc2l6ZW9m ICpsb25lc29tZV9sb3dlciArIDIKLSAgICAgICAgICAgICAgICA9PSBDQVNFX0ZPTERFRF9C VUZTSVpFKSwKLSAgICAgICAgICAgICAgICJDQVNFX0ZPTERFRF9CVUZTSVpFIGlzIHdyb25n Iik7CisvKiBNYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHRoZSBj YXNlLWZvbGRlZAorICAgY291bnRlcnBhcnRzIG9mIGEgc2luZ2xlIGNoYXJhY3Rlciwgbm90 IGNvdW50aW5nIHRoZSBjaGFyYWN0ZXIKKyAgIGl0c2VsZi4gIFRoaXMgaXMgMSBmb3IgdG93 dXBwZXIsIDEgZm9yIHRvd2xvd2VyLCBhbmQgMSBmb3IgZWFjaAorICAgZW50cnkgaW4gTE9O RVNPTUVfTE9XRVIuICAqLworZW51bQoreyBDQVNFX0ZPTERFRF9CVUZTSVpFID0gMiArIHNp emVvZiBsb25lc29tZV9sb3dlciAvIHNpemVvZiAqbG9uZXNvbWVfbG93ZXIgfTsKIAogLyog RmluZCB0aGUgY2hhcmFjdGVycyBlcXVhbCB0byBDIGFmdGVyIGNhc2UtZm9sZGluZywgb3Ro ZXIgdGhhbiBDCiAgICBpdHNlbGYsIGFuZCBzdG9yZSB0aGVtIGludG8gRk9MREVELiAgUmV0 dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycwogICAgc3RvcmVkLiAgKi8KLWludAorc3Rh dGljIGludAogY2FzZV9mb2xkZWRfY291bnRlcnBhcnRzICh3Y2hhcl90IGMsIHdjaGFyX3Qg Zm9sZGVkW0NBU0VfRk9MREVEX0JVRlNJWkVdKQogewogICBpbnQgaTsKZGlmZiAtLWdpdCBh L3NyYy9kZmEuaCBiL3NyYy9kZmEuaAppbmRleCA2ZWQyMjMxLi5kYjI5YTYyIDEwMDY0NAot LS0gYS9zcmMvZGZhLmgKKysrIGIvc3JjL2RmYS5oCkBAIC0xMTIsMTEgKzExMiwzIEBAIGV4 dGVybiB2b2lkIGRmYXdhcm4gKGNvbnN0IGNoYXIgKik7CiBleHRlcm4gX05vcmV0dXJuIHZv aWQgZGZhZXJyb3IgKGNvbnN0IGNoYXIgKik7CiAKIGV4dGVybiBpbnQgdXNpbmdfdXRmOCAo dm9pZCk7Ci0KLS8qIE1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUg dGhlIGNhc2UtZm9sZGVkCi0gICBjb3VudGVycGFydHMgb2YgYSBzaW5nbGUgY2hhcmFjdGVy LCBub3QgY291bnRpbmcgdGhlIGNoYXJhY3RlcgotICAgaXRzZWxmLiAgVGhpcyBpcyAxIGZv ciB0b3d1cHBlciwgMSBmb3IgdG93bG93ZXIsIGFuZCAxIGZvciBlYWNoCi0gICBlbnRyeSBp biBMT05FU09NRV9MT1dFUjsgc2VlIGRmYS5jLiAgKi8KLWVudW0geyBDQVNFX0ZPTERFRF9C VUZTSVpFID0gMSArIDEgKyAxOSB9OwotCi1leHRlcm4gaW50IGNhc2VfZm9sZGVkX2NvdW50 ZXJwYXJ0cyAod2NoYXJfdCwgd2NoYXJfdFtDQVNFX0ZPTERFRF9CVUZTSVpFXSk7CmRpZmYg LS1naXQgYS9zcmMvZGZhc2VhcmNoLmMgYi9zcmMvZGZhc2VhcmNoLmMKaW5kZXggNDQzNjBi Ni4uMmFlMGE0YSAxMDA2NDQKLS0tIGEvc3JjL2RmYXNlYXJjaC5jCisrKyBiL3NyYy9kZmFz ZWFyY2guYwpAQCAtODEsMTIgKzgxLDYgQEAgZGZhd2FybiAoY2hhciBjb25zdCAqbWVzZykK IHN0YXRpYyB2b2lkCiBrd3NtdXN0cyAodm9pZCkKIHsKLSAgLyogV2l0aCBjYXNlLWluc2Vu c2l0aXZlIG1hdGNoaW5nIGluIGEgbXVsdGktYnl0ZSBsb2NhbGUsIGRvIG5vdAotICAgICB1 c2Uga3dzZWFyY2gsIGJlY2F1c2UgaW4gdGhhdCBjYXNlLCBpdCB3b3VsZCBiZSB0b28gZXhw ZW5zaXZlLAotICAgICByZXF1aXJpbmcgdGhhdCB3ZSBjYXNlLWNvbnZlcnQgYWxsIHNlYXJj aGVkIGlucHV0LiAgKi8KLSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIG1hdGNoX2ljYXNlKQot ICAgIHJldHVybjsKLQogICBzdHJ1Y3QgZGZhbXVzdCBjb25zdCAqZG0gPSBkZmFtdXN0cyAo ZGZhKTsKICAgaWYgKGRtKQogICAgIHsKZGlmZiAtLWdpdCBhL3NyYy9ncmVwLmMgYi9zcmMv Z3JlcC5jCmluZGV4IDcwMzM3MzAuLjhiZDZjNDkgMTAwNjQ0Ci0tLSBhL3NyYy9ncmVwLmMK KysrIGIvc3JjL2dyZXAuYwpAQCAtMTg5NCwxNSArMTg5NCw2IEBAIHBhcnNlX2dyZXBfY29s b3JzICh2b2lkKQogICAgICAgcmV0dXJuOwogfQogCi0jZGVmaW5lIE1CUlRPV0MocHdjLCBz LCBuLCBwcykgXAotICAoTUJfQ1VSX01BWCA9PSAxIFwKLSAgID8gKCoocHdjKSA9IGJ0b3dj ICgqKHVuc2lnbmVkIGNoYXIgKikgKHMpKSwgMSkgXAotICAgOiBtYnJ0b3djIChwd2MsIHMs IG4sIHBzKSkKLSNkZWZpbmUgV0NSVE9NQihzLCB3YywgcHMpIFwKLSAgKE1CX0NVUl9NQVgg PT0gMSBcCi0gICA/ICgqKHMpID0gd2N0b2IgKCh3aW50X3QpICh3YykpLCAxKSBcCi0gICA6 IHdjcnRvbWIgKHMsIHdjLCBwcykpCi0KIC8qIENoYW5nZSBhIHBhdHRlcm4gZm9yIGZncmVw IGludG8gZ3JlcC4gICovCiBzdGF0aWMgdm9pZAogZmdyZXBfdG9fZ3JlcF9wYXR0ZXJuIChz aXplX3QgbGVuLCBjaGFyIGNvbnN0ICprZXlzLApAQCAtMTkxNSw3ICsxOTA2LDcgQEAgZmdy ZXBfdG9fZ3JlcF9wYXR0ZXJuIChzaXplX3QgbGVuLCBjaGFyIGNvbnN0ICprZXlzLAogICBm b3IgKDsgbGVuOyBrZXlzICs9IG4sIGxlbiAtPSBuKQogICAgIHsKICAgICAgIHdjaGFyX3Qg d2M7Ci0gICAgICBuID0gTUJSVE9XQyAoJndjLCBrZXlzLCBsZW4sICZtYl9zdGF0ZSk7Cisg ICAgICBuID0gbWJydG93YyAoJndjLCBrZXlzLCBsZW4sICZtYl9zdGF0ZSk7CiAgICAgICBz d2l0Y2ggKG4pCiAgICAgICAgIHsKICAgICAgICAgY2FzZSAoc2l6ZV90KSAtMjoKQEAgLTE5 NDIsODYgKzE5MzMsNiBAQCBmZ3JlcF90b19ncmVwX3BhdHRlcm4gKHNpemVfdCBsZW4sIGNo YXIgY29uc3QgKmtleXMsCiAgICpuZXdfbGVuID0gcCAtICpuZXdfa2V5czsKIH0KIAotLyog SWYgdGhlIG5ld2xpbmUtc2VwYXJhdGVkIHJlZ3VsYXIgZXhwcmVzc2lvbnMsIEtFWVMgKHdp dGggbGVuZ3RoLCBMRU4KLSAgIGFuZCBubyB0cmFpbGluZyBOVUwgYnl0ZSksIGFyZSBhbWVu YWJsZSB0byB0cmFuc2Zvcm1hdGlvbiBpbnRvCi0gICBvdGhlcndpc2UgZXF1aXZhbGVudCBj YXNlLWlnbm9yaW5nIG9uZXMsIHBlcmZvcm0gdGhlIHRyYW5zZm9ybWF0aW9uLAotICAgcHV0 IHRoZSByZXN1bHQgaW50byBtYWxsb2MnZCBtZW1vcnksICpORVdfS0VZUyB3aXRoIGxlbmd0 aCAqTkVXX0xFTiwKLSAgIGFuZCByZXR1cm4gdHJ1ZS4gIE90aGVyd2lzZSwgcmV0dXJuIGZh bHNlLiAgKi8KLQotc3RhdGljIGJvb2wKLXRyaXZpYWxfY2FzZV9pZ25vcmUgKHNpemVfdCBs ZW4sIGNoYXIgY29uc3QgKmtleXMsCi0gICAgICAgICAgICAgICAgICAgICBzaXplX3QgKm5l d19sZW4sIGNoYXIgKipuZXdfa2V5cykKLXsKLSAgLyogRklYTUU6IGNvbnNpZGVyIHJlbW92 aW5nIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb246Ci0gICAgIFJlamVjdCBpZiBLRVlTIGNv bnRhaW4gQVNDSUkgJ1xcJyBvciAnWycuICAqLwotICBpZiAobWVtY2hyIChrZXlzLCAnXFwn LCBsZW4pIHx8IG1lbWNociAoa2V5cywgJ1snLCBsZW4pKQotICAgIHJldHVybiBmYWxzZTsK LQotICAvKiBXb3JzdCBjYXNlIGlzIHRoYXQgZWFjaCBieXRlIEIgb2YgS0VZUyBpcyBBU0NJ SSBhbHBoYWJldGljIGFuZAotICAgICBDQVNFX0ZPTERFRF9CVUZTSVpFIG90aGVyX2Nhc2Uo QikgY2hhcmFjdGVycywgQyB0aHJvdWdoIFosIGVhY2gKLSAgICAgb2NjdXB5aW5nIE1CX0NV Ul9NQVggYnl0ZXMsIHNvIGVhY2ggQiBtYXBzIHRvIFtCQy4uLlpdLCB3aGljaAotICAgICBy ZXF1aXJlcyBDQVNFX0ZPTERFRF9CVUZTSVpFICogTUJfQ1VSX01BWCArIDMgYnl0ZXM7IHRo aXMgaXMKLSAgICAgYm91bmRlZCBhYm92ZSBieSB0aGUgY29uc3RhbnQgZXhwcmVzc2lvbiBD QVNFX0ZPTERFRF9CVUZTSVpFICoKLSAgICAgTUJfTEVOX01BWCArIDMuICAqLwotICAqbmV3 X2tleXMgPSB4bm1hbGxvYyAobGVuICsgMSwgQ0FTRV9GT0xERURfQlVGU0laRSAqIE1CX0xF Tl9NQVggKyAzKTsKLSAgY2hhciAqcCA9ICpuZXdfa2V5czsKLQotICBtYnN0YXRlX3QgbWJf c3RhdGUgPSB7IDAgfTsKLSAgd2hpbGUgKGxlbikKLSAgICB7Ci0gICAgICBib29sIGluaXRp YWxfc3RhdGUgPSBtYnNpbml0ICgmbWJfc3RhdGUpICE9IDA7Ci0gICAgICB3Y2hhcl90IHdj OwotICAgICAgc2l6ZV90IG4gPSBNQlJUT1dDICgmd2MsIGtleXMsIGxlbiwgJm1iX3N0YXRl KTsKLQotICAgICAgLyogRm9yIGFuIGludmFsaWQsIGluY29tcGxldGUgb3IgTCdcMCcsIHNr aXAgdGhpcyBvcHRpbWl6YXRpb24uICAqLwotICAgICAgaWYgKChzaXplX3QpIC0yIDw9IG4p Ci0gICAgICAgIHsKLSAgICAgICAgc2tpcF9jYXNlX2lnbm9yZV9vcHRpbWl6YXRpb246Ci0g ICAgICAgICAgZnJlZSAoKm5ld19rZXlzKTsKLSAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g ICAgICAgIH0KLQotICAgICAgY2hhciBjb25zdCAqb3JpZyA9IGtleXM7Ci0gICAgICBrZXlz ICs9IG47Ci0gICAgICBsZW4gLT0gbjsKLQotICAgICAgd2NoYXJfdCBmb2xkZWRbQ0FTRV9G T0xERURfQlVGU0laRV07Ci0gICAgICBpbnQgbmZvbGRlZCA9IGNhc2VfZm9sZGVkX2NvdW50 ZXJwYXJ0cyAod2MsIGZvbGRlZCk7Ci0gICAgICBpZiAobmZvbGRlZCA8PSAwKQotICAgICAg ICB7Ci0gICAgICAgICAgbWVtY3B5IChwLCBvcmlnLCBuKTsKLSAgICAgICAgICBwICs9IG47 Ci0gICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCEgaW5pdGlhbF9zdGF0ZSkKLSAgICAgICAg Z290byBza2lwX2Nhc2VfaWdub3JlX29wdGltaXphdGlvbjsKLSAgICAgIGVsc2UKLSAgICAg ICAgewotICAgICAgICAgICpwKysgPSAnWyc7Ci0gICAgICAgICAgbWVtY3B5IChwLCBvcmln LCBuKTsKLSAgICAgICAgICBwICs9IG47Ci0KLSAgICAgICAgICBpbnQgaSA9IDA7Ci0gICAg ICAgICAgZG8KLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgc2l6ZV90IG5ieXRlcyA9 IFdDUlRPTUIgKHAsIGZvbGRlZFtpXSwgJm1iX3N0YXRlKTsKLSAgICAgICAgICAgICAgaWYg KG5ieXRlcyA9PSAoc2l6ZV90KSAtMSkKLSAgICAgICAgICAgICAgICBnb3RvIHNraXBfY2Fz ZV9pZ25vcmVfb3B0aW1pemF0aW9uOwotICAgICAgICAgICAgICBwICs9IG5ieXRlczsKLSAg ICAgICAgICAgIH0KLSAgICAgICAgICB3aGlsZSAoKytpIDwgbmZvbGRlZCk7Ci0KLSAgICAg ICAgICBpZiAoISBtYnNpbml0ICgmbWJfc3RhdGUpKQotICAgICAgICAgICAgZ290byBza2lw X2Nhc2VfaWdub3JlX29wdGltaXphdGlvbjsKLQotICAgICAgICAgICpwKysgPSAnXSc7Ci0g ICAgICAgIH0KLSAgICB9Ci0KLSAgKm5ld19sZW4gPSBwIC0gKm5ld19rZXlzOwotCi0gIHJl dHVybiB0cnVlOwotfQotCiBpbnQKIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKIHsK QEAgLTI0MzIsMzQgKzIzNDMsNiBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAg ICAgICBleGVjdXRlID0gRUdleGVjdXRlOwogICAgIH0KIAotICAvKiBDYXNlLWluc2Vuc2l0 aXZlIG1hdGNoaW5nIGlzIGV4cGVuc2l2ZSBpbiBtdWx0aWJ5dGUgbG9jYWxlcwotICAgICBi ZWNhdXNlIGEgZmV3IGNoYXJhY3RlcnMgbWF5IGNoYW5nZSBzaXplIHdoZW4gY29udmVydGVk IHRvIHVwcGVyCi0gICAgIG9yIGxvd2VyIGNhc2UuICBUbyBhY2NvbW1vZGF0ZSB0aG9zZSwg c2VhcmNoIHRoZSBpbnB1dCBvbmUgbGluZQotICAgICBhdCBhIHRpbWUsIHJhdGhlciB0aGFu IHVzaW5nIHRoZSBtdWNoIG1vcmUgZWZmaWNpZW50IGJ1ZmZlciBzZWFyY2guCi0KLSAgICAg VHJ5IHRvIGNvbnZlcnQgYSByZWd1bGFyIGV4cHJlc3Npb24gJ2ZvbycgKGlnbm9yaW5nIGNh c2UpIHRvIGFuCi0gICAgIGVxdWl2YWxlbnQgcmVndWxhciBleHByZXNzaW9uICdbZkZdW29P XVtvT10nICh3aGVyZSBjYXNlIG1hdHRlcnMpLgotICAgICBOb3Qgb25seSBkb2VzIHRoaXMg YXZvaWQgdGhlIGV4cGVuc2l2ZSByZXF1aXJlbWVudCB0byByZWFkIGFuZAotICAgICBwcm9j ZXNzIGEgbGluZSBhdCBhIHRpbWUsIGl0IGFsc28gYWxsb3dzIHVzZSBvZiB0aGUga3dzZXQg ZW5naW5lLAotICAgICBhIHdpbiBpbiBub24tVVRGLTggbXVsdGlieXRlIGxvY2FsZXMuICAq LwotICBpZiAobWF0Y2hfaWNhc2UpCi0gICAgewotICAgICAgc2l6ZV90IG5ld19rZXljYzsK LSAgICAgIGNoYXIgKm5ld19rZXlzOwotICAgICAgLyogSXQgaXMgbm90IHBvc3NpYmxlIHdp dGggLUYsIG5vdCB1c2VmdWwgd2l0aCAtUCAocGNyZSkgYW5kIHRoZXJlIGlzIG5vCi0gICAg ICAgICBwb2ludCB3aGVuIHRoZXJlIGlzIG5vIHJlZ2V4cC4gIEl0IGFsc28gZGVwZW5kcyBv biB3aGljaCBjb25zdHJ1Y3RzCi0gICAgICAgICBhcHBlYXIgaW4gdGhlIHJlZ2V4cC4gIFNl ZSB0cml2aWFsX2Nhc2VfaWdub3JlIGZvciB0aG9zZSBkZXRhaWxzLiAgKi8KLSAgICAgIGlm IChrZXljYwotICAgICAgICAgICYmICEgKGNvbXBpbGUgPT0gRmNvbXBpbGUgfHwgY29tcGls ZSA9PSBQY29tcGlsZSkKLSAgICAgICAgICAmJiB0cml2aWFsX2Nhc2VfaWdub3JlIChrZXlj Yywga2V5cywgJm5ld19rZXljYywgJm5ld19rZXlzKSkKLSAgICAgICAgewotICAgICAgICAg IG1hdGNoX2ljYXNlID0gMDsKLSAgICAgICAgICBmcmVlIChrZXlzKTsKLSAgICAgICAgICBr ZXlzID0gbmV3X2tleXM7Ci0gICAgICAgICAga2V5Y2MgPSBuZXdfa2V5Y2M7Ci0gICAgICAg IH0KLSAgICB9Ci0KICAgaWYgKE1CX0NVUl9NQVggPiAxKQogICAgIGJ1aWxkX21iY2xlbl9j YWNoZSAoKTsKIAotLSAKMS45LjAKCg== --------------000506090704090604080504-- From unknown Sat Aug 16 15:54:23 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 06 May 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