view lib-src/vcdiff @ 4824:eaf67474339b

(Fminibuffer_complete_word): GCPRO1 `completion' during calls to Ftry_completion. (read_minibuf): Rewrite change of Sep 14. Save the return value on the history list provided in the form that the value is returned, iff the value is not equal to the front of the history list. (Fread_no_blanks_input): Change DEFUN to allow 2nd arg to be optional. The code was already written correctly.
author Brian Fox <bfox@gnu.org>
date Tue, 05 Oct 1993 01:46:45 +0000
parents 8e72792f2d18
children 7124a811b67b
line wrap: on
line source

#!/bin/sh
#
# Enhanced sccs diff utility for use with vc mode.
# This version is more compatible with rcsdiff(1).
#
#	$Id: vcdiff,v 1.2 1993/06/30 18:54:08 eggert Exp eggert $
#

DIFF="diff"
usage="$0: Usage: vcdiff [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."

PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts

echo=
sid1=-r sid2=

for f
do
	case $f in
	-*)
		case $f in
		-q)
			echo=:;;
		-r?*)
			case $sid1 in
			-r)
				sid1=$f
				;;
			*)
				case $sid2 in
				?*) echo "$usage" >&2; exit 2 ;;
				esac
				sid2=$f
				;;
			esac
			;;
		*)
			options="$options $f"
			;;
		esac
		shift
		;;
	*)
		break
		;;
	esac
done

case $# in
0)
	echo "$usage" >&2
	exit 2
esac


rev1= rev2= status=0
trap 'status=2; exit' 1 2 13 15
trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0

for f
do
	s=2

	case $f in
	s.* | */s.*)
		if
			rev1=/tmp/geta$$
			get -s -p -k $sid1 "$f" > $rev1 &&
			case $sid2 in
			'')
				workfile=`expr " /$f" : '.*/s.\(.*\)'`
				;;
			*)
				rev2=/tmp/getb$$
				get -s -p -k $sid2 "$f" > $rev2
				workfile=$rev2
			esac
		then
			$echo $DIFF $options $sid1 $sid2 $workfile >&2
			$DIFF $options $rev1 $workfile
			s=$?
		fi
		;;
	*)
		echo "$0: $f is not an SCCS file" >&2
	esac

	if test $status -lt $s
	then status=$s
	fi
done