xref: /netbsd-src/external/gpl2/xcvs/dist/src/ChangeLog-96 (revision a7c918477dd5f12c1da816ba05caf44eab2d06d6)
1*a7c91847SchristosMon Dec 30 15:43:48 1996  Abe Feldman  <feldman@harvey.cyclic.com>
2*a7c91847Schristos
3*a7c91847Schristos	* checkout.c (build_dirs_and_chdir): Reproduced block containing
4*a7c91847Schristos	Create_Admin, placing it before Subdir_Register.
5*a7c91847Schristos	* sanity.sh (basicb): Added tests 1a and 9a to test above changes
6*a7c91847Schristos	to the checkout command.
7*a7c91847Schristos
8*a7c91847SchristosMon Dec 30 13:29:14 1996  uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
9*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
10*a7c91847Schristos
11*a7c91847Schristos	* cvs.h (CVSEDITPREFIXLEN): New define.
12*a7c91847Schristos	* logmsg.c (do_editor): Use CVSEDITPREFIXLEN when deciding whether
13*a7c91847Schristos	to strip off CVSEDITPREFIX and when telling the user what we will
14*a7c91847Schristos	strip off.
15*a7c91847Schristos
16*a7c91847SchristosSun Dec 22 22:06:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
17*a7c91847Schristos
18*a7c91847Schristos	* logmsg.c (do_verify): If noexec, skip the verification *without*
19*a7c91847Schristos	printing a message.  Use cvs_output not printf.  Skip verification
20*a7c91847Schristos	for client_active.
21*a7c91847Schristos
22*a7c91847SchristosWed Dec 18 12:27:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
23*a7c91847Schristos
24*a7c91847Schristos	* repos.c (Name_Repository): Add comment regarding wording of
25*a7c91847Schristos	"*PANIC*" error message.
26*a7c91847Schristos
27*a7c91847Schristos1996-12-18  Jim Kingdon
28*a7c91847Schristos
29*a7c91847Schristos	* client.c (call_in_directory): If the directory we are about
30*a7c91847Schristos	to create is the same as CVSADM as seen by fncmp (for example,
31*a7c91847Schristos	it is "cvs" and filenames are case-insensitive), then give a
32*a7c91847Schristos	fatal error.
33*a7c91847Schristos
34*a7c91847SchristosTue Dec 17 13:14:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
35*a7c91847Schristos
36*a7c91847Schristos	* options.h.in: Add comments about SETXID security holes.
37*a7c91847Schristos
38*a7c91847Schristos	* logmsg.c (do_verify): Reindent comments.  Check errno if return
39*a7c91847Schristos	code from run_exec is -1, not if it is 1.
40*a7c91847Schristos	* sanity.sh (info): Move tests info-4 and info-8 to end and rename
41*a7c91847Schristos	them.  Add verifymsg tests.  Instead of forcibly removing loginfo,
42*a7c91847Schristos	remove it nicely (test info-11).
43*a7c91847Schristos
44*a7c91847SchristosTue Dec 17 12:45:32 1996  Abe Feldman  <feldman@cyclic.com>
45*a7c91847Schristos
46*a7c91847Schristos	* commit.c, import.c: Call do_verify as well as do_editor.
47*a7c91847Schristos	* cvs.h (CVSROOTADM_VERIFYMSG): Define.
48*a7c91847Schristos	* logmsg.c, cvs.h (do_verify, verifymsg_proc): New functions.
49*a7c91847Schristos	(verifymsg_script): New variable.
50*a7c91847Schristos	* mkmodules.c (filelist): Add CVSROOTADM_VERIFYMSG.
51*a7c91847Schristos
52*a7c91847SchristosMon Dec 16 13:24:47 1996  Ian Lance Taylor  <ian@cygnus.com>
53*a7c91847Schristos
54*a7c91847Schristos	* lock.c (remove_locks): New static function, copied from part of
55*a7c91847Schristos	Lock_Cleanup.
56*a7c91847Schristos	(Lock_Cleanup): Call remove_locks.
57*a7c91847Schristos	(Writer_Lock): Call remove_locks rather than Lock_Cleanup when
58*a7c91847Schristos	waiting for a lock.
59*a7c91847Schristos
60*a7c91847SchristosThu Dec 12 10:36:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
61*a7c91847Schristos
62*a7c91847Schristos	* login.c (get_cvs_password): If CVS_PASSWORD is set, print a
63*a7c91847Schristos	warning (and then proceed to ignore it).  It was a documented
64*a7c91847Schristos	feature, so we should point people who were using it to the
65*a7c91847Schristos	replacement.
66*a7c91847Schristos
67*a7c91847SchristosMon Dec  9 12:35:43 1996  Ian Lance Taylor  <ian@cygnus.com>
68*a7c91847Schristos
69*a7c91847Schristos	* server.c (server_updated): Change comment to only worry about
70*a7c91847Schristos	umask in the rsh case.
71*a7c91847Schristos	(server): Create the temporary directory, and change the mode to
72*a7c91847Schristos	S_IRWXU.
73*a7c91847Schristos	(switch_to_user): Set the umask to 0, not 077.
74*a7c91847Schristos
75*a7c91847SchristosMon Dec  9 10:58:28 1996  Jim Blandy  <jimb@floss.cyclic.com>
76*a7c91847Schristos
77*a7c91847Schristos	* login.c (get_cvs_password): Remove code to check for value of
78*a7c91847Schristos	CVS_PASSWORD.  Keeping cleartext passwords in environment
79*a7c91847Schristos	variables is a really bad idea on Unix, since anyone can print
80*a7c91847Schristos	out a processes' environment using 'ps' (on BSD variants
81*a7c91847Schristos	anyway).  Update help message.
82*a7c91847Schristos
83*a7c91847SchristosFri Dec  6 15:59:40 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
84*a7c91847Schristos
85*a7c91847Schristos	* sanity.sh: When matching "use .cvs commit. to remove this file
86*a7c91847Schristos	permanently" messages, change "cvs" to "${PROG}".
87*a7c91847Schristos	(rdiff, binfiles): Likewise.
88*a7c91847Schristos	This fixes testing a program named something other than "cvs", e.g.
89*a7c91847Schristos	$ cp cvs cvs-test
90*a7c91847Schristos	$ /bin/sh <srcdir>/sanity.sh `pwd`/cvs-test
91*a7c91847Schristos
92*a7c91847Schristos1996-12-02  Jim Kingdon
93*a7c91847Schristos
94*a7c91847Schristos	* client.c: In comment saying that socket buffers don't
95*a7c91847Schristos	implement the blocking routine, say they are blocking.
96*a7c91847Schristos	* buffer.h (struct buffer): In description of input function,
97*a7c91847Schristos	describe blocking, non-blocking, and NEED more fully.  Say
98*a7c91847Schristos	what happens if we read a nonzero amount less than NEED and
99*a7c91847Schristos	then get end of file.
100*a7c91847Schristos	* client.c (socket_buffer_input): If NEED == 0, still call
101*a7c91847Schristos	recv (once).  Handle the case where recv returns 0.
102*a7c91847Schristos
103*a7c91847SchristosSat Nov 30 15:10:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
104*a7c91847Schristos
105*a7c91847Schristos	* subr.c, cvs.h (file_has_markers): New function.
106*a7c91847Schristos	* rcs.h (RCS_MERGE_PAT): Now a fixed string not a regexp.
107*a7c91847Schristos	* options.h.in (GREP): Removed; no longer used.
108*a7c91847Schristos	* update.c (update_fileproc), commit.c (check_fileproc): Call
109*a7c91847Schristos	file_has_markers rather than GREP.
110*a7c91847Schristos	* rcscmds.c (RCS_merge): Just give a fatal error in the case where
111*a7c91847Schristos	we had been calling GREP.  I suspect noone is using this code
112*a7c91847Schristos	any more.
113*a7c91847Schristos	* sanity.sh (conflicts): Rewrite tests 131, 132, and 133 to use
114*a7c91847Schristos	dotest; tests that the above changes didn't break anything.
115*a7c91847Schristos
116*a7c91847SchristosFri Nov 29 09:06:41 1996  fnf@ninemoons.com (Fred Fish)
117*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
118*a7c91847Schristos
119*a7c91847Schristos	* checkout.c (safe_location): Only call readlink if HAVE_READLINK.
120*a7c91847Schristos
121*a7c91847Schristos	* run.c (piped_child, filter_stream_through_program): If
122*a7c91847Schristos	HAVE_VFORK, call vfork not fork.
123*a7c91847Schristos	* run.c (run_exec): Add comment about why we use vfork.
124*a7c91847Schristos
125*a7c91847SchristosMon Nov 25 12:48:31 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
126*a7c91847Schristos
127*a7c91847Schristos	* release.c (release): Don't return after processing the first
128*a7c91847Schristos	argument; that kind of defeats the purpose of having a loop, eh?
129*a7c91847Schristos	For client, close the connection after we've processed them all.
130*a7c91847Schristos	* sanity.sh: Remove workaround for modules2-8 test; tests for
131*a7c91847Schristos	above fix.  Adjust modules2-6 test to answer both questions.
132*a7c91847Schristos
133*a7c91847Schristos	* login.c: Reindent (all of get_cvs_password, a handful of lines
134*a7c91847Schristos	elsewhere).
135*a7c91847Schristos
136*a7c91847Schristos	Cleanups to release, mostly cosmetic:
137*a7c91847Schristos	* release.c (release_server): New function; breaks out server code
138*a7c91847Schristos	from the release function.
139*a7c91847Schristos	* release.c: Move delete_flag inside the release function.
140*a7c91847Schristos	* release.c (release): Reindent.  Rewrite comments about how the
141*a7c91847Schristos	implementation could be improved.  Don't declare variables as
142*a7c91847Schristos	"register".  Include errno in error message.  Don't cast result of
143*a7c91847Schristos	printf to void.  Remove unused variable srepos.
144*a7c91847Schristos	* release.c: Remove comments at top of file about what it does.
145*a7c91847Schristos	They were not particularly coherent and they were also out of date
146*a7c91847Schristos	(I think).  Likewise for comment in release function about "if we
147*a7c91847Schristos	are in a repository".
148*a7c91847Schristos	* release.c: Change "module" to "directory" in a few messages
149*a7c91847Schristos	since that is what is meant.
150*a7c91847Schristos	* sanity.sh: In tests ignore-195 and ignore-193, change expected
151*a7c91847Schristos	message accordingly.
152*a7c91847Schristos
153*a7c91847SchristosSun Nov 24 11:30:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
154*a7c91847Schristos
155*a7c91847Schristos	* sanity.sh: Clarify a few items in the todo list.
156*a7c91847Schristos
157*a7c91847Schristos	* log.c (log_parse_date): Use the "end" of the epoch not "next
158*a7c91847Schristos	week" as the time which means "no end time".
159*a7c91847Schristos	* sanity.sh (rcs): New test, tests dates and importing RCS files.
160*a7c91847Schristos
161*a7c91847Schristos1996-11-19  Jim Kingdon
162*a7c91847Schristos
163*a7c91847Schristos	Visual C++ lint:
164*a7c91847Schristos	* hash.c: Declare qsort_comp.
165*a7c91847Schristos	* update.c: Declare isremoved.
166*a7c91847Schristos
167*a7c91847Schristos1996-11-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
168*a7c91847Schristos
169*a7c91847Schristos	* root.c, repos.c, modules.c, create_adm.c: Change all calls to
170*a7c91847Schristos	strip_path to strip_trailing_slashes.  Basically strip_path is
171*a7c91847Schristos	just an unneeded complication (we should keep the pathname the way
172*a7c91847Schristos	the user specifies it, and the system can worry about things like
173*a7c91847Schristos	consecutive /'s if it wants to).  Stripping trailing slashes is
174*a7c91847Schristos	potentially dubious for the same reason, but it is a somewhat
175*a7c91847Schristos	different case which I won't try to tackle now.
176*a7c91847Schristos	* cvs.h (strip_path): Remove declaration.
177*a7c91847Schristos
178*a7c91847SchristosTue Nov 19 15:18:13 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
179*a7c91847Schristos
180*a7c91847Schristos	There are a lot of details to this change, but the concept is
181*a7c91847Schristos	relatively simple: make it so that for every CVSLCK lock that we
182*a7c91847Schristos	might take out, there is a flag which is set iff we have created
183*a7c91847Schristos	the CVSLCK directory.
184*a7c91847Schristos	* lock.c (struct lock): New structure.
185*a7c91847Schristos	* lock.c: Remove static variables repository and cleanup_lckdir.
186*a7c91847Schristos 	They are replaced by global_readlock.repository and
187*a7c91847Schristos	global_readlock.have_lckdir, respectively (except insofar as the
188*a7c91847Schristos	rest of these changes change the concept of cleanup_lckdir).
189*a7c91847Schristos	New static variable global_readlock.
190*a7c91847Schristos	(Reader_Lock, Lock_Cleanup): Use global_readlock in place of
191*a7c91847Schristos	repository.
192*a7c91847Schristos	(lock_simple_remove, set_lock, clear_lock, write_lock): Take a
193*a7c91847Schristos	struct lock * instead of just a repository.  Set/clear
194*a7c91847Schristos	lock->have_lckdir instead of cleanup_lckdir.
195*a7c91847Schristos	(set_writelock_proc, unlock_proc): Pass ->data, not ->key, to
196*a7c91847Schristos	write_lock or lock_simple_remove.
197*a7c91847Schristos	(lock_filesdoneproc,lock_dir_for_write): Allocate a struct lock,
198*a7c91847Schristos	put it in the ->data field, and fill in its fields.
199*a7c91847Schristos	(lock_simple_remove): Use lock->have_lckdir as the sole test for
200*a7c91847Schristos	whether the CVSLCK directory needs to be removed.  Add
201*a7c91847Schristos	comments about why readlock and writelock variables don't tell us
202*a7c91847Schristos	for sure whether locks exist.
203*a7c91847Schristos	(lock_simple_remove, clear_lock): Use SIG_beginCrSect and
204*a7c91847Schristos	SIG_endCrSect to ensure that ->have_lckdir is set to 0 iff the
205*a7c91847Schristos	CVSLCK directory was really removed.
206*a7c91847Schristos	(lock_simple_remove): Check for errors removing CVSLCK directory.
207*a7c91847Schristos	(lock_simple_remove, Check_Owner, set_lock): Remove all code which
208*a7c91847Schristos	checks userids (including all of Check_Owner and all the AFCVS
209*a7c91847Schristos	code).  It was bogus if several CVS processes with the same userid
210*a7c91847Schristos	were running (common if several users share a userid; a common
211*a7c91847Schristos	practice with remote CVS), and with the rest of the changes here
212*a7c91847Schristos	should not be needed.
213*a7c91847Schristos
214*a7c91847Schristos1996-11-16  Paul Eggert  <eggert@twinsun.com>
215*a7c91847Schristos
216*a7c91847Schristos	* rcs.c (RCS_deltas): Fix unintended trigraphs.
217*a7c91847Schristos
218*a7c91847SchristosFri Nov 15 13:06:03 1996  Tom Hageman  <tom@basil.icce.rug.nl>
219*a7c91847Schristos
220*a7c91847Schristos	* diff.c (diff_fileproc): In printing error messages, use the
221*a7c91847Schristos	correct filename for which the error occurred.
222*a7c91847Schristos
223*a7c91847SchristosSun Nov 10 21:13:38 1996  Paul Sanders <p.sanders@dial.pipex.com>
224*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
225*a7c91847Schristos
226*a7c91847Schristos	* server.c: Use all the right cruft which goes along with
227*a7c91847Schristos	including sys/time.h.
228*a7c91847Schristos
229*a7c91847Schristos	* server.c: Include a "copyright" notice.
230*a7c91847Schristos
231*a7c91847Schristos	* server.c: If HAVE_WINSOCK_H, include winsock.h.
232*a7c91847Schristos
233*a7c91847Schristos	* server.c (server): Only set a handler for SIGHUP if it is
234*a7c91847Schristos	defined.  Likewise for all the other signals.
235*a7c91847Schristos
236*a7c91847Schristos	* server.c (do_cvs_command): Use DEVNULL not /dev/null.
237*a7c91847Schristos
238*a7c91847SchristosFri Nov 08 12:14:20 1996  Jim Kingdon
239*a7c91847Schristos
240*a7c91847Schristos	IBM ICC (OS/2) lint:
241*a7c91847Schristos	* add.c (add): Only declare begin_added_files if
242*a7c91847Schristos	SERVER_SUPPORT.
243*a7c91847Schristos	* client.c (init_sockaddr): Change port argument from
244*a7c91847Schristos	unsigned short to unsigned int.  Change hostname
245*a7c91847Schristos	argument from const char * to char *.
246*a7c91847Schristos
247*a7c91847SchristosSun Nov  3 18:24:28 1996  Noel Cragg  <noel@gargle.rain.org>
248*a7c91847Schristos
249*a7c91847Schristos	* sanity.sh (info): add new tests that check behavior of format
250*a7c91847Schristos 	string substitution in loginfo file.
251*a7c91847Schristos
252*a7c91847SchristosSat Nov  2 09:39:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
253*a7c91847Schristos
254*a7c91847Schristos	* client.c (do_deferred_progs): Don't access memory once it is
255*a7c91847Schristos	freed (we already did it right for checkin_progs; do the same
256*a7c91847Schristos	thing for update_progs).
257*a7c91847Schristos
258*a7c91847Schristos	* update.c, client.c, classify.c, client.h, diff.c, commit.c,
259*a7c91847Schristos	create_adm.c: Nuke more PATH_MAX.
260*a7c91847Schristos
261*a7c91847SchristosFri Nov  1 18:22:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
262*a7c91847Schristos
263*a7c91847Schristos	* error.h: Define PROTO if it is not defined.
264*a7c91847Schristos
265*a7c91847SchristosWed Oct 30 08:53:20 1996  jalving@ibm.net
266*a7c91847Schristos
267*a7c91847Schristos	* patch.c (patch_fileproc): Set line1 and line2 to NULL up-front
268*a7c91847Schristos	(before the first "goto out") so we don't try to free them.
269*a7c91847Schristos
270*a7c91847SchristosWed Oct 30 08:53:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
271*a7c91847Schristos
272*a7c91847Schristos	* commit.c (remove_file, commit_filesdoneproc), run.c (run_print,
273*a7c91847Schristos	run_exec), modules.c (open_module, cat_module, do_module), update.c
274*a7c91847Schristos	(update_dirleave_proc), tag.c (tag_fileproc): Call cvs_out* rather
275*a7c91847Schristos	than stdio.
276*a7c91847Schristos	* server.c (serve_expand_modules): Remove comment about do_module
277*a7c91847Schristos	writing to stdout/stderr; above changes should fix this.
278*a7c91847Schristos
279*a7c91847SchristosTue Oct 29 17:23:59 1996  Ian Lance Taylor  <ian@cygnus.com>
280*a7c91847Schristos
281*a7c91847Schristos	* status.c (tag_list_proc): When printing the tag name, don't
282*a7c91847Schristos	truncate it to 25 characters.
283*a7c91847Schristos
284*a7c91847SchristosTue Oct 29 12:49:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
285*a7c91847Schristos
286*a7c91847Schristos	* add.c, checkin.c, checkout.c, filesubr.c: Nuke arbitrary limit
287*a7c91847Schristos	of PATH_MAX.  Many more such limits surely remain.
288*a7c91847Schristos
289*a7c91847Schristos	* fileattr.c (fileattr_set): Set attrs_modified *after* we might
290*a7c91847Schristos	call fileattr_read, because fileattr_read clears it.
291*a7c91847Schristos	* sanity.sh (devcom2): New tests, test for above fix and other
292*a7c91847Schristos	behaviors I discovered in the process of looking into it.
293*a7c91847Schristos
294*a7c91847SchristosMon Oct 28 08:55:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
295*a7c91847Schristos
296*a7c91847Schristos	The following changes are to ensure that SYSTEM_CLEANUP is always
297*a7c91847Schristos	called.
298*a7c91847Schristos	* error.c, cvs.h, main.c: Remove error_set_cleanup and related
299*a7c91847Schristos	machinery.  It was for a time when error.c was intended to be
300*a7c91847Schristos	shared with other programs, but that is no longer true.
301*a7c91847Schristos	* error.c, error.h (error_exit): New function; like error_cleanup
302*a7c91847Schristos	from main.c but also calls SYSTEM_CLEANUP and exit (EXIT_FAILURE).
303*a7c91847Schristos	* error.c (error, fperror): Call error_exit instead of doing it
304*a7c91847Schristos	ourself.
305*a7c91847Schristos	* server.c (server, serve_valid_responses, switch_to_user,
306*a7c91847Schristos	check_password, pserver_authenticate_connection,
307*a7c91847Schristos	kserver_authenticate_connection): Call SYSTEM_CLEANUP before exit.
308*a7c91847Schristos	* add.c, client.c, import.c, main.c, mkmodules.c, modules.c,
309*a7c91847Schristos	recurse.c, server.c, tag.c, update.c: Call error_exit ()
310*a7c91847Schristos	instead of exit (EXIT_FAILURE).
311*a7c91847Schristos
312*a7c91847SchristosSun Oct 27 08:34:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
313*a7c91847Schristos
314*a7c91847Schristos	* sanity.sh (conflicts): New test 128.5 tests "cvs co -p" in an empty
315*a7c91847Schristos	directory (like 126.5), but when the file has nonempty contents.
316*a7c91847Schristos	* rcs.c (RCS_checkout): If writing to stdout, use cvs_output
317*a7c91847Schristos	rather than fwrite.
318*a7c91847Schristos	* update.c (checkout_file): Call cvs_stderr not fprintf.
319*a7c91847Schristos	These changes should fix some out-of-order bugs which show up in
320*a7c91847Schristos	situations like conflicts-126.5 and conflicts-128.5.
321*a7c91847Schristos
322*a7c91847Schristos	* mkmodules.c (checkout_file): Call RCS_checkout rather than
323*a7c91847Schristos	run_exec on RCS_CO.
324*a7c91847Schristos
325*a7c91847SchristosSat Oct 26 18:29:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
326*a7c91847Schristos
327*a7c91847Schristos	* sanity.sh (rdiff): cd out of testimport directory and remove it
328*a7c91847Schristos	when done.
329*a7c91847Schristos
330*a7c91847Schristos	* sanity.sh (info): Adjust tests to reflect fact that loginfo was
331*a7c91847Schristos	created by cvs init.
332*a7c91847Schristos
333*a7c91847Schristos	* sanity.sh (ignore): Change test 187a1 to allow any number of
334*a7c91847Schristos	files in CVSROOT, not just modules.
335*a7c91847Schristos
336*a7c91847Schristos	* sanity.sh (modules): In tests 148a0 and 148a1, don't expect a
337*a7c91847Schristos	module which defines CVSROOT to itself, since we don't define one
338*a7c91847Schristos	any more.  Also change test to rewrite modules rather than append
339*a7c91847Schristos	to it (in case any previous tests are changed to do something with
340*a7c91847Schristos	modules).  Change test 155b to allow any number of files in
341*a7c91847Schristos	CVSROOT, not just modules.
342*a7c91847Schristos
343*a7c91847Schristos	* add.c (add_directory): Set rev_old and rev_new fields of struct
344*a7c91847Schristos	logfile_info to NULL (prevents us from trying to free them later).
345*a7c91847Schristos	* commit.c (find_fileproc), import.c (import): Likewise.
346*a7c91847Schristos
347*a7c91847Schristos	* sanity.sh (crerepos): New tests, to test alternate ways of
348*a7c91847Schristos	creating a repository and related matters.
349*a7c91847Schristos	* sanity.sh: Remove tests 1 through 3 and related cruft; replace
350*a7c91847Schristos	them with a new test 1 which merely tests "cvs init".  By doing
351*a7c91847Schristos	the obscure stuff in crerepos we avoid having to do all this stuff
352*a7c91847Schristos	any time we run any single test.
353*a7c91847Schristos
354*a7c91847SchristosSat Oct 26 16:19:48 1996  Jim Blandy  <jimb@totoro.cyclic.com>
355*a7c91847Schristos
356*a7c91847Schristos	* main.c (main): If HAVE_TZSET is #defined, call tzset.  This is
357*a7c91847Schristos	harmless on all systems I know of, and required on some.
358*a7c91847Schristos
359*a7c91847SchristosFri Oct 25 13:20:44 1996  Ian Lance Taylor  <ian@cygnus.com>
360*a7c91847Schristos
361*a7c91847Schristos	* diff.c (diff_file_nodiff): When setting use_rev1, only return
362*a7c91847Schristos	DIFF_SAME if empty_file is DIFF_DIFFERENT and ts_user is not
363*a7c91847Schristos	NULL.  Don't get confused by a vn_user field of "0" or one
364*a7c91847Schristos	starting with '-'.
365*a7c91847Schristos	* sanity.sh (death2): Add new death2-diff-{1,2,7,8} tests for
366*a7c91847Schristos	above patch.  Renumber existing death2-diff tests to make room.
367*a7c91847Schristos
368*a7c91847SchristosFri Oct 25 12:38:29 1996  Jim Wilson  <wilson@cygnus.com>
369*a7c91847Schristos
370*a7c91847Schristos	* sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "_"
371*a7c91847Schristos	in temp file names.  The system (tmpnam or whatever) generates
372*a7c91847Schristos	these names so they vary from system to system.
373*a7c91847Schristos
374*a7c91847SchristosFri Oct 25 07:52:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
375*a7c91847Schristos
376*a7c91847Schristos	* logmsg.c (logfile_write): Give an error for several cases which
377*a7c91847Schristos	should not be legal.  Adjust comments accordingly.
378*a7c91847Schristos	* mkmodules.c (loginfo_contents): Make description of loginfo much
379*a7c91847Schristos	more concise.  This should be a reminder, not full documentation.
380*a7c91847Schristos
381*a7c91847SchristosTue Oct 22 10:37:37 1996  Noel Cragg  <noel@gargle.rain.org>
382*a7c91847Schristos
383*a7c91847Schristos	* commit.c (update_delproc): free structure members rev_old and
384*a7c91847Schristos 	rev_new if they have been allocated.
385*a7c91847Schristos
386*a7c91847Schristos	* mkmodules.c: change loginfo_contents to include a description of
387*a7c91847Schristos 	the new format string.
388*a7c91847Schristos
389*a7c91847Schristos	* logmsg.c (logfile_write): change syntax of format string.
390*a7c91847Schristos
391*a7c91847SchristosSat Oct 19 16:09:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
392*a7c91847Schristos
393*a7c91847Schristos	For reference, this takes CVS's text segment from 348348 bytes to
394*a7c91847Schristos	347420 bytes.
395*a7c91847Schristos	* server.c (requests): Change Directory to rq_essential
396*a7c91847Schristos	per change in doc/cvsclient.texi.
397*a7c91847Schristos	* client.c: Remove use_directory and all code which executed if
398*a7c91847Schristos	it wasn't set.  This includes the get_short_pathname function.
399*a7c91847Schristos	* server.c: Likewise, for use_dir_and_repos.
400*a7c91847Schristos	(serve_repository): Give a fatal error.
401*a7c91847Schristos	* server.c (requests): Remove Lost.  Change Unchanged to rq_essential.
402*a7c91847Schristos	(serve_lost): Removed.
403*a7c91847Schristos	* server.c, server.h, client.c, vers_ts.c: Remove use_unchanged,
404*a7c91847Schristos	code to set it, and all code which executed if it wasn't set.
405*a7c91847Schristos
406*a7c91847SchristosSat Oct 19 12:44:08 1996  J. Richard Sladkey  <jrs@world.std.com>
407*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
408*a7c91847Schristos
409*a7c91847Schristos	* hash.c (sortlist, new function qsort_comp): Rewrite to use qsort
410*a7c91847Schristos	instead of insert sort.  Changes algorithm from n^2 to n log n
411*a7c91847Schristos	(assuming qsort is implemented with quicksort or similar).
412*a7c91847Schristos
413*a7c91847SchristosSat Oct 19 12:44:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
414*a7c91847Schristos
415*a7c91847Schristos	* sanity.sh (basic2): In test basic2-64, use -x and specify types
416*a7c91847Schristos	which exclude E; the test is not built to deal with E (or any
417*a7c91847Schristos	other new types).
418*a7c91847Schristos
419*a7c91847SchristosSat Oct 19 12:00:00 1996  Mark Mitchell <mmitchell@usa.net>
420*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
421*a7c91847Schristos
422*a7c91847Schristos	* update.c (isemptydir, new function isremoved): Avoid pruning
423*a7c91847Schristos	directories that contain files marked for removal but not
424*a7c91847Schristos	comitted.
425*a7c91847Schristos	* update.c, update.h (isemptydir): Now extern, not static.
426*a7c91847Schristos	* update.c (isemptydir): New parameter might_not_exist handles
427*a7c91847Schristos	difference in functionality from old client_isemptydir.  Bring
428*a7c91847Schristos	over the improved error checking from client_isemptydir.
429*a7c91847Schristos	* client.c (client_isemptydir): Removed; isemptydir now suffices.
430*a7c91847Schristos	* update.c (update_dirleave_proc), client.c
431*a7c91847Schristos	(process_prune_candidates): Update callers.
432*a7c91847Schristos	* sanity.sh (deep): Add tests deep-rm* for above fix.
433*a7c91847Schristos
434*a7c91847SchristosFri Oct 18 15:53:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
435*a7c91847Schristos
436*a7c91847Schristos	* sanity.sh (devcom): Add tests devcom-some* to test watching just
437*a7c91847Schristos	a single file.
438*a7c91847Schristos
439*a7c91847Schristos	* root.c (Name_Root): Use isabsolute to test whether a pathname is
440*a7c91847Schristos	absolute instead of checking for the first character being '/'.
441*a7c91847Schristos	(Reported by Antoine P. Brusseau <brusseau@jprc.com>).
442*a7c91847Schristos
443*a7c91847Schristos	* commit.c (checkaddfile): Free rev only if it is non-NULL (thanks
444*a7c91847Schristos	to cwong@world.std.com (Christopher Wong) for diagnosing this; the
445*a7c91847Schristos	death2-15 test in sanity.sh hits it).
446*a7c91847Schristos
447*a7c91847SchristosThu Oct 17 15:21:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
448*a7c91847Schristos
449*a7c91847Schristos	* sanity.sh: Reenable rdiff tests.  Delete rdiff-9 test to reflect
450*a7c91847Schristos	the fact that the change to add a -K option has not been
451*a7c91847Schristos	incorporated.  Adjust rdiff-8 test to reflect the fact that the
452*a7c91847Schristos	change to change the default keyword expansion for the first
453*a7c91847Schristos	revision has not been incorporated.
454*a7c91847Schristos	* patch.c (patch_fileproc): Pass the symbolic revision to
455*a7c91847Schristos	RCS_checkout so that Name can be expanded correctly.  Reinstates
456*a7c91847Schristos	one of the 30 Sep 96 changes and fixes a bug which the sanity.sh
457*a7c91847Schristos	rdiff test tests for.
458*a7c91847Schristos
459*a7c91847Schristos	Reinstate change from 30 Sep 96:
460*a7c91847Schristos	* patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
461*a7c91847Schristos
462*a7c91847Schristos	* client.c (process_prune_candidates): Do not ignore errors from
463*a7c91847Schristos	unlink_file_dir.
464*a7c91847Schristos
465*a7c91847Schristos	* filesubr.c (deep_remove_dir): If rmdir returns an error other
466*a7c91847Schristos	than ENOTEMPTY or EEXIST, return -1 not 0.  Add workaround for AIX
467*a7c91847Schristos	header bug.
468*a7c91847Schristos
469*a7c91847SchristosTue Apr 30 08:21:27 1996  Mike Sutton <mike_sutton@dayton.saic.com>
470*a7c91847Schristos
471*a7c91847Schristos	* checkout.c, history.c: added logging/reporting of cvs export
472*a7c91847Schristos	command
473*a7c91847Schristos
474*a7c91847SchristosWed Oct 16 10:16:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
475*a7c91847Schristos
476*a7c91847Schristos	* sanity.sh: Remove tests 4, 4.5, and 4.75; this functionality is
477*a7c91847Schristos	already tested by 45, 45.5 and other tests.
478*a7c91847Schristos	(ignore): New tests ignore-192, ignore-193, ignore-194, and
479*a7c91847Schristos	ignore-195 test output from "cvs release".
480*a7c91847Schristos	(modules2): New tests modules2-6, modules2-7, and modules2-8 test
481*a7c91847Schristos	ability of cvs release to handle multiple arguments.  Since it
482*a7c91847Schristos	currently doesn't, the tests are kludged.
483*a7c91847Schristos
484*a7c91847Schristos	* server.c, cvs.h (cvs_flushout): New function.
485*a7c91847Schristos	* recurse.c (do_file_proc): Call it.
486*a7c91847Schristos	* server.c (cvs_outerr): Call fflush (stdout) in non-server case.
487*a7c91847Schristos	* main.c (main): Don't call setvbuf.  The code was incorrectly
488*a7c91847Schristos	checking for "patch" (it really is "rdiff"); the concern about
489*a7c91847Schristos	slowing down large amounts of output is not specific to rdiff
490*a7c91847Schristos	(it applies to "log" for example); and the above changes should
491*a7c91847Schristos	meet the need.
492*a7c91847Schristos
493*a7c91847SchristosTue Oct 15 10:22:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
494*a7c91847Schristos
495*a7c91847Schristos	This is intended to facilitate some future cleanups to the
496*a7c91847Schristos	locking, but by itself it is a simple, conversative rearrangement:
497*a7c91847Schristos	* tag.c (locked_dir, locked_list): Move from here...
498*a7c91847Schristos	* lock.c: ...to here.
499*a7c91847Schristos	* lock.c (Lock_Cleanup): If locked_dir is set clean it up too.
500*a7c91847Schristos	* tag.c (tag_unlockdir): Removed; with the above change
501*a7c91847Schristos	Lock_Cleanup suffices.
502*a7c91847Schristos	* tag.c (tag_lockdir): Move from here...
503*a7c91847Schristos	* lock.c (lock_dir_for_write): ...to here.
504*a7c91847Schristos	* tag.c (tag_fileproc), rtag.c (rtag_fileproc): Update callers.
505*a7c91847Schristos	Move comments concerning why we are locking what we are from
506*a7c91847Schristos	tag_lockdir to here.
507*a7c91847Schristos	* tag.c (tag_filesdoneproc), rtag.c (rtag_filesdoneproc):
508*a7c91847Schristos	Update callers.
509*a7c91847Schristos	* lock.c (Writer_Lock): Made static.
510*a7c91847Schristos	* cvs.h: Update declarations.
511*a7c91847Schristos	* server.c (server_notify): Call lock_dir_for_write rather than
512*a7c91847Schristos	calling Writer_Lock ourselves.
513*a7c91847Schristos
514*a7c91847Schristos	This is intended to facilitate some future cleanups to the
515*a7c91847Schristos	locking, but by itself it is a simple, conversative rearrangement:
516*a7c91847Schristos	* lock.c (Lock_Cleanup): Also dellist (lock_tree_list).
517*a7c91847Schristos	* lock.c, cvs.h (lock_tree_cleanup): Removed; with the above change
518*a7c91847Schristos	Lock_Cleanup suffices.
519*a7c91847Schristos	* commit.c, edit.c, watch.c: Change callers.
520*a7c91847Schristos
521*a7c91847SchristosSat Oct 12 21:41:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
522*a7c91847Schristos
523*a7c91847Schristos	* sanity.sh (deep): Add comment about whether the deep-4b behavior
524*a7c91847Schristos	is considered desirable.
525*a7c91847Schristos
526*a7c91847SchristosSat Oct 12 20:36:36 1996  Ian Lance Taylor  <ian@cygnus.com>
527*a7c91847Schristos
528*a7c91847Schristos	* client.c (client_send_expansions): Add build_dirs parameter.
529*a7c91847Schristos	Change all callers.
530*a7c91847Schristos	(send_dirent_proc): Get build_dirs from callerdat; if it is
531*a7c91847Schristos	zero, don't send a nonexistent directory to the server.
532*a7c91847Schristos	(send_files): Add build_dirs parameter.  Change all callers.
533*a7c91847Schristos	* client.h (send_files): Update prototype.
534*a7c91847Schristos	(send_files_contents): Remove prototype for nonexistent function.
535*a7c91847Schristos	(client_send_expansions): Update prototype.
536*a7c91847Schristos	* sanity.sh (deep): Add deep-4b test for above patch.
537*a7c91847Schristos
538*a7c91847SchristosFri Oct 11 14:07:12 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
539*a7c91847Schristos
540*a7c91847Schristos	gcc -Wall lint:
541*a7c91847Schristos	* logmsg.c (title_proc): Remove unused variables title and comma.
542*a7c91847Schristos
543*a7c91847Schristos	* sanity.sh (modules2): Don't be picky about whether we are
544*a7c91847Schristos	checking in 1.3 or 1.2 of modules; it depends on whether we are
545*a7c91847Schristos	running all the tests or just some.
546*a7c91847Schristos
547*a7c91847SchristosThu Oct 10 14:52:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
548*a7c91847Schristos
549*a7c91847Schristos	* server.c, server.h (server_dir): New variable.
550*a7c91847Schristos	(output_dir): If it is set, send it before the directory name.
551*a7c91847Schristos	* modules.c (do_module): Set it, in the case of & modules, and
552*a7c91847Schristos	restore it when done.
553*a7c91847Schristos	* sanity.sh (modules): Don't clean up first-dir before starting;
554*a7c91847Schristos	tests now clean up for themselves at the end.
555*a7c91847Schristos	(modules2): New tests, for above fix.
556*a7c91847Schristos
557*a7c91847SchristosWed Oct  9 15:52:34 1996  Jim Blandy  <jimb@totoro.cyclic.com>
558*a7c91847Schristos
559*a7c91847Schristos	* sanity.sh: Barf immediately if run as root.
560*a7c91847Schristos
561*a7c91847Schristos	* rcs.c (RCS_getrevtime): When giving a date to get_date, use the full
562*a7c91847Schristos	year, not the year - 1900, so that dates after 1999 are parsed
563*a7c91847Schristos	correctly.  (Change thanks to Paul Eggert.)
564*a7c91847Schristos
565*a7c91847SchristosWed Oct  9 10:59:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
566*a7c91847Schristos
567*a7c91847Schristos	Clean up gcc -Wmissing-prototypes lint:
568*a7c91847Schristos	* cvs.h (admin, add, checkout, commit, diff, history, import,
569*a7c91847Schristos	cvslog, login, patch, release, cvsremove, rtag, status, tag):
570*a7c91847Schristos	Declare.
571*a7c91847Schristos	* server.c, main.c: Don't declare them here.  Don't declare update
572*a7c91847Schristos	either (which is already declared in cvs.h).
573*a7c91847Schristos	* tag.c, cvs.h, main.c, server.c: Rename tag to cvstag to avoid
574*a7c91847Schristos	name conflicts.
575*a7c91847Schristos	* client.c (init_sockaddr, auth_server_port_number), entries.c
576*a7c91847Schristos	(Entnode_Create, Entnode_Destroy), hash.c (nodetypestring),
577*a7c91847Schristos	login.c (construct_cvspass_filename), server.c
578*a7c91847Schristos	(supported_response), wrapper.c (wrap_matching_entry): Make static;
579*a7c91847Schristos	prototype.
580*a7c91847Schristos	* hash.c (printlist): Prototype.
581*a7c91847Schristos	* myndbm.c (mydbm_load_file): Change declaration to prototype.
582*a7c91847Schristos
583*a7c91847SchristosTue Oct  8 22:35:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
584*a7c91847Schristos
585*a7c91847Schristos	* sanity.sh (log2): Re-add these tests; they were deleted for 1.9
586*a7c91847Schristos	(because they were thought to be destabilizing and/or due to
587*a7c91847Schristos	confusion/accident), but they can be put back now.
588*a7c91847Schristos
589*a7c91847Schristos	* sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "-"
590*a7c91847Schristos	or "%" in temp file names.  The system (tmpnam or whatever)
591*a7c91847Schristos	generates these names so they vary from system to system.
592*a7c91847Schristos
593*a7c91847SchristosTue Oct  8 12:37:09 1996  Ian Lance Taylor  <ian@cygnus.com>
594*a7c91847Schristos
595*a7c91847Schristos	* options.h.in (HAD_RCS4): Remove; no longer used.
596*a7c91847Schristos
597*a7c91847SchristosSun Oct  6 15:58:11 1996  Noel Cragg  <noel@gargle.rain.org>
598*a7c91847Schristos
599*a7c91847Schristos	* The following changes address problem #56 in the GNATS database
600*a7c91847Schristos 	on harvey.cyclic.com:
601*a7c91847Schristos
602*a7c91847Schristos	* logmsg.c (str_list_format): new global -- contains the format
603*a7c91847Schristos 	for items to be placed in str_list.
604*a7c91847Schristos	(Update_Logfile): move code that creates the "title" string...
605*a7c91847Schristos	(logfile_write): ...to here.  Pull apart the filter program and
606*a7c91847Schristos 	look for a format string, extracting it if there is one.
607*a7c91847Schristos	(title_proc): write a given filename/value based on the format
608*a7c91847Schristos 	string.
609*a7c91847Schristos
610*a7c91847Schristos	* commit.c (classify_file_internal): new routine, old code (needed
611*a7c91847Schristos 	to use the code in more than one place).  Determines the status
612*a7c91847Schristos 	and version information about a file.
613*a7c91847Schristos	(check_fileproc): use classify_file_internal.  Fill in the rev_old
614*a7c91847Schristos 	field for the struct logfile_info.
615*a7c91847Schristos	(commit_fileproc): Fill in the rev_new field.
616*a7c91847Schristos
617*a7c91847Schristos	* cvs.h (struct logfile_info): add two new fields -- rev_old and
618*a7c91847Schristos 	rev_new -- that keep track of revision numbers across commits.
619*a7c91847Schristos
620*a7c91847SchristosFri Sep 27 15:21:47 1996  Peter Wemm  <peter@spinner.dialix.com>
621*a7c91847Schristos
622*a7c91847Schristos	* logmsg.c (do_editor): Do not use editinfo if running on the client.
623*a7c91847Schristos
624*a7c91847SchristosFri Oct  4 15:11:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
625*a7c91847Schristos
626*a7c91847Schristos	* server.c (server_cleanup): Temporarily clear noexec when calling
627*a7c91847Schristos	unlink_file_dir.  This is so we clean up the temp directory even
628*a7c91847Schristos	when the -n global option is specified.
629*a7c91847Schristos
630*a7c91847SchristosWed Oct  2 10:47:33 1996  Norbert Kiesel  <nk@col.sw-ley.de>
631*a7c91847Schristos
632*a7c91847Schristos	* client.c (send_repository): initialize some variables before
633*a7c91847Schristos 	first usage
634*a7c91847Schristos
635*a7c91847SchristosTue Oct  1 13:01:24 1996  Jim Blandy  <jimb@floss.cyclic.com>
636*a7c91847Schristos
637*a7c91847Schristos	Revert some of Greg's changes; they're welcome later, but we're
638*a7c91847Schristos	trying to keep CVS stable for pre-release testing at the moment.
639*a7c91847Schristos	* checkin.c, commit.c, cvs.h, diff.c, import.c, main.c, no_diff.c,
640*a7c91847Schristos	options.h.in, patch.c, rcs.c, rcs.h, rcscmds.c, sanity.sh, update.c:
641*a7c91847Schristos	Revert changes of Sep 29 and 30.
642*a7c91847Schristos
643*a7c91847SchristosTue Oct  1 13:17:31 1996  Ian Lance Taylor  <ian@cygnus.com>
644*a7c91847Schristos
645*a7c91847Schristos	Make sure the server temporary directory is removed even if
646*a7c91847Schristos	Max-dotdot is used.
647*a7c91847Schristos	* server.c (orig_server_temp_dir): New static variable.
648*a7c91847Schristos	(serve_max_dotdot): Don't free server_temp_dir if it is the same
649*a7c91847Schristos	as orig_server_temp_dir.
650*a7c91847Schristos	(do_cvs_command): Use orig_server_temp_dir in error message.
651*a7c91847Schristos	(server_cleanup): Remove orig_server_temp_dir.
652*a7c91847Schristos	(server): Set orig_server_temp_dir.  Remove incorrect indentation
653*a7c91847Schristos	of error message.
654*a7c91847Schristos
655*a7c91847Schristos	* import.c (update_rcs_file): Restore new argument to
656*a7c91847Schristos	RCS_checkout, removed in last patch.
657*a7c91847Schristos
658*a7c91847SchristosTue Oct  1 00:32:55 1996  Jim Blandy  <jimb@floss.cyclic.com>
659*a7c91847Schristos
660*a7c91847Schristos	* import.c: Revert Greg Woods' changes of Sep 30.  We may want
661*a7c91847Schristos	them later, but not before 1.9.
662*a7c91847Schristos
663*a7c91847SchristosMon Sep 30 23:31:01 1996  Jim Blandy  <jimb@floss.cyclic.com>
664*a7c91847Schristos
665*a7c91847Schristos	* log.c (log_fileproc): Now that we might actually find a "desc"
666*a7c91847Schristos 	node in rcsfile->other, thanks to Ian's change below, we had
667*a7c91847Schristos 	better deal correctly if we find a null pointer in it.
668*a7c91847Schristos
669*a7c91847SchristosMon Sep 30 13:55:03 1996  Greg A. Woods  <woods@most.weird.com>
670*a7c91847Schristos
671*a7c91847Schristos	* main.c (main): don't set need_to_create_root for "cvs init"
672*a7c91847Schristos	either, just in case it's run from within a valid working
673*a7c91847Schristos	directory.
674*a7c91847Schristos
675*a7c91847Schristos	* sanity.sh (testcvs): oops, forgot to comment out test version I
676*a7c91847Schristos 	was using...
677*a7c91847Schristos
678*a7c91847Schristos	* diff.c (diff_fileproc): use Diffbin instead of DIFF (3).
679*a7c91847Schristos	* patch.c (patch_fileproc): use Diffbin instead of DIFF.
680*a7c91847Schristos	* commit.c (check_fileproc): use Grepbin instead of GREP.
681*a7c91847Schristos	* rcscmds.c (RCS_merge): use Grepbin instead of GREP.
682*a7c91847Schristos	* update.c (patch_file): use Diffbin instead of DIFF.
683*a7c91847Schristos	(update_fileproc): use Grepbin instead of GREP.
684*a7c91847Schristos	* cvs.h (Diffbin): new declaration.
685*a7c91847Schristos	(Grepbin): new declaration.
686*a7c91847Schristos	(DIFFBIN_ENV): new manifest to name DIFFBIN environ var.
687*a7c91847Schristos	(GREPBIN_ENV): new manifest to name GREPBIN environ var.
688*a7c91847Schristos	* option.h.in (DIFFBIN_DFLT): renamed from DIFF.
689*a7c91847Schristos	(GREPBIN_DFLT): renamed from GREP.
690*a7c91847Schristos	* main.c (main): new variables diffbin_update_env and
691*a7c91847Schristos	grepbin_update_inv, ala rcsbin_update_env.
692*a7c91847Schristos	(main): new options -D diffbin and -g grepbin
693*a7c91847Schristos	(usg): describe new options -D diffbin and -g grepbin.
694*a7c91847Schristos	(Diffbin): new global variable for DIFF path.
695*a7c91847Schristos	(Grepfbin): new global variable for GREP path.
696*a7c91847Schristos
697*a7c91847Schristos	* options.h.in (RCSBIN_DFLT): mention this needs to be set if
698*a7c91847Schristos	your PATH isn't set properly by rshd.
699*a7c91847Schristos
700*a7c91847Schristos	* sanity.sh (rdiff): re-do Jim's change, but with the original
701*a7c91847Schristos	keywords I had intended (should be a bit more like real life), and
702*a7c91847Schristos	Jim's better RCS date and user matching form.
703*a7c91847Schristos	[I guess that's what I get for checking things in at 3am! ;-)]
704*a7c91847Schristos
705*a7c91847SchristosMon Sep 30 17:00:20 1996  Ian Lance Taylor  <ian@cygnus.com>
706*a7c91847Schristos
707*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Store desc field value in main RCS
708*a7c91847Schristos	node data, not in version specific data.
709*a7c91847Schristos	* sanity.sh: Enable log2 test (for local CVS only).
710*a7c91847Schristos
711*a7c91847SchristosMon Sep 30 13:01:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
712*a7c91847Schristos
713*a7c91847Schristos	* sanity.sh (log2): New test, tests cvs add -m.  Not yet enabled
714*a7c91847Schristos	in "tests" because CVS currently flunks this test.
715*a7c91847Schristos
716*a7c91847Schristos	* sanity.sh (rdiff, basic2): Allow "cvs server" as well as "cvs
717*a7c91847Schristos	checkout" and friends in messages.  In testing output of cvs
718*a7c91847Schristos	status, don't require a tab which isn't there for remote.  Skip
719*a7c91847Schristos	test rdiff-9 for remote.  In test basic2-64, add missing slash in
720*a7c91847Schristos	the pattern which gets used for remote.
721*a7c91847Schristos
722*a7c91847Schristos	* sanity.sh (rdiff): Fix strings we were matching against which
723*a7c91847Schristos	got keyword-expanded in checking in sanity.sh.
724*a7c91847Schristos
725*a7c91847SchristosMon Sep 30 03:21:37 1996  Greg A. Woods  <woods@most.weird.com>
726*a7c91847Schristos
727*a7c91847Schristos	* sanity.sh: change all regexpr literal '.' to '\.'
728*a7c91847Schristos 	(basic2): why are tests 34 & 42 commented out (because
729*a7c91847Schristos	of 'diff -u'?)?
730*a7c91847Schristos	add tests 56[abc], 57a, and 58a to test import to the main
731*a7c91847Schristos	branch (i.e. branch '1').
732*a7c91847Schristos	(rdiff): new test section for rdiff -K, etc.
733*a7c91847Schristos	(dotest): remove dotest.ex? before running a new test.
734*a7c91847Schristos	(dotest_fail): remove dotest.ex? before running a new test.
735*a7c91847Schristos	(dotest_internal): write expected output to dotest.exp, or if $4
736*a7c91847Schristos	also used, to dotest.ex1 and dotest.ex2.
737*a7c91847Schristos	(patch): renamed this test to 'serverpatch'.
738*a7c91847Schristos	(dotest_lit): rename dotest.res to dotest.exp ala dotest().
739*a7c91847Schristos	remove dotest.ex? before running a new test.
740*a7c91847Schristos	(DOTSTAR): mention the bug exists up to 1.12
741*a7c91847Schristos	(ENDANCHOR): mention the bug exists up to 1.12
742*a7c91847Schristos	(dotest_all_in_one): new function for debugging.
743*a7c91847Schristos	(dotest_line_by_line): new function for debugging.
744*a7c91847Schristos	(dotest_internal_debug): new function for debugging.
745*a7c91847Schristos	(dotest_internal): stop emulating the ancient tests and don't spew
746*a7c91847Schristos	the dotest.tmp contents onto $LOGFILE -- it's just too much
747*a7c91847Schristos	meaningless noise.  Only do this if the test fails.  Many tests
748*a7c91847Schristos	don't use dotest() yet, so this isn't quite so helpful as it might
749*a7c91847Schristos	otherwise be.
750*a7c91847Schristos	(TODO): mention CVS/* files, especially CVS/Root.
751*a7c91847Schristos
752*a7c91847Schristos	* main.c (main): add a commented out piece of code to suggest that
753*a7c91847Schristos	there should be a function lookup_command_attribute() that could
754*a7c91847Schristos	tell us various things about internal commands, such as whether
755*a7c91847Schristos	they use CVS/Root, or if they're repository-only, or if they need
756*a7c91847Schristos	a working directory, etc....
757*a7c91847Schristos	(main): don't set need_to_create_root if command doesn't use a
758*a7c91847Schristos	local working directory.
759*a7c91847Schristos
760*a7c91847Schristos	* patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
761*a7c91847Schristos
762*a7c91847Schristos	* error.c (fperror): protect declaration for un-defined __STDC__
763*a7c91847Schristos
764*a7c91847Schristos	* import.c (import): permit imports to a branch with zero dots,
765*a7c91847Schristos	i.e. the trunk.
766*a7c91847Schristos	(update_rcs_file): don't detect conflicts if importing to the
767*a7c91847Schristos	trunk.
768*a7c91847Schristos	(import): add hint that we should allow a module name, instead of
769*a7c91847Schristos	just a pathname relative to $CVSROOT.
770*a7c91847Schristos	(add_rcs_file): if importing to trunk, do it with ci(1).
771*a7c91847Schristos
772*a7c91847Schristos	* import.c: XXX the following are all #if 0'ed out until a full
773*a7c91847Schristos	implementation can be designed....
774*a7c91847Schristos	(cbranch): new variable to support conflict detection on another
775*a7c91847Schristos	branch set by -c.
776*a7c91847Schristos	(import): truncate -b and -c optarg if to fit in static storage.
777*a7c91847Schristos	(import_usage): describe -c
778*a7c91847Schristos
779*a7c91847Schristos	* rcscmds.c (RCS_checkout): add new argument 'rcsver'.  If rcsver
780*a7c91847Schristos	is set, turn on 'keywords' to force call to RCS_exec_checkout.
781*a7c91847Schristos	* rcs.c (RCS_exec_checkout): add new argument 'rcsver'.  Pass
782*a7c91847Schristos	'rcsver' to "co" with run_arg().
783*a7c91847Schristos	* cvs.h: (RCS_checkout): add new argument 'rcsver' to prototype.
784*a7c91847Schristos	(RCS_exec_checkout): add new argument 'rcsver' to prototype.
785*a7c91847Schristos	* commit.c (remove_file): supply new argument to RCS_checkout.
786*a7c91847Schristos	* checkin.c (Checkin): supply new argument to RCS_checkout.
787*a7c91847Schristos	* diff.c (diff_fileproc): supply new argument to RCS_checkout.
788*a7c91847Schristos	(diff_file_nodiff): supply new argument to RCS_checkout.
789*a7c91847Schristos	* no_diff.c (No_Difference): supply new argument to RCS_checkout.
790*a7c91847Schristos	* update.c (checkout_file): supply new argument to RCS_checkout.
791*a7c91847Schristos	(patch_file): supply new argument to RCS_checkout.
792*a7c91847Schristos	(join_file): supply new argument to RCS_checkout.
793*a7c91847Schristos
794*a7c91847Schristos	* patch.c: (o_options): new variable for -K
795*a7c91847Schristos	(rcsver): new variable for -V.
796*a7c91847Schristos	(patch): add -K flag which sets o_options, change -V to set
797*a7c91847Schristos	rcsver, send o_options and rcsver if in client mode.
798*a7c91847Schristos	(patch_fileproc): use RCS_checkout instead of RCS_fast_checkout in
799*a7c91847Schristos	order to ensure $Name is expanded, use o_options if set, or
800*a7c91847Schristos	options if set, or by default "-ko" when getting "old" file.
801*a7c91847Schristos
802*a7c91847SchristosSun Sep 29 16:43:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
803*a7c91847Schristos
804*a7c91847Schristos	* rcscmds.c: Replace comment at top of file concerning RCS library
805*a7c91847Schristos	with a reworded version based on discussion between me, Ian, Paul
806*a7c91847Schristos	Eggert, and JimB.
807*a7c91847Schristos
808*a7c91847SchristosSun Sep 29 13:09:45 1996  Noel Cragg  <noel@kiva.rain.org>
809*a7c91847Schristos
810*a7c91847Schristos	* main.c (main): don't create/update CVS/Root when doing the "cvs
811*a7c91847Schristos 	login" command.  Consider: if the user executes "cvs login" with
812*a7c91847Schristos 	the working directory inside an already checked out module, we'd
813*a7c91847Schristos 	incorrectly change the CVS/Root file to reflect the CVSROOT of the
814*a7c91847Schristos 	"cvs login" command.
815*a7c91847Schristos
816*a7c91847Schristos	* login.c (login): if we're re-logging into a server for which a
817*a7c91847Schristos 	.cvspass entry already exists, copy the temporary file to its home
818*a7c91847Schristos 	location rather than renaming.  Renaming doesn't work between
819*a7c91847Schristos 	filesystems.  After copying, unlink the temporary file.
820*a7c91847Schristos
821*a7c91847SchristosFri Sep 27 05:24:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
822*a7c91847Schristos
823*a7c91847Schristos	* diff.c: Add comment about --brief option.
824*a7c91847Schristos
825*a7c91847Schristos	* README-rm-add: Removed; the information which was here is now in
826*a7c91847Schristos	cvs.texinfo.
827*a7c91847Schristos	* Makefile.in (DISTFILES): Remove README-rm-add.
828*a7c91847Schristos
829*a7c91847SchristosWed Sep 25 10:00:00 1996  Larry Jones  <larry.jones@sdrc.com>
830*a7c91847Schristos
831*a7c91847Schristos	* Makefile.in (cvsbug): Add dependency on version.c.
832*a7c91847Schristos
833*a7c91847SchristosWed Sep 25 09:01:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
834*a7c91847Schristos
835*a7c91847Schristos	* filesubr.c (get_homedir), update.c (update): Reindent.
836*a7c91847Schristos
837*a7c91847SchristosWed Sep 25 04:44:54 1996  Jim Blandy  <jimb@totoro.cyclic.com>
838*a7c91847Schristos
839*a7c91847Schristos	* version.c (version_string): Bump to 1.8.86.
840*a7c91847Schristos
841*a7c91847SchristosWed Sep 25 05:17:50 1996  Jim Blandy  <jimb@floss.cyclic.com>
842*a7c91847Schristos
843*a7c91847Schristos	* update.c (update): Don't neglect to pass the -kmumble options
844*a7c91847Schristos	to the server.
845*a7c91847Schristos	* sanity.sh (binfiles-sticky): New tests for above.
846*a7c91847Schristos
847*a7c91847Schristos	* cvsrc.c (read_cvsrc): Deal correctly with lines that specify a
848*a7c91847Schristos	command, but no options; don't corrupt argv.
849*a7c91847Schristos
850*a7c91847Schristos	* sanity.sh: When testing rsh, use the program specified by
851*a7c91847Schristos 	the CVS_RSH environment variable, if it's set.  Move test to top
852*a7c91847Schristos	of file, so it runs before all other tests (it's really a
853*a7c91847Schristos	meta-test).
854*a7c91847Schristos
855*a7c91847Schristos	* filesubr.c (get_homedir): Use getpwuid to find the home
856*a7c91847Schristos	directory, if the HOME environment variable isn't set.
857*a7c91847Schristos	* ignore.c (ign_add_file): Call get_homedir to find the user's
858*a7c91847Schristos	home directory; this is more portable than calling getpwuid.
859*a7c91847Schristos
860*a7c91847SchristosTue Sep 24 09:08:17 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
861*a7c91847Schristos
862*a7c91847Schristos	* log.c (log_tree): When walking through branches, follow the
863*a7c91847Schristos	->prev field rather than following ->next which insures that the
864*a7c91847Schristos	loop only executes once and we only see the last branch.
865*a7c91847Schristos	* sanity.sh (multibranch): Test "cvs log" too; tests for above fix.
866*a7c91847Schristos
867*a7c91847SchristosMon Sep 23 09:55:22 1996  Norbert Kiesel  <nk@col.sw-ley.de>
868*a7c91847Schristos
869*a7c91847Schristos	* options.h.in: Fixed some typos in the comments and reindented
870*a7c91847Schristos 	them.
871*a7c91847Schristos
872*a7c91847SchristosSat Sep 21 02:33:26 1996  Jim Blandy  <jimb@totoro.cyclic.com>
873*a7c91847Schristos
874*a7c91847Schristos	* sanity.sh: If we're testing remote CVS, make sure rsh itself is
875*a7c91847Schristos	working before running any tests.  It's confusing when basica-1
876*a7c91847Schristos	fails just because you don't have the local host in your .rhosts
877*a7c91847Schristos	file.
878*a7c91847Schristos
879*a7c91847Schristos	* version.c (version_string): Bump to 1.8.85.
880*a7c91847Schristos
881*a7c91847SchristosThu Sep 19 09:15:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
882*a7c91847Schristos
883*a7c91847Schristos	* options.h.in: Define SERVER_FLOWCONTROL, SERVER_HI_WATER,
884*a7c91847Schristos	SERVER_LO_WATER.  Several large sites (FreeBSD, Cygnus) have been
885*a7c91847Schristos	pounding on this code without problems, and it doesn't seem to
886*a7c91847Schristos	have any significant downsides.
887*a7c91847Schristos
888*a7c91847SchristosTue Sep 17 01:13:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
889*a7c91847Schristos
890*a7c91847Schristos	* status.c (status_fileproc): Instead of a default case, set sstat
891*a7c91847Schristos	before the switch.  This way gcc -Wall can detect a missed case.
892*a7c91847Schristos	Add explicit T_TITLE case.
893*a7c91847Schristos
894*a7c91847SchristosTue Sep 17 00:09:44 1996  Assar Westerlund  <assar@pdc.kth.se>
895*a7c91847Schristos
896*a7c91847Schristos	* login.c (login): Print usage if argc < 0.
897*a7c91847Schristos
898*a7c91847SchristosTue Sep 17 00:09:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
899*a7c91847Schristos
900*a7c91847Schristos	* lock.c: In comment, mention one more function of readlocks
901*a7c91847Schristos	(fileattr not updated atomically).  Note similarity between
902*a7c91847Schristos	solutions #2 and #5.
903*a7c91847Schristos
904*a7c91847Schristos	* checkout.c (safe_location): Do not reject a location merely
905*a7c91847Schristos	because it textually starts with hardpath; insist that it be
906*a7c91847Schristos	hardpath or a subdirectory thereof.
907*a7c91847Schristos
908*a7c91847SchristosMon Sep 16 11:46:36 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
909*a7c91847Schristos
910*a7c91847Schristos	* server.c (server_cleanup): Add comment about ignoring errors
911*a7c91847Schristos	from unlink_file_dir.
912*a7c91847Schristos
913*a7c91847SchristosMon Sep 16 10:31:48 1996  Norbert Kiesel  <nk@col.sw-ley.de>
914*a7c91847Schristos
915*a7c91847Schristos	* main.c: Add support for -T <tmpdir> command line option.  This
916*a7c91847Schristos 	is needed for servers started via inetd.
917*a7c91847Schristos	(usg): Added line for -T.  Improved -z documentation.
918*a7c91847Schristos	(main): Read default for tmpdir from the environment. Test for 'T'
919*a7c91847Schristos	in getopt loop.  Use '/tmp' as ultimative fallback.  Update
920*a7c91847Schristos	environment if possible.
921*a7c91847Schristos
922*a7c91847Schristos	* cvs.h (TMPDIR_ENV): Added for -T <tmpdir> command line option.
923*a7c91847Schristos
924*a7c91847Schristos	* options.h.in: Add TMPDIR_DFLT
925*a7c91847Schristos
926*a7c91847Schristos	* import.c (update_rcs_file): Use global variable Tmpdir instead
927*a7c91847Schristos 	of reading the environment.
928*a7c91847Schristos
929*a7c91847Schristos	* server.c (server_cleanup): Use global variable Tmpdir instead of
930*a7c91847Schristos 	reading the environment.  Also, replace system("rm -rf") with
931*a7c91847Schristos 	unlink_file_dir.
932*a7c91847Schristos	(server): Use global variable Tmpdir instead of reading the
933*a7c91847Schristos 	environment.
934*a7c91847Schristos
935*a7c91847SchristosThu Sep 12 1996  Jim Kingdon  <kingdon@cyclic.com>
936*a7c91847Schristos
937*a7c91847Schristos	* main.c (main): If ARGV0_NOT_PROGRAM_NAME, then just set
938*a7c91847Schristos	program_name to "cvs" rather than argv[0].
939*a7c91847Schristos
940*a7c91847SchristosThu Sep 12 12:06:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
941*a7c91847Schristos
942*a7c91847Schristos	* client.c (update_entries): If we can't write the file, don't
943*a7c91847Schristos	make it a fatal error.
944*a7c91847Schristos
945*a7c91847SchristosWed Sep 11 12:46:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
946*a7c91847Schristos
947*a7c91847Schristos	* client.c (start_server): Move START_SERVER_RETURNS_SOCKET code
948*a7c91847Schristos	so that it is only run for server_method.  It is wrong for
949*a7c91847Schristos	pserver_method (in which connect_to_pserver sets server_sock).
950*a7c91847Schristos
951*a7c91847Schristos	* login.c (construct_cvspass_filename): If NO_SLASH_AFTER_HOME,
952*a7c91847Schristos	don't put a '/' between $HOME and .cvspass.  Reindent function.
953*a7c91847Schristos	* build_src.com: Add zlib.c, login.c, and scramble.c.
954*a7c91847Schristos
955*a7c91847Schristos	* rcs.c (RCS_deltas): When looking for our branch in ->branches,
956*a7c91847Schristos	check the branch number.
957*a7c91847Schristos	* sanity.sh (multibranch): New tests test for above fix.
958*a7c91847Schristos
959*a7c91847Schristos	* commit.c (precommit_list_proc): Fix typo in last change
960*a7c91847Schristos	(->status to ->type).
961*a7c91847Schristos
962*a7c91847SchristosTue Sep 10 23:05:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
963*a7c91847Schristos
964*a7c91847Schristos	* Makefile.in (DISTFILES): Add build_src.com.
965*a7c91847Schristos	* build_src.com: Add buffer.c, buffer.obj, and zlib.olb.
966*a7c91847Schristos
967*a7c91847SchristosTue Sep 10 20:35:23 1996  Juergen Renz  <renz@conware.de>
968*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
969*a7c91847Schristos
970*a7c91847Schristos	* commit.c (precommit_list_proc): Update to reflect Jul 22 change
971*a7c91847Schristos	in which p->data was changed from a Ctype to a struct
972*a7c91847Schristos	logfile_info *.  This means that commitinfo scripts again get
973*a7c91847Schristos	passed the file	list like they should.
974*a7c91847Schristos
975*a7c91847SchristosTue Sep 10 20:35:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
976*a7c91847Schristos
977*a7c91847Schristos	* client.c (auth_server_port_number): Change name of service from
978*a7c91847Schristos	"cvs" to "cvspserver".  The latter is what the manual has always
979*a7c91847Schristos	recommended, and it is also officially registered with IANA.
980*a7c91847Schristos
981*a7c91847SchristosTue Sep 10 11:12:42 1996  Mark A. Solinski <markso@mcs.com>
982*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
983*a7c91847Schristos
984*a7c91847Schristos	* client.c (socket_buffer_output): Change ifdef VMS to ifdef
985*a7c91847Schristos	SEND_NEVER_PARTIAL.
986*a7c91847Schristos	(start_server): Change ifdef VMS to ifdef START_SERVER_RETURNS_SOCKET.
987*a7c91847Schristos
988*a7c91847SchristosTue Sep 10 17:15:21 1996  Jim Blandy  <jimb@totoro.cyclic.com>
989*a7c91847Schristos
990*a7c91847Schristos	* client.c (auth_server_port_number): Look up "cvs" in the
991*a7c91847Schristos 	services database, and use the value it returns; fall back to
992*a7c91847Schristos	CVS_AUTH_PORT if no entry is present.
993*a7c91847Schristos	(connect_to_pserver): Use the correct port number in any error
994*a7c91847Schristos	messages.
995*a7c91847Schristos
996*a7c91847SchristosTue Sep 10 11:12:42 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
997*a7c91847Schristos
998*a7c91847Schristos	* sanity.sh (newb): New test newb-123j0 tests for another "cvs
999*a7c91847Schristos	status" case.
1000*a7c91847Schristos
1001*a7c91847SchristosSun Sep  8 15:20:37 1996  Ian Lance Taylor  <ian@cygnus.com>
1002*a7c91847Schristos
1003*a7c91847Schristos	* rcs.c (RCS_checkout): Clarify handling of options parameter.
1004*a7c91847Schristos
1005*a7c91847Schristos	* rcs.c (RCS_checkout): Free buffer allocated by RCS_deltas.
1006*a7c91847Schristos
1007*a7c91847SchristosSat Sep  7 21:28:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1008*a7c91847Schristos
1009*a7c91847Schristos	* main.c (struct cmd): Add comment concerning recognizing unique
1010*a7c91847Schristos	abbreviations.
1011*a7c91847Schristos
1012*a7c91847SchristosFri Sep  6 22:31:52 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1013*a7c91847Schristos
1014*a7c91847Schristos	* rcs.c (RCS_checkout): Fix indentation.
1015*a7c91847Schristos
1016*a7c91847SchristosFri Sep  6 11:48:08 1996  Ian Lance Taylor  <ian@cygnus.com>
1017*a7c91847Schristos
1018*a7c91847Schristos	* rcs.c (RCS_checkout): Replace tag parameter with rev and nametag
1019*a7c91847Schristos	parameters.  Change all callers.
1020*a7c91847Schristos	* rcs.h (RCS_checkout): Update declaration.
1021*a7c91847Schristos
1022*a7c91847Schristos	* rcs.c (RCS_getversion): Replace return_both parameter with
1023*a7c91847Schristos	simple_tag.  Change all callers.
1024*a7c91847Schristos	(RCS_gettag): Likewise.
1025*a7c91847Schristos	* rcs.h (RCS_getversion, RCS_gettag): Update declarations.
1026*a7c91847Schristos	* vers_ts.c (Version_TS): Simplify vn_tag initialization using new
1027*a7c91847Schristos	simple_tag rather than old return_both.
1028*a7c91847Schristos	* cvs.h (struct vers_ts): Clarify vn_tag comment a bit.
1029*a7c91847Schristos
1030*a7c91847Schristos	* main.c (usg): Only mention -x if ENCRYPTION is defined.
1031*a7c91847Schristos	(main): Mention ENCRYPTION define in comment for -x.
1032*a7c91847Schristos	* client.h (krb_encrypt_buffer_initialize): Only declare if
1033*a7c91847Schristos	ENCRYPTION is defined.
1034*a7c91847Schristos	* client.c (start_server): Only encrypt if ENCRYPTION is defined.
1035*a7c91847Schristos	* server.c (serve_kerberos_encrypt): Only define if ENCRYPTION is
1036*a7c91847Schristos	defined.
1037*a7c91847Schristos	(requests): Only include Kerberos-encrypt is ENCRYPTION is
1038*a7c91847Schristos	defined.
1039*a7c91847Schristos	(krb_encrypt_*): Only define if ENCRYPTION is defined.
1040*a7c91847Schristos
1041*a7c91847SchristosThu Sep  5 17:32:39 1996  Ian Lance Taylor  <ian@cygnus.com>
1042*a7c91847Schristos
1043*a7c91847Schristos	* sanity.sh: When testing remote, use :ext: instead of :server: to
1044*a7c91847Schristos 	match change made earlier today.
1045*a7c91847Schristos
1046*a7c91847SchristosThu Sep  5 13:57:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1047*a7c91847Schristos
1048*a7c91847Schristos	* client.c (start_tcp_server): Don't allow :kserver: to mean
1049*a7c91847Schristos	"direct tcp" (root.c already takes care of this, but I want to
1050*a7c91847Schristos	make it clear what is intended, and not intended, here).
1051*a7c91847Schristos	(start_server): Handle ext_method (external rsh program) and
1052*a7c91847Schristos	server_method (internal rsh client) separately.
1053*a7c91847Schristos	* client.c: Take rsh_pid and start_rsh_server out of
1054*a7c91847Schristos	RSH_NOT_TRANSPARENT ifdefs.  It is useful for things like SSH on NT.
1055*a7c91847Schristos	* cvs.h (CVSmethod), root.c (method_names): Add ext_method.
1056*a7c91847Schristos	* root.c (parse_cvsroot): Recognize "ext" access method.
1057*a7c91847Schristos	If access method is not specified and CVSROOT contains a colon,
1058*a7c91847Schristos	use either ext_method or server_method depending on
1059*a7c91847Schristos	RSH_NOT_TRANSPARENT.
1060*a7c91847Schristos
1061*a7c91847SchristosThu Sep  5 00:09:49 1996  Ian Lance Taylor  <ian@cygnus.com>
1062*a7c91847Schristos
1063*a7c91847Schristos	* rcs.c (RCS_checkout): Remove flags parameter, which was not
1064*a7c91847Schristos	serving any useful purpose.  Change all callers.
1065*a7c91847Schristos	* rcscmds.c (RCS_exec_checkout): Likewise.
1066*a7c91847Schristos
1067*a7c91847Schristos	* rcscmds.c (RCS_exec_checkout): Rename from RCS_checkout.  Change
1068*a7c91847Schristos	all callers.
1069*a7c91847Schristos	* rcs.c (RCS_checkout): Rename from RCS_fast_checkout.  Change all
1070*a7c91847Schristos	callers.
1071*a7c91847Schristos
1072*a7c91847SchristosWed Sep  4 14:42:28 1996  Ian Lance Taylor  <ian@cygnus.com>
1073*a7c91847Schristos
1074*a7c91847Schristos	* rcs.c (RCS_fast_checkout): If tracing, output a message.  If
1075*a7c91847Schristos	noexec, and workfile is not NULL, just return immediately.  Assert
1076*a7c91847Schristos	that sout is RUN_TTY or workfile is NULL, rather than using it as
1077*a7c91847Schristos	a conditional.  Replace found variable with two variables--gothead
1078*a7c91847Schristos	and keywords--reflecting what it actually means.
1079*a7c91847Schristos
1080*a7c91847Schristos	* rcs.c (RCS_fast_checkout): Don't handle the case of workfile set
1081*a7c91847Schristos	to "".
1082*a7c91847Schristos	* rcscmds.c (RCS_checkout): Likewise.
1083*a7c91847Schristos	* checkin.c (Checkin): Pass explicit file name, not "", to
1084*a7c91847Schristos	RCS_fast_checkout.
1085*a7c91847Schristos	* update.c (join_file): Likewise.
1086*a7c91847Schristos	* commit.c (remove_file): Pass explicit file name to
1087*a7c91847Schristos	RCS_fast_checkout and RCS_checkin.
1088*a7c91847Schristos
1089*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Always continue after seeing
1090*a7c91847Schristos	RCSSYMBOLS, even if the value is NULL.  Clear the NODELTA flag
1091*a7c91847Schristos	after setting delta_pos.
1092*a7c91847Schristos	(free_rcsnode_contents): New static function.
1093*a7c91847Schristos	(freercsnode): Call free_rcsnode_contents.
1094*a7c91847Schristos	(RCS_fast_checkout): If NODELTA is set, reparse the RCS file.
1095*a7c91847Schristos	(RCS_settag): New function.  Change all callers to old function.
1096*a7c91847Schristos	(RCS_deltag, RCS_setbranch): Likewise.
1097*a7c91847Schristos	(RCS_lock, RCS_unlock): Likewise.
1098*a7c91847Schristos	(RCS_deltas): If NODELTA is set, reparse the RCS file.
1099*a7c91847Schristos	* rcs.h (NODELTA): Define.
1100*a7c91847Schristos	(RCS_settag, RCS_deltag, RCS_setbranch): Declare.
1101*a7c91847Schristos	(RCS_lock, RCS_unlock): Declare.
1102*a7c91847Schristos	* rcscmds.c (RCS_exec_settag): Rename from RCS_settag.  Don't
1103*a7c91847Schristos	check tag against BASE or HEAD (now done in new RCS_settag).
1104*a7c91847Schristos	(RCS_exec_deltag): Rename from RCS_deltag.
1105*a7c91847Schristos	(RCS_exec_setbranch): Rename from RCS_setbranch.
1106*a7c91847Schristos	(RCS_exec_lock): Rename from RCS_lock.
1107*a7c91847Schristos	(RCS_exec_unlock): Rename from RCS_unlock.
1108*a7c91847Schristos	* cvs.h: Update declarations of renamed functions.
1109*a7c91847Schristos	* checkin.c (Checkin): Remove rcscopy variable (no longer needed
1110*a7c91847Schristos	because of change in RCS_unlock call).
1111*a7c91847Schristos	* commit.c: Include <assert.h>.
1112*a7c91847Schristos	(remove_file): Update RCSNode path if the file is renamed.
1113*a7c91847Schristos	(unblockrcs): Change rcs parameter to RCSNode.  Change all
1114*a7c91847Schristos	callers.
1115*a7c91847Schristos	(fixbranch): Likewise.
1116*a7c91847Schristos	(lock_RCS): Likewise.  Don't call RCS_parsercsfile.
1117*a7c91847Schristos	(checkaddfile): Update RCSNode path if the file is renamed.  After
1118*a7c91847Schristos	creating a new file, call RCS_parse.  When stubbing a branch, use
1119*a7c91847Schristos	the passed in RCSNode if there is one, rather than calling
1120*a7c91847Schristos	RCS_Parse.  Don't call RCS_Parse again after calling RCS_settag.
1121*a7c91847Schristos	Free head and magicrev even if RCS_settag fails.
1122*a7c91847Schristos	* import.c (add_rev): Change rcs parameter to RCSNode.  Change all
1123*a7c91847Schristos	callers.
1124*a7c91847Schristos	(add_tag): Likewise.
1125*a7c91847Schristos
1126*a7c91847Schristos	* rcs.c (RCS_fast_checkout): Amend last patch: if workfile is
1127*a7c91847Schristos	NULL, but sout is not NULL, use sout in error message.
1128*a7c91847Schristos
1129*a7c91847SchristosWed Sep  4 13:35:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1130*a7c91847Schristos
1131*a7c91847Schristos	* version.c: Increment version number to 1.8.8.
1132*a7c91847Schristos
1133*a7c91847Schristos	* Version 1.8.7.
1134*a7c91847Schristos
1135*a7c91847SchristosWed Sep  4 1996  Jim Kingdon  <kingdon@cyclic.com>
1136*a7c91847Schristos
1137*a7c91847Schristos	* client.c (send_file_names): Look for the name to send in
1138*a7c91847Schristos	Entries even if the file doesn't exist; we should send the
1139*a7c91847Schristos	name as it appears in Entries in the "rm foo; cvs update FOO"
1140*a7c91847Schristos	case.
1141*a7c91847Schristos
1142*a7c91847SchristosTue Sep  3 20:50:11 1996  William A. Hoffman  <hoffman@albirio.crd.ge.com>
1143*a7c91847Schristos
1144*a7c91847Schristos	* rcs.c (RCS_fast_checkout): If workfile is NULL, don't try to
1145*a7c91847Schristos	include it in error message.
1146*a7c91847Schristos
1147*a7c91847SchristosMon Aug 26 12:27:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1148*a7c91847Schristos
1149*a7c91847Schristos	* mkmodules.c (mkdir_if_needed): Move from here ...
1150*a7c91847Schristos	* filesubr.c, cvs.h (mkdir_if_needed): ... to here.  Have it
1151*a7c91847Schristos	return a value saying whether the directory was created.
1152*a7c91847Schristos	* client.c (call_in_directory), edit.c (edit_fileproc): Call it.
1153*a7c91847Schristos
1154*a7c91847SchristosFri Aug 23 19:19:44 1996  Ian Lance Taylor  <ian@cygnus.com>
1155*a7c91847Schristos
1156*a7c91847Schristos	* checkin.c (Checkin): Copy rcs parameter in case it is freed when
1157*a7c91847Schristos	finfo->rcs is freed.
1158*a7c91847Schristos
1159*a7c91847SchristosFri Aug 23 14:55:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1160*a7c91847Schristos
1161*a7c91847Schristos	* remove.c (remove_fileproc): Revert change of 23 Aug to print
1162*a7c91847Schristos	getwd and finfo->file in message.  The latter is redundant with
1163*a7c91847Schristos	fullname and the former is redundant with fullname and the working
1164*a7c91847Schristos	directory when CVS was invoked.  The implementation was also
1165*a7c91847Schristos	lacking as the getwd call could overflow the buffer.
1166*a7c91847Schristos
1167*a7c91847SchristosFri Aug 23 18:40:35 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1168*a7c91847Schristos
1169*a7c91847Schristos	* remove.c (cvsremove): fix remove -f for client/server
1170*a7c91847Schristos
1171*a7c91847SchristosFri Aug 23 11:28:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1172*a7c91847Schristos
1173*a7c91847Schristos	* wrapper.c, cvs.h: Remove conflictHook field of WrapperEntry,
1174*a7c91847Schristos	WRAP_CONFLICT in WrapMergeHas, and 'c' option in wrap_add; they
1175*a7c91847Schristos	are never used.
1176*a7c91847Schristos
1177*a7c91847SchristosFri Aug 23 11:41:46 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1178*a7c91847Schristos
1179*a7c91847Schristos	* server.c (switch_to_user): use #ifdef SETXID_SUPPORT instead of
1180*a7c91847Schristos 	#if SETXID_SUPPORT
1181*a7c91847Schristos
1182*a7c91847SchristosThu Aug 22 14:18:43 1996  Ian Lance Taylor  <ian@cygnus.com>
1183*a7c91847Schristos
1184*a7c91847Schristos	* checkin.c (Checkin): Remove local variable xfinfo.  Reparse the
1185*a7c91847Schristos	RCS file after the checkin.  Call RCS_fast_checkout rather than
1186*a7c91847Schristos	RCS_checkout.
1187*a7c91847Schristos
1188*a7c91847Schristos	* cvs.h (RCS_FLAGS_LOCK): Don't define.
1189*a7c91847Schristos	(RCS_FLAGS_*): Adjust values to fill in hole left by removal of
1190*a7c91847Schristos	RCS_FLAGS_LOCK.
1191*a7c91847Schristos	* rcs.c (RCS_fast_checkout): Don't check for RCS_FLAGS_LOCK.
1192*a7c91847Schristos	* rcscmds.c (RCS_checkout): Likewise.
1193*a7c91847Schristos	* commit.c (commit_fileproc): Remove rcs local variable.  If
1194*a7c91847Schristos	status is T_MODIFIED, require that finfo->rcs be set, call
1195*a7c91847Schristos	Lock_RCS directly, and don't call locate_rcs.  If adding to a tag,
1196*a7c91847Schristos	require that finfo->rcs be set, and don't call locate_rcs.
1197*a7c91847Schristos	(remove_file): Remove rcs local variable.  Require that finfo->rcs
1198*a7c91847Schristos	be set.  Don't call locate_rcs.  Don't pass RCS_FLAGS_LOCK to
1199*a7c91847Schristos	RCS_checkout; use RCS_lock instead.  Call RCS_fast_checkout rather
1200*a7c91847Schristos	than RCS_checkout.
1201*a7c91847Schristos	(unlockrcs): Use a single rcs parameter rather than two parameters
1202*a7c91847Schristos	for file and repository.  Change all callers.  Don't call
1203*a7c91847Schristos	locate_rcs.
1204*a7c91847Schristos	(fixbranch): Likewise.
1205*a7c91847Schristos	(lockrcsfile): Remove; no more callers.
1206*a7c91847Schristos
1207*a7c91847SchristosTue Aug 20 10:13:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1208*a7c91847Schristos
1209*a7c91847Schristos	* buffer.c, rcs.c: Don't use inline.  It wasn't being used in a
1210*a7c91847Schristos	loop or any such place where it would matter for performance, and
1211*a7c91847Schristos	it was a (minor) portability hassle.
1212*a7c91847Schristos
1213*a7c91847Schristos	* server.c (server): Change "Dummy argument 0" to "cvs server" and
1214*a7c91847Schristos	add comment explaining why.
1215*a7c91847Schristos
1216*a7c91847Schristos	* rcs.c (linevector_add): Add comment regarding changing \n to \0.
1217*a7c91847Schristos
1218*a7c91847SchristosTue Aug 20 09:19:19 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1219*a7c91847Schristos
1220*a7c91847Schristos	* checkout.c (checkout_proc): Call RCS_parse to get the default
1221*a7c91847Schristos 	options from the RCS file.
1222*a7c91847Schristos
1223*a7c91847Schristos	* sanity.sh (binfiles): Add tests 5.5b0 and 5.5b1 for the above fix
1224*a7c91847Schristos
1225*a7c91847SchristosMon Aug 19 18:13:32 1996  Ian Lance Taylor  <ian@cygnus.com>
1226*a7c91847Schristos
1227*a7c91847Schristos	* rcs.c (linevector_init): Make inline.  Set lines_alloced to 0,
1228*a7c91847Schristos	not 10.  Set vector to NULL.
1229*a7c91847Schristos	(linevector_add): Remove assertion that lines_alloced is greater
1230*a7c91847Schristos	than zero.  Initialize lines_alloced if necessary.
1231*a7c91847Schristos	(linevector_copy): Initialize lines_alloced if necessary.
1232*a7c91847Schristos	(linevector_free): Only free vector if it is not NULL.
1233*a7c91847Schristos	(RCS_deltas): Always call linevector_init and linevector_free on
1234*a7c91847Schristos	curlines, headlines, and trunklines.
1235*a7c91847Schristos 	(RCS_fast_checkout): Remove #if 0 around code that calls
1236*a7c91847Schristos	RCS_deltas.
1237*a7c91847Schristos
1238*a7c91847SchristosFri Aug 16 17:52:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1239*a7c91847Schristos
1240*a7c91847Schristos	* rcs.c (linevector_add): Handle zero length correctly.
1241*a7c91847Schristos	(RCS_deltas): In RCS_FETCH case, the data is in headlines, not
1242*a7c91847Schristos	curlines.
1243*a7c91847Schristos	(RCS_fast_checkout): Update comment about RCS_deltas: the
1244*a7c91847Schristos	testsuite now passes.
1245*a7c91847Schristos
1246*a7c91847Schristos	* rcs.c (RCS_fully_parse): Use the length of the value, rather
1247*a7c91847Schristos	than assuming that there are no embedded zero bytes.
1248*a7c91847Schristos	(struct line): Add len field.
1249*a7c91847Schristos	(linevector_add): Add len parameter.  Change all callers.  Use
1250*a7c91847Schristos	len, rather than assuming that there are no embedded zero bytes.
1251*a7c91847Schristos	Set the len field in new lines.
1252*a7c91847Schristos	(RCS_deltas): Use the length of the value, rather than assuming
1253*a7c91847Schristos	that there are no embedded zero bytes.  Use the line length when
1254*a7c91847Schristos	outputting it and when copying it.
1255*a7c91847Schristos	(RCS_fast_checkout): Update comment about RCS_deltas to remove
1256*a7c91847Schristos	note about supporting zero bytes correctly.
1257*a7c91847Schristos
1258*a7c91847SchristosThu Aug 15 23:38:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1259*a7c91847Schristos
1260*a7c91847Schristos	* commit.c, import.c: Revise comments regarding the fact that we
1261*a7c91847Schristos	call start_server before do_editor.
1262*a7c91847Schristos
1263*a7c91847SchristosThu Aug 15 11:30:55 1996  Ian Lance Taylor  <ian@cygnus.com>
1264*a7c91847Schristos
1265*a7c91847Schristos	* server.c: Include <sys/socket.h> if AUTH_SERVER_SUPPORT.
1266*a7c91847Schristos	(pserver_authenticate_connection): Set SO_KEEPALIVE on
1267*a7c91847Schristos	STDIN_FILENO.
1268*a7c91847Schristos	(kserver_authenticate_connection): Likewise.
1269*a7c91847Schristos
1270*a7c91847SchristosThu Aug 15 10:26:41 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1271*a7c91847Schristos
1272*a7c91847Schristos	* server.c (switch_to_user): Fix previous patch to compile it for
1273*a7c91847Schristos 	both HAVE_KERBEROS and AUTH_SERVER_SUPPORT
1274*a7c91847Schristos
1275*a7c91847SchristosWed Aug 14 14:02:00 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1276*a7c91847Schristos
1277*a7c91847Schristos	* server.c (check_password): if available use getspnam instead of
1278*a7c91847Schristos 	getpwnam when reading system passwords.  This allows cvs pserver
1279*a7c91847Schristos 	to run on systems with shadow passwords.
1280*a7c91847Schristos	(switch_to_user): new static function.  Contains the extracted
1281*a7c91847Schristos 	common tail of kserver_authenticate_connection and
1282*a7c91847Schristos 	pserver_authenticate_connection.  If compiled with SETXID_SUPPORT,
1283*a7c91847Schristos 	honor the setgid bit if it is set.
1284*a7c91847Schristos	(check_repository_password): turn into a static function
1285*a7c91847Schristos	(check_password): ditto
1286*a7c91847Schristos	(pserver_authenticate_connection): little code cleanup
1287*a7c91847Schristos
1288*a7c91847SchristosWed Aug 14 01:07:10 1996  Greg A. Woods  <woods@most.weird.com>
1289*a7c91847Schristos
1290*a7c91847Schristos	* history.c (history): apply fix posted by Steven Meyer
1291*a7c91847Schristos	<steve@blacksmith.com> to info-cvs to correct handling of '-D'
1292*a7c91847Schristos	argument.  Message-Id: <9608122335.AA01385@nijel.blacksmith.com>
1293*a7c91847Schristos
1294*a7c91847SchristosTue Aug 13 13:42:36 1996  Ian Lance Taylor  <ian@cygnus.com>
1295*a7c91847Schristos
1296*a7c91847Schristos	* log.c (cvslog): Remove comment about calling rlog.
1297*a7c91847Schristos	* rcs.c (translate_symtag): Correct typo in comment (l ist ->
1298*a7c91847Schristos	list).
1299*a7c91847Schristos	* server.c (server_write_entries): Add omitted word (lists) in
1300*a7c91847Schristos	comment.
1301*a7c91847Schristos
1302*a7c91847SchristosTue Aug 13 14:01:49 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1303*a7c91847Schristos
1304*a7c91847Schristos	* wrapper.c (wrap_rcsoption): fix memory access error
1305*a7c91847Schristos
1306*a7c91847Schristos	* rcs.c (RCS_fast_checkout): fix memory access error (triggered
1307*a7c91847Schristos	by an empty option string)
1308*a7c91847Schristos
1309*a7c91847SchristosMon Aug 12 17:45:15 1996  Jim Kingdon  (unknown@beezley)
1310*a7c91847Schristos
1311*a7c91847Schristos	* buffer.c, zlib.c: If EIO is not defined, try to define it.
1312*a7c91847Schristos
1313*a7c91847SchristosMon Aug 12 10:33:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1314*a7c91847Schristos
1315*a7c91847Schristos	* import.c (comtable): Add comment concerning applicability with
1316*a7c91847Schristos	RCS 5.7.
1317*a7c91847Schristos
1318*a7c91847Schristos	* server.c (server): If TMPDIR is not an absolute pathname, give
1319*a7c91847Schristos	an error.
1320*a7c91847Schristos
1321*a7c91847SchristosMon Aug 12 10:34:43 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1322*a7c91847Schristos
1323*a7c91847Schristos	* main.c: add synonym "ann" for "annotate" again
1324*a7c91847Schristos
1325*a7c91847SchristosSun Aug 11 17:54:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1326*a7c91847Schristos
1327*a7c91847Schristos	* rcs.h (RCS_RLOG): Removed; no longer used.
1328*a7c91847Schristos
1329*a7c91847SchristosFri Aug  9 20:16:20 1996  Ian Lance Taylor  <ian@cygnus.com>
1330*a7c91847Schristos
1331*a7c91847Schristos	* server.c (dirswitch): Open the Entries file with mode "a" rather
1332*a7c91847Schristos 	than "w+".
1333*a7c91847Schristos	(server_write_entries): Open the Entries file with mode "a" rather
1334*a7c91847Schristos	than "w".
1335*a7c91847Schristos	* sanity.sh (modules): Add topfiles module and 155cN tests for
1336*a7c91847Schristos	above patch.
1337*a7c91847Schristos
1338*a7c91847SchristosFri Aug  9 12:11:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1339*a7c91847Schristos
1340*a7c91847Schristos	* main.c (cmd): Add comment regarding synonyms.
1341*a7c91847Schristos
1342*a7c91847SchristosThu Aug  8 14:40:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1343*a7c91847Schristos
1344*a7c91847Schristos	* main.c: Remove synonyms for "cvs annotate".  Synonyms create
1345*a7c91847Schristos	user confusion.
1346*a7c91847Schristos
1347*a7c91847SchristosThu Aug  8 10:24:04 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1348*a7c91847Schristos
1349*a7c91847Schristos	* main.c: Revert (undocumented) change to rename the cvs history
1350*a7c91847Schristos	alias "his" to "hist"
1351*a7c91847Schristos
1352*a7c91847SchristosWed Aug  7 18:26:25 1996  Ian Lance Taylor  <ian@cygnus.com>
1353*a7c91847Schristos
1354*a7c91847Schristos	* server.c (cvs_output): Change str parameter to const char *.
1355*a7c91847Schristos	Correct loop to print from p, not str.
1356*a7c91847Schristos	(cvs_outerr): Likewise.
1357*a7c91847Schristos	* cvs.h (cvs_output, cvs_outerr): Update declarations.
1358*a7c91847Schristos
1359*a7c91847Schristos	* server.c (receive_partial_file): Read and discard remaining file
1360*a7c91847Schristos	data on a write error.
1361*a7c91847Schristos	(serve_modified): Discard data while size > 0, not >=.
1362*a7c91847Schristos
1363*a7c91847SchristosWed Aug  7 15:11:40 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1364*a7c91847Schristos
1365*a7c91847Schristos	* main.c (cmds): Add some aliases for "annotate".
1366*a7c91847Schristos	(usg): Improve usage message text
1367*a7c91847Schristos	(cmd_synonyms): New function to print the command synonym list
1368*a7c91847Schristos	(main): Add new option --help-synonyms
1369*a7c91847Schristos
1370*a7c91847SchristosWed Aug  7 00:07:31 1996  Ian Lance Taylor  <ian@cygnus.com>
1371*a7c91847Schristos
1372*a7c91847Schristos	Keep track of subdirectories in the Entries file.
1373*a7c91847Schristos	* cvs.h (enum ent_type): Define.
1374*a7c91847Schristos	(struct entnode): Add type field.
1375*a7c91847Schristos	(struct stickydirtag): Add subdirs field.
1376*a7c91847Schristos	(Subdirs_Known, Subdir_Register, Subdir_Deregister): Declare.
1377*a7c91847Schristos	(ignore_files): Update declaration for new parameter.
1378*a7c91847Schristos	(FILESDONEPROC): Add entries parameter.
1379*a7c91847Schristos	(DIRENTPROC, DIRLEAVEPROC): Likewise.
1380*a7c91847Schristos	* entries.c (Entnode_Create): Add type parameter.  Change all
1381*a7c91847Schristos	callers.
1382*a7c91847Schristos	(write_ent_proc): If closure is not NULL, treat it as a pointer to
1383*a7c91847Schristos	an int, and set it to 1 if a node is seen which is not ENT_FILE.
1384*a7c91847Schristos	(write_entries): If subdirectory information is known, but no
1385*a7c91847Schristos	subdirectories were written, write an unadorned D to the file.
1386*a7c91847Schristos	(Scratch_Entry): Write an R command to Entries.Log.  Don't rewrite
1387*a7c91847Schristos	the Entries file.
1388*a7c91847Schristos	(Register): Set entfilename.  Write an A command rather than an
1389*a7c91847Schristos	unadorned entries line.
1390*a7c91847Schristos	(fgetentent): Add cmd and sawdir parameters.  Change all callers.
1391*a7c91847Schristos	If CMD is not NULL, expect and return a single character command.
1392*a7c91847Schristos	Handle an initial D by setting the type to ENT_SUBDIR.
1393*a7c91847Schristos	(fputentent): Output an initial D for an ENT_SUBDIR entry.
1394*a7c91847Schristos	(Entries_Open): Handle removal commands in Entries.Log.  Record
1395*a7c91847Schristos	whether subdirectory information is known in the list private
1396*a7c91847Schristos	data.
1397*a7c91847Schristos	(Subdirs_Known): New function.
1398*a7c91847Schristos	(subdir_record): New static function.
1399*a7c91847Schristos	(Subdir_Register, Subdir_Deregister): New functions.
1400*a7c91847Schristos	* find_names.c (add_entries_proc): Skip entries that are not
1401*a7c91847Schristos	ENT_FILE.
1402*a7c91847Schristos	(add_subdir_proc): New static function.
1403*a7c91847Schristos	(register_subdir_proc): New static function.
1404*a7c91847Schristos	(Find_Directories): If the Entries file has subdirectory
1405*a7c91847Schristos	information, get the directories out of it.  Otherwise, call
1406*a7c91847Schristos	find_dirs, and add the information to the Entries file.
1407*a7c91847Schristos	* recurse.c (struct frame_and_entries): Define.
1408*a7c91847Schristos	(do_recursion): Don't call Entries_Close until after processing
1409*a7c91847Schristos	dirlist.  Pass entries to filesdoneproc.  Pass a frame_and_entries
1410*a7c91847Schristos	structure to do_dir_proc via walklist.
1411*a7c91847Schristos	(do_dir_proc): Expect a frame_and_entries structure in closure,
1412*a7c91847Schristos	not a recursion_frame.  Pass entries to direntproc and
1413*a7c91847Schristos	dirleaveproc.
1414*a7c91847Schristos	* ignore.c (ignore_files): Add entries parameter.  Change all
1415*a7c91847Schristos	callers.  If we have subdirectory information, check for
1416*a7c91847Schristos	directories in entries.
1417*a7c91847Schristos	* add.c (add): If client_active, call Subdir_Register on each new
1418*a7c91847Schristos	directory.
1419*a7c91847Schristos	(add_directory): Add entries parameter.  Change caller.  Call
1420*a7c91847Schristos	Subdir_Register.
1421*a7c91847Schristos	* checkout.c (build_dirs_and_chdir): Call Subdir_Register.
1422*a7c91847Schristos	* client.c (call_in_directory): Call Subdir_Register for newly
1423*a7c91847Schristos	created directories.  Call Subdirs_Known or Find_Directories after
1424*a7c91847Schristos	calling Entries_Open.
1425*a7c91847Schristos	(process_prune_candidates): Call Subdir_Deregister.
1426*a7c91847Schristos	* commit.c (findmaxrev): Skip entries that are not ENT_FILE.
1427*a7c91847Schristos	* server.c (dirswitch): Call Subdir_Register.
1428*a7c91847Schristos	* update.c (update_dirent_proc): Call Subdir_Register.
1429*a7c91847Schristos	(update_dirleave_proc): Call Subdir_Deregister.
1430*a7c91847Schristos	* Several files: Change direntproc, dirleaveproc, and
1431*a7c91847Schristos	filesdoneproc routines to expect an entries argument.
1432*a7c91847Schristos
1433*a7c91847Schristos	* rcs.c (translate_symtag): New static function.
1434*a7c91847Schristos	(RCS_gettag): Use translate_symtag rather than RCS_symbols.
1435*a7c91847Schristos	(RCS_nodeisbranch, RCS_whatbranch): Likewise.
1436*a7c91847Schristos
1437*a7c91847SchristosTue Aug  6 15:36:09 1996  Ian Lance Taylor  <ian@cygnus.com>
1438*a7c91847Schristos
1439*a7c91847Schristos	Finish the conversion of cvs log so that it never invokes rlog.
1440*a7c91847Schristos	* log.c (struct log_data): Remove dorlog field.  Add nameonly,
1441*a7c91847Schristos	header, long_header, statelist, and authorlist fields.
1442*a7c91847Schristos	(log_usage): Remove rlog-options.  Add -R, -h, -t, -b, -s, -w.
1443*a7c91847Schristos	(cvslog): Don't clear opterr.  Handle -h, -R, -s, -t, -w.  If an
1444*a7c91847Schristos	unrecognized option is seen, call usage.
1445*a7c91847Schristos	(log_parse_list): New static function.
1446*a7c91847Schristos	(log_fileproc): Remove code that called rlog.  Check nameonly,
1447*a7c91847Schristos	header, and long_header fields in log_data.
1448*a7c91847Schristos	(log_version_requested): Check statelist and authorlist.
1449*a7c91847Schristos
1450*a7c91847Schristos	* log.c (struct datelist): Define.
1451*a7c91847Schristos	(struct log_data): Add datelist and singledatelist fields.
1452*a7c91847Schristos	(log_usage): Add -d.
1453*a7c91847Schristos	(cvslog): Handle -d.
1454*a7c91847Schristos	(log_parse_date): New static function.
1455*a7c91847Schristos	(log_fileproc): Do special single date handling.
1456*a7c91847Schristos	(log_version_requested): Check datelist and singledatelist.
1457*a7c91847Schristos	(log_fix_singledate): New static function.
1458*a7c91847Schristos
1459*a7c91847SchristosMon Aug  5 23:48:16 1996  Ian Lance Taylor  <ian@cygnus.com>
1460*a7c91847Schristos
1461*a7c91847Schristos	* log.c (struct option_revlist): Define.
1462*a7c91847Schristos	(struct revlist): Define.
1463*a7c91847Schristos	(struct log_data): Add default_branch and revlist fields.
1464*a7c91847Schristos	(struct log_data_and_rcs): Define.
1465*a7c91847Schristos	(log_usage): Add -N and -r.
1466*a7c91847Schristos	(cvslog): Handle -N and -r.
1467*a7c91847Schristos	(log_parse_revlist): New static function.
1468*a7c91847Schristos	(log_fileproc): Call log_expand_revlist and log_free_revlist.
1469*a7c91847Schristos	Pass log_data_and_rcs structure to log_count_print via walklist.
1470*a7c91847Schristos	(log_expand_revlist, log_free_revlist): New static functions.
1471*a7c91847Schristos	(log_version_requested): New static function.
1472*a7c91847Schristos	(log_count_print): New static function.
1473*a7c91847Schristos	(log_tree): Add log_data and revlist parameter.  Change all
1474*a7c91847Schristos	callers.
1475*a7c91847Schristos	(log_abranch): Likewise.
1476*a7c91847Schristos	(log_version): Likewise.  Call log_version_requested.
1477*a7c91847Schristos	(version_compare): New static function.
1478*a7c91847Schristos	* sanity.sh (log): New tests for -r, -b, and -N options to log.
1479*a7c91847Schristos
1480*a7c91847SchristosSun Aug  4 11:19:30 1996  Ian Lance Taylor  <ian@cygnus.com>
1481*a7c91847Schristos
1482*a7c91847Schristos	Handle simple cases of cvs log without invoking rlog.
1483*a7c91847Schristos	* log.c (struct log_data): Define.
1484*a7c91847Schristos	(cvslog): Use getopt to parse options.  Set up a log_data
1485*a7c91847Schristos	structure, and pass it to start_recursion.
1486*a7c91847Schristos	(log_fileproc): Get arguments form callerdat rather than static
1487*a7c91847Schristos	variables.  In simple cases, print the log information directly,
1488*a7c91847Schristos	rather than invoking rlog.
1489*a7c91847Schristos	(log_symbol, log_count, log_tree): New static functions.
1490*a7c91847Schristos	(log_abranch, log_version, log_branch): New static functions.
1491*a7c91847Schristos	* rcs.h (struct rcsnode): Add other field.
1492*a7c91847Schristos	(struct rcsversnode): Add other field.
1493*a7c91847Schristos	(RCS_fully_parse): Declare.
1494*a7c91847Schristos	* rcs.c (getrcsrev): Move declaration to start of file.
1495*a7c91847Schristos 	(RCS_reparsercsfile): Add all parameter.  Change all callers.
1496*a7c91847Schristos	(RCS_fully_parse): New function.
1497*a7c91847Schristos	(freercsnode): Free other list.
1498*a7c91847Schristos	(rcsvers_delproc): Free other list.
1499*a7c91847Schristos	* hash.h (enum ntype): Add RCSFIELD.
1500*a7c91847Schristos	* hash.c (nodetypestring): Handle RCSFIELD.
1501*a7c91847Schristos
1502*a7c91847SchristosSat Aug  3 19:39:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1503*a7c91847Schristos
1504*a7c91847Schristos	* log.c (cvslog): Correct position of CLIENT_SUPPORT #endif.
1505*a7c91847Schristos
1506*a7c91847SchristosThu Jul 25 12:06:45 1996  Ian Lance Taylor  <ian@cygnus.com>
1507*a7c91847Schristos
1508*a7c91847Schristos	* update.c (join_file): If merging a branch, and the branch
1509*a7c91847Schristos	revision does not exist, just return without doing anything.
1510*a7c91847Schristos	* sanity.sh (join): Add cases file7 and file8 to test above
1511*a7c91847Schristos	patch.
1512*a7c91847Schristos
1513*a7c91847Schristos	* server.c (cvsencrypt): Rename from encrypt, to avoid conflict
1514*a7c91847Schristos	with NetBSD unistd.h.  Rename all uses.
1515*a7c91847Schristos
1516*a7c91847Schristos	* server.c (krb_encrypt_buffer_output): Fix typo in comment (reply
1517*a7c91847Schristos	-> replay).
1518*a7c91847Schristos
1519*a7c91847SchristosThu Jul 25 10:37:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1520*a7c91847Schristos
1521*a7c91847Schristos	* server.c (krb_encrypt_buffer_output): Fix typo in comment
1522*a7c91847Schristos	(krb_recv_auth -> krb_recvauth).
1523*a7c91847Schristos
1524*a7c91847SchristosWed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1525*a7c91847Schristos
1526*a7c91847Schristos	* lock.c (set_lock): Adjust comment regarding why we call stat.
1527*a7c91847Schristos
1528*a7c91847SchristosWed Jul 24 15:06:08 1996  Ian Lance Taylor  <ian@cygnus.com>
1529*a7c91847Schristos
1530*a7c91847Schristos	Add encryption support over a Kerberos connection.
1531*a7c91847Schristos	* main.c (usg): Mention -x if CLIENT_SUPPORT.
1532*a7c91847Schristos	(main): Handle -x.
1533*a7c91847Schristos	* client.h (encrypt): Declare.
1534*a7c91847Schristos	(krb_encrypt_buffer_initialize): Declare.
1535*a7c91847Schristos	* client.c (kblock, sched): New static variables if
1536*a7c91847Schristos	HAVE_KERBEROS.
1537*a7c91847Schristos	(start_tcp_server): Remove sched local variable.  Copy
1538*a7c91847Schristos	cred.session into kblock.
1539*a7c91847Schristos	(start_server): Turn on encryption if requested.
1540*a7c91847Schristos	* server.c (kblock, sched): New static variables if
1541*a7c91847Schristos	HAVE_KERBEROS.
1542*a7c91847Schristos	(serve_kerberos_encrypt): New static function.
1543*a7c91847Schristos	(requests): Add "Kerberos-encrypt" if HAVE_KERBEROS.
1544*a7c91847Schristos	(kserver_authenticate_connection): Remove sched local variable.
1545*a7c91847Schristos	Copy auth.session into kblock.
1546*a7c91847Schristos	(encrypt): New global variable.
1547*a7c91847Schristos	(struct krb_encrypt_buffer): Define.
1548*a7c91847Schristos	(krb_encrypt_buffer_initialize): New function.
1549*a7c91847Schristos	(krb_encrypt_buffer_input): New static function.
1550*a7c91847Schristos	(krb_encrypt_buffer_output): New static function.
1551*a7c91847Schristos	(krb_encrypt_buffer_flush): New static function.
1552*a7c91847Schristos	(krb_encrypt_buffer_block): New static function.
1553*a7c91847Schristos	(krb_encrypt_buffer_shutdown): New static function.
1554*a7c91847Schristos
1555*a7c91847SchristosWed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1556*a7c91847Schristos
1557*a7c91847Schristos	* recurse.c (do_recursion): Add comment about calling
1558*a7c91847Schristos	Name_Repository in !(which & W_LOCAL) case.
1559*a7c91847Schristos
1560*a7c91847Schristos	* expand_path.c (expand_variable): Fix typo (varaible -> variable).
1561*a7c91847Schristos
1562*a7c91847SchristosTue Jul 23 15:05:01 1996  Ian Lance Taylor  <ian@cygnus.com>
1563*a7c91847Schristos
1564*a7c91847Schristos	* update.c (update_fileproc): In T_REMOVE_ENTRY case, only call
1565*a7c91847Schristos	server_scratch_entry_only if ts_user is NULL.
1566*a7c91847Schristos	* sanity.sh (death2): Add death2-20 test for above patch.
1567*a7c91847Schristos
1568*a7c91847Schristos	* diff.c (diff_fileproc): If a file is not in the working
1569*a7c91847Schristos	directory, check that the tag is present before warning that no
1570*a7c91847Schristos	comparison is possible.
1571*a7c91847Schristos	* sanity.sh (death2): Add death2-diff-9 and death2-diff-10 tests
1572*a7c91847Schristos	for above patch.
1573*a7c91847Schristos
1574*a7c91847SchristosTue Jul 23 12:05:42 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1575*a7c91847Schristos
1576*a7c91847Schristos	* tag.c (tag_check_valid): Fix indentation.
1577*a7c91847Schristos
1578*a7c91847Schristos	* client.c (handle_e): Flush stdout before writing to stderr.
1579*a7c91847Schristos	(handle_m): Flush stderr before writing to stdout.
1580*a7c91847Schristos
1581*a7c91847SchristosFri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
1582*a7c91847Schristos
1583*a7c91847Schristos	* client.c: Added NO_CLIENT_GZIP_PROCESS to deal with the MacOS
1584*a7c91847Schristos	client where Gzip-stream is supported, but "gzip-file-contents" is
1585*a7c91847Schristos	not.
1586*a7c91847Schristos
1587*a7c91847SchristosFri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
1588*a7c91847Schristos
1589*a7c91847Schristos	* repos.c: Fixed recent patch which added plain fopen rather than
1590*a7c91847Schristos	CVS_FOPEN
1591*a7c91847Schristos
1592*a7c91847SchristosMon Jul 22 22:25:53 1996  Ian Lance Taylor  <ian@cygnus.com>
1593*a7c91847Schristos
1594*a7c91847Schristos	* logmsg.c (tag): New static variable.
1595*a7c91847Schristos	(setup_tmpfile): Don't print the prefix before calling fmt_proc.
1596*a7c91847Schristos	Free tag if it is set.
1597*a7c91847Schristos	(find_type): Get type from logfile_info struct.
1598*a7c91847Schristos	(fmt_proc): Likewise.  Print tag information.  Handle all prefix
1599*a7c91847Schristos	printing.
1600*a7c91847Schristos	(revision): Remove static variable.
1601*a7c91847Schristos	(Update_Logfile): Remove xrevision parameter.  Change all
1602*a7c91847Schristos	callers.
1603*a7c91847Schristos	(title_proc): Get type from logfile_info struct.
1604*a7c91847Schristos	(logfile_write): Remove revision parameter.  Change all callers.
1605*a7c91847Schristos	* cvs.h (struct logfile_info): Define.
1606*a7c91847Schristos	(Update_Logfile): Update prototype.
1607*a7c91847Schristos	* commit.c (find_fileproc): Set logfile_info information.
1608*a7c91847Schristos	(check_fileproc): Likewise.
1609*a7c91847Schristos	(commit_filesdoneproc): Don't call ParseTag.
1610*a7c91847Schristos	(update_delproc): Free logfile_info information.
1611*a7c91847Schristos	* add.c (add_directory): Set logfile_info information.
1612*a7c91847Schristos	* import.c (import): Likewise.
1613*a7c91847Schristos
1614*a7c91847Schristos	* tag.c (tag_check_valid): The special BASE and HEAD tags are
1615*a7c91847Schristos	always valid.
1616*a7c91847Schristos	* sanity.sh (basica): Add basica-6.3 test for above patch.
1617*a7c91847Schristos
1618*a7c91847SchristosMon Jul 22 14:41:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1619*a7c91847Schristos
1620*a7c91847Schristos	* update.c (merge_file): Pass 0 not NULL to checkout_file (20 Jul
1621*a7c91847Schristos	96 change changed other calls to checkout_file but missed this one).
1622*a7c91847Schristos
1623*a7c91847SchristosSat Jul 20 00:21:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1624*a7c91847Schristos
1625*a7c91847Schristos	* update.c (join_file): Check whether the target of the merge is
1626*a7c91847Schristos	the same as the working file revision before checking whether the
1627*a7c91847Schristos	file was added during the merge.
1628*a7c91847Schristos
1629*a7c91847Schristos	* update.c (scratch_file): Remove existing parameters, and add a
1630*a7c91847Schristos	single parameter of type struct file_info.  Change all callers.
1631*a7c91847Schristos	Warn if unlink_file fails.
1632*a7c91847Schristos	(checkout_file): Remove resurrecting_out parameter.  Add adding
1633*a7c91847Schristos	parameter.  Change all callers.  Remove joining code.
1634*a7c91847Schristos	(join_file): Remove resurrecting parameter.  Rewrite to handle
1635*a7c91847Schristos	joining dead or added revisions.
1636*a7c91847Schristos	* classify.c (Classify_File): If there is no user file, and the
1637*a7c91847Schristos	RCS file is dead, return T_UPTODATE rather than T_CHECKOUT.
1638*a7c91847Schristos	* checkout.c (checkout_proc): Set W_ATTIC if there is a join tag.
1639*a7c91847Schristos	* sanity.sh (join): New set of tests for above patches.
1640*a7c91847Schristos	(death): Adjust tests 86, 89, 89a, 92.1c, 95 for above patches.
1641*a7c91847Schristos	(import): Adjust test 113 for above patches.
1642*a7c91847Schristos
1643*a7c91847SchristosThu Jul 18 19:24:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1644*a7c91847Schristos
1645*a7c91847Schristos	* lock.c: Add comment explaining what locks are for.  Also discuss
1646*a7c91847Schristos	various changes to locking which get proposed from time to time.
1647*a7c91847Schristos
1648*a7c91847Schristos	* sanity.sh (death2): Change a number of test names from death-*
1649*a7c91847Schristos	to death2-*.
1650*a7c91847Schristos
1651*a7c91847Schristos	* wrapper.c (wrap_setup): Don't look in repository if client_active.
1652*a7c91847Schristos	* wrapper.c, cvs.h (wrap_send): New function.
1653*a7c91847Schristos	* update.c (update), import.c (import): Call it.
1654*a7c91847Schristos	* sanity.sh (binwrap): Do binwrap tests for remote as well as
1655*a7c91847Schristos	local; tests for above fixes.
1656*a7c91847Schristos
1657*a7c91847Schristos	* wrapper.c: Add a few FIXME comments.
1658*a7c91847Schristos
1659*a7c91847SchristosThu Jul 18 18:43:50 1996  Ian Lance Taylor  <ian@cygnus.com>
1660*a7c91847Schristos
1661*a7c91847Schristos	* sanity.sh (patch): Fix names of a couple of tests to say patch
1662*a7c91847Schristos	rather than death2.
1663*a7c91847Schristos
1664*a7c91847SchristosThu Jul 18 16:19:21 1996  Bill Bumgarner <bbum@friday.com>
1665*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
1666*a7c91847Schristos
1667*a7c91847Schristos	* add.c (add), import.c (add_rcs_file): Check for options from
1668*a7c91847Schristos	wrappers and use them if specified.
1669*a7c91847Schristos	* cvs.h (WrapMergeHas): Add WRAP_RCSOPTION.
1670*a7c91847Schristos	* wrapper.c (WrapperEntry): Add rcsOption field.
1671*a7c91847Schristos	(wrap_add): Allow a single character argument to an option.
1672*a7c91847Schristos	(wrap_add): Handle -k option.
1673*a7c91847Schristos	(wrap_add_entry): Handle rcsOption field.
1674*a7c91847Schristos	(wrap_name_has): Handle WRAP_RCSOPTION.
1675*a7c91847Schristos	* wrapper.c, cvs.h (wrap_rcsoption): New function.
1676*a7c91847Schristos	* add.c, import.c, wrapper.c: Minor beautification (mostly
1677*a7c91847Schristos	removing trailing spaces).
1678*a7c91847Schristos	* sanity.sh (binwrap): New tests test for this feature.
1679*a7c91847Schristos
1680*a7c91847SchristosWed Jul 17 10:14:20 1996  Ian Lance Taylor  <ian@cygnus.com>
1681*a7c91847Schristos
1682*a7c91847Schristos	* checkout.c (checkout): Remove extraneous else accidentally
1683*a7c91847Schristos	inserted in last checkin.
1684*a7c91847Schristos
1685*a7c91847SchristosTue Jul 16 11:37:41 1996  Ian Lance Taylor  <ian@cygnus.com>
1686*a7c91847Schristos
1687*a7c91847Schristos	* sanity.sh (import): Use quoting to avoid expansion of RCS ID
1688*a7c91847Schristos	strings.
1689*a7c91847Schristos
1690*a7c91847Schristos	* sanity.sh (import): Use dotest to examine the output of test
1691*a7c91847Schristos 	113, and the actual contents of the file in test 116.
1692*a7c91847Schristos
1693*a7c91847Schristos	* update.c (join_file): Always skip rcsmerge if the two revisions
1694*a7c91847Schristos 	are the same (the old code always did the rcsmerge when two -j
1695*a7c91847Schristos	options were specified).
1696*a7c91847Schristos
1697*a7c91847Schristos	* checkout.c (history_name): New static variable.
1698*a7c91847Schristos	(checkout): Permit both tag and date to be specified.  Set
1699*a7c91847Schristos	history_name.
1700*a7c91847Schristos	(checkout_proc): Use history_name when calling history_write.
1701*a7c91847Schristos	* rcs.c (RCS_getversion): If both tag and date are set, use
1702*a7c91847Schristos	RCS_whatbranch to get the branch revision number of a symbolic
1703*a7c91847Schristos	tag.
1704*a7c91847Schristos	(RCS_getdatebranch): If the branch revision itself is early
1705*a7c91847Schristos	enough, then use it if the first branch is not early enough.  Add
1706*a7c91847Schristos	comment for invalid RCS file.  Don't bother to check for NULL
1707*a7c91847Schristos	before calling xstrdup, since xstrdup checks anyhow.
1708*a7c91847Schristos
1709*a7c91847Schristos	* client.h (file_gzip_level): Declare.
1710*a7c91847Schristos	* client.c (file_gzip_level): Define.
1711*a7c91847Schristos	(start_server): Don't set gzip_level to zero after sending
1712*a7c91847Schristos	Gzip-stream command.  Set file_gzip_level after sending
1713*a7c91847Schristos	gzip-file-contents command.
1714*a7c91847Schristos	(send_modified): Use file_gzip_level rather than gzip_level.
1715*a7c91847Schristos	* server.c (server_updated): Likewise.
1716*a7c91847Schristos	(serve_gzip_contents): Likewise.
1717*a7c91847Schristos
1718*a7c91847Schristos	* sanity.sh (patch): New tests.  Test remote CVS handling of
1719*a7c91847Schristos	unpatchable files.
1720*a7c91847Schristos
1721*a7c91847Schristos	* sanity.sh (death2): Accept a '.' in the temporary file name
1722*a7c91847Schristos	printed by diff.
1723*a7c91847Schristos
1724*a7c91847Schristos	* rcscmds.c (RCS_checkin): Remove noerr parameter.  Change all
1725*a7c91847Schristos	callers.
1726*a7c91847Schristos	* cvs.h (RCS_checkin): Update declaration.
1727*a7c91847Schristos	* commit.c (remove_file): Pass RCS_FLAGS_QUIET to RCS_checkin.
1728*a7c91847Schristos
1729*a7c91847Schristos	* history.c (history): Cast sizeof to int to use correct type in
1730*a7c91847Schristos	error printf string.
1731*a7c91847Schristos	(report_hrecs): Cast strlen result to int to use correct type in
1732*a7c91847Schristos	printf string.
1733*a7c91847Schristos
1734*a7c91847Schristos	* server.c (cvs_flusherr): Correct typo in comment.
1735*a7c91847Schristos
1736*a7c91847Schristos	* rcs.c (getrcskey): Hoist three constant strcmp calls out of the
1737*a7c91847Schristos	value reading loop.
1738*a7c91847Schristos
1739*a7c91847Schristos	* fileattr.c (fileattr_get): Change parameter types from char * to
1740*a7c91847Schristos 	const char *.
1741*a7c91847Schristos	(fileattr_get0, fileattr_modify, fileattr_set): Likewise.
1742*a7c91847Schristos	(fileattr_newfile): Likewise.
1743*a7c91847Schristos	* fileattr.h (fileattr_get): Update declaration.
1744*a7c91847Schristos	(fileattr_get0, fileattr_modify, fileattr_set): Likewise.
1745*a7c91847Schristos	(fileattr_newfile): Likewise.
1746*a7c91847Schristos
1747*a7c91847SchristosThu May 16 11:12:18 1996  Mark P. Immel <immel@radix.net>
1748*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
1749*a7c91847Schristos
1750*a7c91847Schristos	* client.h, client.c, checkout.c (client_send_expansions):
1751*a7c91847Schristos	Pass an additional parameter indicating where the checkout is
1752*a7c91847Schristos	to occur, to avoid passing the wrong information to send_files().
1753*a7c91847Schristos	* sanity.sh (basicb): New test basicb-cod-1 tests for above fix.
1754*a7c91847Schristos
1755*a7c91847SchristosMon Jul 15 18:26:56 1996  Ian Lance Taylor  <ian@cygnus.com>
1756*a7c91847Schristos
1757*a7c91847Schristos	* recurse.c (do_recursion): Require a repository before calling
1758*a7c91847Schristos	Find_Names.
1759*a7c91847Schristos	* repos.c (Name_Repository): Remove sanity checks which spend time
1760*a7c91847Schristos	examining the filesystem.
1761*a7c91847Schristos
1762*a7c91847SchristosMon Jul 15 1996  Jim Kingdon  <kingdon@cyclic.com>
1763*a7c91847Schristos
1764*a7c91847Schristos	* client.c (send_file_names): Send file names as they appear
1765*a7c91847Schristos	in CVS/Entries, rather than as specified (in cases where they
1766*a7c91847Schristos	might differ in case).
1767*a7c91847Schristos	(send_fileproc): Use file name from CVS/Entries (vers->entdata->user)
1768*a7c91847Schristos	rather than file name as specified (finfo->file) when available.
1769*a7c91847Schristos
1770*a7c91847SchristosSun Jul 14 15:39:44 1996  Mark Eichin  <eichin@cygnus.com>
1771*a7c91847Schristos			  and Ian Lance Taylor  <ian@cygnus.com>
1772*a7c91847Schristos
1773*a7c91847Schristos	Improve diff -N handling of nonexistent tags and removed files.
1774*a7c91847Schristos	* diff.c (enum diff_file): New definition for whole file, moving
1775*a7c91847Schristos	unnamed enum out of diff_fileproc, renaming DIFF_NEITHER to
1776*a7c91847Schristos	DIFF_DIFFERENT, and adding DIFF_SAME.
1777*a7c91847Schristos	(diff): Look through the repository even if only one revision is
1778*a7c91847Schristos	given.
1779*a7c91847Schristos	(diff_fileproc): Change empty_file to be enum diff_file.  If there
1780*a7c91847Schristos	is no user revision, but there is a repository file, treat it as a
1781*a7c91847Schristos	removed file.  Pass empty_file to diff_file_nodiff, and set it
1782*a7c91847Schristos	from the return value.
1783*a7c91847Schristos	(diff_file_nodiff): Change return type to enum diff_file.  Replace
1784*a7c91847Schristos	just_set_rev parameter with enum diff_file empty_file parameter.
1785*a7c91847Schristos	Change handling of a missing tag to return an enum diff_file value
1786*a7c91847Schristos	if empty_files is set, rather than reporting an error.  Free tmp
1787*a7c91847Schristos	if xcmp returns 0.
1788*a7c91847Schristos	* sanity.sh (death2): Add tests for above patches.
1789*a7c91847Schristos
1790*a7c91847SchristosSat Jul 13 19:11:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1791*a7c91847Schristos
1792*a7c91847Schristos	* rcs.c (annotate): In sending options to server, reverse sense of
1793*a7c91847Schristos	test so that we send -f iff -f was specified, rather than iff -f was
1794*a7c91847Schristos	not specified.
1795*a7c91847Schristos
1796*a7c91847SchristosFri Jul 12 20:23:54 1996  Greg A. Woods  <woods@most.weird.com>
1797*a7c91847Schristos
1798*a7c91847Schristos	* zlib.c (compress_buffer_input): add a couple of casts for
1799*a7c91847Schristos	uses of z_stream's next_in and next_out
1800*a7c91847Schristos
1801*a7c91847SchristosFri Jul 12 18:55:26 1996  Ian Lance Taylor  <ian@cygnus.com>
1802*a7c91847Schristos
1803*a7c91847Schristos	* zlib.c: New file.
1804*a7c91847Schristos	* client.c (log_buffer_block): Call set_block and set_nonblock,
1805*a7c91847Schristos	rather than lb->buf->block.
1806*a7c91847Schristos	(log_buffer_shutdown): New static function.
1807*a7c91847Schristos	(get_responses_and_close): Call buf_shutdown on to_server and
1808*a7c91847Schristos	from_server.
1809*a7c91847Schristos	(start_server): If "Gzip-stream" is supported, use it rather than
1810*a7c91847Schristos	"gzip-file-contents".
1811*a7c91847Schristos	* server.c (print_error): Call buf_flush rather than
1812*a7c91847Schristos	buf_send_output.
1813*a7c91847Schristos	(print_pending_error, serve_valid_responses): Likewise.
1814*a7c91847Schristos	(serve_expand_modules, serve_valid_requests): Likewise.
1815*a7c91847Schristos	(do_cvs_command): Call buf_flush rather than buf_send_output
1816*a7c91847Schristos	before the fork, and in the parent after the child has completed.
1817*a7c91847Schristos	In the child, set buf_to_net and buf_from_net to NULL.
1818*a7c91847Schristos	(serve_gzip_stream): New static function.
1819*a7c91847Schristos	(requests): Add "Gzip-stream".
1820*a7c91847Schristos	(server_cleanup): Don't do anything with buf_to_net if it is
1821*a7c91847Schristos	NULL.  Call buf_flush rather than buf_send_output.  Call
1822*a7c91847Schristos	buf_shutdown on buf_to_net and buf_from_net.  Call error for an
1823*a7c91847Schristos	malloc failure rather than buf_output to buf_to_net.
1824*a7c91847Schristos	* buffer.h (struct buffer): Add shutdown field.
1825*a7c91847Schristos	(buf_initialize): Update declaration for new shutdown parameter.
1826*a7c91847Schristos	(compress_buffer_initialize): Declare.
1827*a7c91847Schristos	(buf_shutdown): Declare.
1828*a7c91847Schristos	* buffer.c (buf_initialize): Add shutdown parameter.  Change all
1829*a7c91847Schristos	callers.
1830*a7c91847Schristos	(buf_shutdown): New function.
1831*a7c91847Schristos	* Makefile.in (SOURCES): Add zlib.c
1832*a7c91847Schristos	(OBJECTS): Add zlib.o.
1833*a7c91847Schristos	($(PROGS)): Depend upon ../zlib/libz.a.
1834*a7c91847Schristos	(cvs): Link against ../zlib/libz.a.
1835*a7c91847Schristos	(zlib.o): New target.
1836*a7c91847Schristos
1837*a7c91847SchristosFri Jul 12 1996  Jim Kingdon  <kingdon@cyclic.com>
1838*a7c91847Schristos
1839*a7c91847Schristos	* client.c (log_buffer_input, log_buffer_output): Use size_t
1840*a7c91847Schristos	to avoid Visual C++ signed/unsigned warnings.
1841*a7c91847Schristos
1842*a7c91847SchristosThu Jul 11 22:01:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1843*a7c91847Schristos
1844*a7c91847Schristos	* client.c (handle_f): Reindent.
1845*a7c91847Schristos
1846*a7c91847Schristos	* client.c (mode_to_string, handle_m, handle_e,
1847*a7c91847Schristos	auth_server_port_number, get_responses_and_close), server.c
1848*a7c91847Schristos	(pserver_authenticate_connection, serve_modified,
1849*a7c91847Schristos	serve_enable_unchanged, wait_sig, server_cleanup): Reindent.
1850*a7c91847Schristos	* server.c: Remove #if 0'd block of code above
1851*a7c91847Schristos	check_repository_password; it was yanked out of some unknown
1852*a7c91847Schristos	context and didn't seem to be very useful.
1853*a7c91847Schristos
1854*a7c91847SchristosThu Jul 11 20:10:21 1996  Ian Lance Taylor  <ian@cygnus.com>
1855*a7c91847Schristos
1856*a7c91847Schristos	* server.c (do_cvs_command): Pass new special parameter to
1857*a7c91847Schristos	buf_copy_counted.  If it gets set to -1, send an 'F' response if
1858*a7c91847Schristos	the client supports it, and call cvs_flusherr.
1859*a7c91847Schristos	(cvs_flusherr): New function.
1860*a7c91847Schristos	* cvs.h (cvs_flusherr): Declare.
1861*a7c91847Schristos	* client.c (handle_f): New static function.
1862*a7c91847Schristos	(responses): Add "F".
1863*a7c91847Schristos	* buffer.c (buf_send_special_count): New function.
1864*a7c91847Schristos	(buf_copy_counted): Add special parameter.  Handle negative counts
1865*a7c91847Schristos	specially.
1866*a7c91847Schristos	* buffer.h (buf_send_sepcial_count): Declare.
1867*a7c91847Schristos	(buf_copy_counted): Update declaration.
1868*a7c91847Schristos	* lock.c (lock_wait, lock_obtained): Call cvs_flusherr.
1869*a7c91847Schristos
1870*a7c91847Schristos	Change the client to use the buffer data structure.
1871*a7c91847Schristos	* client.c: Include "buffer.h".
1872*a7c91847Schristos	(to_server): Change to be struct buffer *.
1873*a7c91847Schristos	(to_server_fp): New static variable.
1874*a7c91847Schristos	(from_server): Change to be struct buffer *.
1875*a7c91847Schristos	(from_server_fp): New static variable.
1876*a7c91847Schristos	(from_server_logfile, to_server_logfile): Remove.
1877*a7c91847Schristos	(buf_memory_error): New static function.
1878*a7c91847Schristos	(struct log_buffer): Define.
1879*a7c91847Schristos	(log_buffer_initialize, log_buffer_input): New static functions.
1880*a7c91847Schristos	(log_buffer_output, log_buffer_flush): New static functions.
1881*a7c91847Schristos	(log_buffer_block): New static function.
1882*a7c91847Schristos	(struct socket_buffer): Define if NO_SOCKET_TO_FD.
1883*a7c91847Schristos	(socket_buffer_initialize): New static function if
1884*a7c91847Schristos	NO_SOCKET_TO_FD.
1885*a7c91847Schristos	(socket_buffer_input, socket_buffer_output): Likewise.
1886*a7c91847Schristos	(socket_buffer_flush): Likewise.
1887*a7c91847Schristos	(read_line): Rewrite to use buf_read_line.  Remove eof_ok
1888*a7c91847Schristos	parameter (it was always passed as 0); change all callers.
1889*a7c91847Schristos	(send_to_server): Rewrite to use buf_output.
1890*a7c91847Schristos	(try_read_from_server): Rewrite to use buf_read_data.
1891*a7c91847Schristos	(get_responses_and_close): Use from_server_fp and to_server_fp for
1892*a7c91847Schristos	the streams.  Check buf_empty_p when checking for dying gasps.
1893*a7c91847Schristos	(start_server): Don't set from_server_logfile and
1894*a7c91847Schristos	to_server_logfile; instead, call log_buffer_initialize.  If
1895*a7c91847Schristos	NO_SOCKET_TO_FD and use_socket_style, call
1896*a7c91847Schristos	socket_buffer_initialize; otherwise, call
1897*a7c91847Schristos	stdio_buffer_initialize.
1898*a7c91847Schristos	* buffer.c: Compile if CLIENT_SUPPORT is defined.
1899*a7c91847Schristos	(buf_flush): Fix comment to describe return value.
1900*a7c91847Schristos	(buf_read_line): Add lenp parameter.  Change all callers.  Look
1901*a7c91847Schristos	for a line terminated by \012 rather than \n.
1902*a7c91847Schristos	* buffer.h: Compile if CLIENT_SUPPORT is defined.
1903*a7c91847Schristos	(buf_read_line): Update declaration.
1904*a7c91847Schristos
1905*a7c91847Schristos	* server.c (server): Initialize buf_to_net, buf_from_net,
1906*a7c91847Schristos	saved_output, and saved_outerr before setting error_use_protocol.
1907*a7c91847Schristos	(pserver_authenticate_connection): Don't set error_use_protocol.
1908*a7c91847Schristos	Errors before the authentication is complete aren't handled
1909*a7c91847Schristos	cleanly anyhow.  Change error call after authentication to use
1910*a7c91847Schristos	printf.
1911*a7c91847Schristos
1912*a7c91847SchristosThu Jul 11 1996  Jim Kingdon  <kingdon@cyclic.com>
1913*a7c91847Schristos
1914*a7c91847Schristos	* client.c (start_server): Open logfiles in binary, not text, mode.
1915*a7c91847Schristos
1916*a7c91847SchristosWed Jul 10 19:24:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1917*a7c91847Schristos
1918*a7c91847Schristos	* server.c (print_pending_error, print_error): Remove comments
1919*a7c91847Schristos	about deadlocks; they don't apply here.  Add comments saying
1920*a7c91847Schristos	that these functions must only be called when it is OK to
1921*a7c91847Schristos	send output (which is why the deadlock concern doesn't apply).  The
1922*a7c91847Schristos	comments remain for server_cleanup and serve_valid_responses,
1923*a7c91847Schristos	where they are an example of the "print a message and exit"
1924*a7c91847Schristos	behavior which is noted in cvsclient.texi and which also exists
1925*a7c91847Schristos	places like kserver_authenticate_connection.
1926*a7c91847Schristos
1927*a7c91847SchristosWed Jul 10 18:24:46 1996  Ian Lance Taylor  <ian@cygnus.com>
1928*a7c91847Schristos
1929*a7c91847Schristos	* server.c (print_error): Add comment warning about potential
1930*a7c91847Schristos	deadlock.
1931*a7c91847Schristos	(print_pending_error, serve_valid_responses): Likewise.
1932*a7c91847Schristos	(server_cleanup): Likewise.
1933*a7c91847Schristos	(serve_directory): Don't call buf_send_output.
1934*a7c91847Schristos	(serve_modified, serve_notify, server, cvs_outerr): Likewise.
1935*a7c91847Schristos	(serve_expand_modules): Call buf_send_output.
1936*a7c91847Schristos	(serve_valid_requests): Likewise.
1937*a7c91847Schristos
1938*a7c91847SchristosWed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1939*a7c91847Schristos
1940*a7c91847Schristos	* main.c (main): Print a warning for rlog command.
1941*a7c91847Schristos
1942*a7c91847SchristosWed Jul 10 15:00:55 1996  Ian Lance Taylor  <ian@cygnus.com>
1943*a7c91847Schristos
1944*a7c91847Schristos	Abstract the buffer data structure away from the underlying
1945*a7c91847Schristos	communication medium.
1946*a7c91847Schristos	* buffer.h (struct buffer): Remove fd and output fields.  Add
1947*a7c91847Schristos	input, output, flush, block, and closure fields.
1948*a7c91847Schristos	(buf_initialize, buf_nonio_initialize): Declare.
1949*a7c91847Schristos	(stdio_buffer_initialize, buf_flush): Declare.
1950*a7c91847Schristos	(buf_read_line, buf_read_data): Declare.
1951*a7c91847Schristos	* buffer.c: Include <assert.h>.  Don't include <fcntl.h>.
1952*a7c91847Schristos	(O_NONBLOCK, blocking_error): Don't define.
1953*a7c91847Schristos	(buf_initialize, buf_nonio_initialize): New functions.
1954*a7c91847Schristos	(buf_send_output): Use output function, rather than write.
1955*a7c91847Schristos	(buf_flush): New function.
1956*a7c91847Schristos	(set_nonblock, set_block): Use block function, rather than calling
1957*a7c91847Schristos	fcntl.
1958*a7c91847Schristos	(buf_send_counted): Don't check output.
1959*a7c91847Schristos	(buf_input_data): Call input function, rather than read.
1960*a7c91847Schristos	(buf_read_line, buf_read_data): New functions.
1961*a7c91847Schristos	(buf_copy_lines, buf_copy_counted): Don't check output.
1962*a7c91847Schristos	(stdio_buffer_initialize): New function.
1963*a7c91847Schristos	(stdio_buffer_input, stdio_buffer_output): New static functions.
1964*a7c91847Schristos	(stdio_bufer_flush): New static function.
1965*a7c91847Schristos	* server.c: Include "getline.h".
1966*a7c91847Schristos	(buf_to_net): Change to be a pointer.  Change all uses.
1967*a7c91847Schristos	(protocol, saved_output, saved_outerr): Likewise.
1968*a7c91847Schristos	(buf_from_net): New static variable.
1969*a7c91847Schristos	(no_mem_error, NO_MEM_ERROR, read_line): Remove.
1970*a7c91847Schristos	(struct fd_buffer): Define.
1971*a7c91847Schristos	(fd_buffer_initialize, fd_buffer_input): New static functions.
1972*a7c91847Schristos	(fd_buffer_output, fd_buffer_flush): New static functions.
1973*a7c91847Schristos	(fd_buffer_block): New static function.
1974*a7c91847Schristos	(serve_directory): Call buf_read_line rather than read_line.
1975*a7c91847Schristos	(serve_notify, server): Likewise.
1976*a7c91847Schristos	(receive_partial_file): Call buf_read_data rather than fread.
1977*a7c91847Schristos	(serve_modified): Call buf_read_line rather than read_line.  Call
1978*a7c91847Schristos	buf_read_data rather than fread.
1979*a7c91847Schristos	(do_cvs_command): Initialize buffers with fd_buffer_initialize.
1980*a7c91847Schristos	Change stdoutbuf, stderrbuf, and protocol_inbuf to be pointers.
1981*a7c91847Schristos	(server): Initialize buffers using fd_buffer_initialize,
1982*a7c91847Schristos	stdio_buffer_initialize, and buf_nonio_initialize.
1983*a7c91847Schristos	(check_repository_password): Call getline rather than read_line.
1984*a7c91847Schristos
1985*a7c91847SchristosWed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1986*a7c91847Schristos
1987*a7c91847Schristos	* commit.c (find_fileproc): Add comments describing a few cases
1988*a7c91847Schristos	that we aren't handling.
1989*a7c91847Schristos
1990*a7c91847SchristosTue Jul  9 04:33:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1991*a7c91847Schristos
1992*a7c91847Schristos	* rcs.c (RCS_deltas): New function, created from guts of old
1993*a7c91847Schristos	annotate_fileproc.
1994*a7c91847Schristos	(annotate_fileproc): Call RCS_deltas.
1995*a7c91847Schristos	(RCS_fast_checkout): Call it (commented out for now; see comment
1996*a7c91847Schristos	for reasons).
1997*a7c91847Schristos
1998*a7c91847Schristos	* cvs.h, recurse.c (start_recursion): Add callerdat argument.
1999*a7c91847Schristos	* cvs.h: Add callerdat argument to recursion processor callbacks.
2000*a7c91847Schristos	* recurse.c: add it to struct recursion_frame and pass it to all
2001*a7c91847Schristos	the callbacks.
2002*a7c91847Schristos	* admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
2003*a7c91847Schristos	patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
2004*a7c91847Schristos	watch.c: Update all the functions used as callbacks.  Update calls
2005*a7c91847Schristos	to start_recursion.
2006*a7c91847Schristos	* commit.c (find_filesdoneproc, find_fileproc, find_dirent_proc,
2007*a7c91847Schristos	commit), tag.c (val_fileproc, tag_check_valid): Use callerdat
2008*a7c91847Schristos	instead of a static variable.
2009*a7c91847Schristos
2010*a7c91847Schristos	* recurse.c (do_recursion): Make static and move declaration to here...
2011*a7c91847Schristos	* cvs.h: ...from here.
2012*a7c91847Schristos	* recurse.c (do_recursion): Replace plethora of arguments with
2013*a7c91847Schristos	single struct recursion_frame *.  Change callers.
2014*a7c91847Schristos	* recurse.c: New structure frame_and_file.  Use it and existing
2015*a7c91847Schristos	struct recursion_frame structures to pass info to do_file_proc and
2016*a7c91847Schristos	do_dir_proc.  Remove globals fileproc, filesdoneproc, direntproc,
2017*a7c91847Schristos	dirleaveproc, which, flags, aflag, readlock, and dosrcs.
2018*a7c91847Schristos
2019*a7c91847SchristosTue Jul  9 11:13:29 1996  Ian Lance Taylor  <ian@cygnus.com>
2020*a7c91847Schristos
2021*a7c91847Schristos	* modules.c (do_module): Call cvs_outerr rather than fprintf.
2022*a7c91847Schristos
2023*a7c91847SchristosMon Jul 8 1996  Jim Kingdon  <kingdon@cyclic.com>
2024*a7c91847Schristos
2025*a7c91847Schristos	* rcs.c (RCS_fast_checkout): If -kb is not in use, open the
2026*a7c91847Schristos	working file in text, not binary, mode.
2027*a7c91847Schristos
2028*a7c91847SchristosSun Jul  7 10:36:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2029*a7c91847Schristos
2030*a7c91847Schristos	* rcscmds.c (RCS_settag): Add comment regarding moving check for
2031*a7c91847Schristos	reserved tag names to RCS_check_tag.
2032*a7c91847Schristos
2033*a7c91847Schristos	* rcscmds.c: Add comment regarding librarifying RCS and related
2034*a7c91847Schristos	issues.  This is a lightly edited version of a message I sent to
2035*a7c91847Schristos	the CVS developers and didn't get flamed for, so it would appear
2036*a7c91847Schristos	to be relatively uncontroversial.
2037*a7c91847Schristos
2038*a7c91847Schristos	* rcs.c (annotate): Remove comment suggesting -r option and
2039*a7c91847Schristos	related functionality; it is done.
2040*a7c91847Schristos
2041*a7c91847SchristosFri Jul  5 17:19:57 1996  Ian Lance Taylor  <ian@cygnus.com>
2042*a7c91847Schristos
2043*a7c91847Schristos	* client.c (last_entries): Make file static, rather than function
2044*a7c91847Schristos	static within call_in_directory.
2045*a7c91847Schristos	(get_responses_and_close): If last_entries is not NULL, pass it to
2046*a7c91847Schristos	Entries_Close.
2047*a7c91847Schristos
2048*a7c91847Schristos	* server.c (server_pause_check): Check for errors when reading
2049*a7c91847Schristos	from flowcontrol_pipe.
2050*a7c91847Schristos
2051*a7c91847Schristos	* client.c (call_in_directory): If dir_name is ".", call
2052*a7c91847Schristos	Create_Admin if there is no CVS directory.
2053*a7c91847Schristos	(send_dirent_proc): If there is no CVS subdirectory, pretend that
2054*a7c91847Schristos	the directory does not exist (i.e., don't try to send any files in
2055*a7c91847Schristos	the directory).
2056*a7c91847Schristos	* server.c (dirswitch): If dir is "." in the top level repository,
2057*a7c91847Schristos	add "/." after the Repository entry.
2058*a7c91847Schristos	* sanity.sh (modules): Add test 155b for above patches.
2059*a7c91847Schristos
2060*a7c91847SchristosThu Jul  4 15:57:34 1996  Ian Lance Taylor  <ian@cygnus.com>
2061*a7c91847Schristos
2062*a7c91847Schristos	* server.c (buf_to_net): Move definition near top of file.
2063*a7c91847Schristos	(read_line): Call buf_send_output rather than fflush.
2064*a7c91847Schristos	(print_error): Output information to buf_to_net buffer rather than
2065*a7c91847Schristos	stdout.
2066*a7c91847Schristos	(print_pending_error, serve_valid_responses): Likewise.
2067*a7c91847Schristos	(server_notify, do_cvs_command, server_co): Likewise.
2068*a7c91847Schristos	(expand_proc, serve_expand_modules, server_prog): Likewise.
2069*a7c91847Schristos	(serve_valid_requests, server_cleanup, server): Likewise.
2070*a7c91847Schristos	(server_notify): Don't call fflush on stdout.
2071*a7c91847Schristos	(do_cvs_command): Flush saved_output and saved_outerr to
2072*a7c91847Schristos	buf_to_net before fork.  Flush buf_to_net before fork.  In child,
2073*a7c91847Schristos	just initialize memory_error field of saved_output and
2074*a7c91847Schristos	saved_outerr.
2075*a7c91847Schristos	(server_cleanup): Flush buf_to_net.
2076*a7c91847Schristos	(server): Initialize saved_output and saved_outerr.
2077*a7c91847Schristos	(cvs_output): Add support for error_use_protocol case.
2078*a7c91847Schristos	(cvs_outerr): Likewise.
2079*a7c91847Schristos	* error.c (error): In HAVE_VPRINTF case, just call cvs_outerr.
2080*a7c91847Schristos
2081*a7c91847Schristos	* buffer.c: New file; buffer support functions taken from
2082*a7c91847Schristos	server.c.
2083*a7c91847Schristos	* buffer.h: New file; declarations for buffer.c.
2084*a7c91847Schristos	* server.c: Move buffer support functions into buffer.c and
2085*a7c91847Schristos	buffer.h.  Include "buffer.h".
2086*a7c91847Schristos	* Makefile.in (SOURCES): Add buffer.c.
2087*a7c91847Schristos	(OBJECTS): Add buffer.o.
2088*a7c91847Schristos	(HEADERS): Add buffer.h.
2089*a7c91847Schristos
2090*a7c91847SchristosThu Jul  4 00:12:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2091*a7c91847Schristos
2092*a7c91847Schristos	* version.c: Increment version number to 1.8.6.
2093*a7c91847Schristos
2094*a7c91847SchristosWed Jul  3 22:31:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2095*a7c91847Schristos
2096*a7c91847Schristos	* version.c: Version 1.8.5.
2097*a7c91847Schristos
2098*a7c91847SchristosWed Jul  3 21:51:23 1996  Ian Lance Taylor  <ian@cygnus.com>
2099*a7c91847Schristos
2100*a7c91847Schristos	* server.c (blocking_error): Define macro.
2101*a7c91847Schristos	(buf_send_output, buf_input_data): Use blocking_error rather than
2102*a7c91847Schristos	#ifdef EWOULDBLOCK.
2103*a7c91847Schristos
2104*a7c91847SchristosTue Jul  2 20:38:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2105*a7c91847Schristos
2106*a7c91847Schristos	* add.c (add): Change message which said "version 1.2 of foo.c
2107*a7c91847Schristos	will be resurrected"; the message was confusing because it made
2108*a7c91847Schristos	people think that the old contents of the file would come back
2109*a7c91847Schristos	instead of the contents in the working directory.
2110*a7c91847Schristos
2111*a7c91847SchristosMon Jul  1 01:38:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2112*a7c91847Schristos
2113*a7c91847Schristos	* find_names.c (find_dirs): Add comment explaining why we bother
2114*a7c91847Schristos	with the entries stuff.
2115*a7c91847Schristos
2116*a7c91847SchristosSat Jun 29 20:23:50 1996  Ian Lance Taylor  <ian@cygnus.com>
2117*a7c91847Schristos
2118*a7c91847Schristos	* find_names.c (Find_Directories): Add entries parameter, and pass
2119*a7c91847Schristos	it to find_dirs.
2120*a7c91847Schristos	(find_dirs): Add entries parameter, and skip all files it names.
2121*a7c91847Schristos	* cvs.h (Find_Directories): Update declaration.
2122*a7c91847Schristos	* recurse.c (start_recursion): Pass NULL to Find_Directories.
2123*a7c91847Schristos	(do_recursion): Pass entries to Find_Directories.
2124*a7c91847Schristos
2125*a7c91847Schristos	* client.c (send_modified): Add trace output.
2126*a7c91847Schristos
2127*a7c91847Schristos	* diff.c (diff_fileproc): Always call diff_file_nodiff.  Handle
2128*a7c91847Schristos	dead versions correctly.  Handle diffs between a specified
2129*a7c91847Schristos	revision to a dead file correctly.
2130*a7c91847Schristos	(diff_file_nodiff): Add just_set_rev parameter.  Change caller.
2131*a7c91847Schristos	* patch.c (patch_fileproc): Check for dead versions.
2132*a7c91847Schristos	* sanity.sh (death2): Add tests for above patches.
2133*a7c91847Schristos
2134*a7c91847SchristosFri Jun 28 20:30:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2135*a7c91847Schristos
2136*a7c91847Schristos	For reference, this takes CVS's text segment from 271136 bytes to
2137*a7c91847Schristos	270352 bytes, a saving of 784.  Not as good as I had hoped (oh well,
2138*a7c91847Schristos	the source *seems* simpler at least).
2139*a7c91847Schristos	* checkin.c (Checkin), commit.c (finaladd, remove_file), update.c
2140*a7c91847Schristos	(join_file, checkout_file, patch_file), no_diff.c
2141*a7c91847Schristos	(No_Differences), server.c (server_updated), classify.c
2142*a7c91847Schristos	(Classify_File), vers_ts.c (Version_TS), diff.c (diff_file_nodiff):
2143*a7c91847Schristos	Use a single struct file_info * argument instead of a bunch of
2144*a7c91847Schristos	separate arguments for each of its fields.  Remove local fullname
2145*a7c91847Schristos	emulations.  Use fullname in error messages where file had
2146*a7c91847Schristos	erroneously been used.
2147*a7c91847Schristos	* cvs.h: Update declarations of above functions and move them to
2148*a7c91847Schristos	after the struct file_info declaration.
2149*a7c91847Schristos	* server.h: Update declarations.
2150*a7c91847Schristos	* add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
2151*a7c91847Schristos	commit.c, diff.c, history.c, import.c, update.c, status.c,
2152*a7c91847Schristos	remove.c, rtag.c, tag.c: Change callers.
2153*a7c91847Schristos
2154*a7c91847Schristos	* diff.c (diff): Remove -q and -Q command options.  This somehow
2155*a7c91847Schristos	slipped through the cracks of the general removal of -q and -Q
2156*a7c91847Schristos	command options on Jul 21 1995.  Note that there is no need to
2157*a7c91847Schristos	accept and ignore these options in server mode, like there is for
2158*a7c91847Schristos	some of the commands, because the client has never sent -q and -Q
2159*a7c91847Schristos	command options for "cvs diff".
2160*a7c91847Schristos
2161*a7c91847SchristosFri Jun 28 16:50:18 1996  Ian Lance Taylor  <ian@cygnus.com>
2162*a7c91847Schristos
2163*a7c91847Schristos	* add.c (add): Pass force_tag_match as 1 when calling Version_TS.
2164*a7c91847Schristos	* sanity.sh (death2): Add test for above patch.  Also add
2165*a7c91847Schristos	commented out test for adding a file on a nonbranch tag, which CVS
2166*a7c91847Schristos	currently, mistakenly, permits.
2167*a7c91847Schristos
2168*a7c91847SchristosThu Jun 27 23:20:49 1996  Ian Lance Taylor  <ian@cygnus.com>
2169*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2170*a7c91847Schristos
2171*a7c91847Schristos	* diff.c (longopts): New static array.
2172*a7c91847Schristos	(diff): Handle long options and new short options in diff 2.7.
2173*a7c91847Schristos	Fix arbitrary limit associated with the tmp variable.
2174*a7c91847Schristos	* client.c (send_option_string): Parse options as space separated,
2175*a7c91847Schristos	rather than requiring all options to be single characters.
2176*a7c91847Schristos	* diff.c, options.h.in: Remove CVS_DIFFDATE; the need for it is gone
2177*a7c91847Schristos	now that we have --ifdef (the new behavior is the behavior which
2178*a7c91847Schristos	was the default, which is that -D specifies a date).
2179*a7c91847Schristos
2180*a7c91847SchristosWed Jun 26 22:36:29 1996  Ian Lance Taylor  <ian@cygnus.com>
2181*a7c91847Schristos
2182*a7c91847Schristos	* commit.c (check_fileproc): If there is a tag, permit adding a
2183*a7c91847Schristos 	file even if the RCS file already exists.
2184*a7c91847Schristos	(checkaddfile): If there is a tag, use the file in the regular
2185*a7c91847Schristos 	repository, rather than the Attic, if it exists.
2186*a7c91847Schristos	* sanity.sh (death2): New set of tests for above patch.
2187*a7c91847Schristos
2188*a7c91847SchristosTue Jun 25 23:34:13 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2189*a7c91847Schristos
2190*a7c91847Schristos	* update.c (checkout_file): Add comments about two cases which
2191*a7c91847Schristos	seem fishy.
2192*a7c91847Schristos
2193*a7c91847Schristos	* sanity.sh (basic2, death): Add comments encouraging people to
2194*a7c91847Schristos	stop making these sections bigger and more complex.  I'm not (yet
2195*a7c91847Schristos	at least) trying to figure out the ideal size for a section (my
2196*a7c91847Schristos	current best estimate is 10-20 tests), but surely these
2197*a7c91847Schristos	two sections are pushing the limit, whatever it is.
2198*a7c91847Schristos
2199*a7c91847SchristosTue Jun 25 19:52:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2200*a7c91847Schristos
2201*a7c91847Schristos	* update.c (checkout_file): Rewrite handling of dead files when
2202*a7c91847Schristos	joining.  Avoid space leaks.  Avoid unnecessary file
2203*a7c91847Schristos	resurrections.
2204*a7c91847Schristos	(join_file): Add checks to skip merging a dead revision onto a
2205*a7c91847Schristos	dead revision, and to skip merging a common ancestor onto a dead
2206*a7c91847Schristos	revision.  Move check for non-existent working file after new
2207*a7c91847Schristos	checks.
2208*a7c91847Schristos	* sanity.sh (death): Use dotest for tests 86 and 95, and add test
2209*a7c91847Schristos	death-file2-1, to test above changes.
2210*a7c91847Schristos
2211*a7c91847SchristosMon Jun 24 11:27:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2212*a7c91847Schristos
2213*a7c91847Schristos	* update.c (merge_file): Replace file, repository, entries, and
2214*a7c91847Schristos	update_dir arguments with finfo argument.  Use fullname field
2215*a7c91847Schristos	instead of locally emulating it.
2216*a7c91847Schristos	(update_fileproc): Update caller.
2217*a7c91847Schristos	(merge_file): If -kb is in effect, call it a conflict, leave
2218*a7c91847Schristos	the two versions in the file and the backup file, and tell the
2219*a7c91847Schristos	user to deal with it.  The previous behavior was that the merge
2220*a7c91847Schristos	would fail and then there was no way to do a checkin even once you
2221*a7c91847Schristos	resolved the conflict (short of kludges like moving the file
2222*a7c91847Schristos	aside, updating, and then moving it back).
2223*a7c91847Schristos	* sanity.sh (binfiles): New tests binfiles-con* test for above
2224*a7c91847Schristos	behavior.  Adjust remaining tests to reflect changes in revision
2225*a7c91847Schristos	numbers.
2226*a7c91847Schristos
2227*a7c91847SchristosMon Jun 17 15:11:09 1996  Ian Lance Taylor  <ian@cygnus.com>
2228*a7c91847Schristos
2229*a7c91847Schristos	* sanity.sh (import): Remove sleep.  Requiring it was a bug, and
2230*a7c91847Schristos	it is fixed in the current sources.
2231*a7c91847Schristos
2232*a7c91847SchristosMon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2233*a7c91847Schristos		 and Jim Kingdon  <kingdon@harvey.cyclic.com>
2234*a7c91847Schristos
2235*a7c91847Schristos	* sanity.sh (TMPPWD): Set to real name of /tmp directory.
2236*a7c91847Schristos	(basic2-64, conflicts-126.5): Use ${TMPPWD}.
2237*a7c91847Schristos
2238*a7c91847SchristosMon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2239*a7c91847Schristos
2240*a7c91847Schristos	* rcscmds.c (RCS_checkout): Remove noerr parameter.  Change all
2241*a7c91847Schristos	callers.
2242*a7c91847Schristos	* rcs.c (RCS_fast_checkout): Likewise.
2243*a7c91847Schristos
2244*a7c91847SchristosMon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2245*a7c91847Schristos
2246*a7c91847Schristos	Cleaner implementation of tag locking code added Jun 13 1996:
2247*a7c91847Schristos	* cvs.h (tag_lockdir, tag_unlockdir): Declare.
2248*a7c91847Schristos	* rtag.c (locked_dir, locked_list): Remove.
2249*a7c91847Schristos	(rtag_fileproc): Don't lock here; just call tag_lockdir.
2250*a7c91847Schristos	(rtag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
2251*a7c91847Schristos	* tag.c (locked_dir, locked_list): Move farther down in file.
2252*a7c91847Schristos	(tag_fileproc): Don't lock here; just call tag_lockdir.
2253*a7c91847Schristos	(tag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
2254*a7c91847Schristos	(tag_lockdir, tag_unlockdir): New functions.
2255*a7c91847Schristos
2256*a7c91847SchristosWed Jun 15 07:52:22 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2257*a7c91847Schristos
2258*a7c91847Schristos	* client.c (send_modified, update_entries): Fixed bug which didn't
2259*a7c91847Schristos	handle binary file transfers in BROKEN_READWRITE_CONVERSION.
2260*a7c91847Schristos
2261*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2262*a7c91847Schristos		 and Jim Kingdon  <kingdon@harvey.cyclic.com>
2263*a7c91847Schristos
2264*a7c91847Schristos	* update.c (checkout_file): Call server_scratch_entry_only when a
2265*a7c91847Schristos	non-pertinent file is found that does not exist.
2266*a7c91847Schristos	* sanity.sh (newb): Add test case for above patch.
2267*a7c91847Schristos
2268*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2269*a7c91847Schristos
2270*a7c91847Schristos	* update.c (update_fileproc): Call server_scratch_entry_only when
2271*a7c91847Schristos	handling T_REMOVE_ENTRY on the server.
2272*a7c91847Schristos	* sanity.sh (conflicts2): Remove special case for remote server
2273*a7c91847Schristos	bug fixed by above patch.
2274*a7c91847Schristos
2275*a7c91847SchristosThu Jun 13 21:16:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2276*a7c91847Schristos
2277*a7c91847Schristos	* sanity.sh (basica-9): Update to reflect change to "sufficient
2278*a7c91847Schristos	access" message.
2279*a7c91847Schristos
2280*a7c91847SchristosThu Jun 13 20:13:55 1996  Ian Lance Taylor  <ian@cygnus.com>
2281*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2282*a7c91847Schristos
2283*a7c91847Schristos	* recurse.c, cvs.h (start_recursion): Remove wd_is_repos argument;
2284*a7c91847Schristos	add comment about meaning of which argument.  Use !(which &
2285*a7c91847Schristos	W_LOCAL) instead of wd_is_repos.
2286*a7c91847Schristos	* admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
2287*a7c91847Schristos	patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
2288*a7c91847Schristos	watch.c: Change callers.  This is a semantic change in only two
2289*a7c91847Schristos	cases: (1) tag_check_valid, where repository was not "", and (2)
2290*a7c91847Schristos	the pipeout case in checkout_proc.  In both of those cases the
2291*a7c91847Schristos	previous setting of wd_is_repos did not reflect whether we
2292*a7c91847Schristos	actually were cd'd into the repository.
2293*a7c91847Schristos	* recurse.c (start_recursion): Only check for the CVS subdirectory
2294*a7c91847Schristos	if which & W_LOCAL.
2295*a7c91847Schristos	* sanity.sh (devcom): Add test case fixed by above patch.
2296*a7c91847Schristos
2297*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2298*a7c91847Schristos
2299*a7c91847Schristos	* ignore.c (ignore_files): Skip based on the file name before
2300*a7c91847Schristos	calling lstat.
2301*a7c91847Schristos
2302*a7c91847Schristos	* client.c (last_register_time): New static variable.
2303*a7c91847Schristos	(update_entries): Set last_register_time when calling Register.
2304*a7c91847Schristos	(get_responses_and_close): If the current time is the same as
2305*a7c91847Schristos	last_register_time, sleep for a section to avoid timestamp races.
2306*a7c91847Schristos
2307*a7c91847SchristosThu Jun 13 17:24:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2308*a7c91847Schristos
2309*a7c91847Schristos	* client.c (supported_request): Reindent.
2310*a7c91847Schristos
2311*a7c91847SchristosThu Jun 13 1996  Mark H. Wilkinson  <mhw@minster.york.ac.uk>
2312*a7c91847Schristos
2313*a7c91847Schristos	* options.h.in, mkmodules.c: Corrections to allow compilation of
2314*a7c91847Schristos	non-client-server version.
2315*a7c91847Schristos
2316*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2317*a7c91847Schristos
2318*a7c91847Schristos	* tag.c (tag_check_valid_join): New function.
2319*a7c91847Schristos	* cvs.h (tag_check_valid_join): Declare.
2320*a7c91847Schristos	* checkout.c (join_tags_validated): New static variable.
2321*a7c91847Schristos	(checkout_proc): Check validity of join tags.
2322*a7c91847Schristos	* update.c (update): Likewise.
2323*a7c91847Schristos
2324*a7c91847Schristos	* tag.c (tag_check_valid): Correct sizeof CVSROOTADM_HISTORY to
2325*a7c91847Schristos	use CVSROOTADM_VALTAGS.
2326*a7c91847Schristos
2327*a7c91847Schristos	* lock.c (Writer_Lock): If we called lock_wait to wait for a lock,
2328*a7c91847Schristos	then call lock_obtained when we get it.
2329*a7c91847Schristos	(set_lock): Likewise.
2330*a7c91847Schristos	(lock_obtained): New static function.
2331*a7c91847Schristos
2332*a7c91847SchristosThu Jun 13 13:55:38 1996  Ian Lance Taylor  <ian@cygnus.com>
2333*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2334*a7c91847Schristos
2335*a7c91847Schristos	* main.c (main): If we can't read cvs root, don't say "you don't
2336*a7c91847Schristos	have sufficient access"; just print the message from errno.  It
2337*a7c91847Schristos	might be "No such file or directory" or something else for which
2338*a7c91847Schristos	"you don't have sufficient access" doesn't make any sense.
2339*a7c91847Schristos
2340*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2341*a7c91847Schristos
2342*a7c91847Schristos	* commit.c (remove_file): Pass noerr as 0 to RCS_checkout.
2343*a7c91847Schristos
2344*a7c91847SchristosThu Jun 13 12:55:56 1996  Ian Lance Taylor  <ian@cygnus.com>
2345*a7c91847Schristos
2346*a7c91847Schristos	* patch.c: Initialize rev1_validated and rev2_validated to 0, not 1.
2347*a7c91847Schristos
2348*a7c91847SchristosThu Jun 13 12:55:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2349*a7c91847Schristos
2350*a7c91847Schristos	* rtag.c (locked_dir): Revise comments regarding locking; the rtag
2351*a7c91847Schristos	and tag situations are different (changing from readlocking one
2352*a7c91847Schristos	directory at a time to writelocking one directory at a time does
2353*a7c91847Schristos	not do everything we might want, but it does fix simultaneous tags
2354*a7c91847Schristos	and it doesn't make anything worse).
2355*a7c91847Schristos
2356*a7c91847SchristosThu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2357*a7c91847Schristos
2358*a7c91847Schristos	Prevent simultaneous tag operations from interfering with each
2359*a7c91847Schristos	other.
2360*a7c91847Schristos	* rtag.c (rtag_proc): Pass rtag_filesdoneproc to start_recursion,
2361*a7c91847Schristos	and pass readlock as 0.
2362*a7c91847Schristos	(locked_dir, locked_list): New static variables.
2363*a7c91847Schristos	(rtag_fileproc): Write lock the repository if it is not already
2364*a7c91847Schristos	locked.
2365*a7c91847Schristos	(rtag_filesdoneproc): New static function to unlock the
2366*a7c91847Schristos	repository.
2367*a7c91847Schristos	* tag.c (tag): Pass tag_filesdoneproc to start_recursion, and pass
2368*a7c91847Schristos	readlock as 0.
2369*a7c91847Schristos	(locked_dir, locked_list): New static variables.
2370*a7c91847Schristos	(tag_fileproc): Write lock the repository if it is not already
2371*a7c91847Schristos	locked.
2372*a7c91847Schristos	(tag_filesdoneproc): New static function.
2373*a7c91847Schristos
2374*a7c91847SchristosThu Jun 13 11:42:25 1996  Mike Sutton <mws115@llcoolj.dayton.saic.com>
2375*a7c91847Schristos
2376*a7c91847Schristos	* sanity.sh: Allow digits in usernames.
2377*a7c91847Schristos
2378*a7c91847SchristosWed Jun 12 16:23:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2379*a7c91847Schristos
2380*a7c91847Schristos	* client.c (send_modified, update_entries): Reindent and add
2381*a7c91847Schristos	comments to BROKEN_READWRITE_CONVERSION code.
2382*a7c91847Schristos
2383*a7c91847SchristosWed Jun 12 16:23:03 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2384*a7c91847Schristos
2385*a7c91847Schristos	* client.c (send_modified, update_entries): Add
2386*a7c91847Schristos	BROKEN_READWRITE_CONVERSION code.
2387*a7c91847Schristos
2388*a7c91847SchristosMon Jun 10 20:03:16 1996  J.T. Conklin  <jtc@cygnus.com>
2389*a7c91847Schristos
2390*a7c91847Schristos	* rcs.c (RCS_gettag): No longer set p to NULL if rcs is also NULL.
2391*a7c91847Schristos  	rcs will never be null, thanks to the assertion at top of function.
2392*a7c91847Schristos
2393*a7c91847SchristosMon Jun 10 16:28:14 1996  Ian Lance Taylor  <ian@cygnus.com>
2394*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2395*a7c91847Schristos
2396*a7c91847Schristos	* main.c (main): Ignore CVS/Root file when doing an import.
2397*a7c91847Schristos
2398*a7c91847SchristosFri Jun  7 18:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2399*a7c91847Schristos
2400*a7c91847Schristos	* status.c (status_fileproc, tag_list_proc): Use cvs_output rather
2401*a7c91847Schristos	than writing to stdout directly.
2402*a7c91847Schristos
2403*a7c91847SchristosWed Jun  5 13:54:57 1996  Ian Lance Taylor  <ian@cygnus.com>
2404*a7c91847Schristos
2405*a7c91847Schristos	* rcs.c (force_tag_match, tag, date): New static variables.
2406*a7c91847Schristos	(annotate_fileproc): Redo the loop to look for the version
2407*a7c91847Schristos	specified by tag/date/force_tag_match, and handle branches
2408*a7c91847Schristos	correctly.
2409*a7c91847Schristos	(annotate_usage): Mention -f, -r, and -D.
2410*a7c91847Schristos	(annotate): Handle -f, -r, and -D.
2411*a7c91847Schristos
2412*a7c91847SchristosTue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
2413*a7c91847Schristos
2414*a7c91847Schristos	* rcs.c (annotate_fileproc): Skip unrelated branch deltas.
2415*a7c91847Schristos
2416*a7c91847SchristosFri Jun  7 13:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2417*a7c91847Schristos
2418*a7c91847Schristos	* main.c (main): Change INITIALIZE_SOCKET_SUBSYSTEM to
2419*a7c91847Schristos	SYSTEM_INITIALIZE and pass it pointers to argc and argv.  Rename
2420*a7c91847Schristos	CLEANUP_SOCKET_SUBSYSTEM to SYSTEM_CLEANUP.
2421*a7c91847Schristos
2422*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2423*a7c91847Schristos
2424*a7c91847Schristos	* import.c (add_rcs_file): make buf char[] not unsigned char[]
2425*a7c91847Schristos
2426*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2427*a7c91847Schristos			  and Jim Kingdon  <kingdon@cyclic.com>
2428*a7c91847Schristos
2429*a7c91847Schristos	* main.c (main): Add CLEANUP_SOCKET_SUBSYSTEM hook at end.  Revise
2430*a7c91847Schristos	comments regarding INITIALIZE_SOCKET_SUBSYSTEM.
2431*a7c91847Schristos
2432*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2433*a7c91847Schristos			  and Jim Kingdon  <kingdon@cyclic.com>
2434*a7c91847Schristos
2435*a7c91847Schristos	* main.c (main): Don't mess with signals if DONT_USE_SIGNALS is
2436*a7c91847Schristos	defined.
2437*a7c91847Schristos
2438*a7c91847SchristosThu Jun  6 15:32:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2439*a7c91847Schristos
2440*a7c91847Schristos	* modules.c (cat_module): Always format for 80 columns rather than
2441*a7c91847Schristos	trying to determine how wide the screen is.  The code we had for
2442*a7c91847Schristos	the latter didn't cover all cases, was a portability headache, and
2443*a7c91847Schristos	didn't work client/server.
2444*a7c91847Schristos
2445*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2446*a7c91847Schristos
2447*a7c91847Schristos	* error.c: Don't declare strerror if it is #defined.
2448*a7c91847Schristos
2449*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2450*a7c91847Schristos			  and Jim Kingdon  <kingdon@cyclic.com>
2451*a7c91847Schristos
2452*a7c91847Schristos	* cvs.h: If ENUMS_CAN_BE_TROUBLE, typedef Dtype to int not an enum.
2453*a7c91847Schristos
2454*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2455*a7c91847Schristos			  and Jim Kingdon  <kingdon@cyclic.com>
2456*a7c91847Schristos
2457*a7c91847Schristos	* update.c (update):  If DONT_USE_PATCH, don't request patches.
2458*a7c91847Schristos	Also call supported_request rather than reimplementing it.
2459*a7c91847Schristos
2460*a7c91847SchristosWed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2461*a7c91847Schristos
2462*a7c91847Schristos	* client.c (read_line): Changed an occurence of '\n' to '\012'.
2463*a7c91847Schristos
2464*a7c91847SchristosWed Jun  5 17:18:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2465*a7c91847Schristos
2466*a7c91847Schristos	* add.c (add_directory): Don't create the directory if noexec.
2467*a7c91847Schristos	* sanity.sh (basica): New tests basica-1a10, basica-1a11 test for
2468*a7c91847Schristos	above fix.
2469*a7c91847Schristos	* sanity.sh (basicb): New tests basicb-2a10, basicb-2a11,
2470*a7c91847Schristos	basicb-3a1 test for analogous situation with files rather than
2471*a7c91847Schristos	directories.
2472*a7c91847Schristos
2473*a7c91847SchristosTue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
2474*a7c91847Schristos
2475*a7c91847Schristos	* sanity.sh: When doing a remote check, use :server: in CVSROOT.
2476*a7c91847Schristos
2477*a7c91847SchristosWed Jun  5 13:32:40 1996  Larry Jones  <larry.jones@sdrc.com>
2478*a7c91847Schristos			  and Jim Kingdon  <kingdon@cyclic.com>
2479*a7c91847Schristos
2480*a7c91847Schristos	* ignore.c: Set ign_hold to -1 when not holding instead of 0 so
2481*a7c91847Schristos	that holding an empty list works correctly.
2482*a7c91847Schristos	* sanity.sh (ignore): New tests 190 & 191 for above fix.
2483*a7c91847Schristos
2484*a7c91847SchristosWed Jun 5 1996  Jim Kingdon  <kingdon@cyclic.com>
2485*a7c91847Schristos
2486*a7c91847Schristos	Visual C++ lint:
2487*a7c91847Schristos	* client.c (update_entries): Copy the size to an unsigned variable
2488*a7c91847Schristos	before comparing it with unsigned variables.
2489*a7c91847Schristos	(handle_created, handle_update_existing): Prototype.
2490*a7c91847Schristos
2491*a7c91847SchristosTue Jun  4 10:02:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2492*a7c91847Schristos
2493*a7c91847Schristos	* client.c (responses): Add Created and Update-existing responses.
2494*a7c91847Schristos	* server.c (server_updated): If they are supported, use them
2495*a7c91847Schristos	instead of Updated.
2496*a7c91847Schristos	* client.c (struct update_entries_data): Add existp field.
2497*a7c91847Schristos	(handle_checked_in, handle_updated, handle_new_entry,
2498*a7c91847Schristos	handle_merged, handle_patched): Set it.
2499*a7c91847Schristos	(handle_update_existing, handle_created): New functions,
2500*a7c91847Schristos	for new responses.
2501*a7c91847Schristos	(update_entries): Based on existp, check for
2502*a7c91847Schristos	existence/nonexistence of file.
2503*a7c91847Schristos	(try_read_from_server): Expand comment.
2504*a7c91847Schristos	* server.c, server.h (server_updated): New argument vers.
2505*a7c91847Schristos	* checkin.c (Checkin), commit.c (commit_fileproc), update.c
2506*a7c91847Schristos	(update_fileproc, merge_file, join_file): Pass it.
2507*a7c91847Schristos	* cvs.h: Move include of server.h after Vers_TS declaration.
2508*a7c91847Schristos	* sanity.sh (conflicts2): New tests conflicts2-142d* test for
2509*a7c91847Schristos	above fix.
2510*a7c91847Schristos
2511*a7c91847Schristos	* sanity.sh (ignore): Fix typo in comment.
2512*a7c91847Schristos
2513*a7c91847Schristos	* tag.c (tag_check_valid): Add comment clarifying when val-tags
2514*a7c91847Schristos	entries are created.
2515*a7c91847Schristos
2516*a7c91847SchristosMon Jun  3 07:26:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2517*a7c91847Schristos
2518*a7c91847Schristos	* version.c: Increment version number to 1.8.4.
2519*a7c91847Schristos
2520*a7c91847SchristosMon Jun  3 02:20:30 1996  Noel Cragg  <noel@gargle.rain.org>
2521*a7c91847Schristos
2522*a7c91847Schristos	* version.c: version 1.8.3.
2523*a7c91847Schristos
2524*a7c91847SchristosThu May 30 10:07:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2525*a7c91847Schristos
2526*a7c91847Schristos	* main.c (cmds): Fix typo ("bdif" -> "dif") which was accidentally
2527*a7c91847Schristos	introduced 24 May 96.
2528*a7c91847Schristos
2529*a7c91847Schristos	* main.c (main_cleanup): Add comment stating default case will
2530*a7c91847Schristos	never be reached.
2531*a7c91847Schristos
2532*a7c91847SchristosWed May 29 21:43:43 1996  noel  <noel@BOAT_ANCHOR>
2533*a7c91847Schristos
2534*a7c91847Schristos	* main.c (main_cleanup): check to see if SIGHUP, SIGINT, SIGQUIT,
2535*a7c91847Schristos 	SIGPIPE, and SIGTERM are defined before using them.  Also add a
2536*a7c91847Schristos 	default case to print out those errors numerically which are not
2537*a7c91847Schristos 	found.
2538*a7c91847Schristos
2539*a7c91847SchristosWed May 29 18:43:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2540*a7c91847Schristos
2541*a7c91847Schristos	* expand_path.c (expand_path): Document LINE == 0 and allocation
2542*a7c91847Schristos	of return value.
2543*a7c91847Schristos	* modules.c (do_module): Pass 0, not -1, to indicate line number
2544*a7c91847Schristos	not known.  Free value returned from expand_path.  Deal with NULL
2545*a7c91847Schristos	return from expand_path.
2546*a7c91847Schristos
2547*a7c91847SchristosWed May 29 15:56:47 1996  Greg A. Woods  <woods@most.weird.com>
2548*a7c91847Schristos
2549*a7c91847Schristos	* modules.c (do_module): call expand_path() on the program name
2550*a7c91847Schristos	specfied by one of '-o', '-t', or '-e' in the modules file before
2551*a7c91847Schristos	passing it to run_setup().  This makes it possible to use $CVSROOT
2552*a7c91847Schristos	(or indeed ~user or any other user-specified variable) to specify
2553*a7c91847Schristos	pathnames for programs not installed in the normal execution path.
2554*a7c91847Schristos
2555*a7c91847SchristosSun May 26 21:57:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2556*a7c91847Schristos
2557*a7c91847Schristos	* client.c (start_server): Don't include %s in error message;
2558*a7c91847Schristos	there is no argument to go with it.  Do include "internal error"
2559*a7c91847Schristos	in error message since that might not be clear to the user otherwise.
2560*a7c91847Schristos
2561*a7c91847SchristosSun May 26 11:58:13 1996  Greg A. Woods  <woods@most.weird.com>
2562*a7c91847Schristos
2563*a7c91847Schristos	* root.c (set_local_cvsroot): enforce a wee bit of portability
2564*a7c91847Schristos	(parse_cvsroot): same....
2565*a7c91847Schristos	(DEBUG main): same, plus style guidelines
2566*a7c91847Schristos	(DEBUG error): deleted -- not necessary here (use fprintf instead)
2567*a7c91847Schristos
2568*a7c91847Schristos	* mkmodules.c (modules_contents): updated notes about what must be
2569*a7c91847Schristos	done if you change any of the options for a module.
2570*a7c91847Schristos	(loginfo_contents): fixed grammar, re-pargraphed, and added 'echo
2571*a7c91847Schristos	%s;' to the example.
2572*a7c91847Schristos	(editinfo_contents): minor grammar fix.
2573*a7c91847Schristos
2574*a7c91847SchristosSun May 26 17:51:18 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2575*a7c91847Schristos
2576*a7c91847Schristos	* vers_ts.c (Version_TS): Remove case where we get options from
2577*a7c91847Schristos	sdtp->options.  Whatever case that was intended to handle is
2578*a7c91847Schristos	probably lost in the mists of time, but sdtp->options isn't set
2579*a7c91847Schristos	anywhere, and I think that has been true for a long time.
2580*a7c91847Schristos	* cvs.h (struct stickydirtag): remove options field.
2581*a7c91847Schristos	* entries.c (freesdt): Don't free ->options.
2582*a7c91847Schristos	* sanity.sh (binfiles): New tests binfiles-13a* test for above fix.
2583*a7c91847Schristos
2584*a7c91847Schristos	* tag.c (check_fileproc): Use fullname not file in error message.
2585*a7c91847Schristos	Say "locally modified" not "up-to-date"; the file need not match
2586*a7c91847Schristos	the head revision it only need match some revision.
2587*a7c91847Schristos
2588*a7c91847SchristosSun May 26 16:57:02 1996  Norbert Kiesel  <nk@col.sw-ley.de>
2589*a7c91847Schristos
2590*a7c91847Schristos	* tag.c: added support for new option -c to make sure all tagged
2591*a7c91847Schristos	  files are up-to-date
2592*a7c91847Schristos	  (tag): check for option and set check_uptodate
2593*a7c91847Schristos	  (check_fileproc): check status of file if check_uptodate is set
2594*a7c91847Schristos
2595*a7c91847SchristosSat May 25 15:22:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2596*a7c91847Schristos
2597*a7c91847Schristos	* main.c (main): Revert change to look for a -H command option;
2598*a7c91847Schristos	command option parsing should be up to each subcommand and the -H
2599*a7c91847Schristos	global option works fine.
2600*a7c91847Schristos
2601*a7c91847SchristosMon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2602*a7c91847Schristos
2603*a7c91847Schristos	* client.c (process_prune_candidates): Set prune_candidates to
2604*a7c91847Schristos	NULL at the end of the function.
2605*a7c91847Schristos
2606*a7c91847SchristosMon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2607*a7c91847Schristos
2608*a7c91847Schristos	* checkout.c (checkout): In code to handle multiple arguments,
2609*a7c91847Schristos	pass preload_update_dir, not where, to Create_Admin.
2610*a7c91847Schristos	(checkout_proc): Pass preload_update_dir, not where, to
2611*a7c91847Schristos	Create_Admin.
2612*a7c91847Schristos
2613*a7c91847SchristosThu May 23 19:14:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2614*a7c91847Schristos
2615*a7c91847Schristos	* server.c (server_set_sticky): Assert that update_dir != NULL.
2616*a7c91847Schristos	* sanity.sh (basicb): New test; tests for Ian's fix to checkout.c
2617*a7c91847Schristos	above.
2618*a7c91847Schristos
2619*a7c91847SchristosThu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2620*a7c91847Schristos
2621*a7c91847Schristos	* patch.c (patch_fileproc): Don't ignore a file just because it is
2622*a7c91847Schristos	in the Attic directory.
2623*a7c91847Schristos
2624*a7c91847SchristosThu May 23 10:40:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2625*a7c91847Schristos
2626*a7c91847Schristos	* sanity.sh (death): New tests death-{72a,76a0,76a1} test for bug
2627*a7c91847Schristos	fixed by Ian's patch_fileproc change above.
2628*a7c91847Schristos
2629*a7c91847Schristos	* sanity.sh (death): Remove "temporary hack" in test 89.
2630*a7c91847Schristos
2631*a7c91847Schristos	* rcs.c (RCS_fast_checkout): If error closing file, and workfile
2632*a7c91847Schristos	is NULL, use sout in error message instead of workfile.
2633*a7c91847Schristos
2634*a7c91847SchristosThu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2635*a7c91847Schristos
2636*a7c91847Schristos	* rcs.c (RCS_fast_checkout): Do a fast checkout in the case where
2637*a7c91847Schristos	workfile is NULL and sout is a file name.
2638*a7c91847Schristos
2639*a7c91847SchristosWed May 22 19:06:23 1996  Mark Immel  <immel@centerline.com>
2640*a7c91847Schristos
2641*a7c91847Schristos	* update.c (checkout_file): New arg resurrecting_out, to provide
2642*a7c91847Schristos	resurrecting flag to caller.
2643*a7c91847Schristos	(join_file): New arg resurrecting.  Register with "0" if we are
2644*a7c91847Schristos	the server and are resurrecting.
2645*a7c91847Schristos	(update_fileproc): Pass the flag from checkout_file to join_file.
2646*a7c91847Schristos
2647*a7c91847SchristosWed May 22 19:06:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2648*a7c91847Schristos
2649*a7c91847Schristos	* sanity.sh (death): Test for above fix, in test 89 and new test 89a.
2650*a7c91847Schristos
2651*a7c91847SchristosTue May 21 09:49:04 1996  Greg A. Woods  <woods@most.weird.com>
2652*a7c91847Schristos
2653*a7c91847Schristos	* update.c (update_usage): oops -- fix my spelling typo.
2654*a7c91847Schristos
2655*a7c91847SchristosMon May 20 10:53:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2656*a7c91847Schristos
2657*a7c91847Schristos	* commit.c (find_fileproc): Call freevers_ts.
2658*a7c91847Schristos
2659*a7c91847Schristos	* commit.c (find_*): Keep an ignlist, like update.c and client.c do.
2660*a7c91847Schristos	* commit.c (commit): Process the files from the ignlists, once we
2661*a7c91847Schristos	are connected to the server.
2662*a7c91847Schristos	* sanity.sh (ignore): New tests 189e and 189f test for new
2663*a7c91847Schristos	commit.c behavior (and client.c behavior, which is unchanged).
2664*a7c91847Schristos	* sanity.sh (conflicts): Remove dir1 and sdir in parts of the test
2665*a7c91847Schristos	where we aren't prepared for "? dir1" and similar output.
2666*a7c91847Schristos
2667*a7c91847SchristosMon May 20 13:23:36 1996  Greg A. Woods  <woods@most.weird.com>
2668*a7c91847Schristos
2669*a7c91847Schristos	* main.c (cmd_usage): minor corrections to descriptions of status,
2670*a7c91847Schristos	rtag, tag, and rdiff.  Sort alphabetically by command name.
2671*a7c91847Schristos
2672*a7c91847SchristosMon May 20 10:36:07 1996  Ian Lance Taylor  <ian@cygnus.com>
2673*a7c91847Schristos
2674*a7c91847Schristos	* client.c (call_in_directory): Move the call to Entries_Close
2675*a7c91847Schristos	before the call to chdir, since Entries_Close examines files in
2676*a7c91847Schristos	the current directory.
2677*a7c91847Schristos
2678*a7c91847SchristosFri May 17 12:13:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2679*a7c91847Schristos
2680*a7c91847Schristos	* client.c (start_tcp_server, start_server, start_rsh_server,
2681*a7c91847Schristos	read_line, filter_through_gzip, filter_through_gunzip,
2682*a7c91847Schristos	call_in_directory): Reindent as needed.
2683*a7c91847Schristos
2684*a7c91847Schristos	* main.c (main): Add missing #endif.  Use indentation to indicate
2685*a7c91847Schristos	nesting.
2686*a7c91847Schristos
2687*a7c91847SchristosThu May 16 17:15:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2688*a7c91847Schristos
2689*a7c91847Schristos	* main.c (cmd_usage): Add "init" command.
2690*a7c91847Schristos
2691*a7c91847SchristosThu May 16 16:45:51 1996  Noel Cragg  <noel@gargle.rain.org>
2692*a7c91847Schristos
2693*a7c91847Schristos	* client.c (start_tcp_server): Error message modified to tell the
2694*a7c91847Schristos 	user to use ":server:" instead of setting CVS_CLIENT_PORT to a
2695*a7c91847Schristos 	negative number.
2696*a7c91847Schristos
2697*a7c91847Schristos	* main.c (main): Add #ifdefs for turning off buffering of
2698*a7c91847Schristos 	stdio/stderr, so we don't get it by default.
2699*a7c91847Schristos
2700*a7c91847SchristosThu May 16 01:29:47 1996  noel  <noel@BOAT_ANCHOR>
2701*a7c91847Schristos
2702*a7c91847Schristos	* commit.c (commit_filesdoneproc): Print the repository and root
2703*a7c91847Schristos 	directories as part of the error message.
2704*a7c91847Schristos
2705*a7c91847Schristos	* main.c (main): Don't buffer stdout or stderr.  It's inefficient,
2706*a7c91847Schristos 	but it then produces the right output for sanity.sh.
2707*a7c91847Schristos
2708*a7c91847SchristosThu May 16 09:44:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2709*a7c91847Schristos
2710*a7c91847Schristos	* fileattr.c (fileattr_set): In the case where we are about to
2711*a7c91847Schristos	call delproc, don't free ->data; delproc does that.
2712*a7c91847Schristos	* sanity.sh (devcom): New tests devcom-b* test for this fix.
2713*a7c91847Schristos
2714*a7c91847Schristos	* sanity.sh (conflicts): Remove redundant clean up from previous
2715*a7c91847Schristos	tests at the beginning of the test.  Use dotest a few more places.
2716*a7c91847Schristos	(conflicts2): New test, tests for Ian's fix to Classify_File.
2717*a7c91847Schristos
2718*a7c91847Schristos	* client.c (remove_entry_and_file): Add comment about
2719*a7c91847Schristos	existence_error's.
2720*a7c91847Schristos
2721*a7c91847SchristosSat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
2722*a7c91847Schristos
2723*a7c91847Schristos	* update.c (update_dirleave_proc): Don't try to chdir .. and check
2724*a7c91847Schristos	for an empty directory if there is a slash in the directory name.
2725*a7c91847Schristos
2726*a7c91847SchristosThu May 16 09:02:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2727*a7c91847Schristos
2728*a7c91847Schristos	* sanity.sh (deep): New tests deep-4a* test for Ian's fix to
2729*a7c91847Schristos	update_dirleave_proc.
2730*a7c91847Schristos
2731*a7c91847SchristosSat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
2732*a7c91847Schristos
2733*a7c91847Schristos	* main.c (main_cleanup): Report signal name before dying.
2734*a7c91847Schristos
2735*a7c91847SchristosWed May 15 23:47:59 1996  Noel Cragg  <noel@gargle.rain.org>
2736*a7c91847Schristos
2737*a7c91847Schristos	* main.c (usg): revert usage strings for `-H' flag change.
2738*a7c91847Schristos
2739*a7c91847SchristosSat May 15 1996  Ian Lance Taylor  <ian@cygnus.com>
2740*a7c91847Schristos
2741*a7c91847Schristos	* server.c (serve_static_directory): Return immediately if there
2742*a7c91847Schristos	is a pending error.
2743*a7c91847Schristos	(serve_sticky): Likewise.
2744*a7c91847Schristos	(serve_modified): Read the file data even if there is a pending
2745*a7c91847Schristos	error.
2746*a7c91847Schristos
2747*a7c91847SchristosWed May 15 14:26:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2748*a7c91847Schristos
2749*a7c91847Schristos	* main.c (main): If -d and CVS/Root both specified, after writing
2750*a7c91847Schristos	the value from -d into CVS/Root, use the value from -d, not the
2751*a7c91847Schristos	old value from CVS/Root.  Don't write CVS/Root with value from -d
2752*a7c91847Schristos	until we have verified that it works.
2753*a7c91847Schristos	* sanity.sh: Reenable test basica-9 and adjust for new behavior.
2754*a7c91847Schristos
2755*a7c91847SchristosTue May 14 1996  Jim Kingdon  <kingdon@cyclic.com>
2756*a7c91847Schristos
2757*a7c91847Schristos	* logmsg.c (do_editor): If user aborts the commit, still remove the
2758*a7c91847Schristos	temporary file.
2759*a7c91847Schristos
2760*a7c91847SchristosTue May 14 11:45:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2761*a7c91847Schristos
2762*a7c91847Schristos	* filesubr.c, cvs.h (cvs_temp_name): New function.  Move L_tmpnam
2763*a7c91847Schristos	define from cvs.h to filesubr.c.
2764*a7c91847Schristos	* client.c, diff.c, import.c, login.c, logmsg.c, no_diff.c,
2765*a7c91847Schristos	patch.c, wrapper.c: Call cvs_temp_name not tmpnam.
2766*a7c91847Schristos	* login.c (login): Reindent function.
2767*a7c91847Schristos
2768*a7c91847SchristosTue May 14 10:56:56 1996  Ian Lance Taylor  <ian@cygnus.com>
2769*a7c91847Schristos
2770*a7c91847Schristos	* rcs.c (RCS_fast_checkout): If workfile is NULL, don't call chmod.
2771*a7c91847Schristos
2772*a7c91847SchristosMon May 13 10:52:10 1996  Greg A. Woods  <woods@most.weird.com>
2773*a7c91847Schristos
2774*a7c91847Schristos	* checkout.c (export_usage): note which options cause a sticky
2775*a7c91847Schristos	version to be set, and which option avoids this.
2776*a7c91847Schristos	* update.c (update_usage): likewise
2777*a7c91847Schristos
2778*a7c91847SchristosSat May 11 18:57:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2779*a7c91847Schristos
2780*a7c91847Schristos	* sanity.sh: Comment out test basica-9 until I get around to
2781*a7c91847Schristos	actually fixing it (the -d vs. CVS/Root change broke it).
2782*a7c91847Schristos
2783*a7c91847SchristosFri May 10 09:39:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2784*a7c91847Schristos
2785*a7c91847Schristos	* main.c (main): -d now overrides CVS/Root.
2786*a7c91847Schristos
2787*a7c91847SchristosThu May  9 19:45:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2788*a7c91847Schristos
2789*a7c91847Schristos	* main.c: Remove comment listing commands at beginning.  It was
2790*a7c91847Schristos	out of date and redundant with the help.
2791*a7c91847Schristos
2792*a7c91847SchristosThu May  9 09:33:55 1996  Greg A. Woods  <woods@most.weird.com>
2793*a7c91847Schristos
2794*a7c91847Schristos	* main.c: add 'init' to opening comment listing commands
2795*a7c91847Schristos
2796*a7c91847Schristos	* mkmodules.c (init): fix to recognize argc==-1 as hint to call
2797*a7c91847Schristos	usage() [should make "cvs init -H" work as expected]
2798*a7c91847Schristos
2799*a7c91847SchristosWed May  8 15:02:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2800*a7c91847Schristos
2801*a7c91847Schristos	* sanity.sh: Set EXPR in the case that the expr in the path is the
2802*a7c91847Schristos	one that we want.
2803*a7c91847Schristos
2804*a7c91847SchristosWed May  8 14:06:24 1996  Greg A. Woods  <woods@most.weird.com>
2805*a7c91847Schristos
2806*a7c91847Schristos	* sanity.sh (test): - convert all '[' to test ala GCD
2807*a7c91847Schristos
2808*a7c91847SchristosWed May  8 13:46:56 1996  Greg A. Woods  <woods@most.weird.com>
2809*a7c91847Schristos
2810*a7c91847Schristos	* sanity.sh (expr): - make a valiant attempt to find GNU expr
2811*a7c91847Schristos	- Patch from Larry Jones:
2812*a7c91847Schristos	sanity test deep-4 failed with "expr: arg list too long"
2813*a7c91847Schristos	sanity test 56 failed because the stderr and stdout output was not
2814*a7c91847Schristos	interleaved as expected.
2815*a7c91847Schristos	sanity test modules-155a4 failed with "ls: illegal option -- 1"
2816*a7c91847Schristos
2817*a7c91847Schristos	* main.c (main): - Patch from Larry Jones for SysV setvbuf
2818*a7c91847Schristos
2819*a7c91847SchristosTue May  7 16:41:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2820*a7c91847Schristos
2821*a7c91847Schristos	* version.c: Increment version number to 1.8.2 to work around fact
2822*a7c91847Schristos	that CVS 1.8 (confusingly) calls itself 1.8.1 not 1.8.
2823*a7c91847Schristos
2824*a7c91847SchristosTue May  7 10:44:20 MET DST 1996  Norbert Kiesel  <nk@col.sw-ley.de>
2825*a7c91847Schristos
2826*a7c91847Schristos	* rcs.c (rcsvers_delproc): fix memory leak by freeing author
2827*a7c91847Schristos	  field.
2828*a7c91847Schristos
2829*a7c91847SchristosMon May  6 10:40:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2830*a7c91847Schristos
2831*a7c91847Schristos	* sanity.sh (conflicts): New test conflicts-126.5 tests for bug
2832*a7c91847Schristos	which Ian fixed May 5 in update.c
2833*a7c91847Schristos
2834*a7c91847SchristosMon May  6 06:00:10 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2835*a7c91847Schristos
2836*a7c91847Schristos        * Version 1.8.1
2837*a7c91847Schristos
2838*a7c91847SchristosSun May  5 21:39:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2839*a7c91847Schristos
2840*a7c91847Schristos	* vers_ts.c (Version_TS): If sdtp is NULL, go ahead and check
2841*a7c91847Schristos	RCS_getexpand for options.  Fixes binaries and non-unix clients.
2842*a7c91847Schristos	* sanity.sh: Fix binfiles-5.5 to test for the correct behavior
2843*a7c91847Schristos	rather than the buggy behavior which existed when the binfiles-5.5
2844*a7c91847Schristos	test was written.
2845*a7c91847Schristos	(binfiles-14c,binfiles-14f): Likewise.
2846*a7c91847Schristos
2847*a7c91847SchristosSun May  5 17:38:21 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2848*a7c91847Schristos
2849*a7c91847Schristos        Integrated changes submitted by Ian Taylor <ian@cygnus.com>
2850*a7c91847Schristos
2851*a7c91847Schristos        * update.c (update_dirent_proc): cvs co -p doesn't print
2852*a7c91847Schristos        anything when run from an empty directory.
2853*a7c91847Schristos
2854*a7c91847Schristos        * import.c (import_descend_dir): Check for a file in the
2855*a7c91847Schristos        repository which will be checked out to the same name as the
2856*a7c91847Schristos        directory.
2857*a7c91847Schristos
2858*a7c91847SchristosSat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2859*a7c91847Schristos
2860*a7c91847Schristos	Extract the head revision directly from the RCS file when
2861*a7c91847Schristos	possible, rather than execing co.
2862*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Set delta_pos field.
2863*a7c91847Schristos	(getrcskey): Add lenp parameter.  Change all callers.
2864*a7c91847Schristos	(RCS_fast_checkout): New function.
2865*a7c91847Schristos	(annotate_fileproc): If PARTIAL is not set, just fseek to
2866*a7c91847Schristos	delta_pos.
2867*a7c91847Schristos	* rcs.h (struct rcsnode): Add delta_pos field.
2868*a7c91847Schristos	(RCS_fast_checkout): Declare.
2869*a7c91847Schristos	* diff.c (diff_file_nodiff): Call RCS_fast_checkout rather than
2870*a7c91847Schristos	RCS_checkout.
2871*a7c91847Schristos	* import.c (update_rcs_file): Likewise.
2872*a7c91847Schristos	* no_diff.c (No_Difference): Likewise.
2873*a7c91847Schristos	* patch.c (patch_fileproc): Likewise.
2874*a7c91847Schristos	* update.c (checkout_file): Likewise.
2875*a7c91847Schristos	(patch_file): Likewise.
2876*a7c91847Schristos	(join_file): Likewise.
2877*a7c91847Schristos
2878*a7c91847SchristosSat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2879*a7c91847Schristos
2880*a7c91847Schristos	* classify.c (Classify_File): Don't report a conflict for a
2881*a7c91847Schristos	pending remove if somebody else has already removed the file.
2882*a7c91847Schristos
2883*a7c91847SchristosThu May  2 13:34:37 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2884*a7c91847Schristos
2885*a7c91847Schristos	* Version 1.7.88
2886*a7c91847Schristos
2887*a7c91847SchristosThu May  2 01:40:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2888*a7c91847Schristos
2889*a7c91847Schristos	* server.c (HAVE_INITGROUPS): Use initgroups() only if
2890*a7c91847Schristos        located by configure, in the event a system has crypt(), but
2891*a7c91847Schristos	no initgroups()
2892*a7c91847Schristos
2893*a7c91847SchristosWed May 01 21:08:21 1996  noel  <noel@BOAT_ANCHOR>
2894*a7c91847Schristos
2895*a7c91847Schristos	* client.c (filter_through_gunzip): use "gzip -d" instead of
2896*a7c91847Schristos 	"gunzip," since there's no good reason (on NT at least) to have an
2897*a7c91847Schristos 	extra copy of gzip.exe copied to gunzip.exe (Arrrrgh!  No symbolic
2898*a7c91847Schristos 	links!).
2899*a7c91847Schristos
2900*a7c91847Schristos	* mkmodules.c (init): check to see that we have the correct number
2901*a7c91847Schristos 	of arguments or print out the usage message (used to be argc > 1,
2902*a7c91847Schristos 	should be argc != 1, because help forces argc == -1 as a special
2903*a7c91847Schristos 	case).
2904*a7c91847Schristos
2905*a7c91847SchristosWed May  1 18:05:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2906*a7c91847Schristos
2907*a7c91847Schristos	* sanity.sh (basica): When testing rejection of reserved tag name,
2908*a7c91847Schristos	use BASE instead of RESERVED.
2909*a7c91847Schristos
2910*a7c91847SchristosWed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
2911*a7c91847Schristos
2912*a7c91847Schristos	* rcs.c (linevector_delete): Only copy up to vec->nlines - nlines,
2913*a7c91847Schristos	not to vec->nlines.
2914*a7c91847Schristos
2915*a7c91847SchristosWed May  1 15:43:21 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2916*a7c91847Schristos
2917*a7c91847Schristos	* rcscmds.c (RCS_settag): Instead of reserving all tag names
2918*a7c91847Schristos	containing only uppercase letters, reserve only BASE and HEAD.
2919*a7c91847Schristos	* sanity.sh (mflag): Revert 26 Mar change; use all-uppercase tag
2920*a7c91847Schristos	name again.
2921*a7c91847Schristos
2922*a7c91847SchristosWed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
2923*a7c91847Schristos
2924*a7c91847Schristos	* rcs.c (linevector_add): Move increment of i out of larger
2925*a7c91847Schristos	statement, to avoid assumptions about evaluation order.
2926*a7c91847Schristos
2927*a7c91847SchristosTue Apr 30 15:46:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2928*a7c91847Schristos
2929*a7c91847Schristos	* Version 1.7.87.
2930*a7c91847Schristos
2931*a7c91847Schristos	* server.c (check_password): Don't use ANSI string concatenation.
2932*a7c91847Schristos	Reindent function.
2933*a7c91847Schristos
2934*a7c91847SchristosMon Apr 29 10:48:38 1996  Noel Cragg  <noel@gargle>
2935*a7c91847Schristos
2936*a7c91847Schristos	* root.c (parse_cvsroot): removed "rsh" as an alias to "server" in
2937*a7c91847Schristos 	the method section.
2938*a7c91847Schristos
2939*a7c91847Schristos	* main.c (main): new variable help so we can support the `cvs -H
2940*a7c91847Schristos 	cmd' convention.  Reverts change of 26 Apr 96 which removed this
2941*a7c91847Schristos 	feature.
2942*a7c91847Schristos
2943*a7c91847SchristosSun Apr 28 14:57:38 1996  Noel Cragg  <noel@gargle>
2944*a7c91847Schristos
2945*a7c91847Schristos        * main.c (main): update error message if parse_cvsroot fails.
2946*a7c91847Schristos	* server.c (serve_root): same.
2947*a7c91847Schristos	(serve_init): same.
2948*a7c91847Schristos
2949*a7c91847Schristos	* client.c (start_tcp_server): get rid of the "fall through"
2950*a7c91847Schristos 	stuff, now that we have access methods.
2951*a7c91847Schristos	(start_server): switch off the access method to choose routine
2952*a7c91847Schristos 	that starts the server.
2953*a7c91847Schristos	(start_tcp_server): tofd wasn't getting set to -1 early enough,
2954*a7c91847Schristos 	because a call to error for bind or gethostbyname might fail and
2955*a7c91847Schristos 	the subsequent error check to see if the connection had been made
2956*a7c91847Schristos 	would fail.
2957*a7c91847Schristos
2958*a7c91847Schristos	* root.c: new variable method_names for error reporting purposes.
2959*a7c91847Schristos
2960*a7c91847SchristosSun Apr 28 17:22:15 1996  Noel Cragg  <noel@occs.cs.oberlin.edu>
2961*a7c91847Schristos
2962*a7c91847Schristos	* server.c: moved kerberos #includes from main.c for the
2963*a7c91847Schristos        kserver_authenticate_connection routine.
2964*a7c91847Schristos
2965*a7c91847SchristosFri Apr 26 07:59:44 1996  Noel Cragg  <noel@gargle>
2966*a7c91847Schristos
2967*a7c91847Schristos	* server.c (serve_init): use the new return value from
2968*a7c91847Schristos 	parse_cvsroot.
2969*a7c91847Schristos	(serve_root): same.
2970*a7c91847Schristos	* main.c (main): same.
2971*a7c91847Schristos
2972*a7c91847Schristos	* root.c (parse_cvsroot): fix indentation, add a return value
2973*a7c91847Schristos 	which tells whether the command succeeded or failed.
2974*a7c91847Schristos
2975*a7c91847Schristos	* main.c (main): move the setting of the UMASK environment
2976*a7c91847Schristos 	variable inside the stuff that gets done if the user is NOT asking
2977*a7c91847Schristos 	for help, so we don't signal any errors prematurely (don't want to
2978*a7c91847Schristos 	give an error because we can't parse an environment variable
2979*a7c91847Schristos 	correctly if the user asks for help).  Similar mods for the code
2980*a7c91847Schristos 	that tries to get the working directory.
2981*a7c91847Schristos
2982*a7c91847Schristos	Also make CVSADM_Root a local variable instead of a global, since
2983*a7c91847Schristos 	its scope is only about 20 lines here!
2984*a7c91847Schristos
2985*a7c91847Schristos	* server.c (kserver_authenticate_connection): moved code from
2986*a7c91847Schristos 	main.c to clean up MAIN.  Makes sense, since we already have a
2987*a7c91847Schristos 	pserver_authenticate_connection.
2988*a7c91847Schristos	(pserver_authenticate_connection): rename from
2989*a7c91847Schristos 	authenticate_connection.
2990*a7c91847Schristos
2991*a7c91847Schristos	* main.c (main): reorganized the routine to eliminate variables
2992*a7c91847Schristos 	help, help_commands, and version_flag.  Now the routine is much
2993*a7c91847Schristos 	clearer, since we don't have to be checking to see if these
2994*a7c91847Schristos 	variables are set.  One behavior that was a bug/feature which is
2995*a7c91847Schristos 	now gone is an invocation like "cvs -H rtag" -- previously this
2996*a7c91847Schristos 	would give usage for rtag, but now gives usage for cvs itself.
2997*a7c91847Schristos  	The first behavior didn't make sense, especially since we say in
2998*a7c91847Schristos 	the docs that command-line flags are position-specific.  *Reverted
2999*a7c91847Schristos 	Above*
3000*a7c91847Schristos
3001*a7c91847SchristosThu Apr 25 20:05:10 1996  Noel Cragg  <noel@gargle>
3002*a7c91847Schristos
3003*a7c91847Schristos        * main.c (main): make sure we have a valid command name before we
3004*a7c91847Schristos 	do anything else (moved the thing that looks for a command in CMDS
3005*a7c91847Schristos 	to right after the GETOPT loop).  Added `kserver' and `pserver' to
3006*a7c91847Schristos 	the table so they will be recognized; set their functions to
3007*a7c91847Schristos 	SERVER so that help will be given when asked for.
3008*a7c91847Schristos
3009*a7c91847Schristos	* expand_path.c (expand_variable): return CVSroot_original rather
3010*a7c91847Schristos 	than CVSroot_directory.
3011*a7c91847Schristos
3012*a7c91847Schristos	* main.c (main): save CVSroot in the env rather than
3013*a7c91847Schristos 	CVSroot_original, since we might not have called PARSE_CVSROOT
3014*a7c91847Schristos 	(this can happen if we use the -H option to a command).
3015*a7c91847Schristos
3016*a7c91847Schristos	* root.c (parse_cvsroot): the parsing method was bogus for
3017*a7c91847Schristos 	guessing when we had hostnames vs. directories specified.  Any
3018*a7c91847Schristos 	ambiguity should be removed by having the user specify the access
3019*a7c91847Schristos 	method.  If the access method isn't specified, choose
3020*a7c91847Schristos 	server_method if the string contains a colon or local_method
3021*a7c91847Schristos 	otherwise.
3022*a7c91847Schristos
3023*a7c91847Schristos	* Changed CVSroot_remote back to client_active since the code
3024*a7c91847Schristos 	reads better.
3025*a7c91847Schristos
3026*a7c91847SchristosWed Apr 24 17:27:53 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3027*a7c91847Schristos
3028*a7c91847Schristos	* vers_ts.c (Version_TS): xmalloc enough space (1 more
3029*a7c91847Schristos	  byte). Thanks to purify!
3030*a7c91847Schristos
3031*a7c91847SchristosMon Apr 22 00:38:08 1996  Noel Cragg  <noel@gargle>
3032*a7c91847Schristos
3033*a7c91847Schristos	* create_adm.c (Create_Admin): pass CVSroot_original instead of
3034*a7c91847Schristos 	CVSroot_directory (oops!).
3035*a7c91847Schristos	* update.c (update_filesdone_proc): same.
3036*a7c91847Schristos
3037*a7c91847Schristos	* server.c (serve_root): modify to use parse_cvsroot rather than
3038*a7c91847Schristos 	goofing around with other variables.  Will need to fix
3039*a7c91847Schristos 	parse_cvsroot to have a return value so we can return an error and
3040*a7c91847Schristos 	quit gracefully if in server mode.
3041*a7c91847Schristos	(serve_init): same.
3042*a7c91847Schristos
3043*a7c91847Schristos	* main.c: modify command table to remove client_* routines, since
3044*a7c91847Schristos 	they no longer exist.
3045*a7c91847Schristos	(main): don't try to switch off non-existent field in command
3046*a7c91847Schristos 	table! ;-)
3047*a7c91847Schristos
3048*a7c91847Schristos        * client.h (client_*): removed prototypes for now non-existent
3049*a7c91847Schristos 	functions.
3050*a7c91847Schristos
3051*a7c91847Schristos	* client.c: remove proto for get_cvs_password, since it is now in
3052*a7c91847Schristos 	cvs.h.  Modify routines to use new globals that describe CVSROOT
3053*a7c91847Schristos 	rather than client_active, server_host, server_user, and
3054*a7c91847Schristos 	server_cvsroot.
3055*a7c91847Schristos	(parse_cvsroot): removed function, since a more generic version
3056*a7c91847Schristos 	now lives in root.c.
3057*a7c91847Schristos	(connect_to_pserver): remove call to parse_cvsroot, since main.c
3058*a7c91847Schristos 	has already done it for us.
3059*a7c91847Schristos	(client_*): removed all of these routines, since they only call
3060*a7c91847Schristos 	parse_cvsroot and then their respective operation functions.
3061*a7c91847Schristos  	Since main.c has already called parse_cvsroot, we shouldn't bother
3062*a7c91847Schristos 	with the extra function call, since client-server diffs are
3063*a7c91847Schristos 	already handled in the core routines themselves.
3064*a7c91847Schristos
3065*a7c91847Schristos	* main.c: remove CVSroot as a global variable.  Remove
3066*a7c91847Schristos 	use_authenticating_server variable since we have a new
3067*a7c91847Schristos 	`CVSroot_method' variable instead.
3068*a7c91847Schristos	(main): add `CVSroot' as a local variable.  Call parse_cvsroot
3069*a7c91847Schristos 	after we're sure we have the right setting for `CVSroot.'
3070*a7c91847Schristos
3071*a7c91847Schristos	* login.c (login): update to use new global variables.  Instead of
3072*a7c91847Schristos 	old behavior which let the user type in user@host when prompted,
3073*a7c91847Schristos 	it makes them do it in CVSROOT proper.  The routine still lets the
3074*a7c91847Schristos 	user type the password, however.
3075*a7c91847Schristos	(get_cvs_password): make sure that CVSROOT is fully qualified
3076*a7c91847Schristos 	before trying to find the entry in the .cvspass file.
3077*a7c91847Schristos	* cvs.h: add prototype for get_cvs_password.
3078*a7c91847Schristos
3079*a7c91847Schristos	* add.c: use new globals that describe CVSROOT.
3080*a7c91847Schristos	* admin.c: same.
3081*a7c91847Schristos	* checkout.c: same.
3082*a7c91847Schristos	* commit.c: same.
3083*a7c91847Schristos	* create_adm.c: same.
3084*a7c91847Schristos	* diff.c: same.
3085*a7c91847Schristos	* edit.c: same.
3086*a7c91847Schristos	* expand_path.c: same.
3087*a7c91847Schristos	* history.c: same.
3088*a7c91847Schristos	* ignore.c: same.
3089*a7c91847Schristos	* import.c: same.
3090*a7c91847Schristos	* log.c: same.
3091*a7c91847Schristos	* mkmodules.c: same.
3092*a7c91847Schristos	* modules.c: same.
3093*a7c91847Schristos	* parseinfo.c: same.
3094*a7c91847Schristos	* patch.c: same.
3095*a7c91847Schristos	* rcs.c: same.
3096*a7c91847Schristos	* recurse.c: same.
3097*a7c91847Schristos	* release.c: same.
3098*a7c91847Schristos	* remove.c: same.
3099*a7c91847Schristos	* repos.c: same.
3100*a7c91847Schristos	* rtag.c: same.
3101*a7c91847Schristos	* status.c: same.
3102*a7c91847Schristos	* tag.c: same.
3103*a7c91847Schristos	* update.c: same.
3104*a7c91847Schristos	* watch.c: same.
3105*a7c91847Schristos	* wrapper.c: same.
3106*a7c91847Schristos
3107*a7c91847Schristos	* root.c (Name_Root): remove error message that reports missing
3108*a7c91847Schristos 	CVSROOT, since new code in main.c will catch it and also print out
3109*a7c91847Schristos 	an error.
3110*a7c91847Schristos	(parse_cvsroot): new function -- takes a CVSROOT string and breaks
3111*a7c91847Schristos 	it up into its component parts -- method, hostname, username, and
3112*a7c91847Schristos 	repository directory.  Sets new global variables that describe the
3113*a7c91847Schristos 	repository location more precisely: CVSroot_original,
3114*a7c91847Schristos 	CVSroot_remote, CVSroot_method, CVSroot_username,
3115*a7c91847Schristos 	CVSroot_hostname, CVSroot_directory for use by all other
3116*a7c91847Schristos 	functions.  Checks for obvious errors in format of string.
3117*a7c91847Schristos	(main): a short routine to test parse_cvsroot from the command
3118*a7c91847Schristos 	line.
3119*a7c91847Schristos	* cvs.h: add prototype for parse_cvsroot and extern definitions
3120*a7c91847Schristos 	for new globals.
3121*a7c91847Schristos
3122*a7c91847Schristos	* cvs.h: removed CVSroot variable, since we don't want other
3123*a7c91847Schristos 	routines using the raw CVSROOT (also helped to find all of the
3124*a7c91847Schristos 	refs to the variable!).
3125*a7c91847Schristos
3126*a7c91847SchristosFri Apr 19 11:22:35 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3127*a7c91847Schristos
3128*a7c91847Schristos        * Version 1.7.86
3129*a7c91847Schristos
3130*a7c91847SchristosThu Apr 18 1996  Jim Kingdon  <kingdon@cyclic.com>
3131*a7c91847Schristos
3132*a7c91847Schristos	* client.c (try_read_from_server): Compare return value from fwrite
3133*a7c91847Schristos	with a size_t not an int (Visual C++ lint).
3134*a7c91847Schristos
3135*a7c91847SchristosWed Apr 17 11:56:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3136*a7c91847Schristos
3137*a7c91847Schristos	* client.c (try_read_from_server): New function.
3138*a7c91847Schristos	(read_from_server): Use it.
3139*a7c91847Schristos	(read_counted_file): New function.
3140*a7c91847Schristos	* client.c, server.c: Add Template response.
3141*a7c91847Schristos	* cvs.h (CVSADM_TEMPLATE): Added.
3142*a7c91847Schristos	* logmsg.c (do_editor): If repository is NULL, use CVSADM_TEMPLATE
3143*a7c91847Schristos	file in place of rcsinfo.
3144*a7c91847Schristos	* server.c, server.h (server_template): New function.
3145*a7c91847Schristos	* create_adm.c (Create_Admin): Call it.
3146*a7c91847Schristos
3147*a7c91847SchristosTue Apr 16 13:56:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3148*a7c91847Schristos
3149*a7c91847Schristos	* repos.c (Name_Repository): Fix comments.
3150*a7c91847Schristos	* create_adm.c (Create_Admin): Fix indentation.
3151*a7c91847Schristos
3152*a7c91847SchristosWed Apr 10 16:46:54 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3153*a7c91847Schristos
3154*a7c91847Schristos	* options.h.in: Include relevant information here rather than
3155*a7c91847Schristos	citing (former) FAQ.
3156*a7c91847Schristos
3157*a7c91847Schristos	* ChangeLog-9395: Fix typo in introductory paragraph.
3158*a7c91847Schristos
3159*a7c91847SchristosWed Apr 10 14:55:10 1996  code by Mike Spengler  mks@msc.edu
3160*a7c91847Schristos	comments by Jim Kingdon  <kingdon@harvey.cyclic.com>
3161*a7c91847Schristos
3162*a7c91847Schristos	* filesubr.c (unlink_file_dir,deep_remove_dir): Don't call unlink
3163*a7c91847Schristos	on something which might be a directory; check using isdir instead.
3164*a7c91847Schristos
3165*a7c91847SchristosWed Apr 10 14:55:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3166*a7c91847Schristos
3167*a7c91847Schristos	* checkout.c (build_dirs_and_chdir): Pass path, not cp, to
3168*a7c91847Schristos	Create_Admin.  The former is the correct update dir.
3169*a7c91847Schristos	* sanity.sh (modules): New tests modules-155* test, for above fix.
3170*a7c91847Schristos
3171*a7c91847SchristosMon Apr  8 13:53:27 1996  Samuel Tardieu  <sam@inf.enst.fr>
3172*a7c91847Schristos
3173*a7c91847Schristos	* rcs.c (annotate_fileproc): If the file is not under CVS control,
3174*a7c91847Schristos	return instead of dumping a core. Don't bug on files with an empty
3175*a7c91847Schristos	first revision.
3176*a7c91847Schristos
3177*a7c91847SchristosFri Mar 29 16:08:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3178*a7c91847Schristos
3179*a7c91847Schristos	* rcs.c (annotate_fileproc): If last line of add-chunk is not
3180*a7c91847Schristos	newline terminated, end the loop when we find that out.
3181*a7c91847Schristos
3182*a7c91847SchristosFri Mar 29 16:59:34 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3183*a7c91847Schristos
3184*a7c91847Schristos	* rcs.c (annotate_fileproc): allow last line of add-chunk not to
3185*a7c91847Schristos	  be newline terminated
3186*a7c91847Schristos
3187*a7c91847SchristosThu Mar 28 10:56:36 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3188*a7c91847Schristos
3189*a7c91847Schristos	Add more diff tests:
3190*a7c91847Schristos	* sanity.sh (basic2): Use dotest for test 61.
3191*a7c91847Schristos	(basica): Add test basica-6.2.
3192*a7c91847Schristos	(branches): Add tests branches-14.4 and branches-14.5.
3193*a7c91847Schristos	(basic1): Remove tests 19, 20, 25, and 26.  The only thing this
3194*a7c91847Schristos	might miss out on is diff's interaction with added and removed
3195*a7c91847Schristos	files, but those tests didn't test that very well anyway.
3196*a7c91847Schristos
3197*a7c91847Schristos	* rcs.c (RCS_getrevtime): Add comment regarding years after 1999.
3198*a7c91847Schristos
3199*a7c91847Schristos	* rcs.c: Add "cvs annotate" command and related code.
3200*a7c91847Schristos	(getrcskey): Move special handling of RCSDESC from here to
3201*a7c91847Schristos	callers.  Handle those keys (desc, log, text) which do not
3202*a7c91847Schristos	end in a semicolon.
3203*a7c91847Schristos	* rcs.h (RCSVers): Add author field.
3204*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Set it.
3205*a7c91847Schristos	* cvs.h (annotate), main.c (cmd_usage, cmds), client.h client.c
3206*a7c91847Schristos	(client_annotate), server.c (serve_annotate, requests): Usual
3207*a7c91847Schristos	machinery to add a new command.
3208*a7c91847Schristos	* sanity.sh (basica): Test cvs annotate.
3209*a7c91847Schristos
3210*a7c91847Schristos	* sanity.sh (branches): More tests, of things like adding files on
3211*a7c91847Schristos	the trunk after a branch has been made.
3212*a7c91847Schristos
3213*a7c91847SchristosTue Mar 26 09:48:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3214*a7c91847Schristos
3215*a7c91847Schristos	* expand_path.c: Don't declare free and xmalloc; cvs.h already
3216*a7c91847Schristos	takes care of that.
3217*a7c91847Schristos
3218*a7c91847Schristos	* sanity.sh (mflag): Don't use tag name reserved to CVS.
3219*a7c91847Schristos
3220*a7c91847Schristos	NT local changes plus miscellaneous things noticed in the process:
3221*a7c91847Schristos	* import.c (add_rcs_file): Use binary mode to write RCS file.  Use
3222*a7c91847Schristos	\012 where linefeed is intended.  Copy data a small block at a
3223*a7c91847Schristos	time, until we hit EOF, rather than trying to read the whole file
3224*a7c91847Schristos	into memory at once.
3225*a7c91847Schristos	* client.c (send_modified): Add comments regarding st_size.
3226*a7c91847Schristos	* commit.c (commit): Add comments regarding binary mode and read().
3227*a7c91847Schristos	* logmsg.c (do_editor): Add comments regarding st_size.
3228*a7c91847Schristos	* server.c (server_updated): Use binary mode to read file we are
3229*a7c91847Schristos	sending.
3230*a7c91847Schristos
3231*a7c91847Schristos	* rcscmds.c (RCS_settag): Complain if user tries to add a tag name
3232*a7c91847Schristos	reserved to CVS.
3233*a7c91847Schristos	* sanity.sh (basica): Test for this behavior.
3234*a7c91847Schristos
3235*a7c91847Schristos	* sanity.sh (binfiles): New tests test ability to change keyword
3236*a7c91847Schristos	expansion.
3237*a7c91847Schristos
3238*a7c91847SchristosMon Mar 25 1996  Jim Kingdon  <kingdon@cyclic.com>
3239*a7c91847Schristos
3240*a7c91847Schristos	* cvs.h, filesubr.c (expand_wild): New function.
3241*a7c91847Schristos	* recurse.c (start_recursion): Call expand_wild at beginning and
3242*a7c91847Schristos	free its results at the end.
3243*a7c91847Schristos	* cvs.h, subr.c (xrealloc): Make argument and return value void *.
3244*a7c91847Schristos	* client.h, client.c (send_file_names): Add flags argument.   If
3245*a7c91847Schristos	SEND_EXPAND_WILD flag is passed, call expand_wild at beginning and
3246*a7c91847Schristos	free its results at the end.
3247*a7c91847Schristos	* admin.c, add.c, log.c, tag.c, status.c, edit.c, watch.c,
3248*a7c91847Schristos	update.c, commit.c, remove.c, client.c, diff.c: Update callers.
3249*a7c91847Schristos
3250*a7c91847SchristosFri Mar 22 10:09:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3251*a7c91847Schristos
3252*a7c91847Schristos	* error.c (error, fperror): Exit with status EXIT_FAILURE rather
3253*a7c91847Schristos	than STATUS.  We had been neglecting to check for 256, and the
3254*a7c91847Schristos	value of providing a count of errors is probably minimal anyway.
3255*a7c91847Schristos	* add.c, modules.c, mkmodules.c, tag.c, server.c, main.c,
3256*a7c91847Schristos	import.c, client.c, scramble.c, recurse.c: Exit with status
3257*a7c91847Schristos	EXIT_FAILURE rather than 1.  On VMS, 1 is success, not failure.
3258*a7c91847Schristos	* main.c (main): Return EXIT_FAILURE or 0.  The value of providing
3259*a7c91847Schristos	a count of errors is minimal.
3260*a7c91847Schristos
3261*a7c91847Schristos	* client.c (init_sockaddr): Exit with status 1 rather than
3262*a7c91847Schristos	EXIT_FAILURE.  The latter apparently doesn't exist on SunOS4.
3263*a7c91847Schristos	Reindent function.
3264*a7c91847Schristos
3265*a7c91847SchristosMon Mar 18 14:28:00 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3266*a7c91847Schristos
3267*a7c91847Schristos	* cvs.h, ignore.c: New variable ign_case.
3268*a7c91847Schristos	* ignore.c (ign_name): If it is set, match in a case-insensitive
3269*a7c91847Schristos	fashion.
3270*a7c91847Schristos	* server.c (serve_case): New function.
3271*a7c91847Schristos	(requests): Add Case request.
3272*a7c91847Schristos	* client.c (start_server): If FILENAMES_CASE_INSENSITIVE is
3273*a7c91847Schristos	defined, send Case request.
3274*a7c91847Schristos
3275*a7c91847SchristosSat Mar 16 08:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3276*a7c91847Schristos
3277*a7c91847Schristos	For reference, this change takes cvs's text segment from 315392
3278*a7c91847Schristos	bytes to 311296 bytes (one 4096 byte page).
3279*a7c91847Schristos	* cvs.h (struct file_info): Add fullname field.
3280*a7c91847Schristos	* recurse.c (do_file_proc): Set it.
3281*a7c91847Schristos	* commit.c (find_fileproc), client.c (send_fileproc), commit.c
3282*a7c91847Schristos	(check_fileproc), diff.c (diff_fileproc), edit.c
3283*a7c91847Schristos	(unedit_fileproc), patch.c (patch_fileproc), remove.c
3284*a7c91847Schristos	(remove_fileproc), rtag.c (rtag_fileproc), tag.c (tag_fileproc),
3285*a7c91847Schristos	update.c (update_fileproc), watch.c (watchers_fileproc): Use it
3286*a7c91847Schristos	instead of computing it each time.
3287*a7c91847Schristos	* diff.c (diff_fileproc), remove.c (remove_fileproc): Use fullname
3288*a7c91847Schristos	where we had been (bogusly) omitting the directory from user
3289*a7c91847Schristos	messages.
3290*a7c91847Schristos	* edit.c (unedit_fileproc, edit_fileproc): If we cannot close
3291*a7c91847Schristos	CVSADM_NOTIFY, mention CVSADM_NOTIFY rather than finfo->file in
3292*a7c91847Schristos	error message.
3293*a7c91847Schristos	* rtag.c (rtag_fileproc), tag.c (tag_fileproc): Reindent.
3294*a7c91847Schristos
3295*a7c91847SchristosFri Mar 15 15:12:11 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3296*a7c91847Schristos
3297*a7c91847Schristos	* server.h: fix prototype of server_pause_check (was
3298*a7c91847Schristos	  server_check_pause)
3299*a7c91847Schristos
3300*a7c91847SchristosThu Mar 14 1996  Jim Kingdon  <kingdon@cyclic.com>
3301*a7c91847Schristos
3302*a7c91847Schristos	* vers_ts.c (Version_TS), entries.c (Scratch_Entry, AddEntryNode):
3303*a7c91847Schristos	Change findnode to findnode_fn.
3304*a7c91847Schristos
3305*a7c91847Schristos	* main.c: Depending on HAVE_WINSOCK_H, include winsock.h or
3306*a7c91847Schristos	declare gethostname.
3307*a7c91847Schristos	* cvs.h: Don't declare it here.
3308*a7c91847Schristos
3309*a7c91847SchristosThu Mar 14 07:06:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3310*a7c91847Schristos
3311*a7c91847Schristos	* commit.c (find_fileproc): If vn_user is NULL and ts_user is not,
3312*a7c91847Schristos	print an error rather than silently succeeding.
3313*a7c91847Schristos	* sanity.sh (basica-notadded): New test, for above fix.
3314*a7c91847Schristos	(dotest_internal): New function.
3315*a7c91847Schristos	(dotest,dotest_fail): Call it instead of duplicating code between
3316*a7c91847Schristos	these two functions.
3317*a7c91847Schristos
3318*a7c91847Schristos	* sanity.sh: Skip tests binfiles-9 through binfiles-13 for remote.
3319*a7c91847Schristos
3320*a7c91847Schristos	* options.h.in: Adjust comment to reflect kfogel change.
3321*a7c91847Schristos
3322*a7c91847SchristosThu Mar 14 01:38:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3323*a7c91847Schristos
3324*a7c91847Schristos        * options.h.in (AUTH_CLIENT_SUPPORT): turn on by default.
3325*a7c91847Schristos
3326*a7c91847SchristosWed Mar 13 09:25:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3327*a7c91847Schristos
3328*a7c91847Schristos	* vers_ts.c (Version_TS): Don't try to override options from rcs
3329*a7c91847Schristos	file if there isn't an rcs file (e.g. called from send_fileproc).
3330*a7c91847Schristos	This fixes a bug detected by test 59 in "make remotecheck".
3331*a7c91847Schristos
3332*a7c91847Schristos	* rcs.c (RCS_reparsercsfile, RCS_getexpand): Assert that argument
3333*a7c91847Schristos	is not NULL.
3334*a7c91847Schristos
3335*a7c91847Schristos	Fix a gcc -Wall warning:
3336*a7c91847Schristos	* rcs.c, rcs.h (RCS_getexpand): New function.
3337*a7c91847Schristos	* vers_ts.c (Version_TS): Call it.
3338*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Make static.
3339*a7c91847Schristos
3340*a7c91847Schristos	Add a "cvs init" command.  This is needed because cvsinit.sh
3341*a7c91847Schristos	invoked mkmodules which doesn't exist any more.
3342*a7c91847Schristos	* mkmodules.c: Break filelist out of mkmodules function, rename
3343*a7c91847Schristos	struct _checkout_file to struct admin_file (for namespace
3344*a7c91847Schristos	correctness), and add contents field.
3345*a7c91847Schristos	(init,mkdir_if_needed): New functions.
3346*a7c91847Schristos	* cvs.h (init): Declare.
3347*a7c91847Schristos	* main.c (cmds): Add init.
3348*a7c91847Schristos	(main): If command is init, don't require cvsroot to exist.
3349*a7c91847Schristos	* client.c, client.h (client_init, send_init_command): New functions.
3350*a7c91847Schristos	* client.c (start_server): Don't send Root request if command is init.
3351*a7c91847Schristos	* server.c (serve_init): New function.
3352*a7c91847Schristos	(requests): Add "init".
3353*a7c91847Schristos
3354*a7c91847SchristosWed Mar 13 09:51:03 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3355*a7c91847Schristos
3356*a7c91847Schristos	* vers_ts.c (Version_TS): set options to default option if the
3357*a7c91847Schristos	  file if no -k option but -A was given.  This avoids the (wrong)
3358*a7c91847Schristos	  update message for binary files which are up-to-date when
3359*a7c91847Schristos	  running 'cvs -A'.
3360*a7c91847Schristos
3361*a7c91847Schristos	* update.c (checkout_file): remove test of -k option stored in the
3362*a7c91847Schristos	  file itself because it was moved to vers_ts.c
3363*a7c91847Schristos
3364*a7c91847Schristos	* sanity.sh: added tests for the above fix.
3365*a7c91847Schristos
3366*a7c91847SchristosTue Mar 12 13:47:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3367*a7c91847Schristos
3368*a7c91847Schristos	* hash.c (findnode): Adjust comment regarding errors.
3369*a7c91847Schristos
3370*a7c91847Schristos	* hash.c (findnode, findnode_fn): Assert that key != NULL.  This
3371*a7c91847Schristos	way the check still happens even if the function is later
3372*a7c91847Schristos	rewritten to not start out by calling hashp.
3373*a7c91847Schristos
3374*a7c91847SchristosMon Mar 11 10:21:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3375*a7c91847Schristos
3376*a7c91847Schristos	* sanity.sh: If expr accepts multi-line patterns but is too
3377*a7c91847Schristos	liberal in matching them, print a warning but keep going.
3378*a7c91847Schristos
3379*a7c91847Schristos	* sanity.sh: Add QUESTION variable, analogous to PLUS.  Use it
3380*a7c91847Schristos	instead of \? to match a question mark.
3381*a7c91847Schristos
3382*a7c91847Schristos	* cvs.h (CVSMODULE_OPTS, CVSMODULE_SPEC): Move from here...
3383*a7c91847Schristos	* modules.c: ...to here.  They are only used here and the code to
3384*a7c91847Schristos	handle the syntax of modules files should not be scattered all over.
3385*a7c91847Schristos	* modules.c (CVSMODULE_OPTS): Add "+" as first character.
3386*a7c91847Schristos	* sanity.sh (modules): New tests 148a0 and 148a1 test for
3387*a7c91847Schristos	above-fixed bug.
3388*a7c91847Schristos
3389*a7c91847SchristosMon Mar 11 13:11:04 1996  Samuel Tardieu  <sam@inf.enst.fr>
3390*a7c91847Schristos
3391*a7c91847Schristos	* modules.c (cat_module): set optind to 0 to force getopt() to
3392*a7c91847Schristos	reinitialize its internal nextchar
3393*a7c91847Schristos
3394*a7c91847SchristosMon Mar 11 00:09:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3395*a7c91847Schristos
3396*a7c91847Schristos	* hash.c (findnode, findnode_fn): Revert changes of 7-8 Mar 1996.
3397*a7c91847Schristos	The correct style is to assert() that key != NULL (see HACKING),
3398*a7c91847Schristos	which is already done in the hashp function.
3399*a7c91847Schristos	* fileattr.c (fileattr_delproc): Likewise, assert() that
3400*a7c91847Schristos	node->data != NULL rather than trying to deal with it being NULL.
3401*a7c91847Schristos
3402*a7c91847SchristosFri Mar  8 01:31:04 1996  Greg A. Woods  <woods@most.weird.com>
3403*a7c91847Schristos
3404*a7c91847Schristos	* hash.c (findnode_fn): one more place to avoid calling hashp()
3405*a7c91847Schristos	with a NULL key
3406*a7c91847Schristos
3407*a7c91847SchristosThu Mar  7 17:30:01 1996  Greg A. Woods  <woods@most.weird.com>
3408*a7c91847Schristos
3409*a7c91847Schristos	* hash.c (findnode): also return NULL if key is not set
3410*a7c91847Schristos	[[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
3411*a7c91847Schristos	supposedly in a PR that should be marked "fixed"..... ]]
3412*a7c91847Schristos
3413*a7c91847Schristos	* fileattr.c (fileattr_set): set node->data to NULL after freeing
3414*a7c91847Schristos	it to prevent subsequent accesses
3415*a7c91847Schristos	(fileattr_delproc): don't free node->data if it's NULL, and set it
3416*a7c91847Schristos	to NULL after freeing
3417*a7c91847Schristos	[[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
3418*a7c91847Schristos	supposedly in a PR that should be marked "fixed"..... ]]
3419*a7c91847Schristos
3420*a7c91847SchristosFri Mar  1 14:56:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3421*a7c91847Schristos
3422*a7c91847Schristos	* sanity.sh (basica): New test basica-4a tests for bug fixed by
3423*a7c91847Schristos	sam@inf.enst.fr on 1 Mar 96.
3424*a7c91847Schristos
3425*a7c91847SchristosFri Mar  1 18:10:49 1996  Samuel Tardieu  <sam@inf.enst.fr>
3426*a7c91847Schristos
3427*a7c91847Schristos	* tag.c (check_fileproc): Check for file existence before trying
3428*a7c91847Schristos	to tag it.
3429*a7c91847Schristos
3430*a7c91847SchristosFri Mar  1 07:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3431*a7c91847Schristos
3432*a7c91847Schristos	* client.c (update_entries): If command is export, set options to
3433*a7c91847Schristos	NULL.
3434*a7c91847Schristos
3435*a7c91847SchristosThu Feb 29 16:54:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3436*a7c91847Schristos
3437*a7c91847Schristos	* lock.c (write_lock, Reader_Lock): Remove
3438*a7c91847Schristos	BOGUS_UNLESS_PROVEN_OTHERWISE code.  It was pretty bogus, and has
3439*a7c91847Schristos	been ifdeffed out for a long time.
3440*a7c91847Schristos	* cvs.h (CVSTFL): Removed; no longer used.
3441*a7c91847Schristos
3442*a7c91847Schristos	* cvsrc.c, cvs.h (read_cvsrc): Pass in command name rather than
3443*a7c91847Schristos	using global variable command_name.
3444*a7c91847Schristos	* main.c (command_name): Initialize to "", not "cvs" so that error
3445*a7c91847Schristos	messages don't say "cvs cvs".  Update calls to read_cvsrc to pass
3446*a7c91847Schristos	in command_name or "cvs" as appropriate.
3447*a7c91847Schristos	* sanity.sh (basica): New test basica-9 tests for above-fixed bug.
3448*a7c91847Schristos
3449*a7c91847Schristos	* lock.c: Rename unlock to lock_simple_remove to avoid conflict
3450*a7c91847Schristos	with builtin function on QNX.
3451*a7c91847Schristos
3452*a7c91847SchristosThu Feb 29 17:02:22 1996  Samuel Tardieu  <sam@inf.enst.fr>
3453*a7c91847Schristos
3454*a7c91847Schristos	* fileattr.c (fileattr_get): Removed NULL pointer dereference
3455*a7c91847Schristos	which occurred in the absence of default attribute.
3456*a7c91847Schristos
3457*a7c91847SchristosThu Feb 29 07:36:57 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3458*a7c91847Schristos
3459*a7c91847Schristos	* rcs.c (RCS_isbranch, RCS_whatbranch): Remove no longer used file
3460*a7c91847Schristos 	argument, swap order of remaining two arguments to be like other
3461*a7c91847Schristos	RCS_* functions.
3462*a7c91847Schristos	(RCS_nodeisbranch): swap order of arguments to be like other RCS_*
3463*a7c91847Schristos	functions.
3464*a7c91847Schristos	* rcs.h (RCS_isbranch, RCS_whatbranch, RCS_nodeisbranch): Update
3465*a7c91847Schristos	prototypes for above changes.
3466*a7c91847Schristos	* commit.c, rtag.c, status.c, tag.c: Update for above calling
3467*a7c91847Schristos 	convention changes.
3468*a7c91847Schristos
3469*a7c91847SchristosThu Feb 29 08:39:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3470*a7c91847Schristos
3471*a7c91847Schristos	* client.c (start_server): Revert changes which claimed to fall
3472*a7c91847Schristos	back to a different way of connecting.  Add comments explaining
3473*a7c91847Schristos	why.  (I don't think the changes did what they claimed, anyway).
3474*a7c91847Schristos	Use indentation rather than comments to line up #if, #else, and
3475*a7c91847Schristos	#endif.
3476*a7c91847Schristos
3477*a7c91847Schristos	* patch.c (patch, patch_fileproc): Revert change to add optional
3478*a7c91847Schristos	arguments to -c and -u.  Optional arguments are evil and in
3479*a7c91847Schristos	violation of the POSIX argument syntax guidelines.  The correct
3480*a7c91847Schristos	way to do this is -C and -U.  Also change DIFF back to "diff" in
3481*a7c91847Schristos	output (see comments).
3482*a7c91847Schristos
3483*a7c91847Schristos	gcc -Wall lint:
3484*a7c91847Schristos	* client.c (copy_a_file): Declare p inside the #ifdef in which is
3485*a7c91847Schristos	it used.
3486*a7c91847Schristos	* commit.c (remove_file): Remove unused variable p.
3487*a7c91847Schristos	* commit.c (checkaddfile): Remove unused variables p.
3488*a7c91847Schristos	* rcs.c (RCS_isbranch): Remove unused variable p.
3489*a7c91847Schristos	* rcs.c: Remove unused declarations and definitions of
3490*a7c91847Schristos	parse_rcs_proc, rcsnode_delproc, rcslist, and repository.
3491*a7c91847Schristos	* rtag.c (rtag_fileproc): Remove unused variable p.
3492*a7c91847Schristos	* patch.c (patch_fileproc): Remove unused variable p.
3493*a7c91847Schristos	* tag.c (val_fileproc): Remove unused variable node.
3494*a7c91847Schristos	* client.c, import.c, lock.c, server.c: Cast pid_t to long before
3495*a7c91847Schristos	passing it to %ld.
3496*a7c91847Schristos
3497*a7c91847Schristos	* cvs.h: Don't prototype gethostname; merely declare it (on linux,
3498*a7c91847Schristos	second argument is size_t not int).
3499*a7c91847Schristos
3500*a7c91847SchristosThu Feb 29 10:29:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3501*a7c91847Schristos
3502*a7c91847Schristos	* sanity.sh: added "cat > /dev/null" to loginfo entry to avoid the
3503*a7c91847Schristos	  SIGPIPE signal
3504*a7c91847Schristos
3505*a7c91847SchristosThu Feb 29 10:28:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3506*a7c91847Schristos
3507*a7c91847Schristos	* patch.c: added new variable diff_opt
3508*a7c91847Schristos	(patch): allow optional parameter to -c and -u option, send it to
3509*a7c91847Schristos	server
3510*a7c91847Schristos	(patch_fileproc): cleaned up the code which prints the current
3511*a7c91847Schristos	filename.  For "-s" option, print the pathname relative to CVSROOT
3512*a7c91847Schristos	instead of just the filename.
3513*a7c91847Schristos
3514*a7c91847Schristos	* filesubr.c (xchmod): added cast to shut up gcc
3515*a7c91847Schristos
3516*a7c91847Schristos	* cvs.h: added prototype for gethostname
3517*a7c91847Schristos
3518*a7c91847SchristosThu Feb 29 10:27:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3519*a7c91847Schristos
3520*a7c91847Schristos	* lock.c (write_lock), (Reader_Lock), import.c (update_rcs_file),
3521*a7c91847Schristos	  client.c (update_entries), (send_modified), server.c (server),
3522*a7c91847Schristos	  (receive_file), (server_updated): use %ld for printing pid_t
3523*a7c91847Schristos	  variables
3524*a7c91847Schristos
3525*a7c91847SchristosThu Feb 29 02:22:12 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3526*a7c91847Schristos
3527*a7c91847Schristos	* run.c (run_exec): Added VMS return status support.
3528*a7c91847Schristos
3529*a7c91847SchristosThu Feb 29 01:07:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3530*a7c91847Schristos
3531*a7c91847Schristos	* client.c (send_to_server): wrtn wasn't being declared under
3532*a7c91847Schristos	VMS for some reason.
3533*a7c91847Schristos
3534*a7c91847SchristosWed Feb 28 23:27:04 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3535*a7c91847Schristos
3536*a7c91847Schristos	* client.c: Changed #ifdef VMS && NO_SOCKET_TO_FD to
3537*a7c91847Schristos	#if defined(VMS) && defined(NO_SOCKET_TO_FD)
3538*a7c91847Schristos
3539*a7c91847SchristosWed Feb 28 22:28:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3540*a7c91847Schristos
3541*a7c91847Schristos	* build_src.com: Added DCL command procedure to build
3542*a7c91847Schristos	and link CVS client for VMS.
3543*a7c91847Schristos
3544*a7c91847SchristosWed Feb 28 22:07:20 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3545*a7c91847Schristos
3546*a7c91847Schristos	* client.c: VMS CVS client specific changes.
3547*a7c91847Schristos
3548*a7c91847Schristos	Added USE_DIRECT_TCP to allow CVS_PORT to be used to specify
3549*a7c91847Schristos	a TCP connection port (no Kerberos).  Changed
3550*a7c91847Schristos	start_kerberos_server() to start_tcp_server().
3551*a7c91847Schristos
3552*a7c91847Schristos	In copy_a_file(): transform a backup file to have a
3553*a7c91847Schristos        VMS-friendly name.
3554*a7c91847Schristos
3555*a7c91847Schristos	Added HAVE_CONFIG_H to include "config.h".
3556*a7c91847Schristos
3557*a7c91847Schristos	start_server() will starts the first successful of any
3558*a7c91847Schristos	mutually exclusive methods of starting the CVS server
3559*a7c91847Schristos	which might be enabled.
3560*a7c91847Schristos
3561*a7c91847Schristos	Initialized use_socket_style and server_sock for VMS in
3562*a7c91847Schristos	start_server().
3563*a7c91847Schristos
3564*a7c91847SchristosWed Feb 28 21:49:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3565*a7c91847Schristos
3566*a7c91847Schristos	* find_names.c, recurse.c, cvs.h: Changed Find_Dirs() to
3567*a7c91847Schristos	Find_Directories().
3568*a7c91847Schristos	* cvs.h: Added VMS filenames enabled through USE_VMS_FILENAMES
3569*a7c91847Schristos	VMS POSIX will require to use the regular CVS filenames
3570*a7c91847Schristos	while VMS is #define'd.
3571*a7c91847Schristos
3572*a7c91847SchristosWed Feb 28 21:26:22 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3573*a7c91847Schristos
3574*a7c91847Schristos	* ignore.c: Added the patterns *.olb *.exe _$* *$ to default
3575*a7c91847Schristos	ignore list for VMS.
3576*a7c91847Schristos
3577*a7c91847SchristosWed Feb 28 13:32:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3578*a7c91847Schristos
3579*a7c91847Schristos	* logmsg.c (do_editor): Fix indentation.
3580*a7c91847Schristos
3581*a7c91847SchristosWed Feb 28 12:56:49 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3582*a7c91847Schristos
3583*a7c91847Schristos	* logmsg.c (do_editor): If no editor is defined, exit and print
3584*a7c91847Schristos	a message.
3585*a7c91847Schristos
3586*a7c91847SchristosWed Feb 28 10:40:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3587*a7c91847Schristos
3588*a7c91847Schristos	* vers_ts.c (time_stamp, time_stamp_server): Reindent and revise
3589*a7c91847Schristos	comments.
3590*a7c91847Schristos
3591*a7c91847SchristosTue Feb 27 23:57:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3592*a7c91847Schristos
3593*a7c91847Schristos	* vers_ts.c: gmtime() returns NULL on some systems (VMS)
3594*a7c91847Schristos	revert to local time via ctime() if GMT is not avaiable.
3595*a7c91847Schristos
3596*a7c91847SchristosTue Feb 27 13:07:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3597*a7c91847Schristos
3598*a7c91847Schristos	The changes listed below cause cvs to parse each rcs file (and
3599*a7c91847Schristos 	free the associated rcsnode after the file has been processed)
3600*a7c91847Schristos 	sequentially.  cvs used to parse all files in a directory, an
3601*a7c91847Schristos	approach that does not scale to huge repositories with lots
3602*a7c91847Schristos	of revisions/branches/tags/etc.
3603*a7c91847Schristos
3604*a7c91847Schristos	* cvs.h (struct file_info): Removed srcfiles field.  Added rcs
3605*a7c91847Schristos 	(node) field.
3606*a7c91847Schristos	* recurse.c (do_recursion): Removed code that pre-parsed all
3607*a7c91847Schristos 	rcs files in the directory.
3608*a7c91847Schristos	(do_file_proc): Parse current rcs file.
3609*a7c91847Schristos	* rcs.c (RCS_parsefiles, parse_rcs_proc, RCS_addnode): Removed.
3610*a7c91847Schristos	(RCS_isbranch, RCS_whatbranch): Changed srcfiles argument to
3611*a7c91847Schristos	rcs (node).
3612*a7c91847Schristos	* rcs.h (RCS_parsefiles, RCS_addnode): Removed prototypes.
3613*a7c91847Schristos	(RCS_isbranch, RCS_whatbranch): Updated prototypes.
3614*a7c91847Schristos	* add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
3615*a7c91847Schristos	commit.c, diff.c, history.c, import.c, log.c, patch.c, remove.c,
3616*a7c91847Schristos	rtag.c, status.c, tag.c, update.c, vers_ts: Updated for above
3617*a7c91847Schristos	calling convention / data structure changes.
3618*a7c91847Schristos
3619*a7c91847SchristosMon Feb 26 16:07:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3620*a7c91847Schristos
3621*a7c91847Schristos	* Version 1.7.3.
3622*a7c91847Schristos
3623*a7c91847Schristos	* Version 1.7.2.
3624*a7c91847Schristos
3625*a7c91847SchristosMon Feb 26 1996  Jim Kingdon  <kingdon@cyclic.com>
3626*a7c91847Schristos
3627*a7c91847Schristos	* recurse.c (start_recursion): Use last_component rather than
3628*a7c91847Schristos	checking for '/' directly.
3629*a7c91847Schristos	(do_dir_proc): Likewise.
3630*a7c91847Schristos
3631*a7c91847Schristos	Visual C++ lint:
3632*a7c91847Schristos	* client.c (send_to_server): Change wrtn to size_t.
3633*a7c91847Schristos	(connect_to_pserver): Put tofd and fromfd declarations inside
3634*a7c91847Schristos	#ifndef NO_SOCKET_TO_FD.
3635*a7c91847Schristos	* scramble.c (shifts): Change from array of char to array of
3636*a7c91847Schristos	unsigned char.
3637*a7c91847Schristos
3638*a7c91847SchristosMon Feb 26 13:31:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3639*a7c91847Schristos
3640*a7c91847Schristos	* server.c (check_repository_password): Remove unused variables
3641*a7c91847Schristos	linelen, ch.
3642*a7c91847Schristos
3643*a7c91847Schristos	* client.c (send_file_names): Translate ISDIRSEP characters to '/'.
3644*a7c91847Schristos
3645*a7c91847SchristosSat Feb 24 21:25:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3646*a7c91847Schristos
3647*a7c91847Schristos	* checkout.c (safe_location): Re-indent one line.
3648*a7c91847Schristos
3649*a7c91847SchristosSat Feb 24 10:50:42 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3650*a7c91847Schristos
3651*a7c91847Schristos        * checkout.c (safe_location): put assignment to hardpath[x] in an
3652*a7c91847Schristos        `else'-clause, so we don't do it when x == -1.
3653*a7c91847Schristos
3654*a7c91847SchristosSat Feb 24 01:40:28 1996  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
3655*a7c91847Schristos                          via Karl Fogel  <kfogel@floss.red-bean.com>
3656*a7c91847Schristos
3657*a7c91847Schristos 	* server.c (check_repository_password): Return by reference an
3658*a7c91847Schristos  	  optional username, the `host_user', from the passwd file.  The
3659*a7c91847Schristos  	  host_user will be the user-id under which the cvs repository is
3660*a7c91847Schristos  	  run.
3661*a7c91847Schristos 	  (check_repository_password): Use `read_line' instead of fgets to
3662*a7c91847Schristos  	  allow for passwords larger than 32 characters, as well as the
3663*a7c91847Schristos  	  optional host user argument.
3664*a7c91847Schristos 	  (check_password): Modify to use host_user.
3665*a7c91847Schristos 	  (authenticate_connection): Modify to use host_user.
3666*a7c91847Schristos
3667*a7c91847SchristosSat Feb 24 01:05:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3668*a7c91847Schristos
3669*a7c91847Schristos        * scramble.c (descramble): just shift descrambled string to get
3670*a7c91847Schristos        rid of tag char, instead of allocating a whole new copy.
3671*a7c91847Schristos        (scramble): cast return value of xmalloc to avoid unsightly
3672*a7c91847Schristos        compiler warnings.
3673*a7c91847Schristos
3674*a7c91847Schristos        * options.h.in (RCSBIN_DFLT): don't refer to AUTH_SERVER_SUPPORT
3675*a7c91847Schristos        in comment anymore, now that it's not defined in this file.
3676*a7c91847Schristos
3677*a7c91847SchristosFri Feb 23 1996  Jim Kingdon  <kingdon@cyclic.com>
3678*a7c91847Schristos
3679*a7c91847Schristos	* client.c: Ifdef HAVE_WINSOCK_H, include winsock.h
3680*a7c91847Schristos	instead of sys/socket.h and friends.
3681*a7c91847Schristos	* login.c: Don't include sys/socket.h and friends.
3682*a7c91847Schristos	* login.c (login): Only fclose fp in the case where it was
3683*a7c91847Schristos	successfully fopen'd.
3684*a7c91847Schristos	* login.c: Declare getpass.
3685*a7c91847Schristos	* filesubr.c, cvs.h (get_homedir): New function.
3686*a7c91847Schristos	* cvsrc.c, expand_path.c, history.c, login.c: Call it instead
3687*a7c91847Schristos	of getenv ("HOME").
3688*a7c91847Schristos
3689*a7c91847SchristosFri Feb 23 09:23:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3690*a7c91847Schristos
3691*a7c91847Schristos	* client.c (connect_to_pserver): Remove unused variable host.
3692*a7c91847Schristos	* login.c: Include getline.h.
3693*a7c91847Schristos	(login): Remove unused variables i and username.
3694*a7c91847Schristos	(get_cvs_password): Move free of linebuf to where it actually will
3695*a7c91847Schristos	be called.  Add a "return NULL" at the end of the function to shut
3696*a7c91847Schristos	up gcc -Wall.
3697*a7c91847Schristos
3698*a7c91847Schristos	* options.h.in: Remove AUTH_SERVER_SUPPORT.
3699*a7c91847Schristos	* client.h (authenticate_connection): Declare.
3700*a7c91847Schristos	* scramble.c (scramble): Cast char to unsigned char before using
3701*a7c91847Schristos	it to look up in table (char might be signed).
3702*a7c91847Schristos	* server.c [AUTH_SERVER_SUPPORT]: Include grp.h
3703*a7c91847Schristos	(authenticate_connection): Remove unused variables len and
3704*a7c91847Schristos	server_user.
3705*a7c91847Schristos
3706*a7c91847Schristos	* sanity.sh (basica): Add comments regarding creating a top-level
3707*a7c91847Schristos	directory.
3708*a7c91847Schristos	(basic1): Don't try to remove first-dir and
3709*a7c91847Schristos	${CVSROOT_DIRNAME}/first-dir at start of test; tests are now
3710*a7c91847Schristos	responsible for cleaning up at the end.
3711*a7c91847Schristos	(PLUS,DOTSTAR,ENDANCHOR): Add comments regarding fixed GNU expr.
3712*a7c91847Schristos
3713*a7c91847SchristosThu Feb 22 22:34:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3714*a7c91847Schristos
3715*a7c91847Schristos	* cvs.h: Remove alloca cruft.
3716*a7c91847Schristos
3717*a7c91847SchristosWed Feb 21 07:30:16 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3718*a7c91847Schristos
3719*a7c91847Schristos	* modules.c (do_module): call free_cwd before exiting.
3720*a7c91847Schristos
3721*a7c91847Schristos	* recurse.c: Removed entries global variable.
3722*a7c91847Schristos	(do_recursion): Declare entries.  Moved call to Entries_Close so
3723*a7c91847Schristos 	entries list is closed on all code paths.
3724*a7c91847Schristos	(start_recursion): Removed call to Entries_Close, entries list has
3725*a7c91847Schristos 	been moved to do_recursion only.
3726*a7c91847Schristos
3727*a7c91847SchristosTue Feb 20 22:10:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3728*a7c91847Schristos
3729*a7c91847Schristos	* update.c (update_dirent_proc): If dir lacks a CVS subdirectory,
3730*a7c91847Schristos	don't recurse into it.
3731*a7c91847Schristos	* sanity.sh (conflicts): Test for above-fixed bug.
3732*a7c91847Schristos
3733*a7c91847Schristos	* update.c (merge_file): Use write_letter not printf.
3734*a7c91847Schristos
3735*a7c91847SchristosTue Feb 20 12:34:07 EST 1996: Gary Oberbrunner <garyo@avs.com>
3736*a7c91847Schristos			      and Jim Kingdon <kingdon@cyclic.com>
3737*a7c91847Schristos
3738*a7c91847Schristos	* history.c (history_write): Change username to char * and call
3739*a7c91847Schristos	getcaller() to set it.  Setting username accidentally got deleted
3740*a7c91847Schristos	8 Feb 96.
3741*a7c91847Schristos	* sanity.sh: Revise test 64 to test for above-fixed bug.
3742*a7c91847Schristos	* sanity.sh (PLUS): New variable, work around yet another GNU expr
3743*a7c91847Schristos	bug.
3744*a7c91847Schristos
3745*a7c91847SchristosTue Feb 20 14:07:50 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3746*a7c91847Schristos
3747*a7c91847Schristos	* sanity.sh: Merge test rtags into test basic2.  They never were
3748*a7c91847Schristos	capable of running separately of each other.
3749*a7c91847Schristos
3750*a7c91847Schristos	* sanity.sh (deep): New test, to test ability to operate in deeply
3751*a7c91847Schristos	nested directories (more quickly than basic2 test did).
3752*a7c91847Schristos	(basic2,rtags): Remove directories dir3 and dir4.  Remove file8,
3753*a7c91847Schristos	file10, file12, file9, file11, file13, file15, file16, file17.
3754*a7c91847Schristos	These additional files slowed down the tests considerably without
3755*a7c91847Schristos	significantly increasing coverage.
3756*a7c91847Schristos
3757*a7c91847Schristos	* sanity.sh (PROG): New variable.  Use it instead of "cvs"
3758*a7c91847Schristos	to match the name cvs prints out for itself.
3759*a7c91847Schristos
3760*a7c91847SchristosMon Feb 19 09:00:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3761*a7c91847Schristos
3762*a7c91847Schristos	This fixes a bug whereby old default attributes would get
3763*a7c91847Schristos	clobbered instead of added to on "cvs watch add".
3764*a7c91847Schristos	* hash.c (findnode): Don't check for key == NULL; let the
3765*a7c91847Schristos	assertion in hashp take care of it.
3766*a7c91847Schristos	* fileattr.h, fileattr.c (fileattr_get): If filename is NULL,
3767*a7c91847Schristos	return default attributes.
3768*a7c91847Schristos
3769*a7c91847Schristos	* client.c (send_repository): Fix indentation.
3770*a7c91847Schristos
3771*a7c91847SchristosMon Feb 19 01:10:01 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3772*a7c91847Schristos
3773*a7c91847Schristos        * login.c (login): print out full repos so user knows which server
3774*a7c91847Schristos        she's logging into.
3775*a7c91847Schristos
3776*a7c91847Schristos        * client.c (send_repository): die if `repos' is NULL.  This is a
3777*a7c91847Schristos        lame solution; see comments in code.
3778*a7c91847Schristos
3779*a7c91847SchristosThu Feb 15 15:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3780*a7c91847Schristos
3781*a7c91847Schristos	* error.c (error): Free entire and mess when done with them.
3782*a7c91847Schristos
3783*a7c91847Schristos	* sanity.sh (info): Correct syntax of .cvsrc file.
3784*a7c91847Schristos
3785*a7c91847Schristos	* cvs.h, expand_path.c, edit.c, parseinfo.c, wrapper.c:
3786*a7c91847Schristos	expand_path now takes arguments containing file and line for error
3787*a7c91847Schristos	message, and it prints the error message itself.
3788*a7c91847Schristos	* sanity.sh (info-6a): Test printing of error message.
3789*a7c91847Schristos
3790*a7c91847Schristos	* expand_path.c (expand_variable): Add USER internal variable.
3791*a7c91847Schristos	* sanity.sh (info): Test USER and CVSROOT internal variables too.
3792*a7c91847Schristos
3793*a7c91847SchristosWed Feb 14 19:11:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3794*a7c91847Schristos
3795*a7c91847Schristos	* main.c (usg): Add -s option.
3796*a7c91847Schristos
3797*a7c91847SchristosTue Feb 13 20:26:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3798*a7c91847Schristos
3799*a7c91847Schristos	gcc -Wall lint:
3800*a7c91847Schristos	* mkmodules.c (mkmodules_usage): Remove declaration of
3801*a7c91847Schristos	non-existent function.
3802*a7c91847Schristos	* cvs.h (mkmodules): Declare.
3803*a7c91847Schristos
3804*a7c91847SchristosMon Feb 12 12:20:04 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3805*a7c91847Schristos
3806*a7c91847Schristos	* mkmodules.c: Rename main to mkmodules and remove various pieces
3807*a7c91847Schristos	of scaffolding which it used to emulate non-existent parts of CVS.
3808*a7c91847Schristos	Change calling convention to just take a char * not argc,argv.
3809*a7c91847Schristos	Save and restore working directory.
3810*a7c91847Schristos	* commit.c (commit_filesdoneproc): Call it if checking files into
3811*a7c91847Schristos	CVSROOT.
3812*a7c91847Schristos	* Makefile.in (SOURCES): Add mkmodules.c.
3813*a7c91847Schristos	(OBJECTS): Add mkmodules.o.
3814*a7c91847Schristos	(MSOURCES,MOBJECTS): Removed.
3815*a7c91847Schristos	(COMMON_OBJECTS): Removed; move former contents into OBJECTS.
3816*a7c91847Schristos	Update other rules accordingly.
3817*a7c91847Schristos	* sanity.sh: Adjust to reflect nonexistence of mkmodules.
3818*a7c91847Schristos
3819*a7c91847Schristos	These changes introduce functions cvs_output and cvs_outerr;
3820*a7c91847Schristos	eventually all server output will go through them rather than
3821*a7c91847Schristos	stdio directly.
3822*a7c91847Schristos	* server.c (saved_output, saved_outerr): New variables.
3823*a7c91847Schristos	(do_cvs_command): Initialize them.
3824*a7c91847Schristos	(buf_output): Don't require that buf->output be set; saved_* use
3825*a7c91847Schristos	this to shove some data in a buffer which buf_copy_lines will
3826*a7c91847Schristos	later want to get data from.
3827*a7c91847Schristos	* server.c, cvs.h (cvs_output, cvs_outerr): New functions.
3828*a7c91847Schristos	* mkmodules.c (cvs_outerr): New function, so error() works.
3829*a7c91847Schristos	* error.c: Reindent.  Don't declare program_name and command_name;
3830*a7c91847Schristos	cvs.h declares them.
3831*a7c91847Schristos	(error): Use vasprintf and cvs_outerr (or fputs in the
3832*a7c91847Schristos	error_use_protocol case) rather than stdio directly.
3833*a7c91847Schristos	* import.c (import_descend_dir): Remove kludge which had prevented
3834*a7c91847Schristos	messages from error() from being out of order with respect to
3835*a7c91847Schristos	messages from printf; cvs_output and cvs_outerr are a cleaner
3836*a7c91847Schristos	solution to the problem.
3837*a7c91847Schristos	(add_log, import): Use cvs_output not printf.
3838*a7c91847Schristos	* update.c (write_letter): Use cvs_output not printf.
3839*a7c91847Schristos	(checkout_file): Use write_letter not printf.
3840*a7c91847Schristos	* sanity.sh: Use dotest for test 56 (test that output is actually
3841*a7c91847Schristos	correct).  In theory should test that the import.c bug is fixed,
3842*a7c91847Schristos	but I was unable to reproduce the bug (it is timing dependent).
3843*a7c91847Schristos
3844*a7c91847SchristosMon Feb 12 16:07:45 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3845*a7c91847Schristos
3846*a7c91847Schristos	* commit.c: define last_register_time
3847*a7c91847Schristos	(commit): make sure cvs doesn't exit in the same second it wrote
3848*a7c91847Schristos	the last timestamp
3849*a7c91847Schristos	(commit_fileproc): set last_register_time
3850*a7c91847Schristos	(finaladd): set last_register_time
3851*a7c91847Schristos
3852*a7c91847Schristos	* run.c, cvs.h: Changed more Popen() to run_popen()
3853*a7c91847Schristos
3854*a7c91847SchristosMon Feb 12 03:06:50 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3855*a7c91847Schristos
3856*a7c91847Schristos	* release.c, rtag.c, tag.c: changed 'delete' to 'delete_flag'
3857*a7c91847Schristos	to avoid symbol collision with DEC C RTL function delete()
3858*a7c91847Schristos
3859*a7c91847SchristosMon Feb 12 03:01:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3860*a7c91847Schristos
3861*a7c91847Schristos	* mkmodules.c: changed 'void Lock_Cleanup()' to 'void static
3862*a7c91847Schristos	Lock_Cleanup() to avoid conflict with more substantial
3863*a7c91847Schristos	Lock_Cleanup() in lock.c
3864*a7c91847Schristos
3865*a7c91847SchristosMon Feb 12 02:50:19 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3866*a7c91847Schristos
3867*a7c91847Schristos	* edit.c, logmsg.c, release.c, run.c: Changed Popen() to
3868*a7c91847Schristos	run_popen().  VMS' linker is not case sensitive and considered
3869*a7c91847Schristos	popen() and Popen() to be identical symbols.
3870*a7c91847Schristos
3871*a7c91847SchristosSun Feb 11 10:51:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3872*a7c91847Schristos
3873*a7c91847Schristos	* main.c (main) [!CLIENT_SUPPORT]: Silently ignore gzip level
3874*a7c91847Schristos	rather than printing usage message.
3875*a7c91847Schristos
3876*a7c91847Schristos	* cvs.h, expand_path.c (variable_list): New variable.
3877*a7c91847Schristos	(variable_set): New function.
3878*a7c91847Schristos	* hash.h (enum ntype), hash.c (nodetypestring): Add VARIABLE.
3879*a7c91847Schristos	* expand_path.c (expand_path, expand_variable): Reindent.
3880*a7c91847Schristos	(expand_variable): Use user variables not environment variables
3881*a7c91847Schristos	for ${=VAR} syntax.  The environment variables didn't work
3882*a7c91847Schristos	client/server.
3883*a7c91847Schristos	* main.c (main): Process new -s global option.
3884*a7c91847Schristos	* client.c (send_variable_proc): New function.
3885*a7c91847Schristos	(start_server): Call it, to send user variables.
3886*a7c91847Schristos	* server.c (serve_set): New function.
3887*a7c91847Schristos	(requests): Add Set request.
3888*a7c91847Schristos	* sanity.sh: Revise info test to use user variables rather than
3889*a7c91847Schristos	environment variables.
3890*a7c91847Schristos
3891*a7c91847SchristosSat Feb 10 16:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3892*a7c91847Schristos
3893*a7c91847Schristos	By itself this is only a small cleanup, but in the long run it
3894*a7c91847Schristos	will be way cool (for reference, it takes CVS's text segment from
3895*a7c91847Schristos	290816 bytes to 294912, which I expect will be made up by future
3896*a7c91847Schristos	changes which this enables):
3897*a7c91847Schristos	* cvs.h (struct file_info): Added.
3898*a7c91847Schristos	(FILEPROC): Replace 5 args with single struct file_info *.
3899*a7c91847Schristos	* recurse.c (do_file_proc): Adjust args to fileproc; passed in
3900*a7c91847Schristos	instead of from globals.
3901*a7c91847Schristos	(do_recursion): Call do_file_proc accordingly.  Remove srcfiles
3902*a7c91847Schristos	global variable.
3903*a7c91847Schristos	* update.c (update_fileproc): Renamed from update_file_proc.
3904*a7c91847Schristos	* admin.c, client.c, commit.c, diff.c, edit.c, log.c, patch.c,
3905*a7c91847Schristos	remove.c, rtag.c, status.c, tag.c, update.c, watch.c: Update
3906*a7c91847Schristos	fileprocs to new calling convention.
3907*a7c91847Schristos
3908*a7c91847SchristosFri Feb  9 15:30:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3909*a7c91847Schristos
3910*a7c91847Schristos	* expand_path.c (expand_variable): Accept a variable name starting
3911*a7c91847Schristos	with '=' as a way to specify an environment variable.
3912*a7c91847Schristos	* sanity.sh (info): New tests, for above behavior.
3913*a7c91847Schristos
3914*a7c91847Schristos	* Makefile.in (clean): Also remove check.log check.plog.
3915*a7c91847Schristos
3916*a7c91847Schristos	* import.c (comtable): Remove SYSTEM_COMMENT_TABLE; the table
3917*a7c91847Schristos	should *not* depend on what kind of machine the server happens to
3918*a7c91847Schristos	be.  Add "mak", "rc", "dlg", "frm", and "bas" types which were
3919*a7c91847Schristos	formerly included via SYSTEM_COMMENT_TABLE.
3920*a7c91847Schristos
3921*a7c91847Schristos	* cvs.h, rcs.h, add.c, checkin.c, classify.c, commit.c, diff.c,
3922*a7c91847Schristos	import.c, patch.c, rcs.c, update.c, vers_ts.c: Remove
3923*a7c91847Schristos	DEATH_SUPPORT ifdefs.  They were introduced to facilitate merging
3924*a7c91847Schristos	between Cygnus and Berliner variants of CVS, not because it was
3925*a7c91847Schristos	intended to subset CVS this way.  And they clutter up the code
3926*a7c91847Schristos	quite a bit.
3927*a7c91847Schristos	* cvs.h, create_adm.c, main.c, update.c: Likewise, remove
3928*a7c91847Schristos	CVSADM_ROOT ifdefs (it is still a #define, of course).  I believe
3929*a7c91847Schristos	they had a more-or-less similar motivation.
3930*a7c91847Schristos
3931*a7c91847Schristos	* sanity.sh: Move setting of HOME from ignore test to the start of
3932*a7c91847Schristos	the tests so it applies to all tests.
3933*a7c91847Schristos	(CVS): Remove -f; the above change takes care of it.
3934*a7c91847Schristos
3935*a7c91847Schristos	* rcs.h (RCS_MERGE): Removed; unused.
3936*a7c91847Schristos
3937*a7c91847Schristos	* commit.c (checkaddfile): Fix memory leak.
3938*a7c91847Schristos
3939*a7c91847Schristos	* admin.c, commit.c, diff.c, log.c, mkmodules.c: Pass -x,v/ to RCS
3940*a7c91847Schristos	commands.
3941*a7c91847Schristos
3942*a7c91847Schristos	* rcscmds.c, cvs.h (RCS_checkin): New function.
3943*a7c91847Schristos	* checkin.c, commit.c, import.c: Call it, rather than run_*.
3944*a7c91847Schristos	* cvs.h, commit.c: Remove DEATH_STATE define; the behavior
3945*a7c91847Schristos	which used to be the default (DEATH_STATE) is now the only one.
3946*a7c91847Schristos	Failing to define DEATH_STATE has been commented as obsolete at
3947*a7c91847Schristos	least since CVS 1.5.  We still can read repositories created with
3948*a7c91847Schristos	such a CVS, however.
3949*a7c91847Schristos	* rcs.h, rcs.c: Adjust comments regarding DEATH_STATE.
3950*a7c91847Schristos	* subr.c (make_message_rcslegal): Add comment, describing
3951*a7c91847Schristos	allocation of returned value.
3952*a7c91847Schristos
3953*a7c91847SchristosFri Feb  9 09:53:44 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3954*a7c91847Schristos
3955*a7c91847Schristos	* sanity.sh: use "${testcvs}" instead of "cvs" in devcom tests
3956*a7c91847Schristos
3957*a7c91847Schristos	* hash.c: fix "dereferencing a NULL pointer" bug triggered with
3958*a7c91847Schristos	  "cvs watch add"
3959*a7c91847Schristos	(findnode): return NULL if key == NULL
3960*a7c91847Schristos	(hashp): assert (key != NULL)
3961*a7c91847Schristos
3962*a7c91847SchristosFri Feb  9 00:46:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3963*a7c91847Schristos
3964*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Remove unused variable date.
3965*a7c91847Schristos
3966*a7c91847Schristos	* myndbm.c (mydbm_load_file): Fix typo ('015' -> '\015').
3967*a7c91847Schristos
3968*a7c91847SchristosThu Feb  8 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
3969*a7c91847Schristos
3970*a7c91847Schristos	* rcs.c (RCS_parse, RCS_parsercsfile, RCS_reparsercsfile),
3971*a7c91847Schristos	fileattr.c (fileattr_read), myndbm.c (myndbm_open):
3972*a7c91847Schristos	Use FOPEN_BINARY_READ.
3973*a7c91847Schristos	* fileattr.c (fileattr_write), myndbm.c (myndbm_close):
3974*a7c91847Schristos	Use FOPEN_BINARY_WRITE.
3975*a7c91847Schristos	* history.c (history_write, read_hrecs): Specify OPEN_BINARY.
3976*a7c91847Schristos	* rcs.c: Remove calls to abort.
3977*a7c91847Schristos	* myndbm.c (myndbm_load_file): Ignore CRs from ends of lines
3978*a7c91847Schristos	if present.
3979*a7c91847Schristos	* myndbm.c, fileattr.c: While I am at it, change \n to \012
3980*a7c91847Schristos	a few places where LF is intended.
3981*a7c91847Schristos	* history.c (history_write): Use getenv ("HOME"), not getpwnam,
3982*a7c91847Schristos	to find home directory.  If it isn't set, just keep going; don't
3983*a7c91847Schristos	print a message.
3984*a7c91847Schristos	* rcscmds.c, cvs.h (RCS_checkout): New function.
3985*a7c91847Schristos	* update.c, checkin.c, commit.c, diff.c, import.c, no_diff.c,
3986*a7c91847Schristos	patch.c: Call it instead of run_*.
3987*a7c91847Schristos	* patch.c (patch_fileproc): Clean up inconsistent handling of
3988*a7c91847Schristos	noexec flag.
3989*a7c91847Schristos	* rcscmds.c (RCS_*): Pass -x,v/ to RCS commands; elsewhere in
3990*a7c91847Schristos	CVS it is assumed that ,v is a suffix.
3991*a7c91847Schristos
3992*a7c91847SchristosFri Feb  2 14:07:32 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3993*a7c91847Schristos
3994*a7c91847Schristos	* rcs.h (struct rcsnode): Remove dates field (list of rcsversnodes
3995*a7c91847Schristos 	indexed by date).  CVS maintained this list for each RCS file even
3996*a7c91847Schristos	though it was never used.  This resulted in higher then necessary
3997*a7c91847Schristos	memory requirements (and run time too).  Even if revision info was
3998*a7c91847Schristos	needed, CVS' List data structure is inappropriate because can't
3999*a7c91847Schristos	handle duplicate keys.  The above was discovered by tracking down
4000*a7c91847Schristos	a memory leak.
4001*a7c91847Schristos	* rcs.c (RCS_reparsercsfile): Don't build dates list.
4002*a7c91847Schristos	(freercsnode): Don't delete dates list.
4003*a7c91847Schristos	(rcsvers_delproc): Free date field.
4004*a7c91847Schristos	(null_delproc): Removed.
4005*a7c91847Schristos
4006*a7c91847SchristosThu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4007*a7c91847Schristos
4008*a7c91847Schristos	* remove.c (cvsremove): Don't tell user the name of the program
4009*a7c91847Schristos	which they use to remove files; we don't have any way of knowing
4010*a7c91847Schristos	that, and besides which they might use a GUI or emacs 'dired' anyway.
4011*a7c91847Schristos	* update.c (update_filesdone_proc, update_dirleave_proc): Call
4012*a7c91847Schristos	unlink_file_dir instead of rm -rf.
4013*a7c91847Schristos	* options.h.in: Remove RM; no longer used.
4014*a7c91847Schristos
4015*a7c91847Schristos	* sanity.sh: New tests devcom-a* test "cvs watch add",
4016*a7c91847Schristos	"cvs watch remove", and "cvs watchers".
4017*a7c91847Schristos
4018*a7c91847Schristos	* sanity.sh: New test 171a0 tests for watch.c bug just fixed by kfogel.
4019*a7c91847Schristos
4020*a7c91847Schristos	* Most .c files: Remove rcsids.
4021*a7c91847Schristos	* cvs.h: Remove USE macro.
4022*a7c91847Schristos
4023*a7c91847SchristosThu Feb  1 13:07:15 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4024*a7c91847Schristos
4025*a7c91847Schristos	* tag.c, rtag.c: Update various comments to reflect function name
4026*a7c91847Schristos 	changes.
4027*a7c91847Schristos
4028*a7c91847SchristosThu Feb  1 14:14:31 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4029*a7c91847Schristos
4030*a7c91847Schristos        * recurse.c (do_recursion): comment #endif.
4031*a7c91847Schristos
4032*a7c91847Schristos        * edit.c (notify_check): surround with #ifdef CLIENT_SUPPORT; else
4033*a7c91847Schristos        CVS won't compile if CLIENT_SUPPORT is undefined.
4034*a7c91847Schristos
4035*a7c91847Schristos        * edit.h (notify_check): surround declaration with #ifdef
4036*a7c91847Schristos        CLIENT_SUPPORT.
4037*a7c91847Schristos
4038*a7c91847Schristos        * watch.c (watch): if argc <= 1, then just give usage (previously
4039*a7c91847Schristos        was "argc == -1").
4040*a7c91847Schristos
4041*a7c91847SchristosThu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4042*a7c91847Schristos
4043*a7c91847Schristos	* README-rm-add: Remove information which is now in cvs.texinfo.
4044*a7c91847Schristos
4045*a7c91847Schristos	* sanity.sh: Remove basic0 tests.  Move a few to new tests
4046*a7c91847Schristos	basica-1a* (but there is no need to test that *every* command
4047*a7c91847Schristos	gracefully does nothing on an empty directory; exhaustive testing
4048*a7c91847Schristos	is impractical and the generic recursion processor handles this
4049*a7c91847Schristos	anyway).
4050*a7c91847Schristos
4051*a7c91847Schristos	* sanity.sh: New tests 69a* test use of update -p to restore old
4052*a7c91847Schristos	version of dead file.
4053*a7c91847Schristos
4054*a7c91847SchristosWed Jan 31 18:32:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4055*a7c91847Schristos
4056*a7c91847Schristos	* ChangeLog-9395: Remove duplicate entries from 1996 which
4057*a7c91847Schristos	accidentally got into this file.
4058*a7c91847Schristos
4059*a7c91847Schristos	* client.c (read_line, read_from_server): Change "premature end of
4060*a7c91847Schristos	file from server" message to "end of file from server (consult
4061*a7c91847Schristos	above messages if any)" because 99% of the time it means rsh has
4062*a7c91847Schristos	printed an error message and exited.
4063*a7c91847Schristos
4064*a7c91847SchristosWed Jan 31 15:09:51 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4065*a7c91847Schristos
4066*a7c91847Schristos	* edit.c (ncheck_fileproc): Fix memory leak; free line before
4067*a7c91847Schristos	returning.
4068*a7c91847Schristos
4069*a7c91847SchristosTue Jan 30 18:06:12 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4070*a7c91847Schristos
4071*a7c91847Schristos	* recurse.c (do_recursion): Add comment about the fact that we
4072*a7c91847Schristos	don't have locks in place at certain points.
4073*a7c91847Schristos
4074*a7c91847SchristosTue Jan 30 09:43:34 1996  Vince Demarco  <vdemarco@bou.shl.com>
4075*a7c91847Schristos
4076*a7c91847Schristos	* edit.c (notify_proc): have notify_proc call expand_path with
4077*a7c91847Schristos	the name of the filter program. The user may have used a
4078*a7c91847Schristos	cvs environmental variable. (Popen will expand it, but it may not
4079*a7c91847Schristos	use the correct value)
4080*a7c91847Schristos
4081*a7c91847SchristosTue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4082*a7c91847Schristos
4083*a7c91847Schristos	* ChangeLog: take the pre-1996 changes and put them in a new file
4084*a7c91847Schristos	ChangeLog-9395.
4085*a7c91847Schristos	* ChangeLog-9194: Renamed from ChangeLog.fsf.
4086*a7c91847Schristos	* ChangeLog-9194, ChangeLog-9395, ChangeLog: Add additional text
4087*a7c91847Schristos	explaining the difference between all these logs and pointing to
4088*a7c91847Schristos	older logs.
4089*a7c91847Schristos	* Makefile.in (DISTFILES): Add ChangeLog-9194 and ChangeLog-9395;
4090*a7c91847Schristos	remove ChangeLog.fsf.
4091*a7c91847Schristos
4092*a7c91847Schristos	* modules.c (do_module): Don't fall through from 'l' to 'o' case
4093*a7c91847Schristos	of option processing switch statement.
4094*a7c91847Schristos
4095*a7c91847SchristosTue Jan 30 06:50:19 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4096*a7c91847Schristos
4097*a7c91847Schristos	* client.c (send_repository): Fix memory leak; free adm_name
4098*a7c91847Schristos 	before returning.
4099*a7c91847Schristos	* diff.c (diff_file_nodiff): Fix memory leak; free xvers before
4100*a7c91847Schristos 	returning.
4101*a7c91847Schristos	* rtag.c (rtag_fileproc): Fix memory leak; if branch_mode is set,
4102*a7c91847Schristos 	free rev before returning.
4103*a7c91847Schristos	* status.c (status_fileproc, tag_list_proc): Fix memory leak; free
4104*a7c91847Schristos 	return value of RCS_whatbranch.
4105*a7c91847Schristos	* tag.c (tag_fileproc): Fix memory leak; free vers before
4106*a7c91847Schristos 	returning.
4107*a7c91847Schristos	(val_fileproc): Fix memory leak; free return value of RCS_gettag.
4108*a7c91847Schristos	* watch.c (watch_modify_watchers): Fix memory leak; free mynewattr
4109*a7c91847Schristos	before returning.
4110*a7c91847Schristos
4111*a7c91847SchristosTue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4112*a7c91847Schristos
4113*a7c91847Schristos	* lock.c (readers_exist): If stat gave an error, print an error
4114*a7c91847Schristos	message saying it was from stat, rather than from "reading
4115*a7c91847Schristos	directory".  Skip the message completely if it was an
4116*a7c91847Schristos	existence_error.
4117*a7c91847Schristos
4118*a7c91847Schristos	* sanity.sh (branches): New tests (branches off of branches, etc.).
4119*a7c91847Schristos
4120*a7c91847SchristosTue Jan 30 11:55:34 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4121*a7c91847Schristos
4122*a7c91847Schristos	* main.c (main): Add change to run getopt_long twice again.
4123*a7c91847Schristos
4124*a7c91847SchristosMon Jan 29 15:59:31 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4125*a7c91847Schristos
4126*a7c91847Schristos	gcc -Wall lint:
4127*a7c91847Schristos	* client.c: Include edit.h
4128*a7c91847Schristos
4129*a7c91847SchristosSun Jan 28 09:45:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4130*a7c91847Schristos
4131*a7c91847Schristos	* edit.c, edit.h (mark_up_to_date): New function, to remove file
4132*a7c91847Schristos	in CVS/Base.
4133*a7c91847Schristos	* client.c (update_entries): Call it if file is up to date.
4134*a7c91847Schristos	* checkin.c (Checkin): Call it in non-server (local) case.
4135*a7c91847Schristos	* sanity.sh: New test 182.5, tests for above-fixed bug.
4136*a7c91847Schristos
4137*a7c91847SchristosSun Jan 28 01:07:22 1996  Jim Kingdon  (kingdon@beezley)
4138*a7c91847Schristos
4139*a7c91847Schristos	* client.c (change_mode): Separate out CHMOD_BROKEN code to parse
4140*a7c91847Schristos	mode_string, rather than going through a mode_t.  Cleaner than
4141*a7c91847Schristos	the previous CHMOD_BROKEN code (which also had a typo of && not &).
4142*a7c91847Schristos
4143*a7c91847SchristosSat Jan 27 23:29:46 1996  Jim Kingdon  (kingdon@beezley)
4144*a7c91847Schristos
4145*a7c91847Schristos	* edit.c (edit_fileproc): Check for EACCESS as well as EEXIST.
4146*a7c91847Schristos
4147*a7c91847SchristosSat Jan 27 16:26:30 1996  Karl Fogel  (kfogel@floss.cyclic.com)
4148*a7c91847Schristos
4149*a7c91847Schristos        * client.c (notified_a_file): use rename_file() instead of
4150*a7c91847Schristos        rename() (but temporarily set `noexec' to 0 so it runs
4151*a7c91847Schristos        unconditionally).
4152*a7c91847Schristos        (change_mode): deal with CHMOD_BROKEN.
4153*a7c91847Schristos
4154*a7c91847SchristosFri Jan 26 00:14:00 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4155*a7c91847Schristos
4156*a7c91847Schristos        * server.c: renamed `dirname' to `dir_name', to avoid conflicts
4157*a7c91847Schristos        with system headers.
4158*a7c91847Schristos
4159*a7c91847Schristos        * client.c: renamed `dirname' and `last_dirname' to `dir_name' and
4160*a7c91847Schristos        last_dir_name' (see above).  Not strictly necessary, but
4161*a7c91847Schristos        consistency is nice -- as long as you do it all the time.
4162*a7c91847Schristos
4163*a7c91847SchristosThu Jan 25 00:41:59 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4164*a7c91847Schristos
4165*a7c91847Schristos        * options.h.in (AUTH_SERVER_SUPPORT, AUTH_CLIENT_SUPPORT): change
4166*a7c91847Schristos        comment now that no longer under construction.
4167*a7c91847Schristos
4168*a7c91847SchristosWed Jan 24 15:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4169*a7c91847Schristos
4170*a7c91847Schristos	* Version 1.7.1.
4171*a7c91847Schristos
4172*a7c91847Schristos	* Version 1.7.
4173*a7c91847Schristos
4174*a7c91847SchristosSat Jan 20 00:05:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4175*a7c91847Schristos
4176*a7c91847Schristos	* Version 1.6.87.
4177*a7c91847Schristos
4178*a7c91847SchristosMon Jan 15 18:14:55 1996  Gary Oberbrunner  <garyo@avs.com>
4179*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
4180*a7c91847Schristos
4181*a7c91847Schristos	* tag.c (val_direntproc):  New function to ignore
4182*a7c91847Schristos	  nonexistent dirs when recursing to check tag validity.
4183*a7c91847Schristos	  (tag_check_valid): Pass it to start_recursion.
4184*a7c91847Schristos	* sanity.sh (death): New tests 65a0-65a6 cause test 74 to test for
4185*a7c91847Schristos	above-fixed bug.
4186*a7c91847Schristos
4187*a7c91847SchristosMon Jan 15 12:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4188*a7c91847Schristos
4189*a7c91847Schristos	* main.c: Revert change to run getopt_long twice.  This can go in
4190*a7c91847Schristos	after 1.7.
4191*a7c91847Schristos
4192*a7c91847SchristosMon Jan 15 13:03:28 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4193*a7c91847Schristos
4194*a7c91847Schristos	* filesubr.c (deep_remove_dir): added test of EEXIST for nonempty
4195*a7c91847Schristos	  directory (Posix states that both ENOTEMPTY (BSD) and EEXIST
4196*a7c91847Schristos	  (SYSV) are valid)
4197*a7c91847Schristos
4198*a7c91847Schristos	* main.c (main): run getopt_long twice to allow command-line
4199*a7c91847Schristos	  suppression of reading the cvsrc file
4200*a7c91847Schristos
4201*a7c91847SchristosFri Jan 12 10:02:43 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4202*a7c91847Schristos
4203*a7c91847Schristos	* Version 1.6.86.
4204*a7c91847Schristos
4205*a7c91847SchristosThu Jan 11 23:28:05 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4206*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
4207*a7c91847Schristos
4208*a7c91847Schristos	* fileattr.h (fileattr_startdir): Add comment about REPOS == NULL.
4209*a7c91847Schristos	* fileattr.c (fileattr_read, fileattr_write): Assert that
4210*a7c91847Schristos	fileattr_stored_repos != NULL.
4211*a7c91847Schristos	(fileattr_free): If fileattr_stored_repos is NULL, don't free it.
4212*a7c91847Schristos
4213*a7c91847SchristosThu Jan 11 18:03:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4214*a7c91847Schristos
4215*a7c91847Schristos        * scramble.c (descramble): deal with DIAGNOSTIC better.
4216*a7c91847Schristos
4217*a7c91847SchristosThu Jan 11 12:04:42 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4218*a7c91847Schristos
4219*a7c91847Schristos	* main.c: remove CVS_NOADMIN.
4220*a7c91847Schristos
4221*a7c91847Schristos	* options.h.in: remove CVS_NOADMIN
4222*a7c91847Schristos
4223*a7c91847SchristosThu Jan 11 10:28:44 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4224*a7c91847Schristos
4225*a7c91847Schristos        * scramble.c (descramble): make sure the string returned is safe
4226*a7c91847Schristos        to free().
4227*a7c91847Schristos
4228*a7c91847SchristosWed Jan 10 01:11:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4229*a7c91847Schristos
4230*a7c91847Schristos	* server.c (serve_notify): Cast return value from malloc.
4231*a7c91847Schristos
4232*a7c91847Schristos	* edit.c (notify_do): Use struct assignment, not struct
4233*a7c91847Schristos	initialization (which SunOS4 /bin/cc doesn't have).
4234*a7c91847Schristos
4235*a7c91847SchristosTue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4236*a7c91847Schristos
4237*a7c91847Schristos	* Version 1.6.85.
4238*a7c91847Schristos
4239*a7c91847Schristos	We use version numbers instead of patchlevels.  But there was some
4240*a7c91847Schristos	confusing patchlevel stuff lying around.  Nuke it:
4241*a7c91847Schristos	* Makefile.in (HEADERS): Remove patchlevel.h
4242*a7c91847Schristos	* patchlevel.h: Removed.
4243*a7c91847Schristos	* main.c: Don't include patchlevel.h.
4244*a7c91847Schristos	(main): Don't print patch level.
4245*a7c91847Schristos
4246*a7c91847Schristos	* server.c (check_repository_password): Check for errors from
4247*a7c91847Schristos	system calls; reindent function.
4248*a7c91847Schristos
4249*a7c91847SchristosTue Jan  9 23:15:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4250*a7c91847Schristos
4251*a7c91847Schristos        * expand_path.c: fix comments (explain expand_path()'s behavior
4252*a7c91847Schristos        correctly).
4253*a7c91847Schristos
4254*a7c91847SchristosTue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4255*a7c91847Schristos
4256*a7c91847Schristos	* edit.c (notify_proc): After copying in string following %s,
4257*a7c91847Schristos	don't clobber it.  Instead set up q to end of string.
4258*a7c91847Schristos
4259*a7c91847Schristos	* watch.c (watch_modify_watchers), edit.c (editor_set): Fix sense
4260*a7c91847Schristos	of test in trying to decide whether attributes are changed.
4261*a7c91847Schristos
4262*a7c91847Schristos	* cvs.h (CVSROOTADM_USERS): New macro.
4263*a7c91847Schristos	* edit.c (notify_do): Look up notifyee in CVSROOTADM_USERS if it
4264*a7c91847Schristos	exists.
4265*a7c91847Schristos
4266*a7c91847SchristosTue Jan  9 21:39:45 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4267*a7c91847Schristos
4268*a7c91847Schristos        * expand_path.c: don't redundantly #include things that cvs.h
4269*a7c91847Schristos        already #includes (i.e., stdio.h, ctype.h, string[s].h).
4270*a7c91847Schristos
4271*a7c91847SchristosTue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4272*a7c91847Schristos
4273*a7c91847Schristos	* ignore.c (ign_default): Add *.obj.
4274*a7c91847Schristos
4275*a7c91847Schristos	* server.c: Put /* */ around #endif comment.
4276*a7c91847Schristos
4277*a7c91847SchristosMon Jan  8 20:37:17 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4278*a7c91847Schristos
4279*a7c91847Schristos        * client.c (connect_to_pserver): check return value of recv().
4280*a7c91847Schristos
4281*a7c91847SchristosMon Jan  8 11:37:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4282*a7c91847Schristos
4283*a7c91847Schristos	* client.c (connect_to_pserver): Check for error from connect;
4284*a7c91847Schristos	reindent function.
4285*a7c91847Schristos
4286*a7c91847Schristos	* sanity.sh (4.75): Use dotest, so we get a PASS if test passes.
4287*a7c91847Schristos
4288*a7c91847Schristos	* sanity.sh (dotest): New argument OUTPUT2.
4289*a7c91847Schristos	(188a): Use it instead of \|.
4290*a7c91847Schristos
4291*a7c91847Schristos	* sanity.sh (import): Avoid using string $ followed by Id followed
4292*a7c91847Schristos	by $ in sanity.sh source, in case sanity.sh itself is under CVS.
4293*a7c91847Schristos	I hate keyword expansion.
4294*a7c91847Schristos
4295*a7c91847Schristos	* sanity.sh: If expr cannot handle multiline expressions, fail and
4296*a7c91847Schristos	tell the user to get one which can.
4297*a7c91847Schristos
4298*a7c91847Schristos	* release.c (release_delete): Remove unused variable retcode.
4299*a7c91847Schristos
4300*a7c91847SchristosFri Jan  5 13:30:00 1996  Jim Kingdon   <kingdon@peary.cyclic.com>
4301*a7c91847Schristos
4302*a7c91847Schristos	* release.c (release_delete): Call unlink_file_dir rather
4303*a7c91847Schristos	than "rm -rf".
4304*a7c91847Schristos
4305*a7c91847SchristosThu Jan  4 09:58:30 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4306*a7c91847Schristos
4307*a7c91847Schristos	* commit.c (find_fileproc): Print "nothing known about foo" and
4308*a7c91847Schristos	return 1 if the file doesn't exist and isn't in CVS/Entries.
4309*a7c91847Schristos	(commit): If the recursion over find_fileproc returns an error,
4310*a7c91847Schristos	print "correct above errors first!" just like local CVS.
4311*a7c91847Schristos	* sanity.sh (basica): Test for above-fixed bug.
4312*a7c91847Schristos
4313*a7c91847Schristos	* release.c (release): If we are the client, only unedit if the
4314*a7c91847Schristos	server supports it.
4315*a7c91847Schristos
4316*a7c91847Schristos	* sanity.sh: Remove STARTANCHOR stuff; expr patterns are
4317*a7c91847Schristos	automatically anchored to the start.  ENDANCHOR remains.
4318*a7c91847Schristos
4319*a7c91847Schristos	* commit.c (commit): Don't start the server until we have
4320*a7c91847Schristos	determined that there is something to commit.
4321*a7c91847Schristos
4322*a7c91847SchristosThu Jan  4 09:48:33 1996  Ben Laurie  <ben@gonzo.ben.algroup.co.uk>
4323*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
4324*a7c91847Schristos
4325*a7c91847Schristos	* client.c (start_server): dup the file descriptor before
4326*a7c91847Schristos	fdopening it.
4327*a7c91847Schristos
4328*a7c91847SchristosWed Jan  3 18:25:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4329*a7c91847Schristos
4330*a7c91847Schristos	* sanity.sh: Remove tests 5, 5.5, and 5.75.  All that stuff is
4331*a7c91847Schristos	tested elsewhere.
4332*a7c91847Schristos
4333*a7c91847Schristos	* ignore.c (ign_default): Change CVS* to CVS CVS.adm.  CVS* is too
4334*a7c91847Schristos	broad, especially in a case-insensitive filesystem.
4335*a7c91847Schristos
4336*a7c91847Schristos	* Makefile.in (cvsbug): version.c is in srcdir.
4337*a7c91847Schristos
4338*a7c91847SchristosWed Jan  3 17:30:45 1996  Phi-Long Tran  <ptran@autodesk.com>
4339*a7c91847Schristos
4340*a7c91847Schristos	* modules.c (do_module): Honor error_use_protocol in printing trace.
4341*a7c91847Schristos	* server.c (server_register): Move check for options NULL to above
4342*a7c91847Schristos	printing of the trace.
4343*a7c91847Schristos
4344*a7c91847SchristosWed Jan  3 01:19:53 1996  Mark Immel <immel@centerline.com>
4345*a7c91847Schristos			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
4346*a7c91847Schristos
4347*a7c91847Schristos	* update.c (checkout_file): Do not resurrect file on join if it
4348*a7c91847Schristos	doesn't contain the revisions we are joining.  Probably not a
4349*a7c91847Schristos	perfect test, but should be an improvement.
4350*a7c91847Schristos	* sanity.sh (death): New death-file4-* tests, for bug fixed above.
4351*a7c91847Schristos
4352*a7c91847SchristosWed Jan  3 01:19:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4353*a7c91847Schristos
4354*a7c91847Schristos	* add.c, admin.c, checkout.c, client.c, commit.c, diff.c, edit.c,
4355*a7c91847Schristos	history.c, import.c, log.c, patch.c, release.c, remove.c, rtag.c,
4356*a7c91847Schristos	status.c, tag.c, update.c, watch.c: In calling send_to_server,
4357*a7c91847Schristos	pass \012 not \n.  On the Mac \n is CR, not LF, and we want to
4358*a7c91847Schristos	send LF.  I didn't try to deal with whether files in CVSADM should
4359*a7c91847Schristos	contain CR or LF--in fact there is some code in client.c which
4360*a7c91847Schristos	reads \n from CVSADM files and passes it to send_to_server; it
4361*a7c91847Schristos	needs to be cleaned up one way or the other.
4362*a7c91847Schristos
4363*a7c91847Schristos	* entries.c (Entries_Open): Don't try to close fpin twice.
4364*a7c91847Schristos
4365*a7c91847Schristos	* client.c (update_entries): Fix typo ("strlen (filename + 10)"
4366*a7c91847Schristos	-> "strlen (filename) + 10").
4367*a7c91847Schristos
4368*a7c91847Schristos	* commit.c (checkaddfile): Remove arbitrary limit.
4369*a7c91847Schristos
4370*a7c91847SchristosTue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4371*a7c91847Schristos
4372*a7c91847Schristos	* commit.c (commit): Only pass files which were modified, added,
4373*a7c91847Schristos	or removed to send_file_names.  This has as a side effect a
4374*a7c91847Schristos	semantic change--the up-to-date check is now skipped for other
4375*a7c91847Schristos	files--but probably a good one, or at least not a bad one.
4376*a7c91847Schristos	* sanity.sh (basica): New test; tests for bug fixed above.
4377*a7c91847Schristos	* sanity.sh (187a3): Adjust for new 'cvs commit' output.  Set up
4378*a7c91847Schristos	DOTSTAR to match arbitrary text (another GNU expr bug/misfeature,
4379*a7c91847Schristos	sigh).
4380*a7c91847Schristos
4381*a7c91847Schristos	* sanity.sh: Test that the commit in test 43 actually worked.
4382*a7c91847Schristos	Merge tests basic2 and basic3 and make them independent of basic1.
4383*a7c91847Schristos	(pass,fail): Don't insert spurious space.
4384*a7c91847Schristos	(45.5): Fix typo in directory name.
4385*a7c91847Schristos
4386*a7c91847SchristosTue Jan  2 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
4387*a7c91847Schristos
4388*a7c91847Schristos	Visual C++ lint:
4389*a7c91847Schristos	* myndbm.c: Prototype write_item.
4390*a7c91847Schristos
4391*a7c91847SchristosTue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4392*a7c91847Schristos
4393*a7c91847Schristos	gcc -Wall lint:
4394*a7c91847Schristos	* client.c (client_expand_modules): Pass error message not "" to error.
4395*a7c91847Schristos	* client.c (supported_request), server.c (supported_response):
4396*a7c91847Schristos	Return a value (gcc -Wall can't know that error doesn't return).
4397*a7c91847Schristos	* commit.c (copy_ulist): Return a value.
4398*a7c91847Schristos	* history.c (fill_hrec): Don't make assumptions about whether
4399*a7c91847Schristos	time_t is "int" or "long" or what.
4400*a7c91847Schristos	* cvs.h: Declare link_file.
4401*a7c91847Schristos	* server.c: Include fileattr.h.
4402*a7c91847Schristos	* server.c (server_notify): Remove unused variable val.
4403*a7c91847Schristos	* tag.c (val_fileproc): Remove unused variable foundtag.
4404*a7c91847Schristos
4405*a7c91847SchristosMon Jan  1 09:49:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4406*a7c91847Schristos
4407*a7c91847Schristos	* Version 1.6.5.
4408*a7c91847Schristos
4409*a7c91847Schristos	* Version 1.6.4.
4410*a7c91847Schristos
4411*a7c91847Schristos	* filesubr.c (link_file): Add comment about link vs. copy semantics.
4412*a7c91847Schristos
4413*a7c91847Schristos	* cvs.h (struct vers_ts): Fix comments.
4414*a7c91847Schristos	* commit.c (commit): Before we ask for a log message, figure out
4415*a7c91847Schristos	what is modified and what is not and pass the information to
4416*a7c91847Schristos	do_editor.
4417*a7c91847Schristos	(copy_ulist,find_fileproc): New helper functions for above code.
4418*a7c91847Schristos
4419*a7c91847Schristos	* client.c (read_line): When writing to from_server_logfile, write
4420*a7c91847Schristos	the \n too.
4421*a7c91847Schristos
4422*a7c91847Schristos	* client.c (send_files): No longer call send_file_names.
4423*a7c91847Schristos	* client.h: Update comment.
4424*a7c91847Schristos	* add.c, admin.c, commit.c, diff.c, edit.c, log.c, remove.c,
4425*a7c91847Schristos	status.c, tag.c, update.c, watch.c: Call send_file_names before
4426*a7c91847Schristos	send_files.
4427*a7c91847Schristos	* client.c: New variables module_argc, module_argv.
4428*a7c91847Schristos	(client_expand_modules): Set them, to arguments.
4429*a7c91847Schristos	(client_send_expansions): Use them instead of modules_vector to
4430*a7c91847Schristos	send arguments.
4431*a7c91847Schristos	* sanity.sh (modules): Add test of modules -d flag.
4432*a7c91847Schristos
4433*a7c91847Schristos
4434*a7c91847SchristosFor older changes see ChangeLog-9395.
4435