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