From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eric Blake Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 13 Feb 2017 19:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: 25707@debbugs.gnu.org X-Debbugs-Original-To: bug-grep@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.148701385531463 (code B ref -1); Mon, 13 Feb 2017 19:25:02 +0000 Received: (at submit) by debbugs.gnu.org; 13 Feb 2017 19:24:15 +0000 Received: from localhost ([127.0.0.1]:38843 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMER-0008BO-87 for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:15 -0500 Received: from eggs.gnu.org ([208.118.235.92]:45272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMEP-0008B9-5g for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdMEI-0006JQ-K4 for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57815) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdMEI-0006JL-Gv for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cdMEH-0004Yx-8U for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdMED-0006Ek-9r for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44098) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdMED-0006Dv-3d for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:01 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1DF3C80478 for ; Mon, 13 Feb 2017 19:24:01 +0000 (UTC) Received: from red.redhat.com (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1DJO01N025403 for ; Mon, 13 Feb 2017 14:24:00 -0500 From: Eric Blake Date: Mon, 13 Feb 2017 13:23:58 -0600 Message-Id: <20170213192358.19297-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 13 Feb 2017 19:24:01 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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.1 (----) Commit 5c92a54 made the mistaken assumption that using fopen("rt") on platforms where O_TEXT is non-zero makes sense. However, POSIX already requires fopen("r") to open a file in text mode, vs. fopen("rb") when binary mode is wanted, and at least on Cygwin, where it is possible to control whether a mount point is binary or text by default (using just "r"), the use of fopen("rt") actively breaks assumptions on a binary mount by silently corrupting any carriage returns that are supposed to be preserved. * src/grep.c (main): Never use fopen("rt"). Signed-off-by: Eric Blake --- src/grep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/grep.c b/src/grep.c index 74acb0b..ce8859b 100644 --- a/src/grep.c +++ b/src/grep.c @@ -2586,7 +2586,7 @@ main (int argc, char **argv) break; case 'f': - fp = STREQ (optarg, "-") ? stdin : fopen (optarg, O_TEXT ? "rt" : "r"); + fp = STREQ (optarg, "-") ? stdin : fopen (optarg, "r"); if (!fp) die (EXIT_TROUBLE, errno, "%s", optarg); oldcc = keycc; -- 2.9.3 From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 13 Feb 2017 20:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eric Blake , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.14870160522280 (code B ref 25707); Mon, 13 Feb 2017 20:01:02 +0000 Received: (at 25707) by debbugs.gnu.org; 13 Feb 2017 20:00:52 +0000 Received: from localhost ([127.0.0.1]:38854 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMns-0000ah-Hc for submit@debbugs.gnu.org; Mon, 13 Feb 2017 15:00:52 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:53402) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMnq-0000aT-Ns for 25707@debbugs.gnu.org; Mon, 13 Feb 2017 15:00:51 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id F0E32160086; Mon, 13 Feb 2017 12:00:43 -0800 (PST) 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 G0lhOENcAwIJ; Mon, 13 Feb 2017 12:00:43 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 49FB41600B7; Mon, 13 Feb 2017 12:00:43 -0800 (PST) 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 AmlUgNGSyplM; Mon, 13 Feb 2017 12:00:43 -0800 (PST) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2CCB3160086; Mon, 13 Feb 2017 12:00:43 -0800 (PST) References: <20170213192358.19297-1-eblake@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> Date: Mon, 13 Feb 2017 12:00:43 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <20170213192358.19297-1-eblake@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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 02/13/2017 11:23 AM, Eric Blake wrote: > the use of fopen("rt") actively > breaks assumptions on a binary mount by silently corrupting any > carriage returns that are supposed to be preserved. Surely it's more typical for trailing CRs to be ignored rather than be preserved, even on binary mounts. The intent of that "rt" (introduced on 2014-04-11 in commit 5c92a54ec36f176854f0b0cca83b5ff224f2d8e8) was to simplify the code, which formerly used undossify_input to guess whether a pattern file had trailing CRs. If we change "rt" to "r", surely we'd need to reintroduce undossify_input; and wouldn't undossify_input also "silently corrupt" carriage returns in most cases? While we're on the topic, the undossify_input approach is just a heuristic and it sometimes guesses wrong. I wish the heuristic could be removed somehow, so that grep would behave more deterministically on MS-DOS/Windows. From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eric Blake Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Mon, 13 Feb 2017 20:22:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Paul Eggert , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.14870172664084 (code B ref 25707); Mon, 13 Feb 2017 20:22:01 +0000 Received: (at 25707) by debbugs.gnu.org; 13 Feb 2017 20:21:06 +0000 Received: from localhost ([127.0.0.1]:38874 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdN7S-00013o-Fn for submit@debbugs.gnu.org; Mon, 13 Feb 2017 15:21:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52086) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdN7Q-000130-3X for 25707@debbugs.gnu.org; Mon, 13 Feb 2017 15:21:05 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 23CBC8046E; Mon, 13 Feb 2017 20:20:59 +0000 (UTC) Received: from [10.10.123.249] (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1DKKw17028129; Mon, 13 Feb 2017 15:20:58 -0500 References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> From: Eric Blake Openpgp: url=http://people.redhat.com/eblake/eblake.gpg Organization: Red Hat, Inc. Message-ID: <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> Date: Mon, 13 Feb 2017 14:20:56 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Nuw3Rp9NnJBmRFcm79cGbjxo77oT3wEEE" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 13 Feb 2017 20:20:59 +0000 (UTC) X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Nuw3Rp9NnJBmRFcm79cGbjxo77oT3wEEE Content-Type: multipart/mixed; boundary="HcWgT638BSkt7ieDDIFSCKe1oqkHVejsj"; protected-headers="v1" From: Eric Blake To: Paul Eggert , 25707@debbugs.gnu.org Message-ID: <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> Subject: Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> In-Reply-To: <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> --HcWgT638BSkt7ieDDIFSCKe1oqkHVejsj Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 02/13/2017 02:00 PM, Paul Eggert wrote: > On 02/13/2017 11:23 AM, Eric Blake wrote: >> the use of fopen("rt") actively >> breaks assumptions on a binary mount by silently corrupting any >> carriage returns that are supposed to be preserved. >=20 > Surely it's more typical for trailing CRs to be ignored rather than be > preserved, even on binary mounts. On binary mounts, it is atypical to have a file with trailing CRs in the first place - but when they are there, they are intentional. Stripping a trailing CR on a file that was placed in a binary mount in order to preserve the CR is what is wrong. >=20 > The intent of that "rt" (introduced on 2014-04-11 in commit > 5c92a54ec36f176854f0b0cca83b5ff224f2d8e8) was to simplify the code, > which formerly used undossify_input to guess whether a pattern file had= > trailing CRs. If we change "rt" to "r", surely we'd need to reintroduce= > undossify_input; and wouldn't undossify_input also "silently corrupt" > carriage returns in most cases? No, we don't need undossify_input. Generally, the pattern file is already clean (using fopen("r") on a text mount already got rid of all CR, and using fopen("r") on a binary mount shouldn't have CR in the first place). And in the rare cases where you DO have CR in the pattern file on a binary mount, then it is probably intended that you are searching for CR as part of the pattern (if not, the user should use a purpose-built applications, like d2u (dos2unix), to clean up the pattern file before passing that file to 'grep -f'). You are correct that undossify_input would silently corrupt carriage returns, but I'm arguing that we don't ever want to be in the business of removing CR (either the OS has already removed them on our behalf because of the text mount, or the user doesn't want them removed because of the binary mount). Years ago, Cygwin actively advertised that you could create text mount points. It generated a LOT of mailing list traffic about various different apps that misbehaved in subtly different ways (not the least of these is the fact that lseek() on a file opened in text mode is prone to return the WRONG offset, which makes seeking back to the last-used byte unreliable in applications that only partially consume input while still complying with the POSIX rule that the next app to share stdin picks up where the first one left off). It's now been more than 6 years since Cygwin has actively discouraged new installations from having a text mount (they are still possible, but no longer a default installation choice), and there have actually been far fewer complaints about binary-only mounts misbehaving, except in programs like grep that eat CR from a file that is supposed to be preserved in binary mode. >=20 > While we're on the topic, the undossify_input approach is just a > heuristic and it sometimes guesses wrong. I wish the heuristic could be= > removed somehow, so that grep would behave more deterministically on > MS-DOS/Windows. >=20 I'm of the opinion that undossify_input causes more problems than it solves. We should trust fopen("r") to do the right thing, rather than reinventing it ourselves. --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --HcWgT638BSkt7ieDDIFSCKe1oqkHVejsj-- --Nuw3Rp9NnJBmRFcm79cGbjxo77oT3wEEE Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYohUoAAoJEKeha0olJ0NqcDwIAJKX/HDp6F84vZFwUWR5xGyH JK9555yUylkNc4j4qfqrEkXoDSwQA/8Tsa/C/mxK2Z9ByO/ericqB6BLXHPWoXq5 R63Vsp3hY1CS1MWTEwhf2q/fVAaiuSOZITT3U/QrC27w3aQZskixficjLK19Xtxi /jbxxm0xlk0cBUCfw42iElwpxS2SKStDA8CRopi444Fpinb9W/K8LuefWo89ge0z wPZxQRgjAQJp+gNCNvFXjN9BCJ++sTKvZXqhHUF4KHvPLbSSK+iSGHeZtcTKZ4T2 Hd/8YJy4vRZJNnpJiDzifbVW72detg5jYVIbnl7d1DWaSFaXhU00O/FiUGes6Jg= =Tc6j -----END PGP SIGNATURE----- --Nuw3Rp9NnJBmRFcm79cGbjxo77oT3wEEE-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Tue, 14 Feb 2017 23:09:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eric Blake , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148711370218137 (code B ref 25707); Tue, 14 Feb 2017 23:09:02 +0000 Received: (at 25707) by debbugs.gnu.org; 14 Feb 2017 23:08:22 +0000 Received: from localhost ([127.0.0.1]:40301 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdmCr-0004iS-MD for submit@debbugs.gnu.org; Tue, 14 Feb 2017 18:08:22 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:33706) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdmCp-0004iE-Lk for 25707@debbugs.gnu.org; Tue, 14 Feb 2017 18:08:20 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id AA5B716007F; Tue, 14 Feb 2017 15:08:13 -0800 (PST) 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 URbwReV-WjW4; Tue, 14 Feb 2017 15:08:12 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 0AC0616008E; Tue, 14 Feb 2017 15:08:12 -0800 (PST) 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 qLO3CSz6fGTY; Tue, 14 Feb 2017 15:08:11 -0800 (PST) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id DECC316007F; Tue, 14 Feb 2017 15:08:11 -0800 (PST) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Tue, 14 Feb 2017 15:08:11 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> Content-Type: multipart/mixed; boundary="------------7A9547DB04E839EF87BE2A79" X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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.5 (/) This is a multi-part message in MIME format. --------------7A9547DB04E839EF87BE2A79 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 02/13/2017 12:20 PM, Eric Blake wrote: > undossify_input causes more problems than it > solves. We should trust fopen("r") to do the right thing, rather than > reinventing it ourselves. Yes, that makes sense. Attached is a proposed patch to implement this. It assumes the patch you already submitted for Bug#25707. This patch keeps the -U option, for MS-Windows users who want to override fopen "-r"'s choice of binary vs text I/O. Perhaps that's too conservative? It would be easy to turn -U into a no-op too. --------------7A9547DB04E839EF87BE2A79 Content-Type: text/plain; charset=UTF-8; name="0001-Simplify-U-on-MS-Windows-by-removing-guesswork.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Simplify-U-on-MS-Windows-by-removing-guesswork.txt" RnJvbSA2NWEwMmQ4MWI2OWRhMmNhYjljY2NmYjE1Y2UzODM3Njg1YzA4MDdiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUdWUsIDE0IEZlYiAyMDE3IDE1OjAyOjU5IC0wODAwClN1YmplY3Q6IFtQQVRD SF0gU2ltcGxpZnkgLVUgb24gTVMtV2luZG93cyBieSByZW1vdmluZyBndWVzc3dvcmsKClN1 Z2dlc3RlZCBieSBFcmljIEJsYWtlIChCdWcjMjU3MDcjMTEpLgoqIE5FV1MsIGRvYy9ncmVw LnRleGk6IERvY3VtZW50IHRoaXMuCiogc3JjL2Rvc2J1Zi5jOiBSZW1vdmUuCiogYm9vdHN0 cmFwLmNvbmYgKGdudWxpYl9tb2R1bGVzKTogQWRkIHhmcmVvcGVuLgoqIHNyYy9ncmVwLmM6 IEluY2x1ZGUgeGZyZW9wZW4uaCwgbm90IGRvc2J1Zi5jLgooZmlsbGJ1ZiwgcHJpbnRfbGlu ZV9oZWFkKTogRG8gbm90IHVuZG9zc2lmeSBpbnB1dC4KKGJpbmFyeSk6IE5ldyBzdGF0aWMg dmFyLgooZ3JlcGRlc2MpOiBBcHBseSBCSU5BUlkgdG8gaW5wdXQgZmlsZS4KKHVzYWdlKTog UmVtb3ZlIC11IGhlbHAuCihtYWluKTogU2V0IEJJTkFSWSBpZiAtVSwgYW5kIGFwcGx5IGl0 IHRvIHN0ZG91dC4gIERvIG5vdGhpbmcgaWYgLXUuCldpdGggLWYsIGFwcGx5IEJJTkFSWSB0 byBpbnB1dCBmaWxlLgotLS0KIE5FV1MgICAgICAgICAgIHwgICA3ICsrCiBib290c3RyYXAu Y29uZiB8ICAgMSArCiBkb2MvZ3JlcC50ZXhpICB8ICA1NCArKysrKystLS0tLS0tLQogc3Jj L2Rvc2J1Zi5jICAgfCAyMjIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZ3JlcC5jICAgICB8ICAzNCArKysrLS0tLS0K IDUgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjcyIGRlbGV0aW9ucygtKQog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9kb3NidWYuYwoKZGlmZiAtLWdpdCBhL05FV1MgYi9O RVdTCmluZGV4IDg5Njc0ZjMuLmMzODdhZWYgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVX UwpAQCAtMiw2ICsyLDEzIEBAIEdOVSBncmVwIE5FV1MgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtKi0gb3V0bGluZSAtKi0KIAogKiBOb3Rld29ydGh5IGNoYW5nZXMg aW4gcmVsZWFzZSA/Lj8gKD8/Pz8tPz8tPz8pIFs/XQogCisqKiBDaGFuZ2VzIGluIGJlaGF2 aW9yCisKKyAgVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFmZmVjdCBvbmx5IE1TLVdpbmRvd3Mg cGxhdGZvcm1zLiAgRmlyc3QsIHRoZQorICAtLWJpbmFyeSAoLVUpIG9wdGlvbiBub3cgZ292 ZXJucyB3aGV0aGVyIGJpbmFyeSBJL08gaXMgdXNlZCwgaW5zdGVhZAorICBvZiBhIGhldXJp c3RpYyB0aGF0IHdhcyBzb21ldGltZXMgaW5jb3JyZWN0LiAgU2Vjb25kLCB0aGUKKyAgLS11 bml4LWJ5dGUtb2Zmc2V0cyAoLXUpIG9wdGlvbiBub3cgaGFzIG5vIGVmZmVjdCBvbiBNUy1X aW5kb3dzIHRvby4KKwogCiAqIE5vdGV3b3J0aHkgY2hhbmdlcyBpbiByZWxlYXNlIDMuMCAo MjAxNy0wMi0wOSkgW3N0YWJsZV0KIApkaWZmIC0tZ2l0IGEvYm9vdHN0cmFwLmNvbmYgYi9i b290c3RyYXAuY29uZgppbmRleCBjZDJkNzU2Li40MTE1ZjM1IDEwMDY0NAotLS0gYS9ib290 c3RyYXAuY29uZgorKysgYi9ib290c3RyYXAuY29uZgpAQCAtOTUsNiArOTUsNyBAQCB3Y3J0 b21iCiB3Y3RvYgogd2N0eXBlLWgKIHhhbGxvYworeGZyZW9wZW4KIHhzdHJ0b2ltYXgKICcK IGdudWxpYl9uYW1lPWxpYmdyZXB1dGlscwpkaWZmIC0tZ2l0IGEvZG9jL2dyZXAudGV4aSBi L2RvYy9ncmVwLnRleGkKaW5kZXggN2MwNTFlMC4uOTRhMDYyMSAxMDA2NDQKLS0tIGEvZG9j L2dyZXAudGV4aQorKysgYi9kb2MvZ3JlcC50ZXhpCkBAIC00MTIsMTAgKzQxMiw2IEBAIFBy aW50IHRoZSAwLWJhc2VkIGJ5dGUgb2Zmc2V0IHdpdGhpbiB0aGUgaW5wdXQgZmlsZQogYmVm b3JlIGVhY2ggbGluZSBvZiBvdXRwdXQuCiBJZiBAb3B0aW9uey1vfSAoQG9wdGlvbnstLW9u bHktbWF0Y2hpbmd9KSBpcyBzcGVjaWZpZWQsCiBwcmludCB0aGUgb2Zmc2V0IG9mIHRoZSBt YXRjaGluZyBwYXJ0IGl0c2VsZi4KLVdoZW4gQGNvbW1hbmR7Z3JlcH0gcnVucyBvbiBNUy1E T1Mgb3IgTVMtV2luZG93cywKLXRoZSBwcmludGVkIGJ5dGUgb2Zmc2V0cyBkZXBlbmQgb24g d2hldGhlcgotdGhlIEBvcHRpb257LXV9IChAb3B0aW9uey0tdW5peC1ieXRlLW9mZnNldHN9 KSBvcHRpb24gaXMgdXNlZDsKLXNlZSBiZWxvdy4KIAogQGl0ZW0gLUgKIEBpdGVteCAtLXdp dGgtZmlsZW5hbWUKQEAgLTQ2NiwyMSArNDYyLDYgQEAgVGhpcyBpcyB1c2VmdWwgd2l0aCBv cHRpb25zIHRoYXQgcHJlZml4IHRoZWlyIG91dHB1dCB0byB0aGUgYWN0dWFsIGNvbnRlbnQ6 CiBUaGlzIG1heSBhbHNvIHByZXBlbmQgc3BhY2VzIHRvIG91dHB1dCBsaW5lIG51bWJlcnMg YW5kIGJ5dGUgb2Zmc2V0cwogc28gdGhhdCBsaW5lcyBmcm9tIGEgc2luZ2xlIGZpbGUgYWxs IHN0YXJ0IGF0IHRoZSBzYW1lIGNvbHVtbi4KIAotQGl0ZW0gLXUKLUBpdGVteCAtLXVuaXgt Ynl0ZS1vZmZzZXRzCi1Ab3BpbmRleCAtdQotQG9waW5kZXggLS11bml4LWJ5dGUtb2Zmc2V0 cwotQGNpbmRleCBNUy1ET1MvTVMtV2luZG93cyBieXRlIG9mZnNldHMKLUBjaW5kZXggYnl0 ZSBvZmZzZXRzLCBvbiBNUy1ET1MvTVMtV2luZG93cwotUmVwb3J0IFVuaXgtc3R5bGUgYnl0 ZSBvZmZzZXRzLgotVGhpcyBvcHRpb24gY2F1c2VzIEBjb21tYW5ke2dyZXB9IHRvIHJlcG9y dCBieXRlIG9mZnNldHMKLWFzIGlmIHRoZSBmaWxlIHdlcmUgYSBVbml4LXN0eWxlIHRleHQg ZmlsZSwKLWkuZS4sIHRoZSBieXRlIG9mZnNldHMgaWdub3JlIGNhcnJpYWdlIHJldHVybnMg dGhhdCB3ZXJlIHN0cmlwcGVkLgotVGhpcyB3aWxsIHByb2R1Y2UgcmVzdWx0cyBpZGVudGlj YWwKLXRvIHJ1bm5pbmcgQGNvbW1hbmR7Z3JlcH0gb24gYSBVbml4IG1hY2hpbmUuCi1UaGlz IG9wdGlvbiBoYXMgbm8gZWZmZWN0IHVubGVzcyB0aGUgQG9wdGlvbnstYn0gb3B0aW9uIGlz IGFsc28gdXNlZDsKLWl0IGhhcyBubyBlZmZlY3Qgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4g TVMtRE9TIGFuZCBNUy1XaW5kb3dzLgotCiBAaXRlbSAtWgogQGl0ZW14IC0tbnVsbAogQG9w aW5kZXggLVoKQEAgLTc1OSwyMSArNzQwLDI2IEBAIFRoaXMgY2FuIGNhdXNlIGEgcGVyZm9y bWFuY2UgcGVuYWx0eS4KIEBpdGVteCAtLWJpbmFyeQogQG9waW5kZXggLVUKIEBvcGluZGV4 IC0tYmluYXJ5Ci1AY2luZGV4IE1TLURPUy9NUy1XaW5kb3dzIGJpbmFyeSBmaWxlcwotQGNp bmRleCBiaW5hcnkgZmlsZXMsIE1TLURPUy9NUy1XaW5kb3dzCi1UcmVhdCB0aGUgZmlsZShz KSBhcyBiaW5hcnkuCi1CeSBkZWZhdWx0LCB1bmRlciBNUy1ET1MgYW5kIE1TLVdpbmRvd3Ms Ci1AY29tbWFuZHtncmVwfSBndWVzc2VzIHdoZXRoZXIgYSBmaWxlIGlzIHRleHQgb3IgYmlu YXJ5Ci1hcyBkZXNjcmliZWQgZm9yIHRoZSBAb3B0aW9uey0tYmluYXJ5LWZpbGVzfSBvcHRp b24uCi1JZiBAY29tbWFuZHtncmVwfSBkZWNpZGVzIHRoZSBmaWxlIGlzIGEgdGV4dCBmaWxl LAotaXQgc3RyaXBzIGNhcnJpYWdlIHJldHVybnMgZnJvbSB0aGUgb3JpZ2luYWwgZmlsZSBj b250ZW50cwotKHRvIG1ha2UgcmVndWxhciBleHByZXNzaW9ucyB3aXRoIEBjb2Rle159IGFu ZCBAY29kZXskfSB3b3JrIGNvcnJlY3RseSkuCi1TcGVjaWZ5aW5nIEBvcHRpb257LVV9IG92 ZXJydWxlcyB0aGlzIGd1ZXNzd29yaywKLWNhdXNpbmcgYWxsIGZpbGVzIHRvIGJlIHJlYWQg YW5kIHBhc3NlZCB0byB0aGUgbWF0Y2hpbmcgbWVjaGFuaXNtIHZlcmJhdGltOwotaWYgdGhl IGZpbGUgaXMgYSB0ZXh0IGZpbGUgd2l0aCBAY29kZXtDUi9MRn0gcGFpcnMgYXQgdGhlIGVu ZCBvZiBlYWNoIGxpbmUsCi10aGlzIHdpbGwgY2F1c2Ugc29tZSByZWd1bGFyIGV4cHJlc3Np b25zIHRvIGZhaWwuCi1UaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0Ci1vbiBwbGF0Zm9ybXMg b3RoZXIgdGhhbiBNUy1ET1MgYW5kIE1TLVdpbmRvd3MuCitAY2luZGV4IE1TLVdpbmRvd3Mg YmluYXJ5IEkvTworQGNpbmRleCBiaW5hcnkgSS9PLCAvTVMtV2luZG93cworVW5kZXIgTVMt V2luZG93cywgdXNlIGJpbmFyeSBJL08gd2hlbiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVz IG90aGVyCit0aGFuIHRoZSB1c2VyJ3MgdGVybWluYWwsIHNvIHRoYXQgYWxsIGlucHV0IGJ5 dGVzIGFyZSByZWFkIGFuZCB3cml0dGVuCithcy1pcy4gIFRoaXMgb3ZlcnJpZGVzIHRoZSBk ZWZhdWx0IGJlaGF2aW9yIHdoZXJlIEBjb21tYW5ke2dyZXB9Citmb2xsb3dzIHRoZSBvcGVy YXRpbmcgc3lzdGVtJ3MgYWR2aWNlIHdoZXRoZXIgdG8gdXNlIGJpbmFyeSBvciB0ZXh0CitJ L08uICBXaGVuIEBjb21tYW5ke2dyZXB9IHVzZXMgdGV4dCBJL08gaXQgcmVhZHMgYSBjYXJy aWFnZQorcmV0dXJuLS1uZXdsaW5lIHBhaXIgYXMgYSBuZXdsaW5lIGFuZCBhIENvbnRyb2wt WiBhcyBlbmQtb2YtZmlsZSwgYW5kCitpdCB3cml0ZXMgYSBuZXdsaW5lIGFzIGEgY2Fycmlh Z2UgcmV0dXJuLS1uZXdsaW5lIHBhaXIuICBXaGVuIHRoaXMKK29wdGlvbiBpcyBjb21iaW5l ZCB3aXRoIEBvcHRpb257LS1ieXRlLW9mZnNldH0gKEBvcHRpb257LWJ9KSwgYnl0ZQorY291 bnRzIHRyZWF0IGVhY2ggdGV4dCBJL08gY2FycmlhZ2UgcmV0dXJuLS1uZXdsaW5lIGFzIGEg c2luZ2xlIGJ5dGUuCisKK1doZW4gdXNpbmcgdGV4dCBJL08sIEBvcHRpb257LS1iaW5hcnkt ZmlsZXN9IGhldXJpc3RpY3MgYXJlIGFwcGxpZWQgdG8KK2lucHV0IGRhdGEgYWZ0ZXIgdGV4 dC1JL08gcHJvY2Vzc2luZy4gIFRoZXNlIGhldXJpc3RpY3MgbmVlZCBub3QgYWdyZWUKK3dp dGggdGhlIEBvcHRpb257LS1iaW5hcnl9IG9wdGlvbjsgdGhhdCBpcywgdGhleSBtYXkgdHJl YXQgdGhlIGRhdGEgYXMKK3RleHQgZXZlbiBpZiBAb3B0aW9uey0tYmluYXJ5fSBpcyBnaXZl biwgb3IgdmljZSB2ZXJzYS4KK0B4cmVme0ZpbGUgYW5kIERpcmVjdG9yeSBTZWxlY3Rpb259 LgorCitUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IG9uIHBsYXRmb3JtcyBvdGhlciB0aGFu IE1TLVdpbmRvd3MuCisKIAogQGl0ZW0gLXoKIEBpdGVteCAtLW51bGwtZGF0YQpkaWZmIC0t Z2l0IGEvc3JjL2Rvc2J1Zi5jIGIvc3JjL2Rvc2J1Zi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA5ODkyNzU1Li4wMDAwMDAwCi0tLSBhL3NyYy9kb3NidWYuYworKysgL2Rl di9udWxsCkBAIC0xLDIyMiArMCwwIEBACi0vKiBkb3NidWYuYwotICAgQ29weXJpZ2h0IChD KSAxOTkyLCAxOTk3LTIwMDIsIDIwMDQtMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLQotICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91 ciBvcHRpb24pCi0gICBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgotICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQotICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLQotICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gICBGb3VuZGF0 aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN QQotICAgMDIxMTAtMTMwMSwgVVNBLiAgKi8KLQotLyogTWVzc3kgRE9TLXNwZWNpZmljIGNv ZGUgZm9yIGNvcnJlY3RseSB0cmVhdGluZyBiaW5hcnksIFVuaXggdGV4dAotICAgYW5kIERP UyB0ZXh0IGZpbGVzLgotCi0gICBUaGlzIGhhcyBzZXZlcmFsIGFzcGVjdHM6Ci0KLSAgICAg KiBHdWVzc2luZyB0aGUgZmlsZSB0eXBlICh1bmxlc3MgdGhlIHVzZXIgdGVsbHMgdXMpOwot ICAgICAqIFN0cmlwcGluZyBDUiBjaGFyYWN0ZXJzIGZyb20gRE9TIHRleHQgZmlsZXMgKG90 aGVyd2lzZSByZWdleAotICAgICAgIGZ1bmN0aW9ucyB3b24ndCB3b3JrIGNvcnJlY3RseSk7 Ci0gICAgICogUmVwb3J0aW5nIGNvcnJlY3QgYnl0ZSBjb3VudCB3aXRoIC1iIGZvciBhbnkg a2luZCBvZiBmaWxlLgotCi0qLwotCi0jaW5jbHVkZSA8Y29uZmlnLmg+Ci0KLXR5cGVkZWYg ZW51bSB7Ci0gIFVOS05PV04sIERPU19CSU5BUlksIERPU19URVhULCBVTklYX1RFWFQKLX0g RmlsZV90eXBlOwotCi1zdHJ1Y3QgZG9zX21hcCB7Ci0gIG9mZl90IHBvczsJLyogcG9zaXRp b24gaW4gYnVmZmVyIHBhc3NlZCB0byBtYXRjaGVyICovCi0gIG9mZl90IGFkZDsJLyogaG93 IG11Y2ggdG8gYWRkIHdoZW4gcmVwb3J0aW5nIGNoYXIgcG9zaXRpb24gKi8KLX07Ci0KLXN0 YXRpYyBpbnQgICAgICAgZG9zX3JlcG9ydF91bml4X29mZnNldCA9IDA7Ci0KLXN0YXRpYyBG aWxlX3R5cGUgZG9zX2ZpbGVfdHlwZSAgICAgPSBVTktOT1dOOwotc3RhdGljIEZpbGVfdHlw ZSBkb3NfdXNlX2ZpbGVfdHlwZSA9IFVOS05PV047Ci1zdGF0aWMgb2ZmX3QgICAgIGRvc19z dHJpcHBlZF9jcnMgID0gMDsKLXN0YXRpYyBzdHJ1Y3QgZG9zX21hcCAqZG9zX3Bvc19tYXA7 Ci1zdGF0aWMgaW50ICAgICAgIGRvc19wb3NfbWFwX3NpemUgID0gMDsKLXN0YXRpYyBpbnQg ICAgICAgZG9zX3Bvc19tYXBfdXNlZCAgPSAwOwotc3RhdGljIGludCAgICAgICBpbnBfbWFw X2lkeCA9IDAsIG91dF9tYXBfaWR4ID0gMTsKLQotLyogU2V0IGRlZmF1bHQgRE9TIGZpbGUg dHlwZSB0byBiaW5hcnkuICAqLwotc3RhdGljIHZvaWQKLWRvc19iaW5hcnkgKHZvaWQpCi17 Ci0gIGlmIChPX0JJTkFSWSkKLSAgICBkb3NfdXNlX2ZpbGVfdHlwZSA9IERPU19CSU5BUlk7 Ci19Ci0KLS8qIFRlbGwgRE9TIHJvdXRpbmVzIHRvIHJlcG9ydCBVbml4IG9mZnNldC4gICov Ci1zdGF0aWMgdm9pZAotZG9zX3VuaXhfYnl0ZV9vZmZzZXRzICh2b2lkKQotewotICBpZiAo T19CSU5BUlkpCi0gICAgZG9zX3JlcG9ydF91bml4X29mZnNldCA9IDE7Ci19Ci0KLS8qIEd1 ZXNzIERPUyBmaWxlIHR5cGUgYnkgbG9va2luZyBhdCBpdHMgY29udGVudHMuICAqLwotc3Rh dGljIEZpbGVfdHlwZQotZ3Vlc3NfdHlwZSAoY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuKQot ewotICBpbnQgY3JsZl9zZWVuID0gMDsKLSAgY2hhciAqYnAgPSBidWY7Ci0KLSAgd2hpbGUg KGJ1Zmxlbi0tKQotICAgIHsKLSAgICAgIC8qIFRyZWF0IGEgZmlsZSBhcyBiaW5hcnkgaWYg aXQgaGFzIGEgTlVMIGNoYXJhY3Rlci4gICovCi0gICAgICBpZiAoISpicCkKLSAgICAgICAg cmV0dXJuIERPU19CSU5BUlk7Ci0KLSAgICAgIC8qIENSIGJlZm9yZSBMRiBtZWFucyBET1Mg dGV4dCBmaWxlICh1bmxlc3Mgd2UgbGF0ZXIgc2VlCi0gICAgICAgICBiaW5hcnkgY2hhcmFj dGVycykuICAqLwotICAgICAgZWxzZSBpZiAoKmJwID09ICdccicgJiYgYnVmbGVuICYmIGJw WzFdID09ICdcbicpCi0gICAgICAgIGNybGZfc2VlbiA9IDE7Ci0KLSAgICAgIGJwKys7Ci0g ICAgfQotCi0gIHJldHVybiBjcmxmX3NlZW4gPyBET1NfVEVYVCA6IFVOSVhfVEVYVDsKLX0K LQotLyogQ29udmVydCBleHRlcm5hbCBET1MgZmlsZSByZXByZXNlbnRhdGlvbiB0byBpbnRl cm5hbC4KLSAgIFJldHVybiB0aGUgY291bnQgb2YgYnl0ZXMgbGVmdCBpbiB0aGUgYnVmZmVy LgotICAgQnVpbGQgdGFibGUgdG8gbWFwIGNoYXJhY3RlciBwb3NpdGlvbnMgd2hlbiByZXBv cnRpbmcgYnl0ZSBjb3VudHMuICAqLwotc3RhdGljIHNpemVfdAotdW5kb3NzaWZ5X2lucHV0 IChjaGFyICpidWYsIHNpemVfdCBidWZsZW4pCi17Ci0gIGlmICghIE9fQklOQVJZKQotICAg IHJldHVybiBidWZsZW47Ci0KLSAgc2l6ZV90IGJ5dGVzX2xlZnQgPSAwOwotCi0gIGlmICh0 b3RhbGNjID09IDApCi0gICAgewotICAgICAgLyogTmV3IGZpbGU6IGZvcmdldCBldmVyeXRo aW5nIHdlIGtuZXcgYWJvdXQgY2hhcmFjdGVyCi0gICAgICAgICBwb3NpdGlvbiBtYXBwaW5n IHRhYmxlIGFuZCBmaWxlIHR5cGUuICAqLwotICAgICAgaW5wX21hcF9pZHggPSAwOwotICAg ICAgb3V0X21hcF9pZHggPSAxOwotICAgICAgZG9zX3Bvc19tYXBfdXNlZCA9IDA7Ci0gICAg ICBkb3Nfc3RyaXBwZWRfY3JzID0gMDsKLSAgICAgIGRvc19maWxlX3R5cGUgPSBkb3NfdXNl X2ZpbGVfdHlwZTsKLSAgICB9Ci0KLSAgLyogR3Vlc3MgaWYgdGhpcyBmaWxlIGlzIGJpbmFy eSwgdW5sZXNzIHdlIGFscmVhZHkga25vdyB0aGF0LiAgKi8KLSAgaWYgKGRvc19maWxlX3R5 cGUgPT0gVU5LTk9XTikKLSAgICBkb3NfZmlsZV90eXBlID0gZ3Vlc3NfdHlwZSAoYnVmLCBi dWZsZW4pOwotCi0gIC8qIElmIHRoaXMgZmlsZSBpcyB0byBiZSB0cmVhdGVkIGFzIERPUyBU ZXh0LCBzdHJpcCB0aGUgQ1IgY2hhcmFjdGVycwotICAgICBhbmQgbWF5YmUgYnVpbGQgdGhl IHRhYmxlIGZvciBjaGFyYWN0ZXIgcG9zaXRpb24gbWFwcGluZyBvbiBvdXRwdXQuICAqLwot ICBpZiAoZG9zX2ZpbGVfdHlwZSA9PSBET1NfVEVYVCkKLSAgICB7Ci0gICAgICBjaGFyICAg KmRlc3RwICAgPSBidWY7Ci0KLSAgICAgIHdoaWxlIChidWZsZW4tLSkKLSAgICAgICAgewot ICAgICAgICAgIGlmICgqYnVmICE9ICdccicpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICpkZXN0cCsrID0gKmJ1ZisrOwotICAgICAgICAgICAgICBieXRlc19sZWZ0Kys7Ci0g ICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICBidWYrKzsKLSAgICAgICAgICAgICAgaWYgKG91dF9ieXRlICYmICFkb3NfcmVwb3J0 X3VuaXhfb2Zmc2V0KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIGRv c19zdHJpcHBlZF9jcnMrKzsKLSAgICAgICAgICAgICAgICAgIHdoaWxlIChidWZsZW4gJiYg KmJ1ZiA9PSAnXHInKQotICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ICAgICAgZG9zX3N0cmlwcGVkX2NycysrOwotICAgICAgICAgICAgICAgICAgICAgIGJ1Zmxl bi0tOwotICAgICAgICAgICAgICAgICAgICAgIGJ1ZisrOwotICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICBpZiAoaW5wX21hcF9pZHggPj0gZG9zX3Bvc19tYXBf c2l6ZSAtIDEpCi0gICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg ICBkb3NfcG9zX21hcF9zaXplID0gaW5wX21hcF9pZHggPyBpbnBfbWFwX2lkeCAqIDIgOiAx MDAwOwotICAgICAgICAgICAgICAgICAgICAgIGRvc19wb3NfbWFwID0geHJlYWxsb2MgKGRv c19wb3NfbWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChkb3NfcG9zX21hcF9zaXplCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICogc2l6ZW9mIChzdHJ1Y3QgZG9zX21hcCkpKTsKLSAgICAgICAg ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICBpZiAoIWlucF9tYXBfaWR4KQot ICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgLyogQWRkIHNl bnRpbmVsIGVudHJ5LiAgKi8KLSAgICAgICAgICAgICAgICAgICAgICBkb3NfcG9zX21hcFtp bnBfbWFwX2lkeF0ucG9zID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICBkb3NfcG9zX21h cFtpbnBfbWFwX2lkeCsrXS5hZGQgPSAwOwotCi0gICAgICAgICAgICAgICAgICAgICAgLyog SW5pdGlhbGl6ZSBmaXJzdCByZWFsIGVudHJ5LiAgKi8KLSAgICAgICAgICAgICAgICAgICAg ICBkb3NfcG9zX21hcFtpbnBfbWFwX2lkeF0uYWRkID0gMDsKLSAgICAgICAgICAgICAgICAg ICAgfQotCi0gICAgICAgICAgICAgICAgICAvKiBQdXQgdGhlIG5ldyBlbnRyeS4gIElmIHRo ZSBzdHJpcHBlZCBDUiBjaGFyYWN0ZXJzCi0gICAgICAgICAgICAgICAgICAgICBwcmVjZWRl IGEgTmV3bGluZSAodGhlIHVzdWFsIGNhc2UpLCBwcmV0ZW5kIHRoYXQKLSAgICAgICAgICAg ICAgICAgICAgIHRoZXkgd2VyZSBmb3VuZCAqYWZ0ZXIqIHRoZSBOZXdsaW5lLiAgVGhpcyBt YWtlcwotICAgICAgICAgICAgICAgICAgICAgZGlzcGxheWVkIGJ5dGUgb2Zmc2V0cyBtb3Jl IHJlYXNvbmFibGUgaW4gc29tZQotICAgICAgICAgICAgICAgICAgICAgY2FzZXMsIGFuZCBm aXRzIGJldHRlciB0aGUgaW50dWl0aXZlIG5vdGlvbiB0aGF0Ci0gICAgICAgICAgICAgICAg ICAgICB0aGUgbGluZSBlbmRzICpiZWZvcmUqIHRoZSBDUiwgbm90ICphZnRlciogaXQuICAq LwotICAgICAgICAgICAgICAgICAgaW5wX21hcF9pZHgrKzsKLSAgICAgICAgICAgICAgICAg IGRvc19wb3NfbWFwW2lucF9tYXBfaWR4LTFdLnBvcyA9Ci0gICAgICAgICAgICAgICAgICAg ICgqYnVmID09ICdcbicgPyBkZXN0cCArIDEgOiBkZXN0cCApIC0gYnVmYmVnICsgdG90YWxj YzsKLSAgICAgICAgICAgICAgICAgIGRvc19wb3NfbWFwW2lucF9tYXBfaWR4XS5hZGQgPSBk b3Nfc3RyaXBwZWRfY3JzOwotICAgICAgICAgICAgICAgICAgZG9zX3Bvc19tYXBfdXNlZCA9 IGlucF9tYXBfaWR4OwotCi0gICAgICAgICAgICAgICAgICAvKiBUaGUgZm9sbG93aW5nIHdp bGwgYmUgdXBkYXRlZCBvbiB0aGUgbmV4dCBwYXNzLiAgKi8KLSAgICAgICAgICAgICAgICAg IGRvc19wb3NfbWFwW2lucF9tYXBfaWR4XS5wb3MgPSBkZXN0cCAtIGJ1ZmJlZyArIHRvdGFs Y2MgKyAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot Ci0gICAgICByZXR1cm4gYnl0ZXNfbGVmdDsKLSAgICB9Ci0KLSAgcmV0dXJuIGJ1ZmxlbjsK LX0KLQotLyogQ29udmVydCBpbnRlcm5hbCBieXRlIGNvdW50IGludG8gZXh0ZXJuYWwuICAq Lwotc3RhdGljIG9mZl90Ci1kb3NzaWZpZWRfcG9zIChvZmZfdCBieXRlbm8pCi17Ci0gIGlm ICghIE9fQklOQVJZKQotICAgIHJldHVybiBieXRlbm87Ci0KLSAgb2ZmX3QgcG9zX2xvOwot ICBvZmZfdCBwb3NfaGk7Ci0KLSAgaWYgKGRvc19maWxlX3R5cGUgIT0gRE9TX1RFWFQgfHwg ZG9zX3JlcG9ydF91bml4X29mZnNldCkKLSAgICByZXR1cm4gYnl0ZW5vOwotCi0gIC8qIE9w dGltaXphdGlvbjogdXN1YWxseSB0aGUgZmlsZSB3aWxsIGJlIHNjYW5uZWQgc2VxdWVudGlh bGx5LgotICAgICBTbyBpbiBtb3N0IGNhc2VzLCB0aGlzIGJ5dGUgcG9zaXRpb24gd2lsbCBi ZSBmb3VuZCBpbiB0aGUKLSAgICAgdGFibGUgbmVhciB0aGUgcHJldmlvdXMgb25lLCBhcyBy ZWNvcmRlZCBpbiAnb3V0X21hcF9pZHgnLiAgKi8KLSAgcG9zX2xvID0gZG9zX3Bvc19tYXBb b3V0X21hcF9pZHgtMV0ucG9zOwotICBwb3NfaGkgPSBkb3NfcG9zX21hcFtvdXRfbWFwX2lk eF0ucG9zOwotCi0gIC8qIElmIHRoZSBpbml0aWFsIGd1ZXNzIGZhaWxlZCwgc2VhcmNoIHVw IG9yIGRvd24sIGFzCi0gICAgIGFwcHJvcHJpYXRlLCBiZWdpbm5pbmcgd2l0aCB0aGUgcHJl dmlvdXMgcGxhY2UuICAqLwotICBpZiAoYnl0ZW5vID49IHBvc19oaSkKLSAgICB7Ci0gICAg ICBvdXRfbWFwX2lkeCsrOwotICAgICAgd2hpbGUgKG91dF9tYXBfaWR4IDwgZG9zX3Bvc19t YXBfdXNlZAotICAgICAgICAgICAgICYmIGJ5dGVubyA+PSBkb3NfcG9zX21hcFtvdXRfbWFw X2lkeF0ucG9zKQotICAgICAgICBvdXRfbWFwX2lkeCsrOwotICAgIH0KLQotICBlbHNlIGlm IChieXRlbm8gPCBwb3NfbG8pCi0gICAgewotICAgICAgb3V0X21hcF9pZHgtLTsKLSAgICAg IHdoaWxlIChvdXRfbWFwX2lkeCA+IDEgJiYgYnl0ZW5vIDwgZG9zX3Bvc19tYXBbb3V0X21h cF9pZHgtMV0ucG9zKQotICAgICAgICBvdXRfbWFwX2lkeC0tOwotICAgIH0KLQotICByZXR1 cm4gYnl0ZW5vICsgZG9zX3Bvc19tYXBbb3V0X21hcF9pZHhdLmFkZDsKLX0KZGlmZiAtLWdp dCBhL3NyYy9ncmVwLmMgYi9zcmMvZ3JlcC5jCmluZGV4IDQzN2FlMGEuLjMyY2I2NDIgMTAw NjQ0Ci0tLSBhL3NyYy9ncmVwLmMKKysrIGIvc3JjL2dyZXAuYwpAQCAtNDgsNiArNDgsNyBA QAogI2luY2x1ZGUgInNlYXJjaC5oIgogI2luY2x1ZGUgInZlcnNpb24tZXRjLmgiCiAjaW5j bHVkZSAieGFsbG9jLmgiCisjaW5jbHVkZSAieGZyZW9wZW4uaCIKICNpbmNsdWRlICJ4c3Ry dG9sLmgiCiAKIGVudW0geyBTRVBfQ0hBUl9TRUxFQ1RFRCA9ICc6JyB9OwpAQCAtNTM2LDEw ICs1MzcsNiBAQCBzdGF0aWMgZW51bQogc3RhdGljIGJvb2wgZ3JlcGZpbGUgKGludCwgY2hh ciBjb25zdCAqLCBib29sLCBib29sKTsKIHN0YXRpYyBib29sIGdyZXBkZXNjIChpbnQsIGJv b2wpOwogCi1zdGF0aWMgdm9pZCBkb3NfYmluYXJ5ICh2b2lkKTsKLXN0YXRpYyB2b2lkIGRv c191bml4X2J5dGVfb2Zmc2V0cyAodm9pZCk7Ci1zdGF0aWMgc2l6ZV90IHVuZG9zc2lmeV9p bnB1dCAoY2hhciAqLCBzaXplX3QpOwotCiBzdGF0aWMgYm9vbAogaXNfZGV2aWNlX21vZGUg KG1vZGVfdCBtKQogewpAQCAtOTczLDcgKzk3MCw2IEBAIGZpbGxidWYgKHNpemVfdCBzYXZl LCBzdHJ1Y3Qgc3RhdCBjb25zdCAqc3QpCiAgICAgICAgIH0KICAgICB9CiAKLSAgZmlsbHNp emUgPSB1bmRvc3NpZnlfaW5wdXQgKHJlYWRidWYsIGZpbGxzaXplKTsKICAgYnVmbGltID0g cmVhZGJ1ZiArIGZpbGxzaXplOwogCiAgIC8qIEluaXRpYWxpemUgdGhlIGZvbGxvd2luZyB3 b3JkLCBiZWNhdXNlIHNraXBfZWFzeV9ieXRlcyBhbmQgc29tZQpAQCAtMTAzMyw4ICsxMDI5 LDcgQEAgc3RhdGljIGludG1heF90IHBlbmRpbmc7CS8qIFBlbmRpbmcgbGluZXMgb2Ygb3V0 cHV0Lgogc3RhdGljIGJvb2wgZG9uZV9vbl9tYXRjaDsJLyogU3RvcCBzY2FubmluZyBmaWxl IG9uIGZpcnN0IG1hdGNoLiAgKi8KIHN0YXRpYyBib29sIGV4aXRfb25fbWF0Y2g7CS8qIEV4 aXQgb24gZmlyc3QgbWF0Y2guICAqLwogc3RhdGljIGJvb2wgZGV2X251bGxfb3V0cHV0Owkv KiBTdGRvdXQgaXMga25vd24gdG8gYmUgL2Rldi9udWxsLiAgKi8KLQotI2luY2x1ZGUgImRv c2J1Zi5jIgorc3RhdGljIGJvb2wgYmluYXJ5OwkJLyogVXNlIGJpbmFyeSByYXRoZXIgdGhh biB0ZXh0IEkvTy4gICovCiAKIHN0YXRpYyB2b2lkCiBubHNjYW4gKGNoYXIgY29uc3QgKmxp bSkKQEAgLTExMjcsNyArMTEyMiw2IEBAIHByaW50X2xpbmVfaGVhZCAoY2hhciAqYmVnLCBz aXplX3QgbGVuLCBjaGFyIGNvbnN0ICpsaW0sIGNoYXIgc2VwKQogICBpZiAob3V0X2J5dGUp CiAgICAgewogICAgICAgdWludG1heF90IHBvcyA9IGFkZF9jb3VudCAodG90YWxjYywgYmVn IC0gYnVmYmVnKTsKLSAgICAgIHBvcyA9IGRvc3NpZmllZF9wb3MgKHBvcyk7CiAgICAgICBw cmludF9vZmZzZXQgKHBvcywgYnl0ZV9udW1fY29sb3IpOwogICAgICAgcHJpbnRfc2VwIChz ZXApOwogICAgIH0KQEAgLTE4NjIsNyArMTg1Niw3IEBAIGdyZXBkZXNjIChpbnQgZGVzYywg Ym9vbCBjb21tYW5kX2xpbmUpCiAKICAgLyogU2V0IGlucHV0IHRvIGJpbmFyeSBtb2RlLiAg UGlwZXMgYXJlIHNpbXVsYXRlZCB3aXRoIGZpbGVzCiAgICAgIG9uIERPUywgc28gdGhpcyBp bmNsdWRlcyB0aGUgY2FzZSBvZiAiZm9vIHwgZ3JlcCBiYXIiLiAgKi8KLSAgaWYgKE9fQklO QVJZICYmICFpc2F0dHkgKGRlc2MpKQorICBpZiAoYmluYXJ5ICYmICFpc2F0dHkgKGRlc2Mp KQogICAgIHNldF9iaW5hcnlfbW9kZSAoZGVzYywgT19CSU5BUlkpOwogCiAgIGNvdW50ID0g Z3JlcCAoZGVzYywgJnN0LCAmaW5lb2YpOwpAQCAtMjAwNiw4ICsyMDAwLDYgQEAgQ29udGV4 dCBjb250cm9sOlxuXAogICAgICAgLS1jb2xvdXJbPVdIRU5dICAgICAgIHVzZSBtYXJrZXJz IHRvIGhpZ2hsaWdodCB0aGUgbWF0Y2hpbmcgc3RyaW5ncztcblwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBXSEVOIGlzICdhbHdheXMnLCAnbmV2ZXInLCBvciAnYXV0bydcblwK ICAgLVUsIC0tYmluYXJ5ICAgICAgICAgICAgICBkbyBub3Qgc3RyaXAgQ1IgY2hhcmFjdGVy cyBhdCBFT0wgKE1TRE9TL1dpbmRvd3MpXG5cCi0gIC11LCAtLXVuaXgtYnl0ZS1vZmZzZXRz ICAgcmVwb3J0IG9mZnNldHMgYXMgaWYgQ1JzIHdlcmUgbm90IHRoZXJlXG5cCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgKE1TRE9TL1dpbmRvd3MpXG5cCiBcbiIpKTsKICAgICAg IHByaW50ZiAoXygiXAogV2hlbiBGSUxFIGlzICctJywgcmVhZCBzdGFuZGFyZCBpbnB1dC4g IFdpdGggbm8gRklMRSwgcmVhZCAnLicgaWZcblwKQEAgLTI1MzcsMTEgKzI1MjksMTMgQEAg bWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICAgICAgICBicmVhazsKIAogICAgICAg Y2FzZSAnVSc6Ci0gICAgICAgIGRvc19iaW5hcnkgKCk7CisgICAgICAgIGlmIChPX0JJTkFS WSkKKyAgICAgICAgICBiaW5hcnkgPSB0cnVlOwogICAgICAgICBicmVhazsKIAogICAgICAg Y2FzZSAndSc6Ci0gICAgICAgIGRvc191bml4X2J5dGVfb2Zmc2V0cyAoKTsKKyAgICAgICAg LyogT2Jzb2xldGUgb3B0aW9uOyBpdCBoYXMgbm8gZWZmZWN0LiAgRklYTUU6IERpYWdub3Nl IHVzZSBvZgorICAgICAgICAgICB0aGlzIG9wdGlvbiBzdGFydGluZyBpbiAoc2F5KSB0aGUg eWVhciAyMDIwLiAgKi8KICAgICAgICAgYnJlYWs7CiAKICAgICAgIGNhc2UgJ1YnOgpAQCAt MjU4Miw3ICsyNTc2LDE1IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAg ICAgYnJlYWs7CiAKICAgICAgIGNhc2UgJ2YnOgotICAgICAgICBmcCA9IFNUUkVRIChvcHRh cmcsICItIikgPyBzdGRpbiA6IGZvcGVuIChvcHRhcmcsICJyIik7CisgICAgICAgIGlmIChT VFJFUSAob3B0YXJnLCAiLSIpKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChiaW5h cnkpCisgICAgICAgICAgICAgIHhmcmVvcGVuIChOVUxMLCAicmIiLCBzdGRpbik7CisgICAg ICAgICAgICBmcCA9IHN0ZGluOworICAgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAg ICAgIGZwID0gZm9wZW4gKG9wdGFyZywgYmluYXJ5ID8gInJiIiA6ICJyIik7CisKICAgICAg ICAgaWYgKCFmcCkKICAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwgZXJybm8sICIlcyIs IG9wdGFyZyk7CiAgICAgICAgIG9sZGNjID0ga2V5Y2M7CkBAIC0yODk3LDggKzI4OTksOCBA QCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgLyogT3V0cHV0IGlzIHNldCB0 byBiaW5hcnkgbW9kZSBiZWNhdXNlIHdlIHNob3VsZG4ndCBjb252ZXJ0CiAgICAgIE5MIHRv IENSLUxGIHBhaXJzLCBlc3BlY2lhbGx5IHdoZW4gZ3JlcHBpbmcgYmluYXJ5IGZpbGVzLiAg Ki8KLSAgaWYgKE9fQklOQVJZICYmICFpc2F0dHkgKFNURE9VVF9GSUxFTk8pKQotICAgIHNl dF9iaW5hcnlfbW9kZSAoU1RET1VUX0ZJTEVOTywgT19CSU5BUlkpOworICBpZiAoYmluYXJ5 ICYmICFpc2F0dHkgKFNURE9VVF9GSUxFTk8pKQorICAgIHhmcmVvcGVuIChOVUxMLCAid2Ii LCBzdGRvdXQpOwogCiAgIC8qIFByZWZlciBzeXNjb25mIGZvciBwYWdlIHNpemUsIGFzIGdl dHBhZ2VzaXplIHR5cGljYWxseSByZXR1cm5zIGludC4gICovCiAjaWZkZWYgX1NDX1BBR0VT SVpFCi0tIAoyLjkuMwoK --------------7A9547DB04E839EF87BE2A79-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eric Blake Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 15 Feb 2017 14:24:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Paul Eggert , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148716860815824 (code B ref 25707); Wed, 15 Feb 2017 14:24:02 +0000 Received: (at 25707) by debbugs.gnu.org; 15 Feb 2017 14:23:28 +0000 Received: from localhost ([127.0.0.1]:40598 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce0US-000479-Dz for submit@debbugs.gnu.org; Wed, 15 Feb 2017 09:23:28 -0500 Received: from mx1.redhat.com ([209.132.183.28]:42828) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce0UQ-00046x-E0 for 25707@debbugs.gnu.org; Wed, 15 Feb 2017 09:23:27 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9F1633D961; Wed, 15 Feb 2017 14:23:21 +0000 (UTC) Received: from [10.10.123.249] (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1FENKAc013500; Wed, 15 Feb 2017 09:23:21 -0500 References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> From: Eric Blake Openpgp: url=http://people.redhat.com/eblake/eblake.gpg Organization: Red Hat, Inc. Message-ID: Date: Wed, 15 Feb 2017 08:23:19 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="xwLIMMPs52g2N1H8SvbJmBl90LsQVkQUe" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 15 Feb 2017 14:23:21 +0000 (UTC) X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --xwLIMMPs52g2N1H8SvbJmBl90LsQVkQUe Content-Type: multipart/mixed; boundary="uWs6Mr75D4pak3VDPL7j39t5hHBCP6U9U"; protected-headers="v1" From: Eric Blake To: Paul Eggert , 25707@debbugs.gnu.org Message-ID: Subject: Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> In-Reply-To: --uWs6Mr75D4pak3VDPL7j39t5hHBCP6U9U Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 02/14/2017 05:08 PM, Paul Eggert wrote: > On 02/13/2017 12:20 PM, Eric Blake wrote: >> undossify_input causes more problems than it >> solves. We should trust fopen("r") to do the right thing, rather than= >> reinventing it ourselves. >=20 > Yes, that makes sense. Attached is a proposed patch to implement this. > It assumes the patch you already submitted for Bug#25707. >=20 > This patch keeps the -U option, for MS-Windows users who want to > override fopen "-r"'s choice of binary vs text I/O. Perhaps that's too > conservative? It would be easy to turn -U into a no-op too. No, keep -U exactly as proposed in the patch (sometimes you WANT to force binary mode - forcing binary is a no-op on Unix platforms, but makes sense on Windows). I like the patch as you wrote it, modulo nits: > . > -This option has no effect > -on platforms other than MS-DOS and MS-Windows. > +@cindex MS-Windows binary I/O > +@cindex binary I/O, /MS-Windows Why the slash before MS? >=20 > + > +This option has no effect on platforms other than MS-Windows. There are other systems than MS-Windows that have non-zero O_BINARY. I don't know if you want to reword this a bit, to maybe state that the option has no effect on platforms where binary mode is identical to text mode. I guess your wording is fine, though. >=20 > @@ -1862,7 +1856,7 @@ grepdesc (int desc, bool command_line) > =20 > /* Set input to binary mode. Pipes are simulated with files > on DOS, so this includes the case of "foo | grep bar". */ > - if (O_BINARY && !isatty (desc)) > + if (binary && !isatty (desc)) > set_binary_mode (desc, O_BINARY); > =20 The comment is somewhat stale; pipes are not simulated in MS-Windows, and these days ports to older DOS are rare (is DJGPP still viable?). Probably safe to just delete the second sentence. >=20 > /* Output is set to binary mode because we shouldn't convert > NL to CR-LF pairs, especially when grepping binary files. */ > - if (O_BINARY && !isatty (STDOUT_FILENO)) > - set_binary_mode (STDOUT_FILENO, O_BINARY); > + if (binary && !isatty (STDOUT_FILENO)) > + xfreopen (NULL, "wb", stdout); xfreopen() may need a patch - if stdout was previously opened in append mode, this reopen breaks that. Several of the coreutils are affected by the same problem; here's the patch I've been applying when building coreutils for Cygwin: void xfreopen (char const *filename, char const *mode, FILE *fp) { + if (!filename && STREQ (mode, "wb")) + { + int flag =3D fcntl (fileno (fp, F_GETFL); + if (0 <=3D flag && (flag & O)APPEND)) + mode =3D "ab"; + } if (!freopen (filename, mode, fp)) I guess I should push that one into gnulib. --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --uWs6Mr75D4pak3VDPL7j39t5hHBCP6U9U-- --xwLIMMPs52g2N1H8SvbJmBl90LsQVkQUe Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYpGRXAAoJEKeha0olJ0NqTnAH+wRFu/0TC+mkTe6MlUSV/3p6 3OKqL4UljZIWSMaIzc3VDOCiSKexxcQsLxKBX99fBCfaaYHU9KniRlbO4adtuLM7 /3/x1GW/jZ4qqPIz/jfNrxQrWw39vF0jB4Ivnco8vh1DJ4af/cv8pFnfPAEguLUE dPang13JohdlbZ/pOAFxmHYimmlvOeHqJanjFgBDIBakrXT33dFLpcFCtRS823RI JiSa5Ak+DHoayamYn+m0+tTbVyWP19soxjJa2xB6hK6U/E/H8b6dtnv5ZtLHXybB fXRBTiebW/XgqQ06hcPkkCdHwr68q5YwKktxkRe2p3/P1egYJ3kbubQWOSMrauo= =eyVJ -----END PGP SIGNATURE----- --xwLIMMPs52g2N1H8SvbJmBl90LsQVkQUe-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eric Blake Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Wed, 15 Feb 2017 14:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Paul Eggert , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148716955417174 (code B ref 25707); Wed, 15 Feb 2017 14:40:02 +0000 Received: (at 25707) by debbugs.gnu.org; 15 Feb 2017 14:39:14 +0000 Received: from localhost ([127.0.0.1]:40603 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce0jh-0004Sw-Ra for submit@debbugs.gnu.org; Wed, 15 Feb 2017 09:39:14 -0500 Received: from mx1.redhat.com ([209.132.183.28]:52568) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce0jf-0004Sj-Vv for 25707@debbugs.gnu.org; Wed, 15 Feb 2017 09:39:12 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6924C91D36; Wed, 15 Feb 2017 14:39:07 +0000 (UTC) Received: from [10.10.123.249] (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1FEd6m5027804; Wed, 15 Feb 2017 09:39:06 -0500 References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> From: Eric Blake Openpgp: url=http://people.redhat.com/eblake/eblake.gpg Organization: Red Hat, Inc. Message-ID: <7efbcdeb-cded-5250-dceb-ef583309f47c@redhat.com> Date: Wed, 15 Feb 2017 08:38:59 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="FiVLmQLUQT6uNPf0NcnBwBNougjGrSwDl" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 15 Feb 2017 14:39:07 +0000 (UTC) X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --FiVLmQLUQT6uNPf0NcnBwBNougjGrSwDl Content-Type: multipart/mixed; boundary="JPG9F7LsvcQSxtiQPoBj4UQp9KBChrQKW"; protected-headers="v1" From: Eric Blake To: Paul Eggert , 25707@debbugs.gnu.org Message-ID: <7efbcdeb-cded-5250-dceb-ef583309f47c@redhat.com> Subject: Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> In-Reply-To: --JPG9F7LsvcQSxtiQPoBj4UQp9KBChrQKW Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 02/14/2017 05:08 PM, Paul Eggert wrote: > On 02/13/2017 12:20 PM, Eric Blake wrote: >> undossify_input causes more problems than it >> solves. We should trust fopen("r") to do the right thing, rather than= >> reinventing it ourselves. >=20 > Yes, that makes sense. Attached is a proposed patch to implement this. > It assumes the patch you already submitted for Bug#25707. >=20 > This patch keeps the -U option, for MS-Windows users who want to > override fopen "-r"'s choice of binary vs text I/O. Perhaps that's too > conservative? It would be easy to turn -U into a no-op too. For reference, here's the patch I applied to Cygwin when building grep-3.0; it didn't go as far as your patch in killing -u (so I like your patch better), but had the same net effect of keeping -U as a way to force binary behavior, while using fcntl() to learn (after-the-fact) whether our force-to-binary was a no-op, and only doing undossify stuff if we turned a text-mode into binary-mode: --- origsrc/grep-3.0/src/dosbuf.c 2017-01-01 05:34:33.000000000 -0600 +++ src/grep-3.0/src/dosbuf.c 2017-02-14 09:50:08.701835000 -0600 @@ -48,6 +48,7 @@ static struct dos_map *dos_pos_map; static int dos_pos_map_size =3D 0; static int dos_pos_map_used =3D 0; static int inp_map_idx =3D 0, out_map_idx =3D 1; +static int mode_forced; /* Set default DOS file type to binary. */ static void @@ -95,7 +96,7 @@ guess_type (char *buf, size_t buflen) static size_t undossify_input (char *buf, size_t buflen) { - if (! O_BINARY) + if (! O_BINARY || ! mode_forced) return buflen; size_t bytes_left =3D 0; @@ -186,7 +187,7 @@ undossify_input (char *buf, size_t bufle static off_t dossified_pos (off_t byteno) { - if (! O_BINARY) + if (! O_BINARY || ! mode_forced) return byteno; off_t pos_lo; --- origsrc/grep-3.0/src/grep.c 2017-02-08 19:37:33.000000000 -0600 +++ src/grep-3.0/src/grep.c 2017-02-14 09:58:11.134855800 -0600 @@ -1860,10 +1860,17 @@ grepdesc (int desc, bool command_line) goto closeout; } - /* Set input to binary mode. Pipes are simulated with files - on DOS, so this includes the case of "foo | grep bar". */ + /* Force input to binary mode, while remembering if it was originally + text. Options -u and -U only matter on text mounts. */ + mode_forced =3D 0; if (O_BINARY && !isatty (desc)) - set_binary_mode (desc, O_BINARY); + { + if (fcntl (desc, F_GETFL) & O_TEXT) + { + set_binary_mode (desc, O_BINARY); + mode_forced =3D 1; + } + } count =3D grep (desc, &st, &ineof); if (count_matches) @@ -2586,7 +2593,7 @@ main (int argc, char **argv) break; case 'f': - fp =3D STREQ (optarg, "-") ? stdin : fopen (optarg, O_TEXT ? "rt= " : "r"); + fp =3D STREQ (optarg, "-") ? stdin : fopen (optarg, "r"); if (!fp) die (EXIT_TROUBLE, errno, "%s", optarg); oldcc =3D keycc; --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --JPG9F7LsvcQSxtiQPoBj4UQp9KBChrQKW-- --FiVLmQLUQT6uNPf0NcnBwBNougjGrSwDl Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYpGgEAAoJEKeha0olJ0NqmO8H/iGC1WgKIN2DwrSkKYVsp3yQ 0y51myS3yWnyr1aHVI073nBKmcH7Y9xZIoHABVxedtJtM7VMej/mZYN0cj3N1SVi /jjQ8jy6GS+BM1Rvb0jTVNFx5P3XlLwgVfZAJtvxXZq6AJSPsaBq6f/Jgf30Ls/7 bYwUL+9j69sVzVxwCCwkEoW6SnduxYivQ9y0tTQVd21sV3Wq0pL6+FodMsKZ1rS1 Js4m4pU/tQaFY4BEhXVJfur8oNwzU6aBw8DGCSVYeElpnXljIxNBmKH/0933H14Q T4ZZQeIV956X3/dVsYcjaw+runv6vRnufdH8r/KnkbBaA32tQgOqpLP1ccElkAU= =75+Y -----END PGP SIGNATURE----- --FiVLmQLUQT6uNPf0NcnBwBNougjGrSwDl-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 16:58:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eric Blake , 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726427817039 (code B ref 25707); Thu, 16 Feb 2017 16:58:02 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 16:57:58 +0000 Received: from localhost ([127.0.0.1]:42436 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cePNW-0004Ql-Ih for submit@debbugs.gnu.org; Thu, 16 Feb 2017 11:57:58 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:38992) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cePNU-0004QY-SJ for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 11:57:57 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 12833160156; Thu, 16 Feb 2017 08:57:51 -0800 (PST) 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 UudMB79XQFxj; Thu, 16 Feb 2017 08:57:50 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 616D416015B; Thu, 16 Feb 2017 08:57:50 -0800 (PST) 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 8iu-01vM_8hP; Thu, 16 Feb 2017 08:57:50 -0800 (PST) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 423CE160156; Thu, 16 Feb 2017 08:57:50 -0800 (PST) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <822d9431-64b7-c3fb-ca8c-8b3cc29c3f07@cs.ucla.edu> Date: Thu, 16 Feb 2017 08:57:50 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------3EECF9CB89159EB31C8468A6" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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 (/) This is a multi-part message in MIME format. --------------3EECF9CB89159EB31C8468A6 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 02/15/2017 06:23 AM, Eric Blake wrote: > xfreopen() may need a patch Thanks for pointing out the problems with my suggestion. I think I'd rather leave xfreopen alone, as silently adjusting its argument from "wb" to "ab" might cause other problems. Instead, I added a Gnulib module to set the file's text-vs-binary mode and changed grep to use that, by installing the attached patches, which I hope address your comments. --------------3EECF9CB89159EB31C8468A6 Content-Type: application/x-patch; name="0001-build-update-gnulib-submodule-to-latest.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-build-update-gnulib-submodule-to-latest.patch" RnJvbSBjZGU2MDU2MzgwMTg4NGFlNjU1NDYwOTBiMjRjYjkyNjIwYjFmODI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE2IEZlYiAyMDE3IDA4OjQwOjI5IC0wODAwClN1YmplY3Q6IFtQQVRD SCAxLzJdIGJ1aWxkOiB1cGRhdGUgZ251bGliIHN1Ym1vZHVsZSB0byBsYXRlc3QKCi0tLQog Z251bGliIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZ251bGliIGIvZ251bGliCmluZGV4IGI2YWNiOGQuLmZh ZDYzMWUgMTYwMDAwCi0tLSBhL2dudWxpYgorKysgYi9nbnVsaWIKQEAgLTEgKzEgQEAKLVN1 YnByb2plY3QgY29tbWl0IGI2YWNiOGRiNDRhZjcyOGU4OGEwNjU1MjZiZTAzNWY3YjkyN2Mw YmYKK1N1YnByb2plY3QgY29tbWl0IGZhZDYzMWU3NGRkNmMxZjBjN2ZhZGQ5OWJhZDFiNGI3 MzJmNmVlYjgKLS0gCjIuOS4zCgo= --------------3EECF9CB89159EB31C8468A6 Content-Type: application/x-patch; name="0002-Fix-up-recent-U-patches.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Fix-up-recent-U-patches.patch" RnJvbSBjNDQ4NWFjNDlhOTc3ZDY2NjE4N2RiNGM1YzI1MDQ1MjE1OTc2NTc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDE2IEZlYiAyMDE3IDA4OjUxOjM0IC0wODAwClN1YmplY3Q6IFtQQVRD SCAyLzJdIEZpeCB1cCByZWNlbnQgLVUgcGF0Y2hlcwoKSW5zcGlyZWQgYnkgYSBzdWdnZXN0 aW9uIGJ5IEVyaWMgQmxha2UgKEJ1ZyMyNTcwNyMxNykuCiogYm9vdHN0cmFwLmNvbmYgKGdu dWxpYl9tb2R1bGVzKTogQWRkIHhiaW5hcnktaW8sCmFuZCByZW1vdmUgYmluYXJ5LWlvIGFu ZCB4ZnJlb3Blbi4KKiBkb2MvZ3JlcC50ZXhpIChPdGhlciBPcHRpb25zKToKRml4IHR5cG8g YW5kIHJld29yZCB0byBiZSBhIGJpdCBtb3JlIGdlbmVyYWwuCiogc3JjL2dyZXAuYzogSW5j bHVkZSB4YmluYXJ5LWlvLmggaW5zdGVhZCBvZiB4ZnJlb3Blbi5oLgooZ3JlcGZpbGUpOiBP cGVuIHdpdGggT19CSU5BUlkgaWYgYmluYXJ5LgooZ3JlcGRlc2MpOiBObyBuZWVkIGZvciBz ZXRfYmluYXJ5X21vZGUgbm93LgooZ3JlcF9jb21tYW5kX2xpbmVfYXJnLCBtYWluKTogU2V0 IHN0ZGluIHRvIGJpbmFyeSBtb2RlIGlmIGJpbmFyeS4KKG1haW4pOiBBdm9pZCB1bm5lY2Vz c2FyeSB0ZXN0IG9mIHN0ZGluID09IE5VTEwuClVzZSB4c2V0bW9kZSBpbnN0ZWFkIG9mIHhm cmVvcGVuLgoqIHNyYy9zeXN0ZW0uaDogRG8gbm90IGluY2x1ZGUgYmluYXJ5LWlvLmguCi0t LQogYm9vdHN0cmFwLmNvbmYgfCAgNyArKystLS0tCiBkb2MvZ3JlcC50ZXhpICB8IDI3ICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogc3JjL2dyZXAuYyAgICAgfCAyNyArKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9zeXN0ZW0uaCAgIHwgIDEgLQogNCBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9ib290c3RyYXAuY29uZiBiL2Jvb3RzdHJhcC5jb25mCmluZGV4IDQxMTVmMzUuLjFjNTA5 NzQgMTAwNjQ0Ci0tLSBhL2Jvb3RzdHJhcC5jb25mCisrKyBiL2Jvb3RzdHJhcC5jb25mCkBA IC0yNiw3ICsyNiw2IEBAIGdudWxpYl9tb2R1bGVzPScKIGFsbG9jYQogYW5ub3VuY2UtZ2Vu CiBhcmdtYXRjaAotYmluYXJ5LWlvCiBjLWN0eXBlCiBjbG9zZW91dAogZGZhCkBAIC01Mywx MCArNTIsMTAgQEAgaXNhdHR5CiBpc2JsYW5rCiBpc3djdHlwZQogbGFyZ2VmaWxlCi1sc2Vl awogbG9jYWxlCi1tYWxsb2MtZ251Citsc2VlawogbWFpbnRhaW5lci1tYWtlZmlsZQorbWFs bG9jLWdudQogbWFueXdhcm5pbmdzCiBtYnJsZW4KIG1icnRvd2MKQEAgLTk1LDcgKzk0LDcg QEAgd2NydG9tYgogd2N0b2IKIHdjdHlwZS1oCiB4YWxsb2MKLXhmcmVvcGVuCit4YmluYXJ5 LWlvCiB4c3RydG9pbWF4CiAnCiBnbnVsaWJfbmFtZT1saWJncmVwdXRpbHMKZGlmZiAtLWdp dCBhL2RvYy9ncmVwLnRleGkgYi9kb2MvZ3JlcC50ZXhpCmluZGV4IDk0YTA2MjEuLjA3N2Mw NWYgMTAwNjQ0Ci0tLSBhL2RvYy9ncmVwLnRleGkKKysrIGIvZG9jL2dyZXAudGV4aQpAQCAt NzQxLDI1ICs3NDEsMjYgQEAgVGhpcyBjYW4gY2F1c2UgYSBwZXJmb3JtYW5jZSBwZW5hbHR5 LgogQG9waW5kZXggLVUKIEBvcGluZGV4IC0tYmluYXJ5CiBAY2luZGV4IE1TLVdpbmRvd3Mg YmluYXJ5IEkvTwotQGNpbmRleCBiaW5hcnkgSS9PLCAvTVMtV2luZG93cwotVW5kZXIgTVMt V2luZG93cywgdXNlIGJpbmFyeSBJL08gd2hlbiByZWFkaW5nIGFuZCB3cml0aW5nIGZpbGVz IG90aGVyCitAY2luZGV4IGJpbmFyeSBJL08KK09uIHBsYXRmb3JtcyB0aGF0IGRpc3Rpbmd1 aXNoIGJldHdlZW4gdGV4dCBhbmQgYmluYXJ5IEkvTywKK3VzZSB0aGUgbGF0dGVyIHdoZW4g cmVhZGluZyBhbmQgd3JpdGluZyBmaWxlcyBvdGhlcgogdGhhbiB0aGUgdXNlcidzIHRlcm1p bmFsLCBzbyB0aGF0IGFsbCBpbnB1dCBieXRlcyBhcmUgcmVhZCBhbmQgd3JpdHRlbgogYXMt aXMuICBUaGlzIG92ZXJyaWRlcyB0aGUgZGVmYXVsdCBiZWhhdmlvciB3aGVyZSBAY29tbWFu ZHtncmVwfQotZm9sbG93cyB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIGFkdmljZSB3aGV0aGVy IHRvIHVzZSBiaW5hcnkgb3IgdGV4dAotSS9PLiAgV2hlbiBAY29tbWFuZHtncmVwfSB1c2Vz IHRleHQgSS9PIGl0IHJlYWRzIGEgY2FycmlhZ2UKLXJldHVybi0tbmV3bGluZSBwYWlyIGFz IGEgbmV3bGluZSBhbmQgYSBDb250cm9sLVogYXMgZW5kLW9mLWZpbGUsIGFuZAotaXQgd3Jp dGVzIGEgbmV3bGluZSBhcyBhIGNhcnJpYWdlIHJldHVybi0tbmV3bGluZSBwYWlyLiAgV2hl biB0aGlzCi1vcHRpb24gaXMgY29tYmluZWQgd2l0aCBAb3B0aW9uey0tYnl0ZS1vZmZzZXR9 IChAb3B0aW9uey1ifSksIGJ5dGUKLWNvdW50cyB0cmVhdCBlYWNoIHRleHQgSS9PIGNhcnJp YWdlIHJldHVybi0tbmV3bGluZSBhcyBhIHNpbmdsZSBieXRlLgotCi1XaGVuIHVzaW5nIHRl eHQgSS9PLCBAb3B0aW9uey0tYmluYXJ5LWZpbGVzfSBoZXVyaXN0aWNzIGFyZSBhcHBsaWVk IHRvCi1pbnB1dCBkYXRhIGFmdGVyIHRleHQtSS9PIHByb2Nlc3NpbmcuICBUaGVzZSBoZXVy aXN0aWNzIG5lZWQgbm90IGFncmVlCitmb2xsb3dzIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3Mg YWR2aWNlIHdoZXRoZXIgdG8gdXNlIHRleHQgb3IgYmluYXJ5CitJL09ALiAgT24gTVMtV2lu ZG93cyB3aGVuIEBjb21tYW5ke2dyZXB9IHVzZXMgdGV4dCBJL08gaXQgcmVhZHMgYQorY2Fy cmlhZ2UgcmV0dXJuLS1uZXdsaW5lIHBhaXIgYXMgYSBuZXdsaW5lIGFuZCBhIENvbnRyb2wt WiBhcworZW5kLW9mLWZpbGUsIGFuZCBpdCB3cml0ZXMgYSBuZXdsaW5lIGFzIGEgY2Fycmlh Z2UgcmV0dXJuLS1uZXdsaW5lCitwYWlyLgorCitXaGVuIHVzaW5nIHRleHQgSS9PIEBvcHRp b257LS1ieXRlLW9mZnNldH0gKEBvcHRpb257LWJ9KSBjb3VudHMgYW5kCitAb3B0aW9uey0t YmluYXJ5LWZpbGVzfSBoZXVyaXN0aWNzIGFwcGx5IHRvIGlucHV0IGRhdGEgYWZ0ZXIgdGV4 dC1JL08KK3Byb2Nlc3NpbmcuICBBbHNvLCB0aGUgQG9wdGlvbnstLWJpbmFyeS1maWxlc30g aGV1cmlzdGljcyBuZWVkIG5vdCBhZ3JlZQogd2l0aCB0aGUgQG9wdGlvbnstLWJpbmFyeX0g b3B0aW9uOyB0aGF0IGlzLCB0aGV5IG1heSB0cmVhdCB0aGUgZGF0YSBhcwogdGV4dCBldmVu IGlmIEBvcHRpb257LS1iaW5hcnl9IGlzIGdpdmVuLCBvciB2aWNlIHZlcnNhLgogQHhyZWZ7 RmlsZSBhbmQgRGlyZWN0b3J5IFNlbGVjdGlvbn0uCiAKLVRoaXMgb3B0aW9uIGhhcyBubyBl ZmZlY3Qgb24gcGxhdGZvcm1zIG90aGVyIHRoYW4gTVMtV2luZG93cy4KLQorVGhpcyBvcHRp b24gaGFzIG5vIGVmZmVjdCBvbiBHTlUgYW5kIG90aGVyIFBPU0lYLWNvbXBhdGlibGUgcGxh dGZvcm1zLAord2hpY2ggZG8gbm90IGRpc3Rpbmd1aXNoIHRleHQgZnJvbSBiaW5hcnkgSS9P LgogCiBAaXRlbSAtegogQGl0ZW14IC0tbnVsbC1kYXRhCmRpZmYgLS1naXQgYS9zcmMvZ3Jl cC5jIGIvc3JjL2dyZXAuYwppbmRleCAzMmNiNjQyLi43NzVmMjI3IDEwMDY0NAotLS0gYS9z cmMvZ3JlcC5jCisrKyBiL3NyYy9ncmVwLmMKQEAgLTQ4LDcgKzQ4LDcgQEAKICNpbmNsdWRl ICJzZWFyY2guaCIKICNpbmNsdWRlICJ2ZXJzaW9uLWV0Yy5oIgogI2luY2x1ZGUgInhhbGxv Yy5oIgotI2luY2x1ZGUgInhmcmVvcGVuLmgiCisjaW5jbHVkZSAieGJpbmFyeS1pby5oIgog I2luY2x1ZGUgInhzdHJ0b2wuaCIKIAogZW51bSB7IFNFUF9DSEFSX1NFTEVDVEVEID0gJzon IH07CkBAIC0xNzAwLDYgKzE3MDAsNyBAQCBzdGF0aWMgYm9vbAogZ3JlcGZpbGUgKGludCBk aXJkZXNjLCBjaGFyIGNvbnN0ICpuYW1lLCBib29sIGZvbGxvdywgYm9vbCBjb21tYW5kX2xp bmUpCiB7CiAgIGludCBvZmxhZyA9IChPX1JET05MWSB8IE9fTk9DVFRZCisgICAgICAgICAg ICAgICB8IChiaW5hcnkgPyBPX0JJTkFSWSA6IDApCiAgICAgICAgICAgICAgICB8IChmb2xs b3cgPyAwIDogT19OT0ZPTExPVykKICAgICAgICAgICAgICAgIHwgKHNraXBfZGV2aWNlcyAo Y29tbWFuZF9saW5lKSA/IE9fTk9OQkxPQ0sgOiAwKSk7CiAgIGludCBkZXNjID0gb3BlbmF0 X3NhZmVyIChkaXJkZXNjLCBuYW1lLCBvZmxhZyk7CkBAIC0xODU0LDExICsxODU1LDYgQEAg Z3JlcGRlc2MgKGludCBkZXNjLCBib29sIGNvbW1hbmRfbGluZSkKICAgICAgIGdvdG8gY2xv c2VvdXQ7CiAgICAgfQogCi0gIC8qIFNldCBpbnB1dCB0byBiaW5hcnkgbW9kZS4gIFBpcGVz IGFyZSBzaW11bGF0ZWQgd2l0aCBmaWxlcwotICAgICBvbiBET1MsIHNvIHRoaXMgaW5jbHVk ZXMgdGhlIGNhc2Ugb2YgImZvbyB8IGdyZXAgYmFyIi4gICovCi0gIGlmIChiaW5hcnkgJiYg IWlzYXR0eSAoZGVzYykpCi0gICAgc2V0X2JpbmFyeV9tb2RlIChkZXNjLCBPX0JJTkFSWSk7 Ci0KICAgY291bnQgPSBncmVwIChkZXNjLCAmc3QsICZpbmVvZik7CiAgIGlmIChjb3VudF9t YXRjaGVzKQogICAgIHsKQEAgLTE4OTksNiArMTg5NSw4IEBAIGdyZXBfY29tbWFuZF9saW5l X2FyZyAoY2hhciBjb25zdCAqYXJnKQogICBpZiAoU1RSRVEgKGFyZywgIi0iKSkKICAgICB7 CiAgICAgICBmaWxlbmFtZSA9IGxhYmVsOworICAgICAgaWYgKGJpbmFyeSkKKyAgICAgICAg eHNldF9iaW5hcnlfbW9kZSAoU1RESU5fRklMRU5PLCBPX0JJTkFSWSk7CiAgICAgICByZXR1 cm4gZ3JlcGRlc2MgKFNURElOX0ZJTEVOTywgdHJ1ZSk7CiAgICAgfQogICBlbHNlCkBAIC0y NTc5LDE0ICsyNTc3LDE1IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAg ICAgaWYgKFNUUkVRIChvcHRhcmcsICItIikpCiAgICAgICAgICAgewogICAgICAgICAgICAg aWYgKGJpbmFyeSkKLSAgICAgICAgICAgICAgeGZyZW9wZW4gKE5VTEwsICJyYiIsIHN0ZGlu KTsKKyAgICAgICAgICAgICAgeHNldF9iaW5hcnlfbW9kZSAoU1RESU5fRklMRU5PLCBPX0JJ TkFSWSk7CiAgICAgICAgICAgICBmcCA9IHN0ZGluOwogICAgICAgICAgIH0KICAgICAgICAg ZWxzZQotICAgICAgICAgIGZwID0gZm9wZW4gKG9wdGFyZywgYmluYXJ5ID8gInJiIiA6ICJy Iik7Ci0KLSAgICAgICAgaWYgKCFmcCkKLSAgICAgICAgICBkaWUgKEVYSVRfVFJPVUJMRSwg ZXJybm8sICIlcyIsIG9wdGFyZyk7CisgICAgICAgICAgeworICAgICAgICAgICAgZnAgPSBm b3BlbiAob3B0YXJnLCBiaW5hcnkgPyAicmIiIDogInIiKTsKKyAgICAgICAgICAgIGlmICgh ZnApCisgICAgICAgICAgICAgIGRpZSAoRVhJVF9UUk9VQkxFLCBlcnJubywgIiVzIiwgb3B0 YXJnKTsKKyAgICAgICAgICB9CiAgICAgICAgIG9sZGNjID0ga2V5Y2M7CiAgICAgICAgIGZv ciAoOzsga2V5Y2MgKz0gY2MpCiAgICAgICAgICAgewpAQCAtMjg5NywxMCArMjg5Niw4IEBA IG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgaWYgKChhcmdjIC0gb3B0aW5kID4g MSAmJiAhbm9fZmlsZW5hbWVzKSB8fCB3aXRoX2ZpbGVuYW1lcykKICAgICBvdXRfZmlsZSA9 IDE7CiAKLSAgLyogT3V0cHV0IGlzIHNldCB0byBiaW5hcnkgbW9kZSBiZWNhdXNlIHdlIHNo b3VsZG4ndCBjb252ZXJ0Ci0gICAgIE5MIHRvIENSLUxGIHBhaXJzLCBlc3BlY2lhbGx5IHdo ZW4gZ3JlcHBpbmcgYmluYXJ5IGZpbGVzLiAgKi8KLSAgaWYgKGJpbmFyeSAmJiAhaXNhdHR5 IChTVERPVVRfRklMRU5PKSkKLSAgICB4ZnJlb3BlbiAoTlVMTCwgIndiIiwgc3Rkb3V0KTsK KyAgaWYgKGJpbmFyeSkKKyAgICB4c2V0X2JpbmFyeV9tb2RlIChTVERPVVRfRklMRU5PLCBP X0JJTkFSWSk7CiAKICAgLyogUHJlZmVyIHN5c2NvbmYgZm9yIHBhZ2Ugc2l6ZSwgYXMgZ2V0 cGFnZXNpemUgdHlwaWNhbGx5IHJldHVybnMgaW50LiAgKi8KICNpZmRlZiBfU0NfUEFHRVNJ WkUKZGlmZiAtLWdpdCBhL3NyYy9zeXN0ZW0uaCBiL3NyYy9zeXN0ZW0uaAppbmRleCAwNWQ4 ZjFhLi42MjkyYTI4IDEwMDY0NAotLS0gYS9zcmMvc3lzdGVtLmgKKysrIGIvc3JjL3N5c3Rl bS5oCkBAIC0yMyw3ICsyMyw2IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8 ZXJybm8uaD4KIAotI2luY2x1ZGUgImJpbmFyeS1pby5oIgogI2luY2x1ZGUgImNvbmZpZ21h a2UuaCIKICNpbmNsdWRlICJkaXJuYW1lLmgiCiAjaW5jbHVkZSAiaWdub3JlLXZhbHVlLmgi Ci0tIAoyLjkuMwoK --------------3EECF9CB89159EB31C8468A6-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 17:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eric Blake Cc: eggert@cs.ucla.edu, 25707@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726598519760 (code B ref 25707); Thu, 16 Feb 2017 17:27:02 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 17:26:25 +0000 Received: from localhost ([127.0.0.1]:42465 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cePp2-00058d-U1 for submit@debbugs.gnu.org; Thu, 16 Feb 2017 12:26:25 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cePp1-00058R-My for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 12:26:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cePot-0004N0-GJ for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 12:26:18 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:56515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cePot-0004Mw-Ca; Thu, 16 Feb 2017 12:26:15 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2462 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1cePos-0003KF-Hb; Thu, 16 Feb 2017 12:26:15 -0500 Date: Thu, 16 Feb 2017 19:26:39 +0200 Message-Id: <83r32yxd0w.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> (message from Eric Blake on Mon, 13 Feb 2017 14:20:56 -0600) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) > From: Eric Blake > Date: Mon, 13 Feb 2017 14:20:56 -0600 > > > While we're on the topic, the undossify_input approach is just a > > heuristic and it sometimes guesses wrong. I wish the heuristic could be > > removed somehow, so that grep would behave more deterministically on > > MS-DOS/Windows. > > > > I'm of the opinion that undossify_input causes more problems than it > solves. We should trust fopen("r") to do the right thing, rather than > reinventing it ourselves. FYI: You'd be losing an important feature for non-Cygwin DOS/Windows users if you remove undossify_input and decide to trust fopen's "r" (or "rt") mode. That's because reading a file which was opened in text-mode generally removes _all_ CR characters, even if they are not followed by a newline; it also stops on the first ^Z character in the file, treating it as a kind of "software EOF", a legacy from CP/M years. That's why the original patch switched the file descriptor to binary mode (Grep used 'open', not 'fopen', in those days) and used undossify_input: that allowed Grep to DTRT with these use cases, removing CRs only if they are followed by a newline, and not stopping at ^Z. As a side effect, undossify_input also collects the information needed for displaying byte offsets. It seems to me that when one bumps into some code which looks incorrect or less than optimal, and one considers its replacement with a more clever code, it would be a good idea to ask the person(s) who contributed the original code, in case there was some good reason for doing it that way. Was that done in this case? If not, it should have been. From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eric Blake Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 17:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: eggert@cs.ucla.edu, 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726684021194 (code B ref 25707); Thu, 16 Feb 2017 17:41:02 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 17:40:40 +0000 Received: from localhost ([127.0.0.1]:42495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQ2p-0005Vm-BS for submit@debbugs.gnu.org; Thu, 16 Feb 2017 12:40:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43428) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQ2n-0005VY-7F for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 12:40:37 -0500 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8A9704D69D; Thu, 16 Feb 2017 17:40:32 +0000 (UTC) Received: from [10.10.123.249] (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1GHeUjL016455; Thu, 16 Feb 2017 12:40:31 -0500 References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> From: Eric Blake Openpgp: url=http://people.redhat.com/eblake/eblake.gpg Organization: Red Hat, Inc. Message-ID: <66c3fd13-42a1-b0ae-0344-270ecc21d109@redhat.com> Date: Thu, 16 Feb 2017 11:40:29 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <83r32yxd0w.fsf@gnu.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="0uGhWNdam8H4CdniLvr0cHSvKQ4bosjkm" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 16 Feb 2017 17:40:32 +0000 (UTC) X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --0uGhWNdam8H4CdniLvr0cHSvKQ4bosjkm Content-Type: multipart/mixed; boundary="evPmIOScnhiuHN9BOVsSjXgOquCe90KU3"; protected-headers="v1" From: Eric Blake To: Eli Zaretskii Cc: eggert@cs.ucla.edu, 25707@debbugs.gnu.org Message-ID: <66c3fd13-42a1-b0ae-0344-270ecc21d109@redhat.com> Subject: Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> In-Reply-To: <83r32yxd0w.fsf@gnu.org> --evPmIOScnhiuHN9BOVsSjXgOquCe90KU3 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 02/16/2017 11:26 AM, Eli Zaretskii wrote: >> I'm of the opinion that undossify_input causes more problems than it >> solves. We should trust fopen("r") to do the right thing, rather than= >> reinventing it ourselves. >=20 > FYI: You'd be losing an important feature for non-Cygwin DOS/Windows > users if you remove undossify_input and decide to trust fopen's "r" > (or "rt") mode. "rt" mode is not required to exist. And I don't know any modern implementation of "r" mode on a system with non-zero O_BINARY that eats ALL \r - both Cygwin and mingw just change \r\n into \n while still preserving other \r. The undossify() code that Paul just removed did NOT behave the same as text mode (in that it did, perhaps unintentionally, eat ALL \r). I count it worse to TRY and reimplement the OS "r" mode and get the implementation wrong, with more lines of code, than to just trust the OS to do it correctly in the first place. The undossify() code may do the right thing on text files, but is absolutely wrong on binary files. My alternative patch was less intrusive, and at least preserves the undossify behavior on text files, but with the requirement that fcntl(0, F_GETFL) & O_TEXT is a reliable way to tell if an fd is currently opened in text mode before slamming it over to the binary mode required for undossify to work. > That's because reading a file which was opened in > text-mode generally removes _all_ CR characters, even if they are not > followed by a newline; it also stops on the first ^Z character in the > file, treating it as a kind of "software EOF", a legacy from CP/M > years. No, I don't know of any fopen(,"r") code that eats _all_ CR. Certainly cygwin's implementation does not do that. >=20 > That's why the original patch switched the file descriptor to binary > mode (Grep used 'open', not 'fopen', in those days) and used > undossify_input: that allowed Grep to DTRT with these use cases, > removing CRs only if they are followed by a newline, and not stopping > at ^Z. As a side effect, undossify_input also collects the > information needed for displaying byte offsets. Yes, you do make a point that the side effect of reimplementing text mode ourselves on a forced binary fd lets us "count" byte offsets where the count could be text while the scan was binary, or where the count could be binary while the scan was text. But in reality, are there any users that ever want a mixed-mode count? If you are scanning in binary, you want the binary count; if you are scanning in text, you want the text count. And in those two scenarios, with a sane text-mode from the OS, still give the correct counts with a lot less code in grep. >=20 > It seems to me that when one bumps into some code which looks > incorrect or less than optimal, and one considers its replacement with > a more clever code, it would be a good idea to ask the person(s) who > contributed the original code, in case there was some good reason for > doing it that way. Was that done in this case? If not, it should > have been. >=20 --=20 Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org --evPmIOScnhiuHN9BOVsSjXgOquCe90KU3-- --0uGhWNdam8H4CdniLvr0cHSvKQ4bosjkm Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 Comment: Public key at http://people.redhat.com/eblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBCAAGBQJYpeQNAAoJEKeha0olJ0NqAt8H/0ogJ72tduvAmKsS2f9MfrzC +M/GdqWZ9ED5EHldKvuf9UXT2QvVO69TLMKFgcg6uwnqz+1QdIAVPGksklyiNKyE npMDaBWT15FYdxND0TtDUxOVIlnOWA1Xp0sA9sUViDbbF1hD0Q9vaKJxB4TU4Xme bp3tlOzD3NDiIWFerm5EzqxupN3AvoYSrCwOp8xWUeIIBVGecjQNx7vBETjIbgIq 3ashouXPBOMg66vMCiSKOo//PGkUiG5KPdyy44c20h8XwBCAQQZhi8RqaAg3suWH /MndEArO05Rqk7MskKVdjiuahEh5CyMKIIRKY/uB/hgzKbvCmPztRNK+GTQmaio= =KibC -----END PGP SIGNATURE----- --0uGhWNdam8H4CdniLvr0cHSvKQ4bosjkm-- From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 17:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eli Zaretskii , Eric Blake Cc: 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726715321726 (code B ref 25707); Thu, 16 Feb 2017 17:46:02 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 17:45:53 +0000 Received: from localhost ([127.0.0.1]:42504 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQ7t-0005eM-Kp for submit@debbugs.gnu.org; Thu, 16 Feb 2017 12:45:53 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:50138) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQ7q-0005e8-OK for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 12:45:51 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B43D9160152; Thu, 16 Feb 2017 09:45:44 -0800 (PST) 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 LACj11sYuuSo; Thu, 16 Feb 2017 09:45:43 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C153A16015D; Thu, 16 Feb 2017 09:45:43 -0800 (PST) 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 v-dtPLH0bJl1; Thu, 16 Feb 2017 09:45:43 -0800 (PST) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A5605160152; Thu, 16 Feb 2017 09:45:43 -0800 (PST) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: <80c35414-3c93-bff3-387d-44fa52183745@cs.ucla.edu> Date: Thu, 16 Feb 2017 09:45:43 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <83r32yxd0w.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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 02/16/2017 09:26 AM, Eli Zaretskii wrote: > It seems to me that when one bumps into some code which looks > incorrect or less than optimal, and one considers its replacement with > a more clever code, No, that's not it. The idea was to simplify maintenance for the GNU case, perhaps at some cost to MS-Windows users, but they are lower priority so it is OK. The MS-Windows code was a mess because the two forms of auto binary-file detection could not work in combination; this was because one of the two forms was contributed later and without regard to MS-Windows. Perhaps the MS-Windows port could be improved without undue hassle to the GNU code, although that would require someone with MS-Windows expertise and enough free time to do it. Failing that, I suppose MS-Windows users can use -a and -U if they run into trouble, so it's not that big a deal. From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 18:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eric Blake Cc: eggert@cs.ucla.edu, 25707@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726835323598 (code B ref 25707); Thu, 16 Feb 2017 18:06:02 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 18:05:53 +0000 Received: from localhost ([127.0.0.1]:42517 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQRE-00068Y-So for submit@debbugs.gnu.org; Thu, 16 Feb 2017 13:05:53 -0500 Received: from eggs.gnu.org ([208.118.235.92]:41419) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQRD-00068F-AW for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 13:05:51 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceQR4-0007eH-6j for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 13:05:46 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57030) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceQR4-0007e7-3L; Thu, 16 Feb 2017 13:05:42 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2489 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ceQR3-0000zx-Ej; Thu, 16 Feb 2017 13:05:41 -0500 Date: Thu, 16 Feb 2017 20:06:07 +0200 Message-Id: <83k28qxb74.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <66c3fd13-42a1-b0ae-0344-270ecc21d109@redhat.com> (message from Eric Blake on Thu, 16 Feb 2017 11:40:29 -0600) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> <66c3fd13-42a1-b0ae-0344-270ecc21d109@redhat.com> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) > Cc: eggert@cs.ucla.edu, 25707@debbugs.gnu.org > From: Eric Blake > Date: Thu, 16 Feb 2017 11:40:29 -0600 > > On 02/16/2017 11:26 AM, Eli Zaretskii wrote: > > >> I'm of the opinion that undossify_input causes more problems than it > >> solves. We should trust fopen("r") to do the right thing, rather than > >> reinventing it ourselves. > > > > FYI: You'd be losing an important feature for non-Cygwin DOS/Windows > > users if you remove undossify_input and decide to trust fopen's "r" > > (or "rt") mode. > > "rt" mode is not required to exist. And I don't know any modern > implementation of "r" mode on a system with non-zero O_BINARY that eats > ALL \r - both Cygwin and mingw just change \r\n into \n while still > preserving other \r. The undossify() code that Paul just removed did > NOT behave the same as text mode (in that it did, perhaps > unintentionally, eat ALL \r). I explicitly said my comments were not about Cygwin. And you are forgetting the "stop at first ^Z" misfeature of text-mode reads. > I count it worse to TRY and reimplement the OS "r" mode and get the > implementation wrong, with more lines of code, than to just trust the OS > to do it correctly in the first place. It is no use trusting the OS if it doesn't DTRT. > The undossify() code may do the right thing on text files, but is > absolutely wrong on binary files. Grep is mainly a text-processing program. Its use with binary files is a much rarer use case, and the user has opt-in options for those. IMO it is more important to DTRT by default in the usual cases than err in rare cases when the user fails to specify those opt-in options needed to support that correctly. > No, I don't know of any fopen(,"r") code that eats _all_ CR. I do. > Yes, you do make a point that the side effect of reimplementing text > mode ourselves on a forced binary fd lets us "count" byte offsets where > the count could be text while the scan was binary, or where the count > could be binary while the scan was text. But in reality, are there any > users that ever want a mixed-mode count? Yes. > If you are scanning in binary, you want the binary count; if you are > scanning in text, you want the text count. That's up to the user; Grep shouldn't second-guess its users, and shouldn't force them into a specific modus operandi without a fire escape. But this is a futile argument: I don't expect to win it, and I'm well aware that recent Grep releases are much less friendly to non-Posix users than previous ones. Which is why I will stay with Grep 2.10, which works satisfactorily for me. The purpose of my message was to get on record about what these changes mean: they mean losing features which some find useful. You are not changing code which was written by someone who didn't know about text-mode I/O, or didn't understand that this could be done better, faster, etc., by dropping features. From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 18:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Paul Eggert Cc: eblake@redhat.com, 25707@debbugs.gnu.org Reply-To: Eli Zaretskii Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148726850523862 (code B ref 25707); Thu, 16 Feb 2017 18:09:01 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 18:08:25 +0000 Received: from localhost ([127.0.0.1]:42522 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQTh-0006Co-CO for submit@debbugs.gnu.org; Thu, 16 Feb 2017 13:08:25 -0500 Received: from eggs.gnu.org ([208.118.235.92]:42471) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceQTg-0006Ca-2t for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 13:08:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ceQTX-0000Es-2X for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 13:08:19 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40,RP_MATCHES_RCVD autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:57073) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ceQTW-0000Eo-WF; Thu, 16 Feb 2017 13:08:15 -0500 Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2490 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ceQTW-0001AT-0f; Thu, 16 Feb 2017 13:08:14 -0500 Date: Thu, 16 Feb 2017 20:08:33 +0200 Message-Id: <83inoaxb32.fsf@gnu.org> From: Eli Zaretskii In-reply-to: <80c35414-3c93-bff3-387d-44fa52183745@cs.ucla.edu> (message from Paul Eggert on Thu, 16 Feb 2017 09:45:43 -0800) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> <80c35414-3c93-bff3-387d-44fa52183745@cs.ucla.edu> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -5.0 (-----) > Cc: 25707@debbugs.gnu.org > From: Paul Eggert > Date: Thu, 16 Feb 2017 09:45:43 -0800 > > On 02/16/2017 09:26 AM, Eli Zaretskii wrote: > > It seems to me that when one bumps into some code which looks > > incorrect or less than optimal, and one considers its replacement with > > a more clever code, > > No, that's not it. The idea was to simplify maintenance for the GNU > case, perhaps at some cost to MS-Windows users, but they are lower > priority so it is OK. I'm saying these changes lose features for those users. I'm well aware that their needs are of a very low priority to you. I just don't want people to think that the new code is equivalent to the old one, when it isn't. From unknown Sat Aug 16 20:59:01 2025 X-Loop: help-debbugs@gnu.org Subject: bug#25707: [PATCH] grep: don't forcefully strip carriage returns Resent-From: Paul Eggert Original-Sender: "Debbugs-submit" Resent-CC: bug-grep@gnu.org Resent-Date: Thu, 16 Feb 2017 22:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 25707 X-GNU-PR-Package: grep X-GNU-PR-Keywords: patch To: Eli Zaretskii Cc: eblake@redhat.com, 25707@debbugs.gnu.org Received: via spool by 25707-submit@debbugs.gnu.org id=B25707.148728392414264 (code B ref 25707); Thu, 16 Feb 2017 22:26:01 +0000 Received: (at 25707) by debbugs.gnu.org; 16 Feb 2017 22:25:24 +0000 Received: from localhost ([127.0.0.1]:42738 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceUUO-0003i0-0h for submit@debbugs.gnu.org; Thu, 16 Feb 2017 17:25:24 -0500 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:50182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ceUUL-0003hk-H8 for 25707@debbugs.gnu.org; Thu, 16 Feb 2017 17:25:23 -0500 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 0EC1916017E; Thu, 16 Feb 2017 14:25:16 -0800 (PST) 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 ZPdbZwCY6MYx; Thu, 16 Feb 2017 14:25:15 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 624BB16017B; Thu, 16 Feb 2017 14:25:15 -0800 (PST) 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 0csW-GiBZrit; Thu, 16 Feb 2017 14:25:15 -0800 (PST) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 4CBB7160172; Thu, 16 Feb 2017 14:25:15 -0800 (PST) References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> <80c35414-3c93-bff3-387d-44fa52183745@cs.ucla.edu> <83inoaxb32.fsf@gnu.org> From: Paul Eggert Organization: UCLA Computer Science Department Message-ID: Date: Thu, 16 Feb 2017 14:25:15 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <83inoaxb32.fsf@gnu.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: 0.5 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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.5 (/) On 02/16/2017 10:08 AM, Eli Zaretskii wrote: > I'm well aware that their needs are of a very low priority to you. I would not say "very low priority". (To me, "very low priority" would be something like supporting GNU grep on IRIX. :-) Regardless, it's better not to try to personalize any disagreement about priorities. I didn't file this bug report, and I didn't set the priority of MS-Windows for the GNU project. > Grep shouldn't second-guess its users The new code has less guesswork than the old code did, so in that sense it's an improvement. > I just don't want people to think that the new code is equivalent to the old one We should be OK on that point, as the updated NEWS file contains an entry prominently describing the change and the documentation has been updated to reflect the changed behavior. From unknown Sat Aug 16 20:59:01 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Eric Blake Subject: bug#25707: closed (Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns) Message-ID: References: <20170213192358.19297-1-eblake@redhat.com> X-Gnu-PR-Message: they-closed 25707 X-Gnu-PR-Package: grep X-Gnu-PR-Keywords: patch Reply-To: 25707@debbugs.gnu.org Date: Tue, 15 Oct 2019 22:39:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1571179142-21028-1" This is a multi-part message in MIME format... ------------=_1571179142-21028-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #25707: [PATCH] grep: don't forcefully strip carriage returns which was filed against the grep package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 25707@debbugs.gnu.org. --=20 25707: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D25707 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1571179142-21028-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 25707-done) by debbugs.gnu.org; 15 Oct 2019 22:38:02 +0000 Received: from localhost ([127.0.0.1]:44976 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKVS6-0005Ri-IX for submit@debbugs.gnu.org; Tue, 15 Oct 2019 18:38:02 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:39058) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1iKVS5-0005RD-2v for 25707-done@debbugs.gnu.org; Tue, 15 Oct 2019 18:38:01 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4BF831605DC; Tue, 15 Oct 2019 15:37:55 -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 aGkCpa16WjqT; Tue, 15 Oct 2019 15:37:54 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id A5E9C1605E4; Tue, 15 Oct 2019 15:37:54 -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 l4uGp_EfLFZs; Tue, 15 Oct 2019 15:37:54 -0700 (PDT) Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 7E3EB1605DC; Tue, 15 Oct 2019 15:37:54 -0700 (PDT) Subject: Re: bug#25707: [PATCH] grep: don't forcefully strip carriage returns From: Paul Eggert To: Eli Zaretskii References: <20170213192358.19297-1-eblake@redhat.com> <4731de84-a8c7-2ab5-69cd-36630ab6109a@cs.ucla.edu> <7d11895a-8070-8ff2-9b4b-1c83168fdfb2@redhat.com> <83r32yxd0w.fsf@gnu.org> <80c35414-3c93-bff3-387d-44fa52183745@cs.ucla.edu> <83inoaxb32.fsf@gnu.org> Organization: UCLA Computer Science Department Message-ID: Date: Tue, 15 Oct 2019 15:37:54 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 25707-done Cc: eblake@redhat.com, 25707-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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: -3.3 (---) No further comment for a couple of years, so I'm closing this bug report. Any remaining issues can be re-raised in a new report as needed. ------------=_1571179142-21028-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 13 Feb 2017 19:24:15 +0000 Received: from localhost ([127.0.0.1]:38843 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMER-0008BO-87 for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:15 -0500 Received: from eggs.gnu.org ([208.118.235.92]:45272) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdMEP-0008B9-5g for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdMEI-0006JQ-K4 for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:07 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:57815) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdMEI-0006JL-Gv for submit@debbugs.gnu.org; Mon, 13 Feb 2017 14:24:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36212) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cdMEH-0004Yx-8U for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cdMED-0006Ek-9r for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:05 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44098) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cdMED-0006Dv-3d for bug-grep@gnu.org; Mon, 13 Feb 2017 14:24:01 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1DF3C80478 for ; Mon, 13 Feb 2017 19:24:01 +0000 (UTC) Received: from red.redhat.com (ovpn-123-249.rdu2.redhat.com [10.10.123.249] (may be forged)) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1DJO01N025403 for ; Mon, 13 Feb 2017 14:24:00 -0500 From: Eric Blake To: bug-grep@gnu.org Subject: [PATCH] grep: don't forcefully strip carriage returns Date: Mon, 13 Feb 2017 13:23:58 -0600 Message-Id: <20170213192358.19297-1-eblake@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 13 Feb 2017 19:24:01 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.1 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 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.1 (----) Commit 5c92a54 made the mistaken assumption that using fopen("rt") on platforms where O_TEXT is non-zero makes sense. However, POSIX already requires fopen("r") to open a file in text mode, vs. fopen("rb") when binary mode is wanted, and at least on Cygwin, where it is possible to control whether a mount point is binary or text by default (using just "r"), the use of fopen("rt") actively breaks assumptions on a binary mount by silently corrupting any carriage returns that are supposed to be preserved. * src/grep.c (main): Never use fopen("rt"). Signed-off-by: Eric Blake --- src/grep.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/grep.c b/src/grep.c index 74acb0b..ce8859b 100644 --- a/src/grep.c +++ b/src/grep.c @@ -2586,7 +2586,7 @@ main (int argc, char **argv) break; case 'f': - fp = STREQ (optarg, "-") ? stdin : fopen (optarg, O_TEXT ? "rt" : "r"); + fp = STREQ (optarg, "-") ? stdin : fopen (optarg, "r"); if (!fp) die (EXIT_TROUBLE, errno, "%s", optarg); oldcc = keycc; -- 2.9.3 ------------=_1571179142-21028-1--