X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=zdiff.in;h=506a888ef2d78390d9d6e8eec497b63c37d673a5;hb=a45313e80d3dfd7d9e8dbea3a609fb326e5b091b;hp=fda3259fe1a808d18d40e00e5337fc6b2aeebe55;hpb=800deb09b422a73c1212233a93839a223ff59678;p=debian%2Fgzip diff --git a/zdiff.in b/zdiff.in index fda3259..506a888 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 Free Software Foundation # 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,7 +18,11 @@ # 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 +bindir=@bindir@ +case $1 in +--__bindir) bindir=${2?}; shift; shift;; +esac +PATH=$bindir:$PATH case $1 in --__cmp) shift @@ -27,7 +31,7 @@ case $1 in esac version="z$prog (gzip) @VERSION@ -Copyright (C) 2007 Free Software Foundation, Inc. +Copyright (C) 2007, 2009-2010 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. @@ -72,9 +76,15 @@ gzip_status=0 exec 3>&1 if test $# -eq 1; then - case $1 in - *[-.]gz* | *[-.][zZ] | *.t[ga]z) + type_file=$(file -b --mime-type "$1") + + case $type_file in + application/x-gzip | application/x-compress) FILE=`expr "X$1" : 'X\(.*\)[-.][zZtga]*$'` + if test "$FILE" == ""; then + FILE="$1" + fi; + gzip_status=$( exec 4>&1 (gzip -cd -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$FILE"' >&3 @@ -84,10 +94,13 @@ if test $# -eq 1; then exit 2;; esac elif test $# -eq 2; then - case "$1" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) - case "$2" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) + type_file1=$(file -b --mime-type "$1") + type_file2=$(file -b --mime-type "$2") + + case "$type_file1" in + application/x-gzip | application/x-compress) + case "$type_file2" in + application/x-gzip | application/x-compress) if test "$1$2" = --; then gzip_status=$( exec 4>&1 @@ -104,14 +117,19 @@ elif test $# -eq 2; then 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 + if test "$F" == ""; then + F="$2" + fi; tmp= trap ' test -n "$tmp" && rm -f "$tmp" @@ -141,8 +159,8 @@ elif test $# -eq 2; then eval "$cmp" - '"$2"' >&3 );; esac;; - *) case "$2" in - *[-.]gz* | *[-.][zZ] | *.t[ga]z | -) + *) case "$type_file2" in + application/x-gzip | application/x-compress) gzip_status=$( exec 4>&1 (gzip -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- |