1#!/bin/sh 2# sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh 3 4# Bzcmp/diff wrapped for bzip2, 5# adapted from zdiff by Philippe Troin <phil@fifi.org> for Debian GNU/Linux. 6 7# Bzcmp and bzdiff are used to invoke the cmp or the diff pro- 8# gram on compressed files. All options specified are passed 9# directly to cmp or diff. If only 1 file is specified, then 10# the files compared are file1 and an uncompressed file1.gz. 11# If two files are specified, then they are uncompressed (if 12# necessary) and fed to cmp or diff. The exit status from cmp 13# or diff is preserved. 14 15PATH="/usr/bin:/bin:$PATH"; export PATH 16prog=`echo $0 | sed 's|.*/||'` 17case "$prog" in 18 *cmp) comp=${CMP-cmp} ;; 19 *) comp=${DIFF-diff} ;; 20esac 21 22OPTIONS= 23FILES= 24for ARG 25do 26 case "$ARG" in 27 -*) OPTIONS="$OPTIONS $ARG";; 28 *) if test -f "$ARG"; then 29 FILES="$FILES $ARG" 30 else 31 echo "${prog}: $ARG not found or not a regular file" 32 exit 1 33 fi ;; 34 esac 35done 36if test -z "$FILES"; then 37 echo "Usage: $prog [${comp}_options] file [file]" 38 exit 1 39fi 40tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || { 41 echo 'cannot create a temporary file' >&2 42 exit 1 43} 44set $FILES 45if test $# -eq 1; then 46 FILE=`echo "$1" | sed 's/.bz2$//'` 47 bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE" 48 STAT="$?" 49 50elif test $# -eq 2; then 51 case "$1" in 52 *.bz2) 53 case "$2" in 54 *.bz2) 55 F=`echo "$2" | sed 's|.*/||;s|.bz2$||'` 56 bzip2 -cdfq "$2" > $tmp 57 bzip2 -cdfq "$1" | $comp $OPTIONS - $tmp 58 STAT="$?" 59 /bin/rm -f $tmp;; 60 61 *) bzip2 -cdfq "$1" | $comp $OPTIONS - "$2" 62 STAT="$?";; 63 esac;; 64 *) case "$2" in 65 *.bz2) 66 bzip2 -cdfq "$2" | $comp $OPTIONS "$1" - 67 STAT="$?";; 68 *) $comp $OPTIONS "$1" "$2" 69 STAT="$?";; 70 esac;; 71 esac 72 exit "$STAT" 73else 74 echo "Usage: $prog [${comp}_options] file [file]" 75 exit 1 76fi 77