| #!/bin/sh |
| # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh |
| |
| # lzcmp and lzdiff 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.lzma. |
| # If two files are specified, then they are uncompressed 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 2 |
| fi ;; |
| esac |
| done |
| if test -z "$FILES"; then |
| echo "Usage: $prog [${comp}_options] file [file]" |
| exit 2 |
| fi |
| set $FILES |
| if test $# -eq 1; then |
| FILE=`echo "$1" | sed 's/[-.][tlaz]*$//'` |
| lzma -dc "$1" | $comp $OPTIONS - "$FILE" |
| |
| elif test $# -eq 2; then |
| case "$1" in |
| *[-.]lzma | *.t[la]z) |
| case "$2" in |
| *[-.]lzma | *.t[la]z) |
| F=`echo "$2" | sed 's|.*/||;s|[-.][tlaz]*||'` |
| TF=`/usr/bin/mktemp ${TMPDIR:-/tmp}/"$F".XXXXXXXXXX` || exit 1 |
| trap 'rm -f "$TF"; exit 2' EXIT HUP INT PIPE TERM |
| lzma -dc "$2" > "$TF" || exit |
| lzma -dc "$1" | $comp $OPTIONS - "$TF" |
| STAT="$?" |
| rm -f "$TF" || STAT=2 |
| trap EXIT HUP INT PIPE TERM |
| exit $STAT;; |
| |
| *) lzma -dc "$1" | $comp $OPTIONS - "$2";; |
| esac;; |
| *) case "$2" in |
| *[-.]lzma | *.t[la]z) |
| lzma -dc "$2" | $comp $OPTIONS "$1" -;; |
| *) $comp $OPTIONS "$1" "$2";; |
| esac;; |
| esac |
| else |
| echo "Usage: $prog [${comp}_options] file [file]" |
| exit 2 |
| fi |