Mercurial > emacs
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 |
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 | 2 # |
3 # Enhanced sccs diff utility for use with vc mode. | |
4 # This version is more compatible with rcsdiff(1). | |
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 | 7 # |
8 | |
9 DIFF="diff" | |
5211 | 10 usage="$0: Usage: vcdiff [--brief] [-q] [-r<sid1>] [-r<sid2>] [diffopts] sccsfile..." |
928 | 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 | 14 echo= |
16804
0ba6599135d6
(PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents:
12507
diff
changeset
|
15 sid1= sid2= |
928 | 16 |
17 for f | |
18 do | |
19 case $f in | |
20 -*) | |
21 case $f in | |
5211 | 22 --brief) |
23 DIFF=cmp;; | |
3933 | 24 -q) |
25 echo=:;; | |
928 | 26 -r?*) |
27 case $sid1 in | |
16804
0ba6599135d6
(PATH): Add /usr/xpg4/bin,
Paul Eggert <eggert@twinsun.com>
parents:
12507
diff
changeset
|
28 '') |
928 | 29 sid1=$f |
30 ;; | |
31 *) | |
32 case $sid2 in | |
33 ?*) echo "$usage" >&2; exit 2 ;; | |
34 esac | |
35 sid2=$f | |
36 ;; | |
37 esac | |
38 ;; | |
39 *) | |
40 options="$options $f" | |
41 ;; | |
42 esac | |
43 shift | |
44 ;; | |
45 *) | |
46 break | |
47 ;; | |
48 esac | |
49 done | |
50 | |
51 case $# in | |
52 0) | |
53 echo "$usage" >&2 | |
54 exit 2 | |
55 esac | |
56 | |
57 | |
58 rev1= rev2= status=0 | |
59 trap 'status=2; exit' 1 2 13 15 | |
60 trap 'rm -f $rev1 $rev2 || status=2; exit $status' 0 | |
61 | |
62 for f | |
63 do | |
64 s=2 | |
65 | |
66 case $f in | |
67 s.* | */s.*) | |
68 if | |
69 rev1=/tmp/geta$$ | |
70 get -s -p -k $sid1 "$f" > $rev1 && | |
71 case $sid2 in | |
72 '') | |
73 workfile=`expr " /$f" : '.*/s.\(.*\)'` | |
74 ;; | |
75 *) | |
76 rev2=/tmp/getb$$ | |
77 get -s -p -k $sid2 "$f" > $rev2 | |
78 workfile=$rev2 | |
79 esac | |
80 then | |
3933 | 81 $echo $DIFF $options $sid1 $sid2 $workfile >&2 |
928 | 82 $DIFF $options $rev1 $workfile |
83 s=$? | |
84 fi | |
85 ;; | |
86 *) | |
87 echo "$0: $f is not an SCCS file" >&2 | |
88 esac | |
89 | |
90 if test $status -lt $s | |
91 then status=$s | |
92 fi | |
93 done |