]> code.delx.au - gnu-emacs/blob - lib-src/vcdiff
(f90-indent-region): Bind case-fold-search to t.
[gnu-emacs] / lib-src / vcdiff
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 # Copyright (C) 1992, 1993, 1995, 1997, 2001, 2002, 2003, 2004,
7 # 2005, 2006 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., 51 Franklin Street, Fifth Floor,
24 # Boston, MA 02110-1301, USA.
25 #
26
27 DIFF="diff"
28 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
29
30 PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
31
32 echo="echo"
33 sid1= sid2=
34
35 for f
36 do
37 case $f in
38 -*)
39 case $f in
40 --brief)
41 DIFF=cmp;;
42 -q)
43 echo=:;;
44 -r?*)
45 case $sid1 in
46 '')
47 sid1=$f
48 ;;
49 *)
50 case $sid2 in
51 ?*) echo "$usage" >&2; exit 2 ;;
52 esac
53 sid2=$f
54 ;;
55 esac
56 ;;
57 *)
58 options="$options $f"
59 ;;
60 esac
61 shift
62 ;;
63 *)
64 break
65 ;;
66 esac
67 done
68
69 case $# in
70 0)
71 echo "$usage" >&2
72 exit 2
73 esac
74
75
76 rev1= rev2= status=0
77 trap 'status=2; exit' 1 2 13 15
78 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
79
80 for f
81 do
82 s=2
83
84 case $f in
85 s.* | */s.*)
86 if
87 rev1=/tmp/geta$$
88 get -s -p -k $sid1 "$f" > $rev1 &&
89 case $sid2 in
90 '')
91 workfile=`expr " /$f" : '.*/s.\(.*\)'`
92 ;;
93 *)
94 rev2=/tmp/getb$$
95 get -s -p -k $sid2 "$f" > $rev2
96 workfile=$rev2
97 esac
98 then
99 $echo $DIFF $options $rev1 $workfile >&2
100 $DIFF $options $rev1 $workfile
101 s=$?
102 fi
103 ;;
104 *)
105 echo "$0: $f is not an SCCS file" >&2
106 esac
107
108 if test $status -lt $s
109 then status=$s
110 fi
111 done
112
113 # arch-tag: 4344ba3a-bcbe-4f77-971c-f43c1606953a