maint: update copyright year ranges to include 2015; update gnulib
[debian/gzip] / zgrep.in
index f878acf8197158ab5c6a195c6d15fdf2d02e70c5..0ee006248a6969ea562d6f3e5c0a2e8d3339cbfd 100644 (file)
--- a/zgrep.in
+++ b/zgrep.in
@@ -28,10 +28,10 @@ case $1 in
 esac
 PATH=$bindir:$PATH
 
-grep='${GREP-grep}'
+grep='${GREP-'\''@GREP@'\''}'
 
 version='zgrep (gzip) @VERSION@
-Copyright (C) 2010-2012 Free Software Foundation, Inc.
+Copyright (C) 2010-2015 Free Software Foundation, Inc.
 This is free software.  You may redistribute copies of it under the terms of
 the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
 There is NO WARRANTY, to the extent permitted by law.
@@ -42,7 +42,10 @@ usage="Usage: $0 [OPTION]... [-e] PATTERN [FILE]...
 Look for instances of PATTERN in the input FILEs, using their
 uncompressed contents if they are compressed.
 
-OPTIONs are the same as for 'grep'.
+OPTIONs are the same as for 'grep', except that the following 'grep'
+options are not supported: --dereference-recursive (-R), --directories (-d),
+--exclude, --exclude-from, --exclude-dir, --include, --null (-Z),
+--null-data (-z), and --recursive (-r).
 
 Report bugs to <bug-gzip@gnu.org>."
 
@@ -170,7 +173,7 @@ if test $# -eq 0; then
 fi
 
 exec 3>&1
-res=0
+res=1
 
 for i
 do
@@ -214,8 +217,23 @@ do
     fi >&3 5>&-
   )
   r=$?
-  test 128 -lt $r && exit $r
-  test "$gzip_status" -eq 0 || test "$gzip_status" -eq 2 || r=2
-  test $res -lt $r && res=$r
+
+  # Ignore gzip status 2, as it is just a warning.
+  # gzip status 1 is an error, like grep status 2.
+  test $gzip_status -eq 2 && gzip_status=0
+  test $gzip_status -eq 1 && gzip_status=2
+
+  # Use the more serious of the grep and gzip statuses.
+  test $r -lt $gzip_status && r=$gzip_status
+
+  # Exit immediately on software configuration error.
+  test 126 -le $r && exit $r
+
+  # Accumulate the greatest status, except consider 0 to be greater than 1.
+  if test $r -le 1 && test $res -le 1; then
+     test $r -lt $res
+  else
+     test $res -lt $r
+  fi && res=$r
 done
 exit $res