Add 2012 to FSF copyright years for Emacs files
[bpt/emacs.git] / lib-src / vcdiff
CommitLineData
d5ad1373 1#! /bin/sh
eedcb417 2
ae94cd0c
ER
3# Enhanced sccs diff utility for use with vc mode.
4# This version is more compatible with rcsdiff(1).
eedcb417 5
acaf905b 6# Copyright (C) 1992-1993, 1995, 1997, 2001-2012
95df8112 7# Free Software Foundation, Inc.
294981c7 8
eedcb417
GM
9# Author: Paul Eggert
10# (according to authors.el)
11
b3ae7a0a 12# This file is part of GNU Emacs.
294981c7
GM
13
14# GNU Emacs is free software: you can redistribute it and/or modify
b3ae7a0a 15# it under the terms of the GNU General Public License as published by
294981c7
GM
16# the Free Software Foundation, either version 3 of the License, or
17# (at your option) any later version.
18
b3ae7a0a
GM
19# GNU Emacs is distributed in the hope that it will be useful,
20# but WITHOUT ANY WARRANTY; without even the implied warranty of
21# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22# GNU General Public License for more details.
294981c7 23
b3ae7a0a 24# You should have received a copy of the GNU General Public License
294981c7
GM
25# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
26
ae94cd0c
ER
27
28DIFF="diff"
0fd6b177 29usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
ae94cd0c 30
14b11401
SM
31# Now that we use `sccs get' rather than just `get', we don't need this.
32# PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
cbf35b94 33
09b7af0a 34echo="echo"
7509d397 35sid1= sid2=
ae94cd0c
ER
36
37for f
38do
39 case $f in
40 -*)
41 case $f in
0fd6b177
PE
42 --brief)
43 DIFF=cmp;;
12946476
PE
44 -q)
45 echo=:;;
ae94cd0c
ER
46 -r?*)
47 case $sid1 in
7509d397 48 '')
ae94cd0c
ER
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
69done
70
71case $# in
720)
73 echo "$usage" >&2
74 exit 2
75esac
76
77
78rev1= rev2= status=0
79trap 'status=2; exit' 1 2 13 15
80trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
81
82for f
83do
84 s=2
85
86 case $f in
87 s.* | */s.*)
88 if
95de358c 89 rev1=`mktemp /tmp/geta.XXXXXXXX`
14b11401 90 sccs get -s -p -k $sid1 "$f" > $rev1 &&
ae94cd0c
ER
91 case $sid2 in
92 '')
93 workfile=`expr " /$f" : '.*/s.\(.*\)'`
94 ;;
95 *)
95de358c 96 rev2=`mktemp /tmp/getb.XXXXXXXX`
14b11401 97 sccs get -s -p -k $sid2 "$f" > $rev2
ae94cd0c
ER
98 workfile=$rev2
99 esac
100 then
09b7af0a 101 $echo $DIFF $options $rev1 $workfile >&2
ae94cd0c
ER
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
113done
ab5796a9 114