*** empty log message ***
[emacs.git] / lib-src / vcdiff
blob5fdc345eb988bbdc6dcf24030af85d5c53fd7056
1 #! /bin/sh
3 # Enhanced sccs diff utility for use with vc mode.
4 # This version is more compatible with rcsdiff(1).
6 # Copyright (C) 1992, 1993, 1995, 1997, 2001
7 # Free Software Foundation, Inc.
9 # This file is part of GNU Emacs.
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.
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.
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.
26 # $Id: vcdiff,v 1.6 1997/01/01 05:33:42 eggert Exp $
29 DIFF="diff"
30 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
32 PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
34 echo=
35 sid1= sid2=
37 for f
39 case $f in
40 -*)
41 case $f in
42 --brief)
43 DIFF=cmp;;
44 -q)
45 echo=:;;
46 -r?*)
47 case $sid1 in
48 '')
49 sid1=$f
52 case $sid2 in
53 ?*) echo "$usage" >&2; exit 2 ;;
54 esac
55 sid2=$f
57 esac
60 options="$options $f"
62 esac
63 shift
66 break
68 esac
69 done
71 case $# in
73 echo "$usage" >&2
74 exit 2
75 esac
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
82 for f
84 s=2
86 case $f in
87 s.* | */s.*)
89 rev1=/tmp/geta$$
90 get -s -p -k $sid1 "$f" > $rev1 &&
91 case $sid2 in
92 '')
93 workfile=`expr " /$f" : '.*/s.\(.*\)'`
96 rev2=/tmp/getb$$
97 get -s -p -k $sid2 "$f" > $rev2
98 workfile=$rev2
99 esac
100 then
101 $echo $DIFF $options $sid1 $sid2 $workfile >&2
102 $DIFF $options $rev1 $workfile
103 s=$?
107 echo "$0: $f is not an SCCS file" >&2
108 esac
110 if test $status -lt $s
111 then status=$s
113 done