annotate lib-src/vcdiff @ 15145:86a1f426871e

Include config.h after CRT headers. Include fcntl.h. (child_process, MAX_CHILDREN, CHILD_ACTIVE): Moved to nt.h. (DebugPrint): New macro. (new_child): Create input event structures for child processes. (delete_child): New function. (reader_thread): Return nonzero upon failure. Use _sys_read_ahead. (create_child): Add child_process and parent PID arguments. Don't create input event or thread structures here. Fixup Win95 negative process IDs. (register_child): Don't set consumed event; instead, set thread status so that select will release it. (remove_child): Renamed to reap_process. Only free resources of synchronous children. (win32_wait): Renamed to sys_wait. Sanity check to make sure handle to subprocess exists. Don't reclaim thread resources here. (win32_spawnve): Renamed to sys_spawnve. Check for proper wait mode first thing. Convert command name to DOS format. Quote whitespace and quotes in arguments to subprocess. Use alloca instead of malloc. If max subprocesses, return EAGAIN in hopes of another completing. (sys_select): Add support for socket input. Remove dead code. Check input from children fairly. (sys_select) [HAVE_TIMEVAL]: Remove conditional check and code. (win32_kill_process): Renamed to sys_kill. Use OpenProcess to terminate process. (prepate_standard_handles, reset_standard_handles): Moved here from nt.c.
author Geoff Voelker <voelker@cs.washington.edu>
date Fri, 03 May 1996 18:35:50 +0000
parents da322c027bf0
children 0ba6599135d6
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 #
12507
da322c027bf0 Replace `#!/bin/sh' with `#! /bin/sh', for benefit of systems
Paul Eggert <eggert@twinsun.com>
parents: 5211
diff changeset
6 # $Id: vcdiff,v 1.4 1993/12/03 09:29:18 eggert Exp eggert $
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
4653
8e72792f2d18 Append /usr/ccs/bin and /usr/sccs to PATH.
Paul Eggert <eggert@twinsun.com>
parents: 3933
diff changeset
12 PATH=$PATH:/usr/ccs/bin:/usr/sccs # common SCCS hangouts
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=
928
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
15 sid1=-r sid2=
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
a95dc7876025 entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
28 -r)
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