Commit | Line | Data |
---|---|---|
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 | ||
9 | DIFF="diff" | |
0fd6b177 | 10 | usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..." |
ae94cd0c | 11 | |
cbf35b94 PE |
12 | PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts |
13 | ||
12946476 | 14 | echo= |
ae94cd0c ER |
15 | sid1=-r sid2= |
16 | ||
17 | for f | |
18 | do | |
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 | |
49 | done | |
50 | ||
51 | case $# in | |
52 | 0) | |
53 | echo "$usage" >&2 | |
54 | exit 2 | |
55 | esac | |
56 | ||
57 | ||
58 | rev1= rev2= status=0 | |
59 | trap 'status=2; exit' 1 2 13 15 | |
60 | trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0 | |
61 | ||
62 | for f | |
63 | do | |
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 | |
93 | done |