Edit

kc3-lang/bzip2/bzdiff

Branch :

  • Show log

    Commit

  • Author : Mark Wielaard
    Date : 2019-07-11 23:24:29
    Hash : f7d209bf
    Message : fix bzdiff when TMPDIR contains spaces The bzdiff script doesn't contain enough quotes, so that it doesn't work if the TMPDIR environment variable is defined and contains spaces. https://bugs.debian.org/493710 Author: Vincent Lefevre <vincent@vinc17.org>

  • bzdiff
  • #!/bin/sh
    # sh is buggy on RS/6000 AIX 3.2. Replace above line with #!/bin/ksh
    
    # Bzcmp/diff wrapped for bzip2, 
    # adapted from zdiff by Philippe Troin <phil@fifi.org> for Debian GNU/Linux.
    
    # Bzcmp and bzdiff 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.gz.
    # If two files are specified, then they are  uncompressed  (if
    # necessary) and fed to cmp or diff.  The exit status from cmp
    # or diff is preserved.
    
    PATH="/usr/bin:/bin:$PATH"; export PATH
    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 1
            fi ;;
        esac
    done
    if test -z "$FILES"; then
    	echo "Usage: $prog [${comp}_options] file [file]"
    	exit 1
    fi
    set $FILES
    if test $# -eq 1; then
    	FILE=`echo "$1" | sed 's/.bz2$//'`
    	bzip2 -cd "$FILE.bz2" | $comp $OPTIONS - "$FILE"
    	STAT="$?"
    
    elif test $# -eq 2; then
    	case "$1" in
            *.bz2)
                    case "$2" in
    	        *.bz2)
    			F=`echo "$2" | sed 's|.*/||;s|.bz2$||'`
    			tmp=`mktemp "${TMPDIR:-/tmp}"/bzdiff.XXXXXXXXXX` || {
    			      echo 'cannot create a temporary file' >&2
    			      exit 1
    			}
                            bzip2 -cdfq "$2" > "$tmp"
                            bzip2 -cdfq "$1" | $comp $OPTIONS - "$tmp"
                            STAT="$?"
    			/bin/rm -f "$tmp";;
    
                    *)      bzip2 -cdfq "$1" | $comp $OPTIONS - "$2"
                            STAT="$?";;
                    esac;;
            *)      case "$2" in
    	        *.bz2)
                            bzip2 -cdfq "$2" | $comp $OPTIONS "$1" -
                            STAT="$?";;
                    *)      $comp $OPTIONS "$1" "$2"
                            STAT="$?";;
                    esac;;
    	esac
    else
    	echo "Usage: $prog [${comp}_options] file [file]"
    	exit 1
    fi
    exit "$STAT"