X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=zdiff.in;h=4cf73951f48a001c6aa7b5098a8da0dde4b68f25;hb=63a4dabcae87d368cccb3365f2266b8941ba8915;hp=7027221019f1a2a0b81acbc0f169e34ff7aa45ba;hpb=c7e61475680fa226bd9b8bdd469cd66914e630f5;p=debian%2Fgzip diff --git a/zdiff.in b/zdiff.in index 7027221..4cf7395 100644 --- a/zdiff.in +++ b/zdiff.in @@ -1,7 +1,7 @@ #!/bin/sh # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh -# Copyright (C) 1998, 2002, 2006, 2007, 2009 Free Software Foundation +# Copyright (C) 1998, 2002, 2006-2007, 2009-2018 Free Software Foundation, Inc. # Copyright (C) 1993 Jean-loup Gailly # This program is free software; you can redistribute it and/or modify @@ -18,22 +18,16 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -bindir=@bindir@ -case $1 in ---__bindir) bindir=${2?}; shift; shift;; -esac -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, 2009 Free Software Foundation, Inc. +Copyright (C) 2009, 2011-2018 Free Software Foundation, Inc. This is free software. You may redistribute copies of it under the terms of -the GNU General Public License . +the GNU General Public License . There is NO WARRANTY, to the extent permitted by law. Written by Jean-loup Gailly." @@ -56,8 +50,8 @@ escape=' while :; do case $1 in - --h*) printf '%s\n' "$usage" || exit 2; exit;; - --v*) echo "$version" || exit 2; exit;; + --h*) printf '%s\n' "$usage" || exit 2; exit;; + --v*) printf '%s\n' "$version" || exit 2; exit;; --) shift; break;; -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;; -?*) cmp="$cmp '$1'";; @@ -84,82 +78,88 @@ if test $# -eq 1; then (gzip -cd -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$FILE"' >&3 );; *) - echo >&2 "$0: $1: unknown compressed file extension" + printf >&2 '%s\n' "$0: $1: unknown compressed file extension" 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<&- &3) 5<&0 - ) - cmp_status=$? - case $gzip_status in - *[1-9]*) gzip_status=1;; - *) gzip_status=0;; - esac - (exit $cmp_status) - else - F=`expr "/$2" : '.*/\(.*\)[-.][zZtga]*$'` || F=$prog - 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 -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 + case $TMPDIR in + / | /*/) ;; + /*) TMPDIR=$TMPDIR/;; + *) TMPDIR=/tmp/;; + esac + if type mktemp >/dev/null 2>&1; then + tmp=`mktemp "${TMPDIR}zdiffXXXXXXXXX"` || + exit 2 + else + set -C + tmp=${TMPDIR}zdiff$$ + 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 + printf >&2 '%s\n' \ + "$0: invalid number of operands; try \`$0 --help' for help" + exit 2 fi cmp_status=$?