12507
|
1 #! /bin/sh
|
928
|
2 #
|
|
3 # Enhanced sccs diff utility for use with vc mode.
|
|
4 # This version is more compatible with rcsdiff(1).
|
|
5 #
|
36226
|
6 # Copyright (C) 1992, 1993, 1995, 1997, 2001
|
|
7 # Free Software Foundation, Inc.
|
|
8 #
|
|
9 # This file is part of GNU Emacs.
|
|
10 #
|
|
11 # GNU Emacs is free software; you can redistribute it and/or modify
|
|
12 # it under the terms of the GNU General Public License as published by
|
|
13 # the Free Software Foundation; either version 2, or (at your option)
|
|
14 # any later version.
|
|
15 #
|
|
16 # GNU Emacs is distributed in the hope that it will be useful,
|
|
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19 # GNU General Public License for more details.
|
|
20 #
|
|
21 # You should have received a copy of the GNU General Public License
|
|
22 # along with GNU Emacs; see the file COPYING. If not, write to the
|
|
23 # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
24 # Boston, MA 02111-1307, USA.
|
|
25 #
|
52401
|
26 # $Id: vcdiff,v 1.7 2001/02/20 12:36:28 gerd Exp $
|
928
|
27 #
|
|
28
|
|
29 DIFF="diff"
|
5211
|
30 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
|
928
|
31
|
16804
|
32 PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
|
4653
|
33
|
3933
|
34 echo=
|
16804
|
35 sid1= sid2=
|
928
|
36
|
|
37 for f
|
|
38 do
|
|
39 case $f in
|
|
40 -*)
|
|
41 case $f in
|
5211
|
42 --brief)
|
|
43 DIFF=cmp;;
|
3933
|
44 -q)
|
|
45 echo=:;;
|
928
|
46 -r?*)
|
|
47 case $sid1 in
|
16804
|
48 '')
|
928
|
49 sid1=$f
|
|
50 ;;
|
|
51 *)
|
|
52 case $sid2 in
|
|
53 ?*) echo "$usage" >&2; exit 2 ;;
|
|
54 esac
|
|
55 sid2=$f
|
|
56 ;;
|
|
57 esac
|
|
58 ;;
|
|
59 *)
|
|
60 options="$options $f"
|
|
61 ;;
|
|
62 esac
|
|
63 shift
|
|
64 ;;
|
|
65 *)
|
|
66 break
|
|
67 ;;
|
|
68 esac
|
|
69 done
|
|
70
|
|
71 case $# in
|
|
72 0)
|
|
73 echo "$usage" >&2
|
|
74 exit 2
|
|
75 esac
|
|
76
|
|
77
|
|
78 rev1= rev2= status=0
|
|
79 trap 'status=2; exit' 1 2 13 15
|
|
80 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
|
|
81
|
|
82 for f
|
|
83 do
|
|
84 s=2
|
|
85
|
|
86 case $f in
|
|
87 s.* | */s.*)
|
|
88 if
|
|
89 rev1=/tmp/geta$$
|
|
90 get -s -p -k $sid1 "$f" > $rev1 &&
|
|
91 case $sid2 in
|
|
92 '')
|
|
93 workfile=`expr " /$f" : '.*/s.\(.*\)'`
|
|
94 ;;
|
|
95 *)
|
|
96 rev2=/tmp/getb$$
|
|
97 get -s -p -k $sid2 "$f" > $rev2
|
|
98 workfile=$rev2
|
|
99 esac
|
|
100 then
|
3933
|
101 $echo $DIFF $options $sid1 $sid2 $workfile >&2
|
928
|
102 $DIFF $options $rev1 $workfile
|
|
103 s=$?
|
|
104 fi
|
|
105 ;;
|
|
106 *)
|
|
107 echo "$0: $f is not an SCCS file" >&2
|
|
108 esac
|
|
109
|
|
110 if test $status -lt $s
|
|
111 then status=$s
|
|
112 fi
|
|
113 done
|
52401
|
114
|
|
115 # arch-tag: 4344ba3a-bcbe-4f77-971c-f43c1606953a
|