From unknown Mon Jun 23 07:47:02 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#20974 <20974@debbugs.gnu.org> To: bug#20974 <20974@debbugs.gnu.org> Subject: Status: Weird newline matching behaviour in --null-data mode Reply-To: bug#20974 <20974@debbugs.gnu.org> Date: Mon, 23 Jun 2025 14:47:02 +0000 retitle 20974 Weird newline matching behaviour in --null-data mode reassign 20974 grep submitter 20974 Balazs Kezes severity 20974 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 03 12:59:52 2015 Received: (at submit) by debbugs.gnu.org; 3 Jul 2015 16:59:52 +0000 Received: from localhost ([127.0.0.1]:38916 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZB4Jb-0008K6-Rp for submit@debbugs.gnu.org; Fri, 03 Jul 2015 12:59:52 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35996) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZB4Gf-0008FC-Bi for submit@debbugs.gnu.org; Fri, 03 Jul 2015 12:56:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZB4GY-0004Ev-QF for submit@debbugs.gnu.org; Fri, 03 Jul 2015 12:56:43 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:36614) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZB4GY-0004Eq-NI for submit@debbugs.gnu.org; Fri, 03 Jul 2015 12:56:42 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49501) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZB4GX-0000ya-SK for bug-grep@gnu.org; Fri, 03 Jul 2015 12:56:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZB4GU-0004Dg-Hk for bug-grep@gnu.org; Fri, 03 Jul 2015 12:56:41 -0400 Received: from mail-wi0-x22b.google.com ([2a00:1450:400c:c05::22b]:33648) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZB4GU-0004Ct-9v for bug-grep@gnu.org; Fri, 03 Jul 2015 12:56:38 -0400 Received: by wiwl6 with SMTP id l6so232066010wiw.0 for ; Fri, 03 Jul 2015 09:56:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=wOr6ZtpFL2XvtX3s1WWpIywhkUCAw5iHoVRLB65YC3E=; b=AlOdzCPRCDqLdp8GxWBoklW6KV+x24IUd2MFWADYXWK+pnYjqVGLqhHJOC9jC2sJCz qSeMNLNSk97cDMo/gcqQNm3nRtorpx51CgoPODkX6BmH0dsBPnhl2hYbfMG8h25qor5D Cwr1OjZ3DFMv3sfZMrHMkDJrrt/Efuct/hdUzCYWMgzGsys2lx6pQXpZDCdwcdX+7Bgd 3L9evewuP5b1cT15hwaWjPb3W7k7xa0QghUXqDNWk+o932pIr0VEw/A2aN+R6cHZUIoX CxU0ZD1P7bZr5LKmXZNdaqnPkpnWfHDCURwU2Ct12IgIgdI40djf2dQcksOMmXA6fgus ROrw== X-Received: by 10.180.107.138 with SMTP id hc10mr28700225wib.2.1435942596085; Fri, 03 Jul 2015 09:56:36 -0700 (PDT) Received: from eper (87-198-58-242.ptr.magnet.ie. [87.198.58.242]) by mx.google.com with ESMTPSA id k2sm14687023wif.4.2015.07.03.09.56.34 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 03 Jul 2015 09:56:35 -0700 (PDT) Date: Fri, 3 Jul 2015 17:59:19 +0100 From: Balazs Kezes To: bug-grep@gnu.org Subject: Weird newline matching behaviour in --null-data mode Message-ID: <20150703165919.GK1775@eper> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 03 Jul 2015 12:59:51 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -4.0 (----) Hello! I'm running into issues with grep in -z mode. I've managed to minimize it into this: $ seq 2 | grep --null-data --quiet '[12].2' ; echo $? 0 $ seq 2 | grep --null-data --quiet '[1-2].2' ; echo $? 1 I'd expect the two expressions to mean the same. I've tried this with the latest version built from the official sources, 2.21. I've also found [1] which might be related but it wasn't updated for almost 2 years. Or is this expected? Thanks! [1] http://savannah.gnu.org/bugs/?40009 -- Balazs From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 03 20:36:45 2015 Received: (at 20974) by debbugs.gnu.org; 4 Jul 2015 00:36:46 +0000 Received: from localhost ([127.0.0.1]:39082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBBRl-0005RI-FO for submit@debbugs.gnu.org; Fri, 03 Jul 2015 20:36:45 -0400 Received: from mailgw02.kcn.ne.jp ([61.86.7.209]:45509) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBBRi-0005Qo-IS for 20974@debbugs.gnu.org; Fri, 03 Jul 2015 20:36:43 -0400 Received: from mxs01-s (mailgw1.kcn.ne.jp [61.86.15.233]) by mailgw02.kcn.ne.jp (Postfix) with ESMTP id 6D63EBFCE8 for <20974@debbugs.gnu.org>; Sat, 4 Jul 2015 09:36:35 +0900 (JST) X-matriXscan-loop-detect: 4afc150504646a93eee22232ea21e5a95d4b2deb Received: from mail08.kcn.ne.jp ([61.86.6.187]) by mxs01-s with ESMTP; Sat, 04 Jul 2015 09:36:34 +0900 (JST) Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail08.kcn.ne.jp (Postfix) with ESMTPA id 2AB3512B802E; Sat, 4 Jul 2015 09:36:34 +0900 (JST) Date: Sat, 04 Jul 2015 09:36:32 +0900 From: Norihiro Tanaka To: Balazs Kezes Subject: Re: bug#20974: Weird newline matching behaviour in --null-data mode In-Reply-To: <20150703165919.GK1775@eper> References: <20150703165919.GK1775@eper> Message-Id: <20150704093632.EFD3.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-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 20974 Cc: 20974@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) On Fri, 3 Jul 2015 17:59:19 +0100 Balazs Kezes wrote: > I'm running into issues with grep in -z mode. I've managed to minimize > it into this: > > $ seq 2 | grep --null-data --quiet '[12].2' ; echo $? > 0 > $ seq 2 | grep --null-data --quiet '[1-2].2' ; echo $? > 1 > > I'd expect the two expressions to mean the same. I've tried this with > the latest version built from the official sources, 2.21. I've also > found [1] which might be related but it wasn't updated for almost 2 > years. Or is this expected? $ seq 2 | env LC_ALL=C grep --null-data --quiet '[12].2' ; echo $? 0 $ seq 2 | env LC_ALL=C grep --null-data --quiet '[1-2].2' ; echo $? 0 $ seq 2 | env LC_ALL=en_US.iso88591 grep --null-data --quiet '[12].2' ; echo $? 0 $ seq 2 | env LC_ALL=en_US.iso88591 grep --null-data --quiet '[1-2].2' ; echo $? 1 grep depends on regex for only last case to support collating element, but regex is not support to substitute NUL for LF as newline character with --null-data. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 03 23:03:39 2015 Received: (at 20974) by debbugs.gnu.org; 4 Jul 2015 03:03:39 +0000 Received: from localhost ([127.0.0.1]:39105 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBDju-0001Bx-5E for submit@debbugs.gnu.org; Fri, 03 Jul 2015 23:03:38 -0400 Received: from mail-yk0-f172.google.com ([209.85.160.172]:34321) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBDjr-0001Bi-GP for 20974@debbugs.gnu.org; Fri, 03 Jul 2015 23:03:36 -0400 Received: by ykfy125 with SMTP id y125so108809677ykf.1 for <20974@debbugs.gnu.org>; Fri, 03 Jul 2015 20:03:30 -0700 (PDT) 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=TUAjCoM2nA/Gk2mzXQjonEMqr6XLeRCefB6CelBlcBM=; b=jh3pzow58hpspqt3DUxdGPikUqUI7YyQnQvh4zQBsBmGHqD3AX7Jthv5EsX/Ow8vca reFGxfRW3WozrFXSDzx/Mnhow3towtO3lMq4ew0QuFvGlDoHGtHFrvOQK2nigtytwPyw qhL7jA7apIwm7yBwdww/46K7xYHIOMYFvuoc+ITkoowcrkTO8abCl3/yi88c4r382qmo iXn3NOaR61yNi29zVtW2XorxOpXCXi8NFi5IW1FHmffWOyxlGoGKEXLIpbfDAWdKg5RB /I0Mih0fCHZFfwscRilB9PPw9trcfMb1/TR5JjCOC9nlTuTUe+r+oV2/aDEobOQnI5K5 r28Q== X-Received: by 10.170.79.5 with SMTP id v5mr15506308ykv.15.1435979009900; Fri, 03 Jul 2015 20:03:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.201.66 with HTTP; Fri, 3 Jul 2015 20:03:10 -0700 (PDT) In-Reply-To: <20150703165919.GK1775@eper> References: <20150703165919.GK1775@eper> From: Jim Meyering Date: Fri, 3 Jul 2015 20:03:10 -0700 X-Google-Sender-Auth: 3unxzv9_1rSR4gZfgDMvCeOwLQI Message-ID: Subject: Re: bug#20974: Weird newline matching behaviour in --null-data mode To: Balazs Kezes Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20974 Cc: 20974@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, Jul 3, 2015 at 9:59 AM, Balazs Kezes wrote: > Hello! > > I'm running into issues with grep in -z mode. I've managed to minimize > it into this: > > $ seq 2 | grep --null-data --quiet '[12].2' ; echo $? > 0 > $ seq 2 | grep --null-data --quiet '[1-2].2' ; echo $? > 1 Thank you for the report. I too would like those two commands to work the same way. The problem is that when the regular expression contains a bracket expression with a range, grep switches from using its DFA matcher to relying on regex, but as Norihiro Tanaka mentioned, grep's use of the regex matcher with the --null-data (-z) option cannot match multi-line results. One can demonstrate the problem in the C locale too, by using a back-reference, since that construct also causes grep to use regex: $ printf '1\n1\n' |LC_ALL=en_US.UTF-8 src/grep -Ezq '1.1' $ printf '1\n1\n' |LC_ALL=en_US.UTF-8 src/grep -Ezq '(1).\1' [Exit 1] $ printf '1\n1\n' |LC_ALL=C src/grep -Ezq '(1).\1' [Exit 1] It'd be great to fix this, but it is not on my short-term radar, though I will add some expected-to-fail tests. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 03 23:10:36 2015 Received: (at 20974-done) by debbugs.gnu.org; 4 Jul 2015 03:10:36 +0000 Received: from localhost ([127.0.0.1]:39109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBDqd-0001Ne-Qo for submit@debbugs.gnu.org; Fri, 03 Jul 2015 23:10:36 -0400 Received: from mail-yk0-f178.google.com ([209.85.160.178]:33279) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBDqb-0001NP-9L for 20974-done@debbugs.gnu.org; Fri, 03 Jul 2015 23:10:34 -0400 Received: by ykdv136 with SMTP id v136so108913759ykd.0 for <20974-done@debbugs.gnu.org>; Fri, 03 Jul 2015 20:10:27 -0700 (PDT) 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=eXthGAFm+04nUWyU7FFtBjGwb11d+peFUCg2f6OgHrs=; b=Ds//BEmd0R8Fe4/SpRIlrp99E8sFbs3cKqDI12PSH2Bn5mhbLE7FEjE13DvG/xt80x pcshY39wK24ujH7ylY1xLe6J/vXsAfSzkg+lrMR70iJ1OEfk0DJKBbtF7mS+XYWKEIo+ 9tcZh2lpyL++aohtitWtAD06lQjXxD7BGdb9BSMa6KKNPeUvg6NoTniugTjTzkS//90c JGaPwvhz3U4k+7u+Ehob017D+ApfHwdU+19UHAKrvO/gBOPIOz77OYDbyODGGvxI+147 jf1QWuJxxgci97yv0izoTfzm+PncfeepkCuyLeli1lmmI4UNa4cGFEO5bUdpJ9YUA97P XFEw== X-Received: by 10.13.203.83 with SMTP id n80mr47695681ywd.10.1435979427832; Fri, 03 Jul 2015 20:10:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.201.66 with HTTP; Fri, 3 Jul 2015 20:10:08 -0700 (PDT) In-Reply-To: References: <20150703165919.GK1775@eper> From: Jim Meyering Date: Fri, 3 Jul 2015 20:10:08 -0700 X-Google-Sender-Auth: fp-DvRagCnPj5mByz3uG1nGXYME Message-ID: Subject: Re: bug#20974: Weird newline matching behaviour in --null-data mode To: Balazs Kezes Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20974-done Cc: 20974-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Fri, Jul 3, 2015 at 8:03 PM, Jim Meyering wrote: > On Fri, Jul 3, 2015 at 9:59 AM, Balazs Kezes wrote: >> Hello! >> >> I'm running into issues with grep in -z mode. I've managed to minimize >> it into this: >> >> $ seq 2 | grep --null-data --quiet '[12].2' ; echo $? >> 0 >> $ seq 2 | grep --null-data --quiet '[1-2].2' ; echo $? >> 1 > > Thank you for the report. > I too would like those two commands to work the same way. > The problem is that when the regular expression contains a > bracket expression with a range, grep switches from using > its DFA matcher to relying on regex, but as Norihiro Tanaka > mentioned, grep's use of the regex matcher with the > --null-data (-z) option cannot match multi-line results. > > One can demonstrate the problem in the C locale too, > by using a back-reference, since that construct also causes > grep to use regex: > > $ printf '1\n1\n' |LC_ALL=en_US.UTF-8 src/grep -Ezq '1.1' > $ printf '1\n1\n' |LC_ALL=en_US.UTF-8 src/grep -Ezq '(1).\1' > [Exit 1] > $ printf '1\n1\n' |LC_ALL=C src/grep -Ezq '(1).\1' > [Exit 1] > > It'd be great to fix this, but it is not on my short-term radar, > though I will add some expected-to-fail tests. Oh, nice! I see that Paul Eggert has just fixed this with the following patch: http://git.sv.gnu.org/cgit/grep.git/commit/?id=0e8fda0d880cccd0 So I'm closing this ticket. From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 04 00:41:11 2015 Received: (at 20974) by debbugs.gnu.org; 4 Jul 2015 04:41:11 +0000 Received: from localhost ([127.0.0.1]:39137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBFGI-0003tj-I5 for submit@debbugs.gnu.org; Sat, 04 Jul 2015 00:41:11 -0400 Received: from mailgw06.kcn.ne.jp ([61.86.7.213]:40187) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBFGF-0003t4-Dz for 20974@debbugs.gnu.org; Sat, 04 Jul 2015 00:41:09 -0400 Received: from mxs01-s (mailgw1.kcn.ne.jp [61.86.15.233]) by mailgw06.kcn.ne.jp (Postfix) with ESMTP id 07CB7C8009 for <20974@debbugs.gnu.org>; Sat, 4 Jul 2015 13:41:00 +0900 (JST) X-matriXscan-loop-detect: f6788605dc5d39d0e5a509faaf939cf892cd06a4 Received: from mail03.kcn.ne.jp ([61.86.6.182]) by mxs01-s with ESMTP; Sat, 04 Jul 2015 13:40:57 +0900 (JST) Received: from [10.120.1.47] (i118-21-128-66.s30.a048.ap.plala.or.jp [118.21.128.66]) by mail03.kcn.ne.jp (Postfix) with ESMTPA id 4B8BE141009A; Sat, 4 Jul 2015 13:40:57 +0900 (JST) Date: Sat, 04 Jul 2015 13:40:55 +0900 From: Norihiro Tanaka To: 20974@debbugs.gnu.org, jim@meyering.net, rlblaster@gmail.com Subject: Re: bug#20974: Weird newline matching behaviour in --null-data mode In-Reply-To: References: Message-Id: <20150704134054.EFE1.27F6AC2D@kcn.ne.jp> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------_5597600800000000EFFF_MULTIPART_MIXED_" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.65.07 [ja] X-matriXscan-Sophos-AV: Clean X-matriXscan-Action: Approve X-matriXscan: Uncategorized X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 20974 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 (/) --------_5597600800000000EFFF_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit On Fri, 3 Jul 2015 20:10:08 -0700 Jim Meyering wrote: > Oh, nice! I see that Paul Eggert has just fixed this with > the following patch: > http://git.sv.gnu.org/cgit/grep.git/commit/?id=0e8fda0d880cccd0 > > So I'm closing this ticket. > Paul's fix is very nice, I could not found it. However, following case is not fixed yet. Not only '.' but also hat list (e.g. [^a]) should match newline with -z. So we need clear RE_HAT_LISTS_NOT_NEWLINE bit. $ seq 2 | LC_ALL=C grep --null-data '[1-2][^a][1-2]' 1 2 $ seq 2 | LC_ALL=en_US.iso88591 grep --null-data '[1-2][^a][1-2]' --------_5597600800000000EFFF_MULTIPART_MIXED_ Content-Type: text/plain; charset="US-ASCII"; name="0001-grep-z-a-now-consistently-matches-newline.patch" Content-Disposition: attachment; filename="0001-grep-z-a-now-consistently-matches-newline.patch" Content-Transfer-Encoding: base64 RnJvbSBmOTkxMDQzODc1ZGM0YzJiYzY1OGFiMjI1NDhlNzIwZmFmMDJlMzgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOb3JpaGlybyBUYW5ha2EgPG5vcml0bmtAa2NuLm5lLmpwPgpE YXRlOiBGcmksIDMgSnVsIDIwMTUgMDM6NDM6MTUgKzA5MDAKU3ViamVjdDogW1BBVENIXSBncmVw OiAteiAnW15hXScgbm93IGNvbnNpc3RlbnRseSBtYXRjaGVzIG5ld2xpbmUKCiogTkVXUzogRG9j dW1lbnQgdGhpcy4KKiB0ZXN0cy91dGY4LWJyYWNrZXQ6IEFkZCB0ZXN0IGNhc2UgZm9yIHRoaXMg YnVnLgoqIHNyYy9ncmVwLmMgKEdjb21waWxlLCBFY29tcGlsZSk6IENsZWFyIFJFX0hBVF9MSVNU U19OT1RfTkVXTElORSBiaXQuCi0tLQogTkVXUyAgICAgICAgICAgICAgIHwgMiArLQogc3JjL2dy ZXAuYyAgICAgICAgIHwgOCArKysrKy0tLQogdGVzdHMvdXRmOC1icmFja2V0IHwgMiArLQogMyBm aWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvTkVXUyBiL05FV1MKaW5kZXggODhlZDBmNC4uMjYyZWJmYyAxMDA2NDQKLS0tIGEvTkVXUwor KysgYi9ORVdTCkBAIC0xMiw3ICsxMiw3IEBAIEdOVSBncmVwIE5FV1MgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGluZSAtKi0KICAgZ3JlcCBubyBsb25nZXIgcmVh ZHMgZnJvbSB1bmluaXRpYWxpemVkIG1lbW9yeSBvciBmcm9tIGJleW9uZCB0aGUgZW5kCiAgIG9m IHRoZSBoZWFwLWFsbG9jYXRlZCBpbnB1dCBidWZmZXIuICBUaGlzIGZpeCBhZGRyZXNzZWQgQ1ZF LTIwMTUtMTM0NS4KIAotICBXaXRoIC16LCAnLicgaW4gYSBwYXR0ZXJuIG5vdyBjb25zaXN0ZW50 bHkgbWF0Y2hlcyBuZXdsaW5lLgorICBXaXRoIC16LCAnLicgYW5kICdbXmFdJyBpbiBhIHBhdHRl cm4gbm93IGNvbnNpc3RlbnRseSBtYXRjaGVzIG5ld2xpbmUuCiAgIFByZXZpb3VzbHksIGl0IHNv bWV0aW1lcyBtYXRjaGVkIG5ld2xpbmUsIGFuZCBzb21ldGltZXMgZGlkIG5vdC4KICAgW2J1ZyBp bnRyb2R1Y2VkIGluIGdyZXAtMi40XQogCmRpZmYgLS1naXQgYS9zcmMvZ3JlcC5jIGIvc3JjL2dy ZXAuYwppbmRleCBlZDU0ZGMyLi5lYTRiMzNkIDEwMDY0NAotLS0gYS9zcmMvZ3JlcC5jCisrKyBi L3NyYy9ncmVwLmMKQEAgLTE4NjIsMTUgKzE4NjIsMTcgQEAgc3RhdGljIHZvaWQKIEdjb21waWxl IChjaGFyIGNvbnN0ICpwYXR0ZXJuLCBzaXplX3Qgc2l6ZSkKIHsKICAgR0VBY29tcGlsZSAocGF0 dGVybiwgc2l6ZSwKLSAgICAgICAgICAgICAgUkVfU1lOVEFYX0dSRVAgfCBSRV9ET1RfTkVXTElO RSB8IFJFX05PX0VNUFRZX1JBTkdFUyk7CisgICAgICAgICAgICAgICgoUkVfU1lOVEFYX0dSRVAg JiB+UkVfSEFUX0xJU1RTX05PVF9ORVdMSU5FKQorICAgICAgICAgICAgICAgfCBSRV9ET1RfTkVX TElORSB8IFJFX05PX0VNUFRZX1JBTkdFUykpOwogfQogCiBzdGF0aWMgdm9pZAogRWNvbXBpbGUg KGNoYXIgY29uc3QgKnBhdHRlcm4sIHNpemVfdCBzaXplKQogewogICBHRUFjb21waWxlIChwYXR0 ZXJuLCBzaXplLAotICAgICAgICAgICAgICAoUkVfU1lOVEFYX1BPU0lYX0VHUkVQIHwgUkVfRE9U X05FV0xJTkUKLSAgICAgICAgICAgICAgIHwgUkVfTk9fRU1QVFlfUkFOR0VTIHwgUkVfVU5NQVRD SEVEX1JJR0hUX1BBUkVOX09SRCkpOworICAgICAgICAgICAgICAoKFJFX1NZTlRBWF9QT1NJWF9F R1JFUCAmIH5SRV9IQVRfTElTVFNfTk9UX05FV0xJTkUpCisgICAgICAgICAgICAgICB8IFJFX0RP VF9ORVdMSU5FIHwgUkVfTk9fRU1QVFlfUkFOR0VTCisgICAgICAgICAgICAgICB8IFJFX1VOTUFU Q0hFRF9SSUdIVF9QQVJFTl9PUkQpKTsKIH0KIAogc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3Rl c3RzL3V0ZjgtYnJhY2tldCBiL3Rlc3RzL3V0ZjgtYnJhY2tldAppbmRleCBmNWM0YTYwLi5hNjBh OWU0IDEwMDc1NQotLS0gYS90ZXN0cy91dGY4LWJyYWNrZXQKKysrIGIvdGVzdHMvdXRmOC1icmFj a2V0CkBAIC0yNCw3ICsyNCw3IEBAIHByaW50ZiAnMVxuMlxuJyA+aW4gfHwgZnJhbWV3b3JrX2Zh aWx1cmVfCiBmYWlsPTAKIAogZm9yIGxvY2FsZSBpbiBDIGVuX1VTLlVURi04OyBkbwotICBmb3Ig cGF0dGVybiBpbiAnMS4yJyAnWzEyXS4yJyAnWzEtMl0uMic7IGRvCisgIGZvciBwYXR0ZXJuIGlu ICcxLjInICdbMTJdLjInICdbMS0yXS4yJyAnWzEtMl1bXmFdWzEtMl0nOyBkbwogICAgIGZvciBz dWZmaXggaW4gJycgJ1woXClcMSc7IGRvCiAgICAgICBMQ19BTEw9JGxvY2FsZSBncmVwIC0tbnVs bC1kYXRhIC0tcXVpZXQgIiRwYXR0ZXJuJHN1ZmZpeCIgaW4gfHwgZmFpbD0xCiAgICAgZG9uZQot LSAKMi4yLjAKCg== --------_5597600800000000EFFF_MULTIPART_MIXED_-- From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 04 11:50:30 2015 Received: (at 20974) by debbugs.gnu.org; 4 Jul 2015 15:50:30 +0000 Received: from localhost ([127.0.0.1]:39858 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBPi0-0007Sj-6l for submit@debbugs.gnu.org; Sat, 04 Jul 2015 11:50:29 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:48754) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBPhv-0007SJ-9l for 20974@debbugs.gnu.org; Sat, 04 Jul 2015 11:50:25 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 382581608CB; Sat, 4 Jul 2015 08:50:17 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 98Voi4rC_wmv; Sat, 4 Jul 2015 08:50:15 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 3D7EA1608D4; Sat, 4 Jul 2015 08:50:15 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5_DXjzRSbMls; Sat, 4 Jul 2015 08:50:15 -0700 (PDT) Received: from [192.168.1.9] (pool-100-32-155-148.lsanca.fios.verizon.net [100.32.155.148]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 019031608CB; Sat, 4 Jul 2015 08:50:14 -0700 (PDT) Message-ID: <559800B6.2020708@cs.ucla.edu> Date: Sat, 04 Jul 2015 08:50:14 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Norihiro Tanaka , 20974@debbugs.gnu.org, jim@meyering.net, rlblaster@gmail.com Subject: Re: bug#20974: Weird newline matching behaviour in --null-data mode References: <20150704134054.EFE1.27F6AC2D@kcn.ne.jp> In-Reply-To: <20150704134054.EFE1.27F6AC2D@kcn.ne.jp> Content-Type: multipart/mixed; boundary="------------050700060602070408050107" X-Spam-Score: -0.6 (/) X-Debbugs-Envelope-To: 20974 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 (/) This is a multi-part message in MIME format. --------------050700060602070408050107 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Norihiro Tanaka wrote: > Not only '.' but also hat > list (e.g. [^a]) should match newline with -z. So we need clear > RE_HAT_LISTS_NOT_NEWLINE bit. Thanks for reporting that. I also noticed some related bugs in dfa.c that 'grep' does not exercise (so no grep test cases, alas). Plus, it's long been time that we fix RE_SYNTAX_GREP and RE_SYNTAX_EGREP to match grep's actual behavior. So I installed a Gnulib patch to update RE_SYNTAX_GREP and RE_SYNTAX_EGREP to the fixed behavior (see ) and installed grep patches to sync to gnulib and fix the other problems. The first attached patch I installed yesterday (and you've commented on it) but I didn't have time to send email about it so am attaching it now. The other five attached patches fix the bugs noted above. Here's the justification for the first attached patch. The grep documentation says that '.' matches any character, and this includes both NUL and LF. Ordinarily, LF terminates a line and so is never part of match data, but '.' should still match NUL. Conversely with -z, NUL terminates a line and so is never part of match data, but '.' should still match LF. --------------050700060602070408050107 Content-Type: text/x-diff; name="0001-grep-z-.-now-consistently-matches-newline.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-grep-z-.-now-consistently-matches-newline.patch" >From 0e8fda0d880cccd0e1997a905eb9a7910f957245 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 3 Jul 2015 18:23:59 -0700 Subject: [PATCH 1/6] grep: -z '.' now consistently matches newline Problem reported by Balazs Kezes in: http://bugs.gnu.org/20974 * NEWS: Document this. * tests/utf8-bracket: New file, to test for this bug. * src/grep.c (Gcompile, Ecompile): Also specify RE_DOT_NEWLINE. * tests/Makefile.am (TESTS): Add it. --- NEWS | 4 ++++ src/grep.c | 7 ++++--- tests/Makefile.am | 1 + tests/utf8-bracket | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100755 tests/utf8-bracket diff --git a/NEWS b/NEWS index bbbe893..88ed0f4 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,10 @@ GNU grep NEWS -*- outline -*- grep no longer reads from uninitialized memory or from beyond the end of the heap-allocated input buffer. This fix addressed CVE-2015-1345. + With -z, '.' in a pattern now consistently matches newline. + Previously, it sometimes matched newline, and sometimes did not. + [bug introduced in grep-2.4] + When the JIT stack is exhausted, grep -P now grows the stack rather than reporting an internal PCRE error. diff --git a/src/grep.c b/src/grep.c index 778dbcb..ed54dc2 100644 --- a/src/grep.c +++ b/src/grep.c @@ -1861,15 +1861,16 @@ if any error occurs and -q is not given, the exit status is 2.\n")); static void Gcompile (char const *pattern, size_t size) { - GEAcompile (pattern, size, RE_SYNTAX_GREP | RE_NO_EMPTY_RANGES); + GEAcompile (pattern, size, + RE_SYNTAX_GREP | RE_DOT_NEWLINE | RE_NO_EMPTY_RANGES); } static void Ecompile (char const *pattern, size_t size) { GEAcompile (pattern, size, - (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES - | RE_UNMATCHED_RIGHT_PAREN_ORD)); + (RE_SYNTAX_POSIX_EGREP | RE_DOT_NEWLINE + | RE_NO_EMPTY_RANGES | RE_UNMATCHED_RIGHT_PAREN_ORD)); } static void diff --git a/tests/Makefile.am b/tests/Makefile.am index 7bceac7..629d322 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -120,6 +120,7 @@ TESTS = \ two-files \ unibyte-bracket-expr \ unibyte-negated-circumflex \ + utf8-bracket \ warn-char-classes \ word-delim-multibyte \ word-multi-file \ diff --git a/tests/utf8-bracket b/tests/utf8-bracket new file mode 100755 index 0000000..f5c4a60 --- /dev/null +++ b/tests/utf8-bracket @@ -0,0 +1,34 @@ +#!/bin/sh +# Check bracket expressions in a UTF-8 locale. + +# Copyright 2015 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +. "${srcdir=.}/init.sh"; path_prepend_ ../src +require_en_utf8_locale_ + +printf '1\n2\n' >in || framework_failure_ + +fail=0 + +for locale in C en_US.UTF-8; do + for pattern in '1.2' '[12].2' '[1-2].2'; do + for suffix in '' '\(\)\1'; do + LC_ALL=$locale grep --null-data --quiet "$pattern$suffix" in || fail=1 + done + done +done + +Exit $fail -- 2.1.0 --------------050700060602070408050107 Content-Type: text/x-diff; name="0002-grep-z-x-now-consistently-matches-newline.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0002-grep-z-x-now-consistently-matches-newline.patch" >From 4629191813aca41fa65cfba698683e662e41a5a5 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 07:06:50 -0700 Subject: [PATCH 2/6] grep: -z '[^x]' now consistently matches newline Problem reported by Norihiro Tanaka in: http://bugs.gnu.org/20974#19 * NEWS: Document this. * src/grep.c (Gcompile, Ecompile): Clear RE_HAT_LISTS_NOT_NEWLINE. * tests/utf8-bracket: Test this. --- NEWS | 4 ++-- src/grep.c | 8 +++++--- tests/utf8-bracket | 12 +++++++++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 88ed0f4..35c4aad 100644 --- a/NEWS +++ b/NEWS @@ -12,8 +12,8 @@ GNU grep NEWS -*- outline -*- grep no longer reads from uninitialized memory or from beyond the end of the heap-allocated input buffer. This fix addressed CVE-2015-1345. - With -z, '.' in a pattern now consistently matches newline. - Previously, it sometimes matched newline, and sometimes did not. + With -z, '.' and '[^x]' in a pattern now consistently match newline. + Previously, they sometimes matched newline, and sometimes did not. [bug introduced in grep-2.4] When the JIT stack is exhausted, grep -P now grows the stack rather diff --git a/src/grep.c b/src/grep.c index ed54dc2..9b38cf5 100644 --- a/src/grep.c +++ b/src/grep.c @@ -1862,15 +1862,17 @@ static void Gcompile (char const *pattern, size_t size) { GEAcompile (pattern, size, - RE_SYNTAX_GREP | RE_DOT_NEWLINE | RE_NO_EMPTY_RANGES); + ((RE_SYNTAX_GREP | RE_DOT_NEWLINE | RE_NO_EMPTY_RANGES) + & ~RE_HAT_LISTS_NOT_NEWLINE)); } static void Ecompile (char const *pattern, size_t size) { GEAcompile (pattern, size, - (RE_SYNTAX_POSIX_EGREP | RE_DOT_NEWLINE - | RE_NO_EMPTY_RANGES | RE_UNMATCHED_RIGHT_PAREN_ORD)); + ((RE_SYNTAX_POSIX_EGREP | RE_DOT_NEWLINE + | RE_NO_EMPTY_RANGES | RE_UNMATCHED_RIGHT_PAREN_ORD) + & ~RE_HAT_LISTS_NOT_NEWLINE)); } static void diff --git a/tests/utf8-bracket b/tests/utf8-bracket index f5c4a60..b63afbb 100755 --- a/tests/utf8-bracket +++ b/tests/utf8-bracket @@ -24,9 +24,15 @@ printf '1\n2\n' >in || framework_failure_ fail=0 for locale in C en_US.UTF-8; do - for pattern in '1.2' '[12].2' '[1-2].2'; do - for suffix in '' '\(\)\1'; do - LC_ALL=$locale grep --null-data --quiet "$pattern$suffix" in || fail=1 + for options in -qz -qzE; do + case $options in + *E*) parens='()';; + *) parens='\(\)';; + esac + for pattern in '1.2' '[12].2' '[1-2].2' '[1-2][^a][1-2]'; do + for suffix in '' "$parens\\1"; do + LC_ALL=$locale grep $options "$pattern$suffix" in || fail=1 + done done done done -- 2.1.0 --------------050700060602070408050107 Content-Type: text/x-diff; name="0003-dfa-.-and-x-now-consistently-match-newline.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0003-dfa-.-and-x-now-consistently-match-newline.patch" >From 66521f5b70559b58498d47a0afb92b174f12d78f Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 07:16:32 -0700 Subject: [PATCH 3/6] dfa: '.' and '[^x]' now consistently match newline * src/dfa.c (parse_bracket_exp, lex, add_utf8_anychar) (match_anychar): RE_DOT_NEWLINE and RE_HAT_LISTS_NOT_NEWLINE are about LF, not about eolbyte. This patch does not affect 'grep', but may affect other users of dfa.c. --- src/dfa.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dfa.c b/src/dfa.c index 8901f69..c7b659e 100644 --- a/src/dfa.c +++ b/src/dfa.c @@ -1242,7 +1242,7 @@ parse_bracket_exp (void) assert (!dfa->multibyte); notset (ccl); if (syntax_bits & RE_HAT_LISTS_NOT_NEWLINE) - clrbit (eolbyte, ccl); + clrbit ('\n', ccl); } return CSET + charclass_index (ccl); @@ -1487,7 +1487,7 @@ lex (void) zeroset (ccl); notset (ccl); if (!(syntax_bits & RE_DOT_NEWLINE)) - clrbit (eolbyte, ccl); + clrbit ('\n', ccl); if (syntax_bits & RE_DOT_NOT_NULL) clrbit ('\0', ccl); laststart = false; @@ -1759,7 +1759,7 @@ add_utf8_anychar (void) if (i == 1) { if (!(syntax_bits & RE_DOT_NEWLINE)) - clrbit (eolbyte, c); + clrbit ('\n', c); if (syntax_bits & RE_DOT_NOT_NULL) clrbit ('\0', c); } @@ -2991,7 +2991,7 @@ match_anychar (struct dfa *d, state_num s, position pos, int context; /* Check syntax bits. */ - if (wc == (wchar_t) eolbyte) + if (wc == (wchar_t) '\n') { if (!(syntax_bits & RE_DOT_NEWLINE)) return 0; -- 2.1.0 --------------050700060602070408050107 Content-Type: text/x-diff; name="0004-build-update-gnulib-submodule-to-latest.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0004-build-update-gnulib-submodule-to-latest.patch" >From 4ced7bc93f152981cebc8a001f7f1f6b031fec78 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 08:28:09 -0700 Subject: [PATCH 4/6] build: update gnulib submodule to latest --- gnulib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnulib b/gnulib index aecd387..5a5a938 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit aecd38787af5ca0000e184912194e8c83123eb7f +Subproject commit 5a5a9388e93d00a7bcb97700a7a552bef20343fd -- 2.1.0 --------------050700060602070408050107 Content-Type: text/x-diff; name="0005-maint-ignore-gendocs_template_min.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0005-maint-ignore-gendocs_template_min.patch" >From 89ba3a292ab3fc76a9293c49f2a40953948eaac4 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 08:33:54 -0700 Subject: [PATCH 5/6] maint: ignore gendocs_template_min * doc/.gitignore: Add '/gendocs_template_min'. --- doc/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/.gitignore b/doc/.gitignore index a059eae..ac147d2 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -2,6 +2,7 @@ /fdl.texi /fgrep.1 /gendocs_template +/gendocs_template_min /grep.info* /stamp-vti /version.texi -- 2.1.0 --------------050700060602070408050107 Content-Type: text/x-diff; name="0006-grep-use-recent-gnulib-syntax-bits.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0006-grep-use-recent-gnulib-syntax-bits.patch" >From c279a25680129b5525a6ee0f7112f5fb0061ce96 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sat, 4 Jul 2015 08:35:58 -0700 Subject: [PATCH 6/6] grep: use recent gnulib syntax bits * src/grep.c (Gcompile, Ecompile): Use plain RE_SYNTAX_GREP and RE_SYNTAX_EGREP, now that we assume a recent-enough gnulib. --- src/grep.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/grep.c b/src/grep.c index 9b38cf5..a735ea5 100644 --- a/src/grep.c +++ b/src/grep.c @@ -1861,18 +1861,13 @@ if any error occurs and -q is not given, the exit status is 2.\n")); static void Gcompile (char const *pattern, size_t size) { - GEAcompile (pattern, size, - ((RE_SYNTAX_GREP | RE_DOT_NEWLINE | RE_NO_EMPTY_RANGES) - & ~RE_HAT_LISTS_NOT_NEWLINE)); + GEAcompile (pattern, size, RE_SYNTAX_GREP); } static void Ecompile (char const *pattern, size_t size) { - GEAcompile (pattern, size, - ((RE_SYNTAX_POSIX_EGREP | RE_DOT_NEWLINE - | RE_NO_EMPTY_RANGES | RE_UNMATCHED_RIGHT_PAREN_ORD) - & ~RE_HAT_LISTS_NOT_NEWLINE)); + GEAcompile (pattern, size, RE_SYNTAX_EGREP); } static void -- 2.1.0 --------------050700060602070408050107-- From unknown Mon Jun 23 07:47:02 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 02 Aug 2015 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator