X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=zdiff.in;h=12de3a1e9a9f86cd4c83f15e09e04eeef23dcede;hb=82b2a20225c9c0fe6405f845f7da5ab3ca1dec3f;hp=fda3259fe1a808d18d40e00e5337fc6b2aeebe55;hpb=013796abf4c6be0bd130f541c0ece156156239c3;p=debian%2Fgzip diff --git a/zdiff.in b/zdiff.in index fda3259..12de3a1 100644 --- a/zdiff.in +++ b/zdiff.in @@ -1,12 +1,12 @@ #!/bin/sh # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh -# Copyright (C) 1998, 2002, 2006, 2007 Free Software Foundation +# Copyright (C) 1998, 2002, 2006-2007, 2009-2016 Free Software Foundation, Inc. # Copyright (C) 1993 Jean-loup Gailly # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, @@ -18,16 +18,14 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -PATH=BINDIR:$PATH - case $1 in --__cmp) shift - prog=cmp; cmp='${CMP-cmp}' ;; + prog=cmp; cmp='${CMP-cmp}' ;; *) prog=diff; cmp='${DIFF-diff}';; esac version="z$prog (gzip) @VERSION@ -Copyright (C) 2007 Free Software Foundation, Inc. +Copyright (C) 2009, 2011-2016 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of the GNU General Public License . There is NO WARRANTY, to the extent permitted by law. @@ -84,76 +82,78 @@ if test $# -eq 1; then exit 2;; esac elif test $# -eq 2; then - case "$1" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) + case "$1" in + *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) case "$2" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) - if test "$1$2" = --; then - gzip_status=$( - exec 4>&1 - (gzip -cdfq - 4>&-; echo $? >&4) 3>&- | - eval "$cmp" - - >&3 - ) - elif - # Reject Solaris 8's buggy /bin/bash 2.03. - echo X | - (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) \ - 5<&0 - then - gzip_status=$( - exec 4>&1 - (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | - ( (gzip -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- /dev/null 2>&1; then - tmp=`mktemp -t -- "$F.XXXXXX"` || exit 2 - else - set -C - tmp=${TMPDIR-/tmp}/$F.$$ - fi - gzip -cdfq -- "$2" > "$tmp" || exit 2 - gzip_status=$( - exec 4>&1 - (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | - eval "$cmp" - '"$tmp"' >&3 - ) + *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) + if test "$1$2" = --; then + gzip_status=$( + exec 4>&1 + (gzip -cdfq - 4>&-; echo $? >&4) 3>&- | + eval "$cmp" - - >&3 + ) + elif + # Reject Solaris 8's buggy /bin/bash 2.03. + echo X | + (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) \ + 5<&0 + then + gzip_status=$( + exec 4>&1 + (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + ( (gzip -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- &3) 5<&0 + ) + cmp_status=$? + case $gzip_status in + *[1-9]*) gzip_status=1;; + *) gzip_status=0;; + esac + (exit $cmp_status) + else + tmp= + trap ' + test -n "$tmp" && rm -f "$tmp" + (exit 2); exit 2 + ' HUP INT PIPE TERM 0 + if type mktemp >/dev/null 2>&1; then + tmp=`mktemp` || exit 2 + else + F=`expr "/$2" : '.*/\(.*\)[-.][zZtga]*$'` || F=$prog + set -C + tmp=${TMPDIR-/tmp}/$F.$$ + fi + gzip -cdfq -- "$2" > "$tmp" || exit 2 + gzip_status=$( + exec 4>&1 + (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + eval "$cmp" - '"$tmp"' >&3 + ) cmp_status=$? - rm -f "$tmp" || gzip_status=$? - trap - HUP INT PIPE TERM 0 - (exit $cmp_status) - fi;; - *) - gzip_status=$( - exec 4>&1 - (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | - eval "$cmp" - '"$2"' >&3 - );; + rm -f "$tmp" || gzip_status=$? + trap - HUP INT PIPE TERM 0 + (exit $cmp_status) + fi;; + *) + gzip_status=$( + exec 4>&1 + (gzip -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- | + eval "$cmp" - '"$2"' >&3 + );; esac;; *) case "$2" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) - gzip_status=$( - exec 4>&1 - (gzip -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- | - eval "$cmp" '"$1"' - >&3 - );; - *) eval "$cmp" '"$1"' '"$2"';; + *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) + gzip_status=$( + exec 4>&1 + (gzip -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- | + eval "$cmp" '"$1"' - >&3 + );; + *) eval "$cmp" '"$1"' '"$2"';; esac;; - esac + esac else - echo >&2 "$0: invalid number of operands; try \`$0 --help' for help" - exit 2 + echo >&2 "$0: invalid number of operands; try \`$0 --help' for help" + exit 2 fi cmp_status=$?