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