annotate lib-src/vcdiff @ 22363:d00f146c3e9d

#include sys/file.h (sys_access): Provide our own implementation which recognizes D_OK. (is_exec): New function. (stat): Use it. (init_environment): Set TMPDIR to an existing directory. Abort if none of the usual places is available. (sys_rename): On Windows 95, choose a temp name that includes the original file's base name and use an explicit loop rather than calling mktemp. Only attempt to unlink the newname if the rename fails, rather than second-guessing whether the old and new names refer to the same file.
author Karl Heuer <kwzh@gnu.org>
date Fri, 05 Jun 1998 16:08:32 +0000
parents 0ba6599135d6
children c8fb06423da0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12507
da322c027bf0 Replace `#!/bin/sh' with `#! /bin/sh', for benefit of systems
Paul Eggert <eggert@twinsun.com>
parents: 5211
diff changeset
1 #! /bin/sh
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2 #
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3 # Enhanced sccs diff utility for use with vc mode.
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
4 # This version is more compatible with rcsdiff(1).
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
5 #
16804
0ba6599135d6 (PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents: 12507
diff changeset
6 # $Id: vcdiff,v 1.5 1995/07/07 22:47:57 eggert Exp $
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
7 #
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
8
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
9 DIFF="diff"
5211
7124a811b67b Add --brief option.
Paul Eggert <eggert@twinsun.com>
parents: 4653
diff changeset
10 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..."
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
11
16804
0ba6599135d6 (PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents: 12507
diff changeset
12 PATH=$PATH:/usr/ccs/bin:/usr/sccs:/usr/xpg4/bin # common SCCS hangouts
4653
8e72792f2d18 Append /usr/ccs/bin and /usr/sccs to PATH.
Paul Eggert <eggert@twinsun.com>
parents: 3933
diff changeset
13
3933
bfb5dd246441 Add -q option.
Paul Eggert <eggert@twinsun.com>
parents: 928
diff changeset
14 echo=
16804
0ba6599135d6 (PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents: 12507
diff changeset
15 sid1= sid2=
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
16
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
17 for f
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
18 do
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
19 case $f in
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
20 -*)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
21 case $f in
5211
7124a811b67b Add --brief option.
Paul Eggert <eggert@twinsun.com>
parents: 4653
diff changeset
22 --brief)
7124a811b67b Add --brief option.
Paul Eggert <eggert@twinsun.com>
parents: 4653
diff changeset
23 DIFF=cmp;;
3933
bfb5dd246441 Add -q option.
Paul Eggert <eggert@twinsun.com>
parents: 928
diff changeset
24 -q)
bfb5dd246441 Add -q option.
Paul Eggert <eggert@twinsun.com>
parents: 928
diff changeset
25 echo=:;;
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26 -r?*)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
27 case $sid1 in
16804
0ba6599135d6 (PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents: 12507
diff changeset
28 '')
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
29 sid1=$f
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
30 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
31 *)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
32 case $sid2 in
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
33 ?*) echo "$usage" >&2; exit 2 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
34 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
35 sid2=$f
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
36 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
37 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
38 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
39 *)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
40 options="$options $f"
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
41 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
42 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
43 shift
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
44 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
45 *)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
46 break
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
47 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
48 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
49 done
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
50
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
51 case $# in
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
52 0)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
53 echo "$usage" >&2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
54 exit 2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
55 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
56
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
57
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
58 rev1= rev2= status=0
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
59 trap 'status=2; exit' 1 2 13 15
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
60 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
61
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
62 for f
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
63 do
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
64 s=2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
65
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
66 case $f in
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
67 s.* | */s.*)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
68 if
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
69 rev1=/tmp/geta$$
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
70 get -s -p -k $sid1 "$f" > $rev1 &&
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
71 case $sid2 in
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
72 '')
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
73 workfile=`expr " /$f" : '.*/s.\(.*\)'`
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
74 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
75 *)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
76 rev2=/tmp/getb$$
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
77 get -s -p -k $sid2 "$f" > $rev2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
78 workfile=$rev2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
79 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
80 then
3933
bfb5dd246441 Add -q option.
Paul Eggert <eggert@twinsun.com>
parents: 928
diff changeset
81 $echo $DIFF $options $sid1 $sid2 $workfile >&2
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
82 $DIFF $options $rev1 $workfile
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
83 s=$?
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
84 fi
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
85 ;;
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
86 *)
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
87 echo "$0: $f is not an SCCS file" >&2
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
88 esac
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
89
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
90 if test $status -lt $s
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
91 then status=$s
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
92 fi
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
93 done