grep-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

grep branch, master, updated. v3.3-76-g0435ebc


From: Paul Eggert
Subject: grep branch, master, updated. v3.3-76-g0435ebc
Date: Sat, 22 Aug 2020 17:07:51 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "grep".

The branch, master has been updated
       via  0435ebca64fbafcd62008c991dd9377d8a792dfc (commit)
      from  afc59ea2006a456401f1e674fbb2893236a5a6f0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.savannah.gnu.org/cgit/grep.git/commit/?id=0435ebca64fbafcd62008c991dd9377d8a792dfc


commit 0435ebca64fbafcd62008c991dd9377d8a792dfc
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Sat Aug 22 14:06:26 2020 -0700

    Revert -L exit status change introduced in grep 3.2
    
    Problems reported by Antonio Diaz Diaz in:
    https://bugs.gnu.org/28105#29
    * NEWS, doc/grep.texi (Exit Status), src/grep.c (usage):
    Adjust documentation accordingly.
    * src/grep.c (grepdesc, main): Go back to old behavior.
    * tests/skip-read: Adjust tests accordingly.

diff --git a/NEWS b/NEWS
index 6abb7c2..5f4c0b4 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,13 @@ GNU grep NEWS                                    -*- outline 
-*-
 
 * Noteworthy changes in release ?.? (????-??-??) [?]
 
+** Changes in behavior
+
+  The --files-without-match (-L) option has reverted to its behavior
+  in grep 3.1 and earlier.  That is, grep -L again succeeds when a
+  line is selected, not when a file is listed.  The behavior in grep
+  3.2 through 3.4 was causing compatibility problems.
+
 
 * Noteworthy changes in release 3.4 (2020-01-02) [stable]
 
diff --git a/doc/grep.texi b/doc/grep.texi
index 4b26f9d..02b1968 100644
--- a/doc/grep.texi
+++ b/doc/grep.texi
@@ -1112,9 +1112,6 @@ and only when @env{POSIXLY_CORRECT} is not set.
 
 Normally the exit status is 0 if a line is selected, 1 if no lines
 were selected, and 2 if an error occurred.  However, if the
-@option{-L} or @option{--files-without-match} is used, the exit status
-is 0 if a file is listed, 1 if no files were listed, and 2 if an error
-occurred.  Also, if the
 @option{-q} or @option{--quiet} or @option{--silent} option is used
 and a line is selected, the exit status is 0 even if an error
 occurred.  Other @command{grep} implementations may exit with status
diff --git a/src/grep.c b/src/grep.c
index 7ba602d..5764b2a 100644
--- a/src/grep.c
+++ b/src/grep.c
@@ -1864,11 +1864,11 @@ grepdesc (int desc, bool command_line)
         fflush_errno ();
     }
 
-  status = !count == !(list_files == LISTFILES_NONMATCHING);
+  status = !count;
 
-  if (list_files == LISTFILES_NONE || dev_null_output)
+  if (list_files == LISTFILES_NONE)
     finalize_input (desc, &st, ineof);
-  else if (status == 0)
+  else if (list_files == (status ? LISTFILES_NONMATCHING : LISTFILES_MATCHING))
     {
       print_filename ();
       putchar_errno ('\n' & filename_mask);
@@ -1997,7 +1997,7 @@ Context control:\n\
       printf (_("\
 When FILE is '-', read standard input.  With no FILE, read '.' if\n\
 recursive, '-' otherwise.  With fewer than two FILEs, assume -h.\n\
-Exit status is 0 if any line (or file if -L) is selected, 1 otherwise;\n\
+Exit status is 0 if any line is selected, 1 otherwise;\n\
 if any error occurs and -q is not given, the exit status is 2.\n"));
       emit_bug_reporting_address ();
     }
@@ -2835,7 +2835,7 @@ main (int argc, char **argv)
 
   /* POSIX says -c, -l and -q are mutually exclusive.  In this
      implementation, -q overrides -l and -L, which in turn override -c.  */
-  if (exit_on_match)
+  if (exit_on_match | dev_null_output)
     list_files = LISTFILES_NONE;
   if ((exit_on_match | dev_null_output) || list_files != LISTFILES_NONE)
     {
diff --git a/tests/skip-read b/tests/skip-read
index 2a17334..1e9e718 100755
--- a/tests/skip-read
+++ b/tests/skip-read
@@ -15,9 +15,9 @@ for opts in '-m0 y' '-f /dev/null' '-v ""'; do
       eval returns_ 1 grep -l $opts $matcher /dev/null > out || fail=1
       compare /dev/null out || fail=1
     done
-    eval grep -L $opts $matcher /dev/null > out || fail=1
+    eval returns_ 1 grep -L $opts $matcher /dev/null > out || fail=1
     compare exp out || fail=1
-    eval grep -L $opts $matcher /dev/null > /dev/null || fail=1
+    eval returns_ 1 grep -L $opts $matcher /dev/null > /dev/null || fail=1
   done
 done
 

-----------------------------------------------------------------------

Summary of changes:
 NEWS            |  7 +++++++
 doc/grep.texi   |  3 ---
 src/grep.c      | 10 +++++-----
 tests/skip-read |  4 ++--
 4 files changed, 14 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
grep



reply via email to

[Prev in Thread] Current Thread [Next in Thread]