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 (at] 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 15 PATH="/usr/bin:/bin:$PATH"; export PATH 16 prog=`echo $0 | sed 's|.*/||'` 17 case "$prog" in 18 *cmp) comp=${CMP-cmp} ;; 19 *) comp=${DIFF-diff} ;; 20 esac 21 22 OPTIONS= 23 FILES= 24 for ARG 25 do 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 35 done 36 if test -z "$FILES"; then 37 echo "Usage: $prog [${comp}_options] file [file]" 38 exit 1 39 fi 40 tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || { 41 echo 'cannot create a temporary file' >&2 42 exit 1 43 } 44 set $FILES 45 if test $# -eq 1; then 46 FILE=`echo "$1" | sed 's/.bz2$//'` 47 bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE" 48 STAT="$?" 49 50 elif 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" 73 else 74 echo "Usage: $prog [${comp}_options] file [file]" 75 exit 1 76 fi 77