maint: adjust copyright notices in *.in files to be consistent
[debian/gzip] / zgrep.in
index 68396dbfcbbbf8de623d53c5aa77b5c11f993e89..a2f4201afbfb41f065e9400868015018a5204559 100644 (file)
--- a/zgrep.in
+++ b/zgrep.in
@@ -3,8 +3,8 @@
 # zgrep -- a wrapper around a grep program that decompresses files as needed
 # Adapted from a version sent by Charles Levert <charles@comm.polymtl.ca>
 
-# Copyright (C) 1998, 2001, 2002, 2006, 2007, 2009, 2010 Free Software
-# Foundation
+# Copyright (C) 1998, 2001-2002, 2006-2007, 2009-2015 Free Software
+# Foundation, Inc.
 
 # Copyright (C) 1993 Jean-loup Gailly
 
@@ -28,10 +28,10 @@ case $1 in
 esac
 PATH=$bindir:$PATH
 
-grep='${GREP-grep}'
+grep='${GREP-'\''@GREP@'\''}'
 
 version='zgrep (gzip) @VERSION@
-Copyright (C) 2010 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>."
 
@@ -65,7 +68,7 @@ while test $# -ne 0; do
   optarg=
 
   case $option in
-  (-[0123456789EFGHIKLPRTUVZabchilnoqrsuvwxyz]?*)
+  (-[0123456789EFGHIKLPRTUVZabchilnoqrsuvwxyz]*[!0123456789]*)
     arg2=-\'$(expr "X$option" : 'X-.[0-9]*\(.*\)' | sed "$escape")
     eval "set -- $arg2 "'${1+"$@"}'
     option=$(expr "X$option" : 'X\(-.[0-9]*\)');;
@@ -170,7 +173,7 @@ if test $# -eq 0; then
 fi
 
 exec 3>&1
-res=0
+res=1
 
 for i
 do
@@ -210,15 +213,27 @@ do
         (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&-
       ) && exit $r
       r=$?
-      test $r -gt 128 && test $r -le 143 && exit $r || exit 2
+      test 1 -lt $r && exit $r || exit 2
     fi >&3 5>&-
   )
   r=$?
-  if test $r -gt 128 && test $r -le 143; then
-    kill -$(($r-128)) $$
-    exit $r
-  fi
-  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