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