| Index: xz/src/scripts/xzdiff.in
|
| ===================================================================
|
| --- xz/src/scripts/xzdiff.in (revision 0)
|
| +++ xz/src/scripts/xzdiff.in (revision 0)
|
| @@ -0,0 +1,172 @@
|
| +#!@POSIX_SHELL@
|
| +
|
| +# Copyright (C) 1998, 2002, 2006, 2007 Free Software Foundation
|
| +# Copyright (C) 1993 Jean-loup Gailly
|
| +
|
| +# Modified for XZ Utils by Andrew Dudman and Lasse Collin.
|
| +
|
| +# This program is free software; you can redistribute it and/or modify
|
| +# it under the terms of the GNU General Public License as published by
|
| +# the Free Software Foundation; either version 2 of the License, or
|
| +# (at your option) any later version.
|
| +
|
| +# This program is distributed in the hope that it will be useful,
|
| +# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| +# GNU General Public License for more details.
|
| +
|
| +#SET_PATH - This line is a placeholder to ease patching this script.
|
| +
|
| +# Instead of unsetting XZ_OPT, just make sure that xz will use file format
|
| +# autodetection. This way memory usage limit and thread limit can be
|
| +# specified via XZ_OPT. With gzip and bzip2 it's OK to just unset the
|
| +# environment variables.
|
| +xz='@xz@ --format=auto'
|
| +unset GZIP BZIP BZIP2
|
| +
|
| +case ${0##*/} in
|
| + *cmp*) prog=xzcmp; cmp=${CMP:-cmp};;
|
| + *) prog=xzdiff; cmp=${DIFF:-diff};;
|
| +esac
|
| +
|
| +version="$prog (@PACKAGE_NAME@) @VERSION@"
|
| +
|
| +usage="Usage: ${0##*/} [OPTION]... FILE1 [FILE2]
|
| +Compare FILE1 to FILE2, using their uncompressed contents if they are
|
| +compressed. If FILE2 is omitted, then the files compared are FILE1 and
|
| +FILE1 from which the compression format suffix has been stripped.
|
| +
|
| +Do comparisons like '$cmp' does. OPTIONs are the same as for '$cmp'.
|
| +
|
| +Report bugs to <@PACKAGE_BUGREPORT@>."
|
| +
|
| +# sed script to escape all ' for the shell, and then (to handle trailing
|
| +# newlines correctly) turn trailing X on last line into '.
|
| +escape='
|
| + s/'\''/'\''\\'\'''\''/g
|
| + $s/X$/'\''/
|
| +'
|
| +
|
| +while :; do
|
| + case $1 in
|
| + --h*) printf '%s\n' "$usage" || exit 2; exit;;
|
| + --v*) echo "$version" || exit 2; exit;;
|
| + --) shift; break;;
|
| + -*\'*) cmp="$cmp '"`printf '%sX\n' "$1" | sed "$escape"`;;
|
| + -?*) cmp="$cmp '$1'";;
|
| + *) break;;
|
| + esac
|
| + shift
|
| +done
|
| +cmp="$cmp --"
|
| +
|
| +for file; do
|
| + test "X$file" = X- || <"$file" || exit 2
|
| +done
|
| +
|
| +xz1=$xz
|
| +xz2=$xz
|
| +xz_status=0
|
| +exec 3>&1
|
| +
|
| +if test $# -eq 1; then
|
| + case $1 in
|
| + *[-.]xz | *[-.]lzma | *.t[lx]z)
|
| + ;;
|
| + *[-.]bz2 | *.tbz | *.tbz2)
|
| + xz1=$bzip2;;
|
| + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z)
|
| + xz1=$gzip;;
|
| + *)
|
| + echo >&2 "$0: $1: Unknown compressed file name suffix"
|
| + exit 2;;
|
| + esac
|
| + case $1 in
|
| + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma)
|
| + FILE=`expr "X$1" : 'X\(.*\)[-.][abglmxzZ2]*$'`;;
|
| + *.t[abglx]z)
|
| + FILE=`expr "X$1" : 'X\(.*[-.]t\)[abglx]z$'`ar;;
|
| + *.tbz2)
|
| + FILE=`expr "X$1" : 'X\(.*[-.]t\)bz2$'`ar;;
|
| + esac
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz1 -cd -- "$1" 4>&-; echo $? >&4) 3>&- | eval "$cmp" - '"$FILE"' >&3
|
| + )
|
| +elif test $# -eq 2; then
|
| + case $1 in
|
| + *[-.]bz2 | *.tbz | *.tbz2) xz1=$bzip2;;
|
| + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz1=$gzip;;
|
| + esac
|
| + case $2 in
|
| + *[-.]bz2 | *.tbz | *.tbz2) xz2=$bzip2;;
|
| + *[-.][zZ] | *_z | *[-.]gz | *.t[ag]z) xz2=$gzip;;
|
| + esac
|
| + case $1 in
|
| + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | -)
|
| + case "$2" in
|
| + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | -)
|
| + if test "$1$2" = --; then
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz1 -cdfq - 4>&-; echo $? >&4) 3>&- |
|
| + eval "$cmp" - - >&3
|
| + )
|
| + elif # Reject Solaris 8's buggy /bin/bash 2.03.
|
| + echo X | (echo X | eval "$cmp" /dev/fd/5 - >/dev/null 2>&1) 5<&0; then
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
|
| + ( ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- 5<&- </dev/null |
|
| + eval "$cmp" /dev/fd/5 - >&3) 5<&0
|
| + )
|
| + case $xz_status in
|
| + *[1-9]*) xz_status=1;;
|
| + *) xz_status=0;;
|
| + esac
|
| + else
|
| + F=`expr "/$2" : '.*/\(.*\)[-.][ablmtxz2]*$'` || F=$prog
|
| + tmp=
|
| + trap '
|
| + test -n "$tmp" && rm -f "$tmp"
|
| + (exit 2); exit 2
|
| + ' HUP INT PIPE TERM 0
|
| + tmp=`mktemp -t -- "$F.XXXXXX"` || exit 2
|
| + $xz2 -cdfq -- "$2" > "$tmp" || exit 2
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
|
| + eval "$cmp" - '"$tmp"' >&3
|
| + )
|
| + cmp_status=$?
|
| + rm -f "$tmp" || xz_status=$?
|
| + trap - HUP INT PIPE TERM 0
|
| + (exit $cmp_status)
|
| + fi;;
|
| + *)
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz1 -cdfq -- "$1" 4>&-; echo $? >&4) 3>&- |
|
| + eval "$cmp" - '"$2"' >&3
|
| + );;
|
| + esac;;
|
| + *)
|
| + case "$2" in
|
| + *[-.][zZ] | *_z | *[-.][gx]z | *[-.]bz2 | *[-.]lzma | *.t[abglx]z | *.tbz2 | -)
|
| + xz_status=$(
|
| + exec 4>&1
|
| + ($xz2 -cdfq -- "$2" 4>&-; echo $? >&4) 3>&- |
|
| + eval "$cmp" '"$1"' - >&3
|
| + );;
|
| + *)
|
| + eval "$cmp" '"$1"' '"$2"';;
|
| + esac;;
|
| + esac
|
| +else
|
| + echo >&2 "$0: Invalid number of operands; try \`${0##*/} --help' for help"
|
| + exit 2
|
| +fi
|
| +
|
| +cmp_status=$?
|
| +test "$xz_status" -eq 0 || exit 2
|
| +exit $cmp_status
|
|
|
| Property changes on: xz/src/scripts/xzdiff.in
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|