aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/gzip/zdiff
diff options
context:
space:
mode:
authorNate Williams <nate@FreeBSD.org>1993-06-18 18:39:41 +0000
committerNate Williams <nate@FreeBSD.org>1993-06-18 18:39:41 +0000
commit222b83e8905fa7accb47315fc36b8e97dc1b6177 (patch)
treeaed9bc2cb4f8c24d66e4321a48e65b0c81e40719 /gnu/usr.bin/gzip/zdiff
parent30154ac8a86b4987758047cd7b94de39dab9d8d8 (diff)
downloadsrc-222b83e8905fa7accb47315fc36b8e97dc1b6177.tar.gz
src-222b83e8905fa7accb47315fc36b8e97dc1b6177.zip
Gzip 1.1
Notes
Notes: svn path=/vendor/misc-GNU/dist2/; revision=18
Diffstat (limited to 'gnu/usr.bin/gzip/zdiff')
-rw-r--r--gnu/usr.bin/gzip/zdiff67
1 files changed, 67 insertions, 0 deletions
diff --git a/gnu/usr.bin/gzip/zdiff b/gnu/usr.bin/gzip/zdiff
new file mode 100644
index 000000000000..c21e7ef8ae06
--- /dev/null
+++ b/gnu/usr.bin/gzip/zdiff
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# Zcmp and zdiff are used to invoke the cmp or the diff pro-
+# gram on compressed files. All options specified are passed
+# directly to cmp or diff. If only 1 file is specified, then
+# the files compared are file1 and an uncompressed file1.gz.
+# If two files are specified, then they are uncompressed (if
+# necessary) and fed to cmp or diff. The exit status from cmp
+# or diff is preserved.
+
+prog=`echo $0 | sed 's|.*/||'`
+case "$prog" in
+ *cmp) comp=${CMP-cmp} ;;
+ *) comp=${DIFF-diff} ;;
+esac
+
+OPTIONS=
+FILES=
+for ARG
+do
+ case "$ARG" in
+ -*) OPTIONS="$OPTIONS $ARG";;
+ *) if test -f "$ARG"; then
+ FILES="$FILES $ARG"
+ else
+ echo "${prog}: $ARG not found or not a regular file"
+ exit 1
+ fi ;;
+ esac
+done
+if test -z "$FILES"; then
+ echo "Usage: $prog [${comp}_options] file [file]"
+ exit 1
+fi
+set $FILES
+if test $# -eq 1; then
+ FILE=`echo "$1" | sed 's/[-.][zZtga]*$//'`
+ gzip -cd "$1" | $comp $OPTIONS - "$FILE"
+ STAT="$?"
+
+elif test $# -eq 2; then
+ case "$1" in
+ *[-.]gz | *[-.][zZ] | *.t[ga]z)
+ case "$2" in
+ *[-.]gz | *[-.][zZ] | *.t[ga]z)
+ F=`echo "$2" | sed 's|.*/||;s|[-.][zZtga]*$||'`
+ gzip -cd "$2" > /tmp/"$F".$$
+ gzip -cd "$1" | $comp $OPTIONS - /tmp/"$F".$$
+ STAT="$?"
+ /bin/rm -f /tmp/"$F".$$;;
+
+ *) gzip -cd "$1" | $comp $OPTIONS - "$2"
+ STAT="$?";;
+ esac;;
+ *) case "$2" in
+ *[-.]gz | *[-.][zZ] | *.t[ga]z)
+ gzip -cd "$2" | $comp $OPTIONS "$1" -
+ STAT="$?";;
+ *) $comp $OPTIONS "$1" "$2"
+ STAT="$?";;
+ esac;;
+ esac
+ exit "$STAT"
+else
+ echo "Usage: $prog [${comp}_options] file [file]"
+ exit 1
+fi