Initial revision
[gzip.git] / zdiff.in
blob110454ccf84a5d64b0e0617ec48d0b150808e9ae
2 #!/bin/sh
3 # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
5 # Zcmp and zdiff are used to invoke the cmp or the  diff  pro-
6 # gram  on compressed files.  All options specified are passed
7 # directly to cmp or diff.  If only 1 file is specified,  then
8 # the  files  compared  are file1 and an uncompressed file1.gz.
9 # If two files are specified, then they are  uncompressed  (if
10 # necessary) and fed to cmp or diff.  The exit status from cmp
11 # or diff is preserved.
13 PATH="BINDIR:$PATH"; export PATH
14 prog=`echo $0 | sed 's|.*/||'`
15 case "$prog" in
16   *cmp) comp=${CMP-cmp}   ;;
17   *)    comp=${DIFF-diff} ;;
18 esac
20 OPTIONS=
21 FILES=
22 for ARG
24     case "$ARG" in
25     -*) OPTIONS="$OPTIONS $ARG";;
26      *) if test -f "$ARG"; then
27             FILES="$FILES $ARG"
28         else
29             echo "${prog}: $ARG not found or not a regular file"
30             exit 1
31         fi ;;
32     esac
33 done
34 if test -z "$FILES"; then
35         echo "Usage: $prog [${comp}_options] file [file]"
36         exit 1
38 set $FILES
39 if test $# -eq 1; then
40         FILE=`echo "$1" | sed 's/[-.][zZtga]*$//'`
41         gzip -cd "$1" | $comp $OPTIONS - "$FILE"
42         STAT="$?"
44 elif test $# -eq 2; then
45         case "$1" in
46         *[-.]gz* | *[-.][zZ] | *.t[ga]z)
47                 case "$2" in
48                 *[-.]gz* | *[-.][zZ] | *.t[ga]z)
49                         F=`echo "$2" | sed 's|.*/||;s|[-.][zZtga]*||'`
50                         gzip -cdfq "$2" > /tmp/"$F".$$
51                         gzip -cdfq "$1" | $comp $OPTIONS - /tmp/"$F".$$
52                         STAT="$?"
53                         /bin/rm -f /tmp/"$F".$$;;
55                 *)      gzip -cdfq "$1" | $comp $OPTIONS - "$2"
56                         STAT="$?";;
57                 esac;;
58         *)      case "$2" in
59                 *[-.]gz* | *[-.][zZ] | *.t[ga]z)
60                         gzip -cdfq "$2" | $comp $OPTIONS "$1" -
61                         STAT="$?";;
62                 *)      $comp $OPTIONS "$1" "$2"
63                         STAT="$?";;
64                 esac;;
65         esac
66         exit "$STAT"
67 else
68         echo "Usage: $prog [${comp}_options] file [file]"
69         exit 1