From: Bdale Garbee Date: Fri, 13 Apr 2012 05:10:59 +0000 (-0600) Subject: patch to improve behavior of zdiff when file is compressed without extension X-Git-Tag: debian/1.4-6~2 X-Git-Url: https://git.gag.com/?p=debian%2Fgzip;a=commitdiff_plain;h=b2747d0988265018e8b4db1ba44214b0e506d09a patch to improve behavior of zdiff when file is compressed without extension --- diff --git a/debian/changelog b/debian/changelog index 64223f4..bf4fe47 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,8 @@ gzip (1.4-6) unstable; urgency=low closes: #637626 * patch to improve zdiff doc from Stéphane Aulery, closes: #269612 * patches to fix RFC URLs from Stéphane Aulery, closes: #636182 + * patch from Stéphane Aulery to improve zdiff behavior when file is + compressed without explicit extension, closes: #343575, #630111 -- Bdale Garbee Thu, 12 Apr 2012 11:38:56 -0600 diff --git a/debian/patches/series b/debian/patches/series index c6482a4..f85a092 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,3 +7,4 @@ zgrep-dash-h.diff gzip-man-pack.diff zdiff-man.diff rfc-urls.diff +zdiff-file.diff diff --git a/debian/patches/zdiff-file.diff b/debian/patches/zdiff-file.diff new file mode 100644 index 0000000..ea7bc6d --- /dev/null +++ b/debian/patches/zdiff-file.diff @@ -0,0 +1,61 @@ +diff --git a/zdiff.in b/zdiff.in +index 9d3b4ae..506a888 100644 +--- a/zdiff.in ++++ b/zdiff.in +@@ -76,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 +@@ -88,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 +@@ -118,6 +127,9 @@ elif test $# -eq 2; then + (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" +@@ -147,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>&- | diff --git a/zdiff.in b/zdiff.in index 9d3b4ae..506a888 100644 --- a/zdiff.in +++ b/zdiff.in @@ -76,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 @@ -88,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 @@ -118,6 +127,9 @@ elif test $# -eq 2; then (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" @@ -147,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>&- |