diff lib-src/vcdiff @ 928:a95dc7876025

entered into RCS
author Eric S. Raymond <esr@snark.thyrsus.com>
date Tue, 04 Aug 1992 16:08:22 +0000
parents
children bfb5dd246441
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib-src/vcdiff	Tue Aug 04 16:08:22 1992 +0000
@@ -0,0 +1,86 @@
+#!/bin/sh
+#
+# Enhanced sccs diff utility for use with vc mode.
+# This version is more compatible with rcsdiff(1).
+#
+#	$Id: vcdiff,v 1.2 1992/06/03 04:56:26 eric Exp $
+#
+
+DIFF="diff"
+usage="$0: Usage: vcdiff [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
+
+sid1=-r sid2=
+
+for f
+do
+	case $f in
+	-*)
+		case $f in
+		-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