(repeat-complex-command): Bind
[bpt/emacs.git] / lib-src / vcdiff
CommitLineData
d5ad1373 1#! /bin/sh
ae94cd0c
ER
2#
3# Enhanced sccs diff utility for use with vc mode.
4# This version is more compatible with rcsdiff(1).
5#
d5ad1373 6# $Id: vcdiff,v 1.4 1993/12/03 09:29:18 eggert Exp eggert $
ae94cd0c
ER
7#
8
9DIFF="diff"
0fd6b177 10usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
ae94cd0c 11
cbf35b94
PE
12PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts
13
12946476 14echo=
ae94cd0c
ER
15sid1=-r sid2=
16
17for f
18do
19 case $f in
20 -*)
21 case $f in
0fd6b177
PE
22 --brief)
23 DIFF=cmp;;
12946476
PE
24 -q)
25 echo=:;;
ae94cd0c
ER
26 -r?*)
27 case $sid1 in
28 -r)
29 sid1=$f
30 ;;
31 *)
32 case $sid2 in
33 ?*) echo "$usage" >&2; exit 2 ;;
34 esac
35 sid2=$f
36 ;;
37 esac
38 ;;
39 *)
40 options="$options $f"
41 ;;
42 esac
43 shift
44 ;;
45 *)
46 break
47 ;;
48 esac
49done
50
51case $# in
520)
53 echo "$usage" >&2
54 exit 2
55esac
56
57
58rev1= rev2= status=0
59trap 'status=2; exit' 1 2 13 15
60trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
61
62for f
63do
64 s=2
65
66 case $f in
67 s.* | */s.*)
68 if
69 rev1=/tmp/geta$$
70 get -s -p -k $sid1 "$f" > $rev1 &&
71 case $sid2 in
72 '')
73 workfile=`expr " /$f" : '.*/s.\(.*\)'`
74 ;;
75 *)
76 rev2=/tmp/getb$$
77 get -s -p -k $sid2 "$f" > $rev2
78 workfile=$rev2
79 esac
80 then
12946476 81 $echo $DIFF $options $sid1 $sid2 $workfile >&2
ae94cd0c
ER
82 $DIFF $options $rev1 $workfile
83 s=$?
84 fi
85 ;;
86 *)
87 echo "$0: $f is not an SCCS file" >&2
88 esac
89
90 if test $status -lt $s
91 then status=$s
92 fi
93done