ChangeLog-97 revision 32785
11997-12-30  enami tsugutomo  <enami@but-b.or.jp>
2
3	* rcs.c (RCS_checkin): Use gmtime() instead of localtime()
4	(restores behavior from RCS 5.x which was broken with RCS library
5	-kingdon).
6
7Mon Dec 29 12:53:00 1997  Ian Lance Taylor  <ian@cygnus.com>
8
9	* modules.c (do_module): Check for a request for a file within a
10	module which is not a directory.
11	* sanity.sh (modules): Add test 149b1 for above patch.
12
13	* client.c (start_tcp_server): Remove useless assignment, left
14	behind by Dec 15 patch.
15
16Sat Dec 27 17:41:11 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
17
18	* client.c, options.h.in, history.c, import.c, main.c, rcs.c,
19	update.c: Remove !HAVE_RCS5 code.  It had bit-rotted a while ago,
20	and more to the point is obsolete with the RCS library.
21
2227 Dec 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
23
24	* zlib.c, server.h (gunzip_and_write): New function.
25	* client.c (update_entries): Call it instead of a gunzip subprocess.
26	* zlib.c, server.h (read_and_gzip): New function.
27	* client.c (send_modified): Call it instead of a gzip subprocess.
28
29Sat Dec 27 13:07:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
30
31	Decrease RCS_deltas memory usage to what we need (approximately
32	the size of the file we are patching plus the size of the largest
33	patch).  Previously memory usage had been approximately the size
34	of the RCS file because we never freed lines until the end.
35	* rcs.c (linevector_free, linevector_copy, linevector_add,
36	linevector_delete):
37	Instead of having all the lines and struct line's in the alloc_*
38	space, have each line and its struct line in its own malloc'd
39	space.  Use a refcount to deal with curlines vs. headlines
40	vs. trunklines in RCS_deltas.
41	(struct allocblock, blocks, block_alloc, block_free): Remove; no
42	longer used.
43	(apply_rcs_changes, RCS_deltas): Don't copy lines into allocated
44	space; linevector_add now does that for us.
45	(rcs_change_text, RCS_deltas): Don't call block_free.
46
47Tue Dec 23 08:28:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
48
49	* cvsbug.sh: Change bug-cvs address from prep.ai.mit.edu to gnu.org
50	per email from Martin Hamilton.
51
52Sun Dec 21 21:49:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
53
54	* rcs.c (RCS_checkin): Disable keyword expansion when generating
55	the change text.
56	* sanity.sh: Move tests keyword-24 through keyword-27 into
57	new section keywordlog and expand greatly.  Note that CVS 1.9.18
58	passes the new tests both local and remote but the current
59	version failed them both local and remote before this fix.
60
61Sat Dec 20 19:56:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
62
63	* rcs.c (RCS_delete_revs): Clean up temporary files even if noexec.
64	Without this fix, basica-o5a in sanity.sh would leave files around.
65
66Thu Dec 18 13:05:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
67
68	* run.c: Fix typo in declaration (evecvp -> execvp) (credit to
69	Erik Walthinsen for reporting this).  Only declare it if not
70	HAVE_UNISTD_H.  Move declaration to before the first use.
71
72Tue Dec 16 12:59:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
73
74	* update.c: Collapse two identical declarations for join_file.
75
76Mon Dec 15 16:01:49 1997  Ian Lance Taylor  <ian@cygnus.com>
77
78	* client.c (start_tcp_server): Remove calls to htons and add one
79 	call to ntohs (init_sockaddr calls htons on the port argument).
80
81Mon Dec 15 00:07:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
82
83	* client.c (failure_exit): New variable.
84	(get_server_responses): If it is set, then return
85	failure.
86	(updated_seen, updated_fname): New variables.
87	(update_entries): Use updated_fname if set.  In the "move away
88	foo.c; it is in the way" case print "C" not "U", and set
89	failure_exit.
90	(handle_mt): If we get +updated tagged text, stash it away in
91	updated_fname rather than printing it immediately.
92	(handle_mt, get_server_responses): If we stashed a filename and
93	didn't get around to printing it, go ahead and print it.
94	* sanity.sh (conflicts2-142d2): Adjust to test for fix.  Remote is
95	now like local was in terms of exit status and "C aa.c" message.
96
97Sun Dec 14 00:27:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
98
99	Implement tagged text feature:
100	* update.c (write_letter): Take a single finfo argument rather
101	than file and update_dir.  While we are at it change it to return
102	void (since the returned value always had been 0).
103	* update.c: Update callers.
104	* server.c, cvs.h (cvs_output_tagged): New function.
105	* client.c (responses): Add "MT" response.
106	(handle_mt): New function.
107	* update.c (write_letter): Output via cvs_output_tagged.
108
109Sun Dec 14 14:13:05 1997  Ian Lance Taylor  <ian@cygnus.com>
110
111	* recurse.c (do_dir_proc): Only check for CVS/Repository if
112	W_LOCAL.
113	* sanity.sh (devcom-t2, devcom-t3): New tests for above patch.
114
115Sun Dec 14 00:27:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
116
117	* root.c (parse_cvsroot): Initialize check_hostname (fixes thinko
118	in GSSAPI changes).
119
120Sat Dec 13 13:15:35 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
121
122	* server.c: Use indentation to indicate nesting of #ifdef's.
123
124	* client.c (connect_to_gserver): Reindent (in one place).
125
126Fri Dec 12 17:38:15 1997  Chris Provenzano <proven@cygnus.com>
127	and Ian Lance Taylor  <ian@cygnus.com>
128
129	* cvs.h (CVSmethod): Add gserver_method.
130	* root.c (method_names): Add gserver.
131	(parse_cvsroot): Handle :gserver:.
132	* client.h (cvsauthenticate): Declare.
133	(cvs_gssapi_encrypt): Declare if HAVE_GSSAPI and ENCRYPTION.
134	(cvs_gssapi_wrap_buffer_initialize): Declare if HAVE_GSSAPI.
135	(connect_to_pserver): Update declaration.
136	(pserver_authenticate_connection): Declare when HAVE_GSSAPI and
137	SERVER_SUPPORT is defined in addition to other case.
138	* client.c: If HAVE_GSSAPI, include GSSAPI header files.
139	(gcontext): New static variable if HAVE_GSSAPI.
140	(connect_to_pserver): Add do_gssapi parameter.  Change all
141	callers.  Move rejection handling to bottom of function.
142	(recv_bytes): New static function if HAVE_GSSAPI.
143	(connect_to_gserver): Likewise.
144	(start_server): Handle gserver_method.  Handle GSSAPI encryption
145	and authentication.
146	* server.c: Include <sys/socket.h> if HAVE_GSSAPI, in addition to
147	existing cases.  If HAVE_GSSAPI, include GSSAPI header files.
148	Include <grp.h> even if AUTH_SERVER_SUPPORT is not defined.
149	(gcontext, cvs_gssapi_wrapping): New static variables if
150	HAVE_GSSAPI.
151	(cvs_gssapi_encrypt): New global variable if HAVE_GSSAPI and
152	ENCRYPTION.
153	(serve_gssapi_encrypt): New static function if HAVE_GSSAPI and
154	ENCRYPTION.
155	(serve_gssapi_authenticate): New static function if HAVE_GSSAPI.
156	(requests): Add Gssapi-encrypt if HAVE_GSSAPI and ENCRYPTION.  Add
157	Gssapi-authenticate if HAVE_GSSAPI.
158	(switch_to_user): Compile if HAVE_GSSAPI, in addition to existing
159	cases.
160	(pserver_authenticate_connection): Likewise.  Ifdef out part of
161	the code for AUTH_SERVER_SUPPORT.  Handle a GSSAPI request.
162	(gserver_authenticate_connection): New static function if
163	HAVE_GSSAPI.
164	(cvsauthenticate): New global variable.
165	(struct cvs_gssapi_wrap_data): Define if HAVE_GSSAPI.
166	(cvs_gssapi_wrap_buffer_initialize): New function if HAVE_GSSAPI.
167	(cvs_gssapi_wrap_input): New static function if HAVE_GSSAPI.
168	(cvs_gssapi_wrap_output): Likewise.
169	* main.c (opt_usage): Mention -a.
170	(main): Handle -a.  Handle pserver if HAVE_GSSAPI, in addition to
171	existing cases.
172	* login.c (login): Pass new argument to connect_to_pserver.
173
174Fri Dec 12 15:33:19 1997  Ian Lance Taylor  <ian@cygnus.com>
175
176	* buffer.c (PACKET_SLOP): Define.
177	(packetizing_buffer_initialize): Use PACKET_SLOP when allocating
178	holdbuf.
179	(packetizing_buffer_input): Allow up to PACKET_SLOP bytes in
180	stackoutbuf.
181	(packetizing_buffer_output): Use just BUFFER_DATA_SIZE + 2 for
182	inbuf.  Allow PACKET_SLOP + 4 extra bytes in stack_outbuf.
183	Correct >= to > in test of incoming number of bytes.  Use
184	PACKET_SLOP in other tests.
185
186Fri Dec 12 10:27:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
187
188	* client.c (start_tcp_server): Revise comment to reflect
189	SOCK_STRERROR and SOCK_ERRNO now being in use.
190
191Thu Dec 11 15:32:31 1997  Ian Lance Taylor  <ian@cygnus.com>
192
193	* client.c (init_sockaddr): Compile if HAVE_KERBEROS, as well as
194	if AUTH_CLIENT_SUPPORT.  Return a pointer to a struct hostent.
195	(start_tcp_server): Clean up.  Use init_sockaddr.  Use
196	SOCK_STRERROR and SOCK_ERRNO.  Don't bind the socket.
197
198	Generalize buffering code used by Kerberos encryption routines
199	into a generic packetizing buffer.  The new code in buffer.c is a
200	modified version of the code removed from server.c.
201	* buffer.c (struct packetizing_buffer): Define.
202	(packetizing_buffer_initialize): New function.
203	(packetizing_buffer_input): New static function.
204	(packetizing_buffer_output): New static function.
205	(packetizing_buffer_flush): New static function.
206	(packetizing_buffer_block): New static function.
207	(packetizing_buffer_shutdown): New static function.
208	* buffer.h (packetizing_buffer_initialize): Declare.
209	* server.c (struct krb_encrypt_data): Rename from
210	krb_encrypt_buffer, and remove all fields not related to
211	encryption.
212	(krb_encrypt_buffer_initialize): Just call
213	packetizing_buffer_initialize.
214	(krb_encrypt_input): New static function.
215	(krb_encrypt_output): New static function.
216	(krb_encrypt_buffer_input): Remove.
217	(krb_encrypt_buffer_output): Remove.
218	(krb_encrypt_buffer_flush): Remove.
219	(krb_encrypt_buffer_block): Remove.
220	(krb_encrypt_buffer_shutdown): Remove.
221
222Wed Dec 10 15:39:44 1997  Ian Lance Taylor  <ian@cygnus.com>
223
224	* buffer.c (stdio_buffer_initialize): Correct formatting.
225
226Sun Dec  7 09:37:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
227
228	* sanity.sh (basicb-0d0): New test, for checkout on existing
229	directory.
230
231Sat Dec  6 00:25:11 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
232
233	* sanity.sh (binwrap3): Clean up repository too.  Clean up working
234	directory with "rm -r" not "rm -rf".
235
236Thu Dec  4 17:11:18 1997  Larry Jones  <larry.jones@sdrc.com>
237
238	* subr.c (check_numeric): Don't reference argv[1] when argc is 1
239	(should be argv[0]).
240
241	* sanity.sh: Fix lines that look like conflict markers but aren't
242	to prevent problems checking in.
243	(binwrap3): Remove local CVSROOT when done so that later
244	tests that expect to create it don't fail.
245
246Thu Dec  4 18:19:21 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
247
248	* cvs.h: Remove mempcpy definition.  I think the polite way to
249	describe my feelings about mempcpy is something like "we don't
250	have agreement that it is a good idea".
251	* rcs.c (truncate_revnum): Don't call it.
252	* sanity.sh: Run multibranch2 test by default.
253	(multibranch2): Use ${TESTDIR} a few places.
254	(multibranch2-9): Accept "P file1" as well as "U file1".
255
256	* sanity.sh: Don't add 1997 to the copyright notice.  Add GPL
257	terms.  Add discussion of copyright issues.
258	* rcs.c (truncate_revnum, truncate_revnum_in_place,
259	compare_truncated_revnums): Reindent.
260
2611997-12-04  Jim Meyering  <meyering@na-net.ornl.gov>
262
263	* subr.c (xstrdup): Use memcpy rather than strcpy.
264	(compare_revnums): Declare parameters to be `const'.
265	Remove unnecessary uses of xstrdup and corresponding frees.
266	(increment_revnum): Declare parameter to be `const'.
267	Use memcpy rather than strcpy.
268	(gca): Declare parameters to be `const'.
269	(check_numeric): Declare REV parameter to be `const'.
270	(file_has_markers): Declare parameter to be `const'.
271	(get_file): Declare `char*' parameters to be `const'.
272	* run.c (run_exec): Declare `char*' parameters to be `const'.
273	* cvs.h (mempcpy) [! HAVE_MEMPCPY]: Define it.
274	Add `const' to types in several prototypes.
275
276	* rcs.c (truncate_revnum): New function.
277	(truncate_revnum_in_place): New function.
278	(compare_truncated_revnums): New function.
279	(max_rev): New function.
280	(RCS_addbranch): Make BRANCH parameter `const'.
281	Use the above functions rather than open-coding them.
282	When BRANCH is a revision number, insert it *in order*
283	in the sorted list of branch numbers, not at the end.
284	Add assertion that insertion succeeds.
285	* sanity.sh (multibranch2): Test for this.
286	(Copyright): Add 1997.
287
288Dec 1997  Karl Fogel  <kfogel@floss.red-bean.com>
289
290	* wrapper.c (wrap_name_has): loop as far as wrap_count +
291	wrap_temp_count, not wrap_count + wrap_saved_count, otherwise
292	some wrappers get skipped.
293	(wrap_matching_entry): same.
294	* sanity.sh (binwrap3): new test, for import with
295	CVSROOT/cvswrappers and .cvswrappers specifying -k 'b' options.
296
2971997-11-30  Jim Meyering  <meyering@na-net.ornl.gov>
298
299	* client.c (send_a_repository): Strip trailing slashes from the name
300	of the update directory.  Otherwise, running `cvs update dir/' provokes
301	this failure `protocol error: illegal directory syntax in dir/' when
302	running in client/server mode.
303
304	* hash.c (insert_before): New function derived from addnode.
305	(addnode): Simply return insert_before.
306	(addnode_at_front): Simply return insert_before.
307	* hash.h (insert_before): Add prototype.
308
309	* server.c (dirswitch): Compute `strlen(dir)' once and save it,
310	rather than computing it four times.  Also do s/illegal/invalid/ to
311	this diagnostic: "E protocol error: illegal directory syntax in %s".
312
313Sun Nov 30 18:03:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
314
315	* admin.c: Fix comment (no longer a front-end to "rcs").
316
317	* error.c, error.h (rcserror): Remove.
318	* admin.c, rcs.c: Call error instead of rcserror.  This changes
319	the format of these messages from "rcs: <path>: error" to "cvs
320	<command>: <path>: error".  The former format wasn't quite what
321	RCS printed anyway (because RCS would sometimes print "ci", "co",
322	&c, not "rcs"), and preserving RCS's exact output probably is not
323	a good idea anyway (because it will make people think that the
324	error was caused by an external program).  In two cases, I tidied
325	up the message in a more drastic fashion ("cannot stat" in
326	RCS_checkin and "could not diff" in RCS_delete_revs).
327
328	* sanity.sh (basica-o2b, binfiles2-o1, admin-18, admin-22-o10,
329	admin-22-o17): Look for "cvs <command>" not "rcs".
330
331	* run.c, cvs.h (run_setup): Replace varargs nonsense with a single
332	argument which gets parsed as the result of the vasprintf
333	used to.
334	* client.c, commit.c, logmsg.c, modules.c, rtag.c, tag.c, update.c,
335	wrapper.c: Update callers, either to do the sprintf themself or to
336	just call run_arg if it will do the job.
337	* rcscmds.c: Likewise for call_diff_setup and callers.
338
339	* run.c, cvs.h (run_args): Remove; nowhere used.
340
341Sat Nov 29 22:15:06 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
342
343	* options.h.in: Remove declaration of getwd; see lib/ChangeLog for
344	rationale.
345
3461997-11-29  Jim Meyering  <meyering@na-net.ornl.gov>
347
348	* update.c (checkout_file): Initialize `backup'.
349
350	* diff.c (diff_fileproc): Initialize `tmp' and `fname'.
351
352	* modules.c (do_module): Initialize `server_dir_to_restore'.
353	(do_module): Initialize `value' in an else clause.
354
355	* rcs.c (RCS_checkin): Initialize `commitpt'.
356	(RCS_delete_revs): Initialize `revp'.
357	(RCS_copydeltas): Always initialize `insertbefore'.
358
359	* run.c (run_print): Define `outfn' even in error case.
360
361Mon Nov 24 17:28:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
362
363	* rcs.c (RCS_findlock_or_tip): Prototype.
364	(RCS_checkin): Fix call to pass correct number of arguments.
365
366Sun Nov 23 10:34:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
367
368	* recurse.c (do_dir_proc): Move check for CVS/Repository and
369	CVS/Entries to before where we call the direntproc.
370	* client.c (send_dirent_proc): Remove code to check for
371	CVS/Repository, now that recurse.c does it.
372	* sanity.sh (conflicts3-18 through conflicts3-19): New tests, for this.
373
374Sat Nov 22 10:54:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
375
376	* recurse.c (do_dir_proc): Check that CVS/Repository and
377	CVS/Entries exist.
378	* sanity.sh (conflicts3-14 through conflicts3-17): New tests, for this.
379
380	* client.c (send_fileproc): Send options field from
381	vers->entdata->options not vers->options.
382	* cvs.h (struct entnode): Add comment (options and timestamp must
383	not be NULL).
384	* sanity.sh (binfiles-9 through binfiles-13, binfiles-sticky5,
385	keyword-17): Remove kludges for remote; tests for fix.
386
387	* update.c (update_fileproc): Fix comment; direct checkout is
388	still faster than patches for local but not for quite the
389	same reasons.
390
391	* add.c (add): Pass SEND_NO_CONTENTS to send_files.
392
393Wed Nov 19 18:25:03 1997  Mike Glendinning  <mikeg@sequent.com>
394
395	* update.c (patch_file_write): Missing cast provided.
396
397Wed Nov 19 15:57:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
398
399	* rcs.c (RCS_deltas): Solve trigraph problem (once and for all, I
400	hope) with 3 calls to cvs_output.
401
402Wed Nov 19 01:52:57 1997  Andy Piper <andyp@parallax.co.uk>
403	and Jim Kingdon  <kingdon@harvey.cyclic.com>
404
405	* classify.c (Classify_File), cvs.h (struct vers_ts), vers_ts.c
406	(Version_TS): Clarify NULL versus "" for options in comments.
407	* vers_ts.c (Version_TS): Treat "" the same way as NULL in options
408	and vers_ts->options.
409	* sanity.sh: New tests binfiles-sticky5 through binfiles-17 test
410	for this.
411
4121997-11-16  Karl Fogel  <kfogel@floss.red-bean.com>
413
414	* client.c (update_entries): parse server-sent entries line even
415	in the case of "cvs export", because we need to know if -kb option
416	is set.
417	Init `options' to NULL like anything else.
418
419Tue Nov 18 09:20:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
420
421	* version.c: Change version number to 1.9.21.
422
423	* Version 1.9.20.
424
425Mon Nov 17 14:35:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
426
427	* server.c (server_updated): If scratched_file and noexec are set,
428	clean up so we don't get a "duplicate Scratch_Entry" warning
429	later.
430	* sanity.sh: New tests conflicts3-10 to conflicts3-13, for this.
431
432	* sanity.sh (conflicts3): Don't allow "file1 was lost" messages
433	here; I don't think CVS actually produced them, and they don't
434	belong.
435
436Sun Nov 16 23:19:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
437
438	* sanity.sh: Accept either "U file1" or "P file1".
439
440Fri Nov 14 12:32:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
441
442	* rcs.c: Add comment about cleaning up ,foo, file on ^C.
443
444Fri Nov 14 11:56:29 1997  Andy Piper <andyp@parallax.co.uk>
445	and Jim Kingdon  <kingdon@harvey.cyclic.com>
446
447	* filesubr.c (unlink_file_dir): Don't print trace message in the
448	server.
449
450Fri Nov 14 11:28:55 1997  Jim Meyering and Jim Kingdon
451
452	* rcs.c (RCS_getdatebranch): If the branch we are looking for
453	doesn't exist, return a revision which matches the date, not
454	just NULL.
455	* sanity.sh (tagdate): New test, for this.
456
457Thu Nov 13 10:11:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
458
459	* sanity.sh (basicb-21): Fix comment which described a behavior
460	which no longer exists.
461
462Wed Nov 12 16:24:45 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
463
464	Clean up infrastructure made unnecessary by RCS library:
465	* rcscmds.c (diff_exec, diff_execv): Use literal "diff" not DIFF.
466	* options.h.in (DIFF), rcs.h (RCS, RCS_CI, RCS_DIFF,
467	RCS_RCSMERGE): Removed; no longer used.
468	* commit.c (commit), patch.c (patch_fileproc),
469	rcscmds.c (RCS_exec_rcsdiff), start of rcscmds.c: Update comments
470	to reflect librarification of RCS.
471	* options.h.in (RCSBIN_DFLT): Removed.
472	* main.c, cvs.h (Rcsbin, free_Rcsbin): Removed.
473	* main.c (main): Don't check RCSBIN environment variable.  -b
474	global option is now a noop.
475	* cvs.h (RCSBIN_ENV): Removed.
476	* expand_path.c (expand_variable): $RCSBIN is now an error.
477	* mkmodules.c (config_contents): Remove RCSBIN.
478	* parseinfo.c (parse_config): RCSBIN now a noop.
479	* server.c (server): Don't put Rcsbin in PATH.
480
481Mon, 10 Nov 1997  Jim Kingdon
482
483	* rcs.c (RCS_checkin): Actually, when we get a change text
484	for a text file using get_file, we want text mode, although
485	the reasons are kind of subtle (see comment).
486
487	* rcs.c (RCS_checkin): Pass correct mode to get_file for
488	binary files.
489
490	* rcscmds.c: Declare vasprintf.
491
492Mon Nov 10 11:11:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
493
494	This fixes problems with windows-NT/run.c improperly quoting, and
495	is cleaner anyway.
496	* rcscmds.c (call_diff_setup, call_diff_arg, call_diff_add_arg,
497	call_diff_argv, call_diff_argc, call_diff_argc_allocated): New
498	functions/variables, lightly adapted from src/run.c.
499	* cvs.h, run.c (call_diff, call_diff3): Move from here...
500	* rcscmds.c: ...to here.
501
502Sun, 9 Nov 1997  Jim Kingdon
503
504	* rcs.c (rcs_internal_unlockfile): Call rename_file not rename.
505	This makes it work on NT again.
506
507Sun Nov  9 16:54:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
508
509	* sanity.sh (diffmerge2): Protect keywords against unwanted
510	expansion.  They got clobbered and the testcase stopped working
511	when I checked it in.
512
513Fri Nov  7 13:23:38 1997  Karl Fogel  <kfogel@floss.red-bean.com>
514	and Jim Kingdon  <kingdon@harvey.cyclic.com>
515
516	* sanity.sh (diffmerge1, diffmerge2): new tests, for bugs, or
517	potential bugs, in ../diff/analyze.c which were fixed by Paul
518	Eggert's patch.
519
520Sun Nov  9 10:28:43 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
521
522	* rcs.c (RCS_settag): Reindent.
523
524	* rcs.c (rcs_internal_lockfile): Fix typo (thow -> throw).
525
526Sat Nov  8 15:58:53 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
527
528	* sanity.sh (cvsadm): Remove most of the tests which tested
529	CVS/Root.  This takes the run time for the cvsadm tests from
530	about 5 minutes 15 seconds to about 4 minutes 10 seconds with no
531	significant loss in coverage.
532
533	* rcs.c (rcs_internal_lockfile): Check for errors from system
534	calls.  If open() gives an error, don't muck with stat and errno
535	(I don't know what the RCS code that this comes from was trying to
536	do, but it clearly isn't accomplishing anything here).
537	(RCS_rewrite, RCS_delete_revs): Check for errors from system calls.
538
539Sat Nov  1 14:21:29 1997  Michael L.H. Brouwer  <michael@thi.nl>
540
541	* rcs.c (RCS_checkin): Change type of bufsize from int to size_t.
542	(RCS_delete_revs): Change type of bufsize and len from int to size_t.
543	(RCS_getdeltatext): Change type of textlen from int to size_t.
544	* rcs.h (struct deltatext): Change len from int to size_t to keep
545	the compiler happy on systems where size_t is unsigned int.
546	[This goes well beyond keeping the compiler happy; if sizeof
547	(size_t) != sizeof (int), the old code was quite broken -kingdon]
548
549Sat Nov  1 14:21:29 1997  Michael L.H. Brouwer  <michael@thi.nl>
550	and Jim Kingdon  <kingdon@harvey.cyclic.com>
551
552	* rcs.c (RCS_checkin): When checking if we were holding the lock
553	use delta->author instead of user since the latter might have been
554	clobbered by a call to getcaller.  This resulted in the failure of
555	test basica-7.
556	[I don't completely follow the scenario where it gets clobbered,
557	it but sounds vaguely plausible and the replacement seems
558	cleaner, precisely because it avoids allocation issues -kingdon]
559
560Wed Nov  5 20:16:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
561
562	* checkin.c, checkout.c, commit.c, cvs.h, import.c, login.c,
563	main.c, update.c: Change FALSE to 0 and TRUE to 1 and replace
564	monstrosities like "cvswrite == TRUE" with just "cvswrite".  FALSE
565	and TRUE sometimes conflicted with system headers (NextStep3.3?),
566	but more to the point, good old 1 and 0 are fine and were used by
567	most of CVS already.
568
569Tue Nov  4 12:19:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
570
571	* rcs.c (RCS_checkin, RCS_lock, RCS_unlock): Rename local variable
572	quiet to checkin_quiet or some such, to avoid confusion with
573	global variable quiet.
574
575	* lock.c: Update comment to refer to add_rcs_file rather than "rcs
576	-i".
577
578	* rcs.h (struct rcsnode): Add comments for all fields.
579	* rcs.c (RCS_delete_revs): Refuse to delete revisions which have
580	symbolic names.  Fix fencepost bug which caused us to sometimes
581	check one more revision than we should for locks, branches, and
582	this.
583	(findtag): New function, to help above code.
584
585	* admin.c (admin): Take out writelocks not readlocks.  This has
586	been a bug "forever", but may become more noticeable with
587	rcs_internal_lockfile relying on the writelocks.
588
589Mon Nov  3 10:17:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
590
591	* rcs.c (RCS_rewrite): Don't write the file if noexec.
592	* sanity.sh (basica, branches): Test for this.
593
594Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
595
596	* rcs.h (struct deltatext): Comment text and log fields.
597
598	* admin.c (admin_fileproc): Call RCS_reparsercsfile not
599	RCS_fully_parse.  Don't muck with ->other field in RCSVers (it
600	doesn't need to be set).
601	* rcs.h, rcs.c (RCS_reparsercsfile): No longer static.  No point
602	in having this static when RCS_rewrite and RCS_fully_parse are not.
603	* rcs.c (getdelta): Remove obsolete comment about not storing the
604	newphrases from the deltas, since we now do.
605
606Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
607			  and Paul Eggert
608
609	* rcs.c (rcs_internal_lockfile): Clarify the comments about O_EXCL
610	and such matters.
611
612Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
613
614	* rcs.c (RCS_delete_revs): Pass force_tag_match to RCS_settag.
615	* sanity.sh (basica-o2a, basica-o2b): Test for this.
616
6171997-11-01  Peter Brandstrom  <d91-pbr@nada.kth.se>
618
619	* sanity.sh: Use ${username} more places.
620
621Sat Nov  1 00:14:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
622
623	* rcs.c (rcs_internal_lockfile): Add comments about what we are
624	trying to accomplish here (versus what RCS tries to accomplish).
625
626	* rcs.c (RCS_parsercsfile_i): Clarify/expand comment about
627	the purpose of having both this and RCS_reparsercsfile.
628	(RCS_rewrite): Add comment about how this works.
629
630	* admin.c (admin_fileproc): Add comment about call to
631	RCS_fully_parse not RCS_reparsercsfile.
632	* rcs.h: Comment on what delta_pos field of struct rcsnode is.
633
634Fri Oct 31 16:38:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
635			  and Abe Feldman
636
637	* client.c (update_entries): If UTIME_EXPECTS_WRITABLE, if
638	necessary change the file to be writable temporarily to set its
639	modification time.
640
641Thu Oct 30 17:42:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
642
643	* admin.c (admin): Deal with new :: syntax for ranges.
644	* rcs.c, rcs.h (RCS_delete_revs): New arg inclusive (set for the old
645	behavior, clear to enable new code).
646	* admin.c (admin_fileproc): Set it if :, clear it if ::.
647	* sanity.sh (basica, head, branches, log): Add tests for this feature.
648
649	* admin.c (admin_fileproc): Clean up the error message which
650	happens if one of the RCS_* functions returns an error status; it
651	is confusing to say that "rcs" failed now that this is implemented
652	internally.
653	* sanity.sh (admin): Update accordingly.
654
655Wed Oct 29 07:07:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
656
657	* sanity.sh (admin-22-o24): New test, tests that admin -o
658	correctly munged the deltatexts on a branch too.
659
660	* rcs.c (RCS_delete_revs): If we are deleting an entire branch,
661	delete the node in ->branches rather than setting the ->key to the
662	bogus value NULL.
663	* rcs.c (RCS_delete_revs): If "rev1" equals "branchpoint", then set
664	"before" to the revision on the trunk that we branch from.
665	* rcs.c (RCS_delete_revs): Don't set rev2 to revp->version (the
666	code is missing an xstrdup, but it doesn't matter because rev2
667	isn't used after this point).
668	* sanity.sh (binfiles2-o2 to binfiles2-o4): New tests, for this.
669
670Tue Oct 28 19:30:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
671
672	* rcs.c (RCS_delete_revs): Restore code which passes rev2 to
673	RCS_getbranchpoint if rev1 is NULL; it still makes sense for the
674	non-trunk case.  Fixes admin-22-o22 in testsuite.
675
676	* sanity.sh (admin-18): Adjust to reflect "rcs failed" no longer
677	being suppressed by global -q option.
678
679	* rcs.c (RCS_delete_revs): If rev1 == NULL and rev2 is on the
680	trunk, handle it the same way we do everything else--by swapping
681	the two.  This replaces the code which tried to kludge what we
682	passed to RCS_getbranchpoint (which didn't work).
683	* sanity.sh (binfiles2-o1 to binfiles2-o4): New tests, for this fix.
684	* admin.c (admin_fileproc): Don't have -q global option suppress
685	"rcs failed" message.
686
6871997-10-28  Jim Kingdon
688
689	* log.c (printlock_proc), rcs.c (putlock_proc): Prototype.
690	* rcs.c (rcs_internal_lockfile): Only try to call fchmod if
691	HAVE_FCHMOD is defined.
692
693Tue Oct 28 10:27:03 1997  Ian Lance Taylor  <ian@cygnus.com>
694
695	* rcs.c	(RCS_deltas): Don't use \? in string if __STDC__ is not
696	defined.
697
698	* rcs.c (make_file_label): Remove extraneous `+'.
699
700Mon Oct 27 14:40:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
701
702	* status.c (status): Don't pass SEND_NO_CONTENTS to send_files.
703
704Sat Oct 25 00:33:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
705
706	* rcs.c (RCS_delete_revs): Use : not - for range in error message.
707
708	* rcs.h: Add comment about '\0' in RCS fields.
709
710	* rcs.c (getdelta): Add comment about branches and next field
711	being mandatory.
712
713	* rcs.c (RCS_reparsercsfile, RCS_deltas), sanity.sh (reserved):
714	Reindent sections which were misindented as a result of recent
715	changes.
716
717Fri Oct 24 10:22:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
718
719	* rcs.c (RCS_findlock_or_tip): Don't worry about file ownership
720	and nonstrict locking when returning the default branch or head.
721	The most conspicuous problem with the old code is that in the
722	error case it would examine rstat.st_uid when it had not been
723	set.  For a discussion of more fundamental reasons, see comment.
724
725	* admin.c (admin_fileproc): In handling -A, don't handle relative
726	pathnames differently from absolute pathnames.  See comment for
727	rationale.  If problem opening the file, give a nice error not a
728	coredump.
729	* sanity.sh (admin-19a-admin, admin-19a-log, admin-19a-fix):
730	New tests, test for traditional "cvs admin -A" behavior with
731	relative pathnames.
732	* sanity.sh (admin-19a-nonexist): Test for the core dump fix.
733	* sanity.sh (admin-22-o1): Look for ${PROG} not cvs.
734
735	* sanity.sh (reserved-16): Remove commitinfo change with "cvs
736	commit" not "cvs admin -o".  In addition to commit being The Right
737	Thing on general principles, cvs admin -o doesn't work because it
738	doesn't rebuild the administrative file database.
739
740	* update.c (patch_file): If the first revision does not exist in
741	the RCS file, fall back to sending entire file.  Fixes
742	admin-22-o15 in make remotecheck.
743
7441997-10-23  enami tsugutomo  <enami@but-b.or.jp>
745
746	* rcs.c (RCS_checkin): Unlink temporary files stored in variable
747	`tmpfile' and `changefile'.
748
749Wed Oct 22 12:16:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
750
751	* rcs.c (rcs_lockfilename): Allocate enough memory for terminating
752	'\0'.
753
754	* admin.c (admin_fileproc): Don't support '-' for ranges in "cvs
755	admin -o".
756	(admin): Adjust comment.
757
758	* rcs.h (RCSVers): New field other_delta.
759	* rcs.c (free_rcsvers_contents): Also free other_delta.
760	(getdelta): Read newphrases from deltas into other_delta field.
761	(putdelta): Write those newphrases.
762	* sanity.sh (rcs-8a): New test, for this fix.
763	* admin.c (admin_fileproc): If "-b" without argument, then set
764	branch to NULL, not "" (uncovered by rcs-8a test).
765	* rcs.c (putrcsfield_proc): Add comment about how we (mis)handle
766	values in newphrases.
767
768	* sanity.sh (reserved): Instead of looking for rcslock.pl in CVS
769	distribution, just use our own equivalent.
770
771	* rcs.c (RCS_rewrite): Call ferror before fclose to avoid "Invalid
772	argument" warnings.
773
774Mon Oct 20 00:30:16 1997  Tim Pierce  <twp@twp.tezcat.com>
775
776	[I removed a ChangeLog entry for a change to sanity.sh (editor),
777	because the actual change was not made.  With this change, CVS no
778	longer runs RCS.  I'll be checking in my cleanups shortly. -kingdon]
779
780	Librarify `ci'.
781	* rcscmds.c, cvs.h (RCS_checkin): Removed.
782	* rcs.c, rcs.h (RCS_checkin, RCS_getbranchpoint, RCS_addbranch,
783	RCS_findlock_or_tip): New functions.  RCS_checkin completely
784	rewritten to eliminate RCS 5.7; change `rcs' parameter from string
785	to RCSNode, so we can update RCSNode without re-reading from
786	disk.
787	* checkin.c (Checkin): Updated RCS_checkin caller, moved RCS_parse
788	call to before RCS_checkin.
789	* import.c (add_rev): Updated caller.
790	* commit.c (remove_file): Updated caller.
791	(checkaddfile): Updated caller.  Parse `rcsfile' after
792	calling add_rcs_file.  Free `rcsfile' instead of asserting it to
793	be NULL.
794
795	Librarify `rcs'.
796	* rcscmds.c, cvs.h (RCS_exec_settag, RCS_exec_deltag,
797	RCS_exec_setbranch, RCS_exec_lock, RCS_exec_unlock): Removed.
798
799	* rcs.c (RCS_settag): Rewritten to eliminate RCS 5.7.
800	* commit.c (checkaddfile): Call RCS_rewrite after calling RCS_settag.
801	* import.c (add_tags): Same.
802	* rtag.c (rtag_fileproc): Same.
803	* tag.c (tag_fileproc): Same.
804
805	* rcs.c (RCS_deltag): Rewritten to eliminate RCS 5.7.  Remove
806	`quiet' parameter, since this function no longer prints any output.
807	* commit.c (remove_file): Update caller.  Also call RCS_rewrite
808	after RCS_deltag.
809	* rtag.c (rtag_delete): Same.
810	* tag.c (tag_fileproc): Same.
811
812	* rcs.c (RCS_setbranch): Rewritten to eliminate RCS 5.7.
813	* commit.c (remove_file): Call RCS_rewrite after calling RCS_setbranch.
814	(fixbranch): Same.
815	(lock_RCS): Same.
816
817	* rcs.c (RCS_lock): Rewritten to eliminate RCS 5.7. Change third
818	arg to mean `quiet' and not `noerr', permitting admin_fileproc to
819	run RCS_lock verbosely.
820	* commit.c (lock_RCS): Update callers; call
821 	RCS_rewrite after RCS_lock.
822	(remove_file): Same.  Call RCS_lock quietly.
823	* import.c (add_rev): Same.  Do not print `fork failed' error
824	message, since we're no longer forking.
825
826	* rcs.c (RCS_unlock): Rewritten to eliminate RCS 5.7.  Change
827	`noerr' arg to mean `quiet', permitting admin_fileproc to run
828	RCS_unlock verbosely.  Use notify_do when breaking another user's
829	lock.  Include "edit.h" for notify_do prototype.
830	* checkin.c (Checkin): Update caller; use RCS_rewrite after RCS_unlock.
831	* commit.c (unlockrcs): Same.
832	* import.c (add_rev): Same.
833
834	* rcs.c, rcs.h (RCS_getlocks, RCS_addaccess, RCS_delaccess,
835	RCS_getaccess, RCS_delete_revs): New functions.
836	(expand_keywords, RCS_lock, RCS_unlock): Use RCS_getlocks.
837	* log.c (log_fileproc, log_version): Call RCS_getlocks.  Don't add
838	bogus ";locker" nodes to RCSVers nodes -- walk lock list with
839	printlock_proc.
840	(printlock_proc): New function.
841
842	* admin.c (admin_fileproc): Largely rewritten: call internal RCS
843	library functions instead of forking RCS processes.
844	(admin, admin_fileproc): Obsolete -V option.
845	(struct admin_data): Remove `version' member.
846	* sanity.sh (admin-24): Remove -V test case.
847
848	New functions for reading and writing RCS files.
849	* rcs.h (struct deltatext, Deltatext): New types.
850	(struct rcsversnode): New members `text' and `outdated'.
851	(struct rcsnode): New members `access', `locks', `strict_locks',
852	`comment', and `desc'.
853	* rcs.c (RCS_reparsercsfile, expand_keywords): Use new RCSNode members.
854	(free_rcsnode_contents): Free them.
855	* log.c (log_fileproc): Use new RCSNode members instead of ->other.
856
857	* rcs.c (getdelta, RCS_getdeltatext, freedeltatext, do_locks,
858 	RCS_putadmin, RCS_putdtree, RCS_putdesc, putdelta,
859 	putrcsfield_proc, putsymbol_proc, RCS_copydeltas, putdeltatext,
860 	RCS_rewrite, getrevnum, rcs_internal_lockfile,
861 	rcs_internal_unlockfile, rcs_lockfilename): New functions.
862
863	(RCS_reparsercsfile): Use getdelta, making sure fp is positioned
864 	correctly before calling it.  Skip `head' and `branch' nodes: we
865 	have already parsed them, and they were being added incorrectly to
866 	rcs->other.  Do not signal error if the RCS file has an empty
867 	delta tree; this made it impossible for RCS_checkin to perform an
868 	initial checkin.  Remove `all' parameter; always store all RCS
869	fields.
870	(RCS_fully_parse, RCS_gettag, RCS_getbranch, RCS_getdate,
871	RCS_getdatebranch, RCS_getrevtime, RCS_symbols, translate_symtag,
872	RCS_isdead, RCS_getexpand, RCS_checkout, annotate_fileproc):
873	Update all callers to remove `all' parameter.
874
875	(getrcskey): Do not append trailing whitespace to a value.  This
876 	corrupted some log fields and wrecked some sanity.sh test cases.
877
878	(free_rcsvers_contents): New function.
879	(rcsvers_delproc): Call it.
880
881	* rcs.h (NODELTA): Removed symbol; now obsolete (since RCSNodes
882	do not go stale).
883	* import.c (add_rev): Removed NODELTA reference.
884	* rcs.c (RCS_reparsercsfile, RCS_checkout, RCS_settag, RCS_deltag,
885	RCS_setbranch, RCS_lock, RCS_unlock, RCS_deltas): Removed NODELTA
886	references.
887
888	Miscellaneous changes to support RCS librarification and fix some bugs.
889	* subr.c, cvs.h (line2argv): Add `sepchars' argument.
890	* modules.c (cat_module, admin_fileproc): Update all callers.
891
892	* subr.c, cvs.h (compare_revnums, increment_revnum): New functions.
893	(make_message_rcslegal): Strip whitespace from end of
894	lines and end of string, a la `cleanlogmsg' in RCS 5.7.
895	(get_file): Terminate buf with \0, extending it if
896	necessary.  Read from stdin if `name' arg is NULL.
897	* admin.c (admin_fileproc): Call get_file to read -t arg from stdin.
898
899	* error.c, error.h (rcserror): New function, used everywhere.
900
901	* hash.c, hash.h (addnode_at_front): New function.
902	* rcs.c (RCS_settag, RCS_lock): Call it.
903
904	* import.c, cvs.h (expand_at_signs): Make extern.
905	* rcs.c (putrcsfield_proc, RCS_putadmin, RCS_putdesc,
906	putdeltatext): Call it.
907
908	* rcs.c (make_file_label): Use last_component to get file's basename.
909
910	* sanity.sh (srcdir): New variable.
911	(rcs-7): Remove newphrase warning, no longer produced by CVS.
912	(rcs-8): Permit random whitespace around newphrase fields.
913	(admin-22): New test cases for -o options: admin-22-o{1..23}.
914	(reserved): New test cases for rcslock.pl: reserved-{8..16}.
915
916Tue Oct 21 16:48:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
917
918	* tag.c (tag_check_valid): Add comment about locking or lack
919	thereof.
920
9211997-10-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
922
923	* version.c: Change version number to 1.9.19.
924
9251997-10-19  Jim Kingdon
926
927	* Version 1.9.18.
928
929Wed Oct 15 15:21:43 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
930
931	* sanity.sh (username): Add '-' to characters allowed in user name.
932
933	* rcscmds.c (diff_exec): Remove item about external diff
934	programs.  It doesn't really belong here now that diff is
935	librarified and TODO #191 now mentions this.
936
937	* checkout.c (checkout_proc): Add comment about assuming '/' is
938	the only path separator.
939	* options.h.in: Fix thinko (CVS/Repository -> CVS/Root).
940
941Mon Oct 13 22:46:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
942
943	* commit.c (commit): Add comment about CVS_BADROOT and command
944	other than "commit".
945
9461997-10-11  Noel Cragg  <noel@swish.red-bean.com>
947
948	* options.h.in: RELATIVE_REPOS has been checked for bitrot -- it
949	now works again.  Change the comment before the #define to say
950	that we'll be switching to it soon.
951
952	* sanity.sh (basicb-1, basicb-1a): update dotest strings to match
953	no matter if we're running with RELATIVE_REPOS defined or not.
954	(basicb-9b, basicb-9c): same.
955
956	* sanity.sh (basicb-9b, basicb-9c): modified tests, since the
957	checkout.c fix changes the way this test module is checked out.
958	(basicb-9d, basicb-9e, basicb-9f): new tests, same.
959	(basicb-18): modify test, same.
960	(cvsadm): new set of exhaustive tests to check the contents of
961	CVS/Root and CVS/Repository files under various conditions.  As a
962	side effect, it tests the behavior of the "-d" flags (command line
963	and modules file).
964	(modules3-7e through modules3-7h): removed, since these tests were
965	a small subset of what is tested in the new cvsadm section.
966	(modules-1b, modules-1c): same.
967	(modules-2b, modules-2c): same.
968	(modules-3b, modules-3c, modules-3e, modules-3f): same.
969
970	* create_adm.c (Create_Admin): be a bit more verbose when using
971	trace mode.
972
973	* checkout.c (checkout_proc): rewrote the code that sets the where
974	variable and the code that matches directory names with repository
975	directories.  This fixes a long-standing bug in CVS.  (It used to
976	be the case that "cvs co -d foo <mod1> <mod2>" would not properly,
977	where <mod1> and <mod2> where defined in the modules file.  While
978	the first module would be checked out correctly, the second would
979	be checked out under the name of the directory to which the module
980	referred rather than the module name!).  This fix also allows us
981	to check out things into directories that are more than one deep
982	(e.g. "cvs -d foo/bar/baz co blah" will now work).
983	(checkout): remove code that performed a CHDIR if the
984	number of arguments specified was greater than one, since it's no
985	longer necessary.  Also remove the code that prevented us from
986	doing "cvs co -d <dir1>/<dir2>" without <dir1> existing, since
987	checkout_proc handles things correctly now.
988
989	* cvs.h: fix typo.
990
991	* rtag.c (rtag): reformat so that we don't run over 80 characters
992	per line.
993	(rtag_dirproc): same.
994
995	* sanity.sh: change all old test cases to use pass and fail
996	functions rather than doing some combination of echo and exit
997	themselves.
998
999	* commit.c (commit_direntproc): remove the "warm fuzzy" -- this
1000	code never gets called when running in client/server mode, and we
1001	should have CVS' output match as much as possible between the two
1002	modes.  Moreover, there is no analogous place to put this same
1003	message when we're running in c/s mode.
1004	(find_direntproc): print the same "fuzzy" as in check_direntproc
1005	so that local and c/s mode have the same messages.
1006	* sanity.sh (187a3): update test case to reflect the above.
1007
1008Thu Oct  9 10:57:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1009
1010	* parseinfo.c (parse_config): Add comment about compatibility
1011	issues with adding keywords.
1012
1013Wed Oct  8 16:40:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1014
1015	* recurse.c (do_dir_proc), commit.c (check_direntproc,
1016	commit_direntproc, find_dirent_proc): If this
1017	directory doesn't exist, skip it.
1018	* diff.c (diff_dirproc): Reindent.
1019	* sanity.sh (deep-4b0a, deep-4b0b): Check for this fix.
1020
1021Thu Sep 26 16:30:00 1997  Larry Jones <larry.jones@sdrc.com>
1022	and Jim Kingdon  <kingdon@harvey.cyclic.com>
1023
1024	* update.c (checkout_file): Don't set timestamp in noexec mode.
1025	* vers_ts.c (Version_TS): Add comment about ignoring errors from
1026	utime.
1027	* sanity.sh (conflicts3): New tests, for this fix.
1028
1029Fri Oct  3 09:47:04 1997  Noel Cragg  <noel@swish.red-bean.com>
1030
1031	* sanity.sh (168): use PROG instead of CVSBASE, since they are
1032 	equal.
1033	(importb-2): refer to PROG instead of "cvs" in error message.
1034
1035	* add.c (add): use PROGRAM_NAME in the error message rather than
1036 	"cvs".
1037	* classify.c (Classify_File): same.
1038	* commit.c (find_fileproc): same.
1039	* sanity.sh: change all add notification messages to refer to PROG
1040 	rather than "cvs".  Fixed nasty quoting in several places at the
1041 	same time, replacing older "'command'" forms with newer
1042 	".command." for simplicity.
1043
1044Sat Sep 27 01:37:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1045
1046	* sanity.sh (rcslib-merge-8): Accept "P file1" as well as "U file1".
1047
1048Fri Sep 26 22:24:10 1997  Noel Cragg  <noel@swish.red-bean.com>
1049
1050	* create_adm.c (Create_Admin): assign our duplicate pointer `cp'
1051 	after the xrealloc of `reposcopy' because the latter might have
1052 	changed addresses.
1053
1054Fri Sep 26 14:25:59 1997  Tim Pierce  <twp@twp.tezcat.com>
1055
1056	* run.c (call_diff): Don't reset optind; this is done by diff_run now.
1057
1058	Librarify rcsmerge/diff3.
1059	* rcscmds.c, cvs.h (RCS_merge): Rewritten from scratch: check out
1060	selected files and diff3 them.  Take new `rcs' and `workfile'
1061	arguments, so we can resolve symbolic tags and manipulate the
1062	working file.
1063	* update.c (merge_file, join_file): Update RCS_merge calls.
1064	* run.c, cvs.h (call_diff3): New function.
1065
1066	* sanity.sh (rcslib): New tests, rcslib-merge-{1..13}.
1067
1068Fri Sep 26 22:59:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1069
1070	* create_adm.c (Create_Admin): Fix thinko in Noel's change: keep
1071	track of the originally allocated "cp" and free it, rather than
1072	calling free on a pointer which may point halfway into the allocation.
1073	* repos.c (Sanitize_Repository_Name): Per HACKING, assert that
1074	repository != NULL, rather than just silently returning if NULL.
1075	Reindent a line.
1076
1077Fri Sep 26 15:40:00 1997  Noel Cragg  <noel@swish.red-bean.com>
1078
1079	* sanity.sh (modules): add tests modules-[123]* that make sure the
1080 	administrative files get rebuilt in various cases.
1081
1082	* add.c (combine_dir): removed function, since we no longer need
1083 	to worry about stripping the "." path element out.  Changed the
1084 	two callers to simply concatenate their two arguments.
1085
1086	* recurse.c (do_dir_proc): don't bother trying to strip off "." in
1087 	the repository name since the below changes fix that behavior --
1088 	simply concatenate the repository and directory names together.
1089
1090	* checkout.c (checkout_proc): sanitize the repository name after
1091 	constructing it (we may create "/path/to/repos/.", but we don't
1092 	want that to be passed around).  Remove the code that tacks on
1093 	"/." when constructing top_repository, since the below changes fix
1094 	that behavior.  Added comments to the part of this function that
1095 	builds administrative files.
1096
1097	* sanity.sh (basicb): now that the below weirdness is fixed, the
1098 	extra "." path element in test basicb-0c doesn't appear when a
1099 	top-level file is checked out.  Remove it from the expect string.
1100
1101	* create_adm.c (Create_Admin): now that the repository name isn't
1102 	floating around with "." as the last path element, make creation
1103 	of the top-level administrative files a special case -- save the
1104 	repository name as "/path/to/repos/."  Why?  I considered not
1105 	including the "." but didn't know how it would affect the remote
1106 	protocol when RELATIVE_REPOS was defined (do we have a way of
1107 	sending "" via the protocol?).  After I make sure that the
1108 	RELATIVE_REPOS patches still work, I'll check the "" possibility
1109 	so we don't have to have a this special case.
1110
1111	* repos.c (Sanitize_Repository_Name): new function that removes
1112 	(if present) the trailing slash and "." component from the
1113 	repository name.  Many routines break if we don't guarantee this.
1114  	See the comment before the function for complete information.
1115	(Name_Repository): call Sanitize_Repository_Name before returning
1116 	the value.
1117	* cvs.h: add prototype for Sanitize_Repository_Name.
1118
1119Fri Sep 26 14:19:25 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1120
1121	* cvs.h (CVS_CMD_USES_WORK_DIR): Fix comment (the sense of the
1122	flag is not reversed from what it would seem; when I thought so it
1123	was because I was misreading the lookup_command_attribute code).
1124
1125Thu Sep 25 23:14:47 1997  Noel Cragg  <noel@swish.red-bean.com>
1126
1127	* parseinfo.c (Parse_Info): fix typo in the trace message.
1128
1129Thu Sep 25 14:22:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1130
1131	* build_src.com: Also link with diff.olb.
1132
1133	* main.c (Make_Date): If gmtime returns NULL, try localtime.
1134
1135Wed Sep 24 19:18:40 1997  Noel Cragg  <noel@swish.red-bean.com>
1136
1137	* checkout.c (checkout): fix typo in comment.
1138
1139Wed Sep 24 08:31:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1140
1141	* update.c (patch_file): Revise comments about diff -a now that
1142	diff is librarified.
1143
1144Sun Sep 21 21:28:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1145
1146	* run.c (call_diff): Sleep for a second, in hopes of helping with
1147	out of order bugs.
1148
1149Sat Sep 20 07:19:18 1997  Tim Pierce  <twp@twp.tezcat.com>
1150
1151	Integrate diff library into CVS.
1152	* run.c, cvs.h (call_diff): New function.
1153	* rcscmds.c (diff_exec, diff_execv): Get diffs from call_diff
1154	instead of running diff as a subprocess.
1155	* Makefile.in (cvs): Add ../diff/libdiff.a.
1156
1157	* diff.c (longopts, diff): Use 131 for --ifdef, fixing Jim's thinko
1158	(using 147 for both --side-by-side and --ifdef).
1159
1160	* sanity.sh (rcslib): Added tests rcslib-diffrgx-*, to test
1161	handling of regex diff options.
1162
11631997-09-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
1164
1165	(Note that this requires that DIFF support -L.  I'll be checking
1166	in a fix to that in a moment, but I wanted separate checkins in
1167	case that helps with clarity).
1168	Tweaks to rcsdiff librarification:
1169	* sanity.sh (rcslib): Change "cvs" to "${PROG}" and subcommand
1170	names (e.g. "add") to "[a-z]*".  Former should deal with ${testcvs}
1171	being "cvs.old" or something; latter fixes make remotecheck.
1172	* rcs.c (make_file_label): Take into account strlen (rev) when
1173	allocating space.  Removes a FIXME and probably fixes a buffer
1174	overrun security hole.
1175	* rcscmds.c (RCS_exec_rcsdiff): Remove #if 0'd code to call
1176	rcsdiff.  Tim says he has compared the new code with rcsdiff code
1177	and is confident that the behavior is preserved, so we need to
1178	nuke the comment which says this has not been done.  #if 0 isn't
1179	really a very good way to document the way it used to work anyway;
1180	the old code is still in CVS.
1181	* diff.c: Add comment about rcsdiff options that we don't support,
1182	which Tim had sent in email.  Remove -T and -y, as the
1183	previous meaning had been very confused.
1184
11851997-09-21  Tim Pierce  <twp@xochi.tezcat.com>
1186
1187	Librarify rcsdiff.
1188
1189	* diff.c (have_rev1_label, have_rev2_label): New variables.
1190	(diff): Generate file labels with make_file_label if necessary;
1191	pass labels, revisions and working file name to RCS_exec_rcsdiff.
1192	* rcscmds.c, cvs.h (RCS_exec_rcsdiff): Completely revised function
1193	to eliminate rcsdiff dependency, based on patch from JimK.
1194	(diff_execv): New function, to exec diff with explicit -L args.
1195	* rcs.c, rcs.h (make_file_label): New function.
1196	(RCS_output_diff_options): New function.
1197	* sanity.sh (rcslib): New test.
1198
1199Fri Sep 19 15:08:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1200
1201	* rcs.c (RCS_nodeisbranch): Assert that RCS is non-NULL.
1202	* commit.c (remove_file), rcs.c (RCS_getversion), rtag.c
1203	(rtag_fileproc), status.c (status_fileproc, tag_list_proc), tag.c
1204	(tag_fileproc): Call RCS_nodeisbranch not RCS_isbranch
1205	in contexts where we know the RCS argument is non-NULL.
1206
1207	* commit.c (find_fileproc): Pass tag not NULL to Version_TS for
1208	the tag.
1209	* vers_ts.c (Version_TS): Improve (somewhat) the introductory
1210	comment.
1211	* sanity.sh (editor): New test editor-9 tests for above fix.
1212	Renumber/tweak surrounding tests to fit.
1213
1214	* log.c (log_version): If p->data is NULL, it is an empty log
1215	message.
1216	* sanity.sh (rcs-14): New test, tests for above fix (previously
1217	this was a coredump).
1218
1219Thu Sep 18 08:45:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1220
1221	* sanity.sh (rcs-7): Fix stupid ${TESTDIR} omission.
1222
1223Wed Sep 17 16:27:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1224
1225	* sanity.sh (rcs): New tests rcs-5 through rcs-13 test for
1226	getdate.y fix (rcs-12 and rcs-13 both failed with the buggy
1227	getdate.y).
1228
1229Tue Sep 16 00:07:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1230
1231	* sanity.sh (editor): Clean up first-dir at end of test.
1232
1233	* sanity.sh (editor): New tests test do_editor.
1234
1235	* commit.c (commit): For the client, if we got the log message
1236	from do_editor and there was an error, don't toss the message.
1237
1238Mon Sep 15 14:27:54 1997  martin.sjoelin@ubs.com
1239	and Jim Kingdon  <kingdon@harvey.cyclic.com>
1240
1241	* rcs.c (RCS_checkout): fwrite in bite-size pieces, not the whole
1242	file in one fwrite.
1243
1244Sun Sep 14 12:23:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1245
1246	* commit.c (check_fileproc): If the file has "conflict
1247	indicators", spit a warning and proceed with the checkin.
1248	* sanity.sh (conflicts): Adjust tests conflicts-132,
1249	conflicts-status-3, conflicts-133, and conflicts-status-4
1250	for new behavior.
1251
1252Fri Sep 12 11:12:34 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1253
1254	* add.c, admin.c, checkin.c, checkout.c, classify.c, commit.c,
1255	create_adm.c, cvsrc.c, diff.c, entries.c, find_names.c, hash.c,
1256	import.c, lock.c, log.c, logmsg.c, main.c, modules.c, myndbm.c,
1257	no_diff.c, parseinfo.c, patch.c, rcs.c, rcscmds.c, recurse.c,
1258	remove.c, repos.c, root.c, rtag.c, status.c, subr.c, tag.c,
1259	update.c, vers_ts.c, hash.h, rcs.h, options.h.in: Change "CVS 1.4
1260	kit" to "CVS source distribution".
1261
1262	* sanity.sh: Comment out call to "whoami".
1263
1264Thu Sep 11 10:09:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1265
1266	* commit.c (classify_file_internal): Add comment about saving
1267	quiet vs. saving really_quiet.
1268
1269	* sanity.sh (newb-123j0): Use two regexps instead of assuming that
1270	expr has "\(", "\|", and "\)".  If we want to require the latter,
1271	we should check for it up front, rather than let people get
1272	halfway through and wonder why the test failed.
1273
1274Tue Sep  9 19:22:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1275
1276	* expand_path.c (expand_path): If GETPWNAM_MISSING is defined,
1277	just give an error instead of calling getpwnam.
1278
1279	* subr.c (getcaller): If SYSTEM_GETCALLER is defined, call it
1280	instead of all the getlogin/getpwuid/etc.
1281	* wrapper.c (wrap_setup): Call get_homedir not getpwuid.
1282
1283Mon Sep  8 17:54:14 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1284
1285	* sanity.sh (basicc): Change ls -1 to echo *; according to
1286	larry.jones@sdrc.com, ls -1 isn't portable.
1287
1288Sun Sep  7 07:45:35 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1289
1290	* sanity.sh (basic2): In test basic2-64, match usernames with
1291	${username}.
1292
1293	* root.c: Reindent a few things.
1294	* root.c, cvs.h (same_directories): Remove.  Never used,
1295	portability hassle.
1296
1297	* add.c (add_directory): When checking for CVSADM, call fncmp not
1298	strcmp.  I actually suspect this code doesn't do much these days,
1299	but fncmp clearly will make more sense than strcmp.
1300
1301	* rtag.c (rtag_usage), tag.c (tag_usage): Reword to hopefully be
1302	clearer that -r takes either numeric or symbolic revision.
1303
1304	* ignore.c (ign_dir_add, ignore_directory): Reindent.  Tweaks to
1305	comments.
1306
1307	* update.c (checkout_file): Only ignore existence_error from
1308	unlink_file_dir, not all errors.
1309
1310	* checkout.c (safe_location): Check for errors from xgetwd.
1311	* create_adm.c (Create_Admin): Remove call to xgetwd; it is just
1312	debugging code anyway and it wasn't checking for errors.
1313
1314	* sanity.sh: Add comment about default value for TESTDIR.
1315
1316	* server.c (serve_log): Change "cvslog" to "log".  This
1317	(accidental, I presume) error had made it impossible for anonymous
1318	users to run "cvs log".
1319
1320	* classify.c (sticky_ck): Change to take an finfo argument rather
1321	than several arguments taken from there.  Cleans up the way the
1322	calling convention had depended on SERVER_SUPPORT.
1323	(Classify_File): Change callers.
1324
1325	* version.c: Change version number to 1.9.17.
1326
1327	* Version 1.9.16.
1328
1329	* recurse.c (do_dir_proc): In combining repository and dir, omit
1330	trailing "/." from repository.
1331	* sanity.sh (modules3): Adjust test modules3-4 so we test for
1332	this fix (this is not just cosmetic; the bug prevented the
1333	"Rebuilding administrative file database" from happening).
1334	modules2 already tests the "co CVSROOT/modules" usage.
1335
1336	* checkout.c (checkout_proc): When building top-level CVSADM
1337	directory, continue the process of walking up the repository one
1338	more level, rather than putting in the same repository as for the
1339	first-level directory.
1340	* sanity.sh: Adjust tests basicb-1b, basicb-9b, modules3-7f,
1341	toplevel-9, and toplevel-11 to test for this fix.
1342
1343	(For reference, this takes CVS's text segment from 344460 to
1344	344140 bytes.  I know, this may seem unimportant, but it is so
1345	unusual for programs to shrink and I think it is so cool when they
1346	do without losing functionality/clarity/etc).
1347	* checkout.c, cvs.h (emptydir_name): New function.
1348	* checkout.c (checkout, checkout_proc), modules.c (do_module):
1349	Call it instead of duplicating the code to do that.
1350
1351	* sanity.sh (basicc): Clean up first-dir at end of test.
1352
1353Sat Sep  6 09:48:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1354
1355	* sanity.sh (join): Fix cut and paste error in join-28
1356	(/home/kingdon/... -> ${TESTDIR}).
1357
1358	* recurse.c (start_recursion): If there is no CVSADM and no
1359	subdirectories, give an error.
1360	* sanity.sh (basicc): New tests, test for this fix.
1361
1362	* sanity.sh (join): New tests join-25 through join-29 test merging
1363	from one branch to a different branch.
1364
1365	* release.c: In comment about CVSROOTADM_IGNORE, also mention
1366	comment just added to entries.c.
1367	* entries.c: Expand this comment, especially the part about
1368	CVS/Template.
1369
1370	Keep track of what revisions CVS/Base correspond to:
1371	* cvs.h (CVSADM_BASEREV, CVSADM_BASEREVTMP): Added.
1372	* entries.c, cvs.h (base_register, base_deregister, base_get,
1373	base_walk): New functions.
1374	* edit.c (edit_fileproc): Call base_register when setting up CVS/Base.
1375	(unedit_fileproc): When taking a file out of CVS/Base, put its
1376	revision back into entries, and base_deregister it.
1377	* sanity.sh (watch4): New tests watch4-10 through watch4-18 test
1378	for above fix.
1379
1380Fri Sep  5 09:14:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1381
1382	* client.c: Only declare start_rsh_server if we are going to
1383	define it (!NO_EXT_METHOD).
1384
1385	* subr.c, cvs.h (check_numeric): New function.
1386	* admin.c (admin): Call it.
1387	* sanity.sh (admin): New tests admin-10a and admin-10b test for fix.
1388
1389Thu Sep  4 15:55:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1390
1391	* sanity.sh (binwrap2): New tests, test for the ability to specify
1392	all files are binary except certain patterns.
1393
1394	* sanity.sh (modules3): New tests modules3-16 and modules3-17 test
1395	for another behavior involving '/' in a module name.
1396
1397Sun Aug 31 12:03:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1398
1399	* add.c (add): Remove checks for '/' in pathnames.
1400	(add): Move code which handles entries and repository inside loop,
1401	since these now might be different for each argument.  Add code to
1402	set finfo.update_dir, finfo.file, and finfo.fullname appropriately
1403	even if pathname contains '/'.  Replace user variable with
1404	finfo.file or finfo.fullname, depending on which is meant.  chdir
1405	into update_dir for each argument.  Likewise for the client code
1406	which creates directories.
1407	(add_directory): Replace arguments with a single finfo argument.
1408	Replace dir with finfo->fullname as needed.
1409	(add): Update call to add_directory.
1410	* client.c, client.h (send_a_repository): No longer static.
1411	* sanity.sh (errmsg2): Adjust tests to test for '/' in pathname.
1412
1413	* sanity.sh (errmsg2): New tests errmsg2-13 through errmsg2-16
1414	test the status quo with respect to '/' in cvs add argument.
1415
1416Sat Aug 30 17:37:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1417
1418	* run.c (run_popen): Add comment on return value.
1419	* release.c (release): Check for NULL return from popen.
1420
1421Fri Aug 29 17:49:20 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1422
1423	* client.c (get_server_responses): Add comment about "ok^M".
1424
1425Thu Aug 28 13:35:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1426
1427	* edit.c (edit_fileproc): If file doesn't exist, give an error.
1428	* sanity.sh (devcom2): Tests devcom2-12 through devcom2-17 test
1429	for above fix.
1430
1431Tue Aug 26 16:42:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1432
1433	* subr.c (xmalloc): Reword error message to clarify that memory,
1434	not disk space or some other resource, is in question.
1435
1436Tue Aug 26 01:04:48 1997  Steve Ralston <sralston@ppdpost.ks.symbios.com>
1437	and Jim Kingdon  <kingdon@harvey.cyclic.com>
1438
1439	* add.c (add_directory): In allocating message, also allocate
1440	enough for tag and date related text.
1441
1442Tue Aug 26 01:04:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1443
1444	* update.c (update_dirent_proc): Use update_dir not dir in "new
1445	directory" message.
1446	* find_names.c (find_dirs): Skip CVSNULLREPOS.
1447	(Find_Directories): Add comment about find_dirs skipping CVSATTIC
1448	and CVSLCK in working directories.
1449	* sanity.sh (basicb): New tests basicb-edir-* test for find_dirs
1450	fix.  Change other tests to test that Emptydir is not special in
1451	non-CVSNULLREPOS contexts.
1452
1453Sun Aug 17 14:44:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1454
1455	* import.c (add_rcs_file): Add comment about -k overriding wrappers.
1456
1457Sat Aug 16 18:09:05 1997   Martin Sjoelin <martin.sjoelin@ubs.ch>
1458	and Jim Kingdon  <kingdon@harvey.cyclic.com>
1459
1460	* import.c (add_rcs_file): Before opening the input file
1461	when importing, if options is binary, open the file in
1462	binary mode.
1463
14641997-08-16  enami tsugutomo  <enami@ba2.so-net.or.jp>
1465
1466	* sanity.sh (mcopy): Unset CVSWRAPPERS last of all.
1467
1468Fri Aug 15 11:11:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1469
1470	* add.c (add_directory): Copy default file attributes from the
1471	parent directory to the directory we are creating.
1472	* fileattr.h, fileattr.c (fileattr_getall, fileattr_setall):
1473	New functions, in support of above.
1474	* fileattr.c (fileattr_free): Add comment about fileattr_write
1475	maybe not clearing attrs_modified.
1476	* sanity.sh (watch4): New test, tests for above fix.
1477
1478Thu Aug 14 11:08:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1479
1480	* update.c (merge_file, join_file): If wrap_merge_is_copy, treat
1481	files as nonmergeable (as we had been treating binary files).
1482	(join_file, update_fileproc): Remove previous wrap_merge_is_copy
1483	cruft.
1484	* sanity.sh (mcopy): New tests, test for above fix.
1485	(binfiles2): New tests binfiles2-9a-* correct an oversight.
1486	(binfiles, binfiles2): Adjust to reflect wording change from
1487	"binary file" to "nonmergeable file".
1488	(mwrap): Adjust tests mwrap-8 through mwrap-10 for new behavior.
1489
1490	* main.c (main): Reword copyright notices to include the latest
1491	year, to refer to "other authors" in addition to the ones listed,
1492	and to be more concisely formatted.
1493
1494Wed Aug 13 13:50:00 1997  Larry Jones  <larry.jones@sdrc.com>
1495
1496	* sanity.sh: Replace hard-coded directory with ${TESTDIR}, add
1497	join3 to default tests
1498
1499Wed Aug 13 11:42:24 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1500
1501	* rcscmds.c: Adjust comment to reflect progress on removing RCS
1502	execs outside this file.
1503
1504Mon Aug 11 10:14:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1505
1506	* vers_ts.c (Version_TS): If vers_ts->vn_rcs == NULL, skip setting
1507	modification time in server case as well as local case.
1508	* server.c (server_modtime): Add assertion to clarify that caller
1509	must assure that vers_ts->vn_rcs != NULL.
1510	* sanity.sh (join3): Add file "file2" to test for above fix.
1511
1512	* modules.c (save_d): When parsing -s option, don't assume that
1513	we will hit a space before we hit the '\0'.
1514	(struct sortrec): Document allocation policies (status quo except
1515	status field is now malloc'd).
1516	(cat_module): No longer need to set the '\0' at the end of the
1517	status field back to ' ', as it no longer shares storage with the
1518	rest field.
1519	* sanity.sh (modules): Add "statusmod" to test for above fix.
1520
1521Sun Aug 10 12:18:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1522
1523	* sanity.sh: Remove TODO item about more keyword expansion tests.
1524	The keyword test and others cover it pretty well, and such an item
1525	isn't useful unless it is specific.
1526
1527	* sanity.sh (importb): New tests test "cvs import -b".
1528
1529	* mkmodules.c: Update comment with more reasons why having
1530	CVSROOT/passwd be a regular administrative file would be a Bad
1531	Idea.
1532
1533	* server.c (switch_to_user): Add comment about checking for errors
1534	from setuid and friends.
1535
1536Wed Aug  6 13:48:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1537
1538	* main.c (main): Add comment about errors writing CVS/Root in
1539	need_to_create_root code.
1540
1541Tue Aug  5 22:05:20 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1542
1543	* entries.c (write_entries): If trouble writing Entries.Backup,
1544	make it a warning not an error.
1545
1546Wed Jul 30 08:42:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1547
1548	* parseinfo.c (parse_config): If AUTH_SERVER_SUPPORT is not
1549	defined, don't set system_auth.
1550
1551	* version.c: Change version number to 1.9.15.
1552
1553	* Version 1.9.14.
1554
1555	* create_adm.c, cvs.h (Create_Admin): If new argument WARN is set,
1556	then make creating the CVS directory itself a warning not a fatal
1557	error.  New return value indicates whether we did this.
1558	* checkout.c (build_one_dir), client.c (call_in_directory):
1559	Pass WARN as one.
1560	* add.c, client.c, checkout.c, modules.c, update.c: Pass WARN as
1561	zero for all other Create_Admin callers.
1562	* sanity.sh (toplevel): New test toplevel-12 tests for this fix.
1563	* filesubr.c (mkdir_if_needed): Also check EACCES/isdir.  Needed
1564	to make toplevel-12 test work.
1565
1566	* sanity.sh (toplevel): New test toplevel-11 and friends test for
1567	another variation of the toplevel-9 bug.
1568
1569Tue Jul 29 12:11:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1570
1571	* login.c (construct_cvspass_filename): Revert this change.  The
1572	main reason is procedural; Karl is not a current CVS developer.
1573	The other thing is that the new text doesn't say anything about
1574	HOMEDRIVE and HOMEPATH.
1575
1576Tue Jul 29 11:36:22 1997  Karl Fogel  <kfogel@harvey.cyclic.com>
1577
1578	* login.c (construct_cvspass_filename): error message informs user
1579	she may need to set HOME environment variable by hand.
1580
1581Sun Jul 27 15:36:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1582
1583	* admin.c (admin): Remove comment "XXX send -ko too with i = 0".
1584	It turns out to be a description of a bugfix which was applied on
1585	8 Oct 1995, and never should have been in a comment in the first
1586	place.
1587
1588	* admin.c (admin, admin_fileproc): Parse options ourself rather
1589	than blindly passing them to RCS.
1590	Accordingly, add struct admin_data and function arg_add, and delete
1591	global variables ac and av.
1592	* sanity.sh (admin): Change admin-3 test to reflect cvs admin -i
1593	now being an error.
1594	(basicb): Change basicb-21 test to relect the improved error
1595	message here.
1596
1597Sat Jul 26 11:34:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1598
1599	* sanity.sh (join3): New tests, test a new branch topology and
1600	greatest common ancestor.
1601
1602Fri Jul 25 09:51:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1603
1604	* server.c (serve_directory): Repository must start with
1605	CVSroot_directory rather than some random pathname.
1606
1607	* remove.c (remove_fileproc): If there is a numeric sticky tag,
1608	don't allow the remove.
1609	* commit.c (check_fileproc): Add comment about this case.
1610	* sanity.sh (sticky): New tests sticky-15 through sticky-23
1611	test for this behavior and the analogous behavior with
1612	non-branch sticky tags (which is unchanged).
1613
1614	* client.c (update_entries): Clear the stored mode, modtime, and
1615	checksum even on an error.
1616	* sanity.sh (contents2-142d*): Also test cvs status.  Also test
1617	the case in which the contents of the file are unchanged.  Also
1618	test running diff to see the conflict, and resolving the conflict.
1619	Without the fix above, the new contents2-142d2 test would get a
1620	"duplicate Mod-time" warning.
1621
1622Thu Jul 24 13:29:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1623
1624	* server.c (pserver_authenticate_connection): Call parse_config
1625	here too.
1626	* parseinfo.c (parse_config): If we are called several times, the
1627	times beyond the first do nothing.
1628	* cvs.h, parseinfo.c (parse_config): New argument cvsroot.
1629	* server.c, main.c: Update callers.
1630	* server.c, server.h (system_auth): New variable.
1631	* parseinfo.c (parse_config): Parse new keyword SystemAuth.
1632	* mkmodules.c (config_contents): Add comments for SystemAuth.
1633	* server.c (check_password): If !system_auth, then skip the check
1634	for a system username/password.
1635
1636	* main.c (main): No fatal error if parse_config returned an error.
1637	* server.c (serve_root): Likewise.
1638	* error.c (error): Add comment about calling from the server.
1639	* parseinfo.c, cvs.h (parse_config): Remove NOERR crock.
1640	Closer reading of server.c makes it seem like calling error
1641	here is OK after all.
1642	* sanity.sh (config): New test, tests for above fix.
1643
1644	* server.c (serve_root): Fix typo ("doign" -> "doing").
1645
1646Wed Jul 23 13:55:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1647
1648	* vers_ts.c (Version_TS): If entdata is for a directory, don't set
1649	vn_user and friends.
1650	* server.c (dirswitch): Add comment about why Subdir_Register is
1651	sometimes a noop here.
1652	* cvs.h (struct vers_ts): Fix comments about NULL vs. "" in vn_user.
1653	* sanity.sh (errmsg2): New tests errmsg2-10 through errmsg2-12 test
1654	for above fix.
1655	* add.c (add_directory): Call cvs_output not printf.  This fixes
1656	an out-of-order bug which was showing up in the testcase.
1657
165821 Jul 1997  Jim Kingdon
1659
1660	* subr.c (get_file): Put st_size into an unsigned variable to
1661	avoid signed/unsigned warnings.
1662
1663Mon Jul 21 00:19:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1664
1665	* version.c: Change version number to 1.9.13.
1666
1667	* Version 1.9.12.
1668
1669	* sanity.sh (toplevel, head): Delete our files from the repository
1670	when done with them.
1671
1672Sun Jul 20 15:53:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1673
1674	* sanity.sh (admin, reserved): New tests, test most cvs admin
1675	behaviors.
1676	(log2): New tests log2-5 through log2-10 test setting the
1677	description via cvs admin.
1678
1679Thu Jul 17 12:39:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1680
1681	* client.c (socket_buffer_input, socket_buffer_output): Add
1682	comment regarding size of of buffer we pass to send and recv.
1683
1684Sat Jul 12 15:21:24 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1685
1686	* import.c, rcs.h (add_rcs_file): New argument key_opt replaces
1687	access to global variable keyword_opt.  New arguments desctext and
1688	desclen allow one to set the description.  If add_vhead is NULL,
1689	then omit a revision, like rcs -i.
1690	* import.c (process_import_file), mkmodules.c (init): Change
1691	callers.
1692	* subr.c, cvs.h (get_file): New function, adapted from code in
1693	update_entries.
1694	* client.c (update_entries): Call it.
1695	* commit.c (checkaddfile): Create new RCS files with add_rcs_file
1696	rather than rcs -i.
1697
1698Fri Jul 11 12:14:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1699
1700	* update.c (join_file): Handle binary files ourself rather than
1701	passing them to RCS_merge (which sort of tries to handle binary
1702	files, but does so badly).
1703	* sanity.sh (binfile2): New "brmod", "brmod-trmod", and
1704	"brmod-wdmod" tests test for this fix.
1705
1706	* add.c (add): Exit status is now nonzero if any of the arguments
1707	failed (already was mostly true, make it true for the new sanity
1708	check).  Move check for '/' (now ISDIRSEP) up to sanity check, so
1709	the client does it too.
1710	* sanity.sh (errmsg2): Test for this fix.
1711
1712Thu Jul 10 00:02:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1713
1714	* add.c (add): Check for CVSADM, ".", and "..", and skip any
1715	attempt to add them.
1716	* sanity.sh (errmsg2): New tests, tests for above fix.
1717
1718	* main.c (main): In text printed upon --version, also refer
1719	people to --help.
1720
1721	* rcscmds.c (RCS_exec_rcsdiff): Add comment about timezones.
1722
1723	* server.c, cvs.h (cvs_output_binary): New function.
1724	* rcs.c (RCS_checkout): For a binary file, call cvs_output_binary
1725	rather than cvs_output.
1726	* client.c (handle_mbinary): New function.
1727	(responses): Add "Mbinary".
1728
1729Tue Jul  8 12:18:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1730
1731	* filesubr.c (get_homedir): Add comment about root vs. user
1732	directory in pserver server.
1733
1734Mon Jul  7 14:39:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1735
1736	* sanity.sh (big): Also test Rcs-diff case.
1737
1738	* client.c (update_entries): Reindent a line.
1739
1740	* sanity.sh (death2): Add comment about Sun diff.  Thanks to
1741	Warren Jones <wjones@TC.FLUKE.COM> for reporting this.
1742
1743	* client.c (update_entries): If DONT_USE_PATCH, then just treat a
1744	Patched response as an indication to try again with complete files.
1745	* update.c (update): Remove DONT_USE_PATCH ifdefs, since a CVS
1746	with DONT_USE_PATCH defined can still handle Rcs-diff.
1747	* sanity.sh (serverpatch): Add comment about this coming up in
1748	real life if the user modifies the file while CVS is running.
1749
1750	* client.c (start_server): Add comment about logfiles if there are
1751	several connections to the server.
1752	(log_buffer_shutdown): Close the logfile after shutting down the
1753	underlying buffer.  This way at least we get the last set of
1754	logfiles rather than a bizarre mishmash.
1755
17561997-07-06  enami tsugutomo  <enami@but-b.or.jp>
1757
1758	* logmsg.c (do_verify): Unlink temporary file before call error().
1759	Remove unneeded `return' statement.  Fix comment.
1760
1761Sun Jul  6 13:36:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1762
1763	* diff.c (diff_fileproc): Change message from "during rcsdiff of"
1764	to "while diffing".  For a while now, that message might be
1765	printed after a call to DIFF instead of rcsdiff.
1766
1767	* diff.c (diff_fileproc): Call cvs_output not printf.  Remove
1768	calls to fflush (should be handled now by call to cvs_outflush in
1769	recurse.c).
1770	* patch.c (patch_fileproc): Likewise.
1771
1772	* rcscmds.c, cvs.h (diff_exec): New function.
1773	* diff.c (diff_fileproc), patch.c (patch_fileproc),
1774	update.c (patch_file): Call it.
1775
1776	* rcscmds.c: Adjust comments concerning diff library to point to
1777	new, expanded comments at diff_exec.  Remove comments concerning
1778	patch library; Rcs-diff should be adequate.
1779
1780	* client.c (update_entries): Add comment about GNU patch usage (-b
1781	option and so on).
1782
1783Sat Jul  5 04:13:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1784
1785	* rcscmds.c, cvs.h (RCS_exec_rcsdiff): New function.
1786	* diff.c (diff_fileproc): Call it.
1787
1788Thu Jul  3 09:50:07 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1789
1790	* main.c (main): Add comment about how long we should keep the
1791	deprecated "cvs rlog" alias.
1792
1793	* server.c (cvs_output): Add comment about whether to fflush.
1794
1795Wed Jul  2 18:57:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1796
1797	* sanity.sh (join2): New tests join2-19 and friends test for a
1798	case that we can't readily get right (see comments).
1799
1800Tue Jul  1 09:52:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1801
1802	* main.c (cmd_usage): Say "specify" --help rather than the vague
1803	"use".
1804	(opt_usage, cmd_synonyms): Mention --help here too.
1805	* add.c, admin.c, checkout.c, commit.c, diff.c, edit.c, import.c,
1806	log.c, login.c, mkmodules.c, patch.c, rcs.c, release.c, remove.c,
1807	rtag.c, status.c, tag.c, update.c, watch.c: Likewise, for all the
1808	other help messages.
1809
1810	* sanity.sh (join2): New tests.
1811
1812	* repos.c (Name_Repository): Check for errors from fclose.
1813
1814Fri Jun 27 10:27:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1815
1816	* scramble.c, login.c: Reindent.
1817
1818	* client.c (connect_to_pserver): Check for errors from send().
1819	If socket() fails, include SOCK_STRERROR (SOCK_ERRNO) in message.
1820
1821Wed Jun 25 11:21:52 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1822
1823	* main.c: New option --help-options, with much of the text
1824	from --help.  Fix a few capitalization and punctuation problems.
1825	Rewrite text for --help to be an intro to all the --help-*
1826	options.
1827
1828	* sanity.sh (head): New tests, concerning meaning of HEAD.
1829
1830Tue Jun 24 10:14:18 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1831
1832	* client.c (recv_line): New function.
1833	(connect_to_pserver): Call it, and rewrite accordingly.  Also
1834	accept new "E" and "error" responses.  Change \n to \012.
1835	* server.c (pserver_authenticate_connection): Adjust comment
1836	accordingly, concerning sending I HATE YOU not "error".
1837
1838Sun, 22 Jun 1997  Jim Kingdon
1839
1840	* main.c (main): Move setting of server_active inside #ifdef
1841	SERVER_SUPPORT; otherwise the variable doesn't exist.
1842	* main.c (main): Call return after exit to shut up warning.
1843
1844Fri Jun 20 22:56:34 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1845
1846	* client.c (connect_to_pserver): On "I HATE YOU", give
1847	"authorization failed" fatal error regardless of verify_only.
1848	* login.c (login): Don't print that "incorrect password" message;
1849	it now is possible with an --allow-root failure as well as an
1850	incorrect password.  cvsclient.texi doesn't really specify what I
1851	HATE YOU means in any detail, and it seems a little silly for
1852	login to give different messages than the other commands.
1853	* client.c, client.h (connect_to_pserver): Return type now void.
1854
1855Thu Jun 19 12:16:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1856
1857	* server.c (serve_root): Give error on duplicate Root request.
1858	Call parse_config.
1859	* parseinfo.c, cvs.h (parse_config): New function.
1860	* cvs.h (CVSROOTADM_CONFIG): Added.
1861	* main.c (main): Set server_active here...
1862	* server.c (server): ...not here.  That seems cleaner than
1863	strcmp's between command_name and "server" in main.c.
1864	* main.c (main): Call parse_config.
1865	* main.c, cvs.h (free_Rcsbin): Make global.
1866	* mkmodules.c (filelist): Add CVSROOTADM_CONFIG.
1867
1868Wed Jun 18 11:24:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1869
1870	* version.c: Change version number to 1.9.11.
1871
1872	* Version 1.9.10.
1873
1874Tue Jun 17 22:48:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1875
1876	* main.c (main): Add --allow-root=ROOT argument; call
1877	root_allow_add for each time it is specified.  Call
1878	root_allow_free before exiting.
1879	* root.c, cvs.h (root_allow_add, root_allow_free, root_allow_ok):
1880	New function.
1881	* server.c (pserver_authenticate_connection): If root_allow_ok
1882	doesn't like the CVSROOT directory, don't allow access.
1883
1884Tue Jun 17 14:30:14 1997  Jim Kingdon  (unknown@beezley)
1885
1886	* client.c: Add "copyright" notice.  If NO_EXT_METHOD, omit
1887	start_rsh_method.
1888	* client.c (update_entries): Cast argument to MD5Update from
1889	char * to unsigned char *.
1890
1891Mon Jun 16 16:46:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1892
1893	* run.c (piped_child, filter_stream_through_program):
1894	If USE_SETMODE_BINARY, then put the pipes into binary mode.
1895	* find_names.c, ignore.c, lock.c, wrapper.c: Change fnmatch to
1896	CVS_FNMATCH.
1897	* client.c (start_server): If NO_EXT_METHOD, then give a fatal
1898	error on any use of :ext:.
1899
1900Sun Jun 15 22:30:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1901
1902	* sanity.sh (toplevel): Match U CVSROOT/* lines with DOTSTAR in
1903	test toplevel-9.
1904
1905Thu Jun 12 10:27:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1906
1907	* sanity.sh (toplevel): Remove Emptydir before starting.
1908
1909	* sanity.sh: Change "rm -rf" to "rm -r" when deleting working
1910	directories (except a few watches cases).  Helps detect cases
1911	where the testsuite has cd'd to somewhere other than where we
1912	think it has.
1913	(basic2): Remove "rm -r first-dir" between tests 49 and 50.  The
1914	directory was already deleted in test 45.5.
1915	(rcs): Add "cd .." at end of tests.
1916	(stamps): No longer cd to TESTDIR; shouldn't be necessary with
1917	fix to "rcs" test.
1918
1919Wed Jun 11 22:28:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1920
1921	* sanity.sh (basicb): Also remove CVSROOT/Emptydir at end of
1922	test.  Otherwise it affects the toplevel-9 test for remote.
1923
1924Tue Jun 10 14:03:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1925
1926	* sanity.sh (toplevel): Change "update" and "checkout" to "[a-z]*"
1927	as these read "server" instead for "make remotecheck".  Change
1928	expect strings for toplevel-9 to accept the behavior of remote CVS
1929	(see comments for more discussion).
1930
1931	* sanity.sh: New tests stamps-9 through stamps-11 test timestamp
1932	behavior on cvs update.
1933
1934Mon Jun  9 22:42:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1935
1936	* sanity.sh: Remove "#! /bin/zsh" line at end.  I assume it was
1937	added accidentally.
1938
1939Tue Jun 10 03:08:46 1997  Norbert Kiesel  <nk@psycho.de>
1940
1941	* sanity.sh: new tests "toplevel" for the new toplevel CVS
1942	directory creation (including one test which shows an error in
1943	this area).
1944
1945Sun Jun  8 20:52:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1946
1947	* rcs.c (getrcsrev): Before printing error, check whether it was
1948	feof or ferror.
1949
1950	* rcs.h, import.c (add_rcs_file): No longer static.  New arguments
1951	add_vbranch, add_vhead, and add_logfp replace access to static
1952	variables vbranch, vhead, and logfp.
1953	* mkmodules.c: Call it instead of RCS_CI.
1954	* import.c (process_import_file): Adjust call to add_rcs_file.
1955
1956Tue Jun  3 10:18:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1957
1958	* sanity.sh (basicb): Match "." with "\." not ".".
1959
1960Tue Jun  3 13:02:37 1997  Norbert Kiesel  <nk@cosa.de>
1961
1962	* checkout.c (checkout): Removed restriction of not sending -k in
1963 	remote export (I think this was introduced while the -k handling
1964 	was still broken in remote mode).  Give better error texts
1965 	regarding -c and -s options.  Use error() instead of usage() for
1966 	reporting errors in all places.  Reindented some lines.  Free
1967 	xmalloc'd space of options.
1968
1969Thu May 29 16:32:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1970
1971	* rcscmds.c (RCS_checkin), mkmodules.c (init): Pass -w option to
1972	"ci", specifying getcaller ().
1973	* server.h, server.c (CVS_Username): Now extern.
1974	* subr.c (getcaller): Return CVS_Username if it is set.
1975
1976Wed May 28 22:31:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1977
1978	* update.c (update_fileproc): If wrap_merge_is_copy and we would
1979	like to do a merge, give a fatal error.  See comment for why.
1980	* sanity.sh (mwrap): New tests, tests for above fix.
1981
1982Tue May 27 21:59:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1983
1984	* sanity.sh (stamps): cd to ${TESTDIR} before starting.
1985
1986Mon May 26 15:31:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1987
1988	* client.c (handle_mod_time): New function.
1989	(responses): Add "Mod-time".
1990	(stored_modtime_valid, stored_modtime): New variables.
1991	(update_entries): If it is set, change the file's modtime.
1992	* server.c, server.h (server_modtime): New function.
1993	* vers_ts.c (Version_TS): Call it.
1994	* patch.c (patch_fileproc): Add comment about why we don't.
1995	* sanity.sh (stamps): Added, tests for above fix.
1996
1997Fri May 16 13:14:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1998
1999	* subr.c (free_names): Update documentation to reflect fact that
2000	free_names is now called to free vectors allocated by expand_wild
2001	as well	as by line2argv.
2002
2003	* main.c (main): Use "xstrdup (foo)" not "xstrdup(foo)" as
2004	specified in HACKING.
2005
2006Fri May 16 15:10:37 1997  Norbert Kiesel  <nk@cosa.de>
2007
2008	* modules.c (do_module): initialize optind to 0.  use local copies
2009 	of optarg's (because they might me freed within free_names).
2010
2011Thu May 15 11:50:15 1997  Norbert Kiesel  <nk@cosa.de>
2012
2013	* main.c (main): initialize optind to 0.  use local copies of
2014	optarg's (because they might me freed within read_cvsrc).
2015
2016	* cvsrc.c (read_cvsrc): free old argv after constructing a new
2017	one.  This fixes a memory leak.
2018
2019	* recurse.c (start_recursion): use free_names() instead of
2020	reimplementing it
2021
2022	* rcs.c (RCS_deltas): free branchversion (memory leak).
2023
2024	* parseinfo.c (Parse_Info): free some vars (3 memory leaks).
2025
2026	* logmsg.c (logfile_write): free str_list_format (memory leak).
2027
2028	* watch.c (watch_addremove), (watchers), update.c (update), tag.c
2029 	(cvstag), status.c (status), rtag.c (rtag), remove.c (cvsremove),
2030 	release.c (release), patch.c (patch), log.c (cvslog), import.c
2031 	(import), history.c (history), edit.c (watch_onoff), (edit),
2032 	(unedit), (editors), diff.c (diff), commit.c (commit), checkout.c
2033 	(checkout), add.c (add): initialize optind to 0
2034
2035	* diff.c (diff_fileproc): cosmetic change (whitespace added).
2036
2037	* checkout.c (checkout): move local variable definition into the
2038	block where the variable is used.
2039
2040	* client.c (update_entries): initialize some local variables to shut up
2041	gcc -O -Wall.
2042
2043	* buffer.c (buf_read_line): initialize a local variable to shut up
2044	gcc -O -Wall.
2045
2046
2047Wed May 14 16:29:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2048
2049	* admin.c (admin): When sending options to server, don't try to
2050	send av[ac].  It may contain one of the names that we'll send in
2051	send_file_names (which caused tests like keyword-6 to work,
2052	sort of accidentally), or it may contain NULL (which would tend to
2053	cause a coredump).
2054	* sanity.sh (basicb): New test basicb-21 tests for above fix.
2055
2056Mon May 12 16:22:00 1997  Larry Jones  <larry.jones@sdrc.com>
2057
2058	* add.c (add): Free message and repository in client code.
2059	* checkout.c (checkout): Don't free repository unless allocated.
2060	* client.c (start_rsh_server): Free command.
2061
2062Sun May 11 11:43:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2063
2064	* client.c: Remove all references to USE_DIRECT_TCP; see
2065	../ChangeLog for rationale.
2066
2067Fri May  9 22:19:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2068
2069	* main.c (main): Add comment explaining why we call exit.  Pass 0
2070	not EXIT_SUCCESS, because lib/system.h has portability cruft for
2071	EXIT_FAILURE but not EXIT_SUCCESS.
2072
2073Fri May  9 17:25:00 1997  Larry Jones  <larry.jones@sdrc.com>
2074
2075	Fix miscellaneous memory allocation problems:
2076	* add.c (add): Free repository.
2077	* client.c (notified_a_file): Free getline buffer.
2078	* edit.c (notify_check): Free getline buffer.
2079	* hash.c (dellist): Free header node when not caching.
2080	* login.c (login): Don't continually free & allocate getline
2081	buffer, use xstrdup instead of xmalloc/strcpy, free getline
2082	buffer before returning.
2083	* main.c (main): Call exit instead of returning so tools like
2084	Purify won't consider permanently allocated memory as leaks.
2085	* mkmodules.c (mkmodules): Free getline buffer.
2086	* modules.c (cat_module): Call close_module.
2087	* rcs.c (rcsvers_delproc): Free state.
2088	* recurse.c (start_recursion): Free files_by_dir.
2089	(unroll_files_proc): NULL out p->data after using it to set
2090	filelist to avoid multiple frees.
2091	* server.c (check_command_legal_p): Don't continually free &
2092	allocate getline buffer, free getline buffer before returning.
2093	(check_repository_password): Ditto, use xstrdup instead of
2094	xmalloc/strcpy.
2095	* wrapper.c (wrap_add_file): Free getline buffer.
2096
2097Thu May  8 14:21:00 1997  Larry Jones  <larry.jones@sdrc.com>
2098	and Jim Kingdon  <kingdon@harvey.cyclic.com>
2099
2100	* checkout.c (checkout_proc): Free finfo.rcs (memory leak).
2101
21028 May 1997  Larry Jones  <larry.jones@sdrc.com>
2103	and Jim Kingdon  <kingdon@harvey.cyclic.com>
2104
2105	* hash.c: Add #ifdef's to disable caching.  This makes it easier
2106	to track down memory allocation problems.
2107
2108Thu May  8 11:40:39 1997  Larry Jones  <larry.jones@sdrc.com>
2109
2110	* sanity.sh: In setting "tests" use a number of statements rather
2111	than one very long line.
2112
2113Thu May  8 11:40:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2114
2115	* cvsbug.sh: Remove $Id; we decided to get rid of these some time
2116	ago.
2117
2118Thu May  8 11:34:02 1997  Larry Jones  <larry.jones@sdrc.com>
2119
2120	* cvsbug.sh: Put separate statements on separate lines, so it
2121	works if awk is AT&T nawk.
2122
2123Tue May  6 16:56:00 1997  Larry Jones  <larry.jones@sdrc.com>
2124	and Jim Kingdon  <kingdon@harvey.cyclic.com>
2125
2126	* cvsrc.c (read_cvsrc): Fix various memory allocation problems:
2127	rearrange code to avoid leaks, use xrealloc instead of xmalloc/
2128	copy/free, make sure there's room for the remaining args before
2129	appending them.
2130
2131Tue May  6 14:20:00 1997  Larry Jones  <larry.jones@sdrc.com>
2132
2133	* edit.c (watch_onoff, edit, unedit, editors): Add -R like
2134	other things with -l.
2135	* watch.c (watch_addremove, watchers): Ditto.
2136
2137Mon May  5 18:10:37 1997  larry.jones@sdrc.com
2138	and Jim Kingdon  <kingdon@harvey.cyclic.com>
2139
2140	* sanity.sh: Change all /tmp/cvs-sanity to TESTDIR.  If TESTDIR
2141	environment variable is set, use it instead of /tmp/cvs-sanity.
2142	* sanity.sh: Make TMPPWD the pwd equivalent of TESTDIR, not of /tmp.
2143
21444 May 1997  Larry jones  <larry.jones@sdrc.com>
2145	    and Jim Kingdon
2146
2147	* checkout.c, diff.c, patch.c, rcs.c: Update usage messages.
2148	* rcs.c (annotate): Add -R like other things with -l.
2149
2150Sat May  3 14:57:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2151
2152	* sanity.sh (basic1): Rewrite test (use dotest, unroll the loops
2153	which IMHO makes the test a zillion times more understandable, and
2154	only do the variant which tests for 4 files at a time--we test one
2155	file at a time lots of places).
2156
21572 May 1997  Ziv Gigus <ziv@rest.home.net>
2158	    and Jim Kingdon
2159
2160	* client.c, client.h (client_process_import_file): New argument
2161	all_files_binary means treat all files as binary.
2162	* import.c (import_descend): Pass it if -kb is specified.
2163	* client.c (client_process_import_file): In the
2164	non-all_files_binary case, call wrap_rcsoption to determine
2165	whether the file is binary.
2166
2167Thu May  1 13:44:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2168
2169	* sanity.sh (binfiles2): New tests, for update -j and binary files.
2170
2171Wed Apr 30 11:18:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2172
2173	* recurse.c (start_recursion): Also free reposfile.
2174	Don't look in repository if client_active (latter bug reported by Paul
2175	Sanders <p.sanders@dial.pipex.com>).
2176
2177Mon Apr 28 22:36:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2178
2179	* diff.c (diff_file_nodiff): Remove SERVER_SUPPORT ifdefs.  They
2180	were not based on server_active, which doesn't really make any
2181	sense (it meant that compiling --disable-server could affect the
2182	behavior of the non-client/server CVS).  This affected the output
2183	in tests death2-diff-11 and death2-diff-12 in the testsuite.
2184	* sanity.sh (newb-123j0): Also accept "Needs Checkout", for a
2185	--disable-server CVS.
2186
2187	* main.c (cmd_usage): Change "run diffs" to "show differences";
2188	the former is jargon.
2189	* edit.c (edit_usage): Fix typo ("." -> ",").
2190	* edit.c (editors_usage), watch.c (watchers_usage): Mention -l.
2191	* checkout.c (export_usage): Say what -P does.
2192	* history.c (history_usg): Add comment about message wording.
2193
2194Mon Apr 28 14:47:45 1997  Norbert Kiesel  <nk@cosa.de>
2195
2196	* checkin.c (Checkin): use filename without path when calling
2197 	wrapper (bug found by Michal Schmitz <ms@cosa.de>).
2198
2199Fri Apr 25 13:28:55 1997  Ian Lance Taylor  <ian@cygnus.com>
2200
2201	* client.c (update_entries): In UPDATE_ENTRIES_RCS_DIFF case,
2202	write to a temporary file and then rename it.
2203
2204Thu Apr 24 11:35:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2205
2206	* subr.c, cvs.h (pathname_levels): New function, from a piece of
2207	send_file_names.
2208	* client.c (send_file_names): Call pathname_levels in place of the
2209	code which was moved there.
2210	* server.c, server.h (server_pathname_check): New function.
2211	* recurse.c (start_recursion): Call it.
2212	* sanity.sh (modules3): New test modules3-11b tests for above fix.
2213
2214	* filesubr.c: Do not define L_tmpnam.  It is in ANSI and SunOS4,
2215	so I don't think there will be a problem with it being missing.
2216	Defining it too small can cause memory corruption.
2217	(cvs_temp_name): Do not use L_tmpnam in the mktemp code; this
2218	could cause a buffer overflow if the -T global option was in use.
2219
2220Thu Apr 24 13:21:15 1997  Norbert Kiesel  <nk@cosa.de>
2221
2222	* filesubr.c (cvs_temp_name): Use tempnam if available, else
2223 	mktemp, else tmpnam. See the comment for rationale.
2224
2225	* sanity.sh: use "tar cf - ." instead of "tar cf - *" for
2226 	directory copies.
2227
2228Wed Apr 23 23:41:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2229
2230	* server.c (serve_update_prog): If in readonly mode, give an error.
2231
2232Wed Apr 23 19:07:41 1997  Norbert Kiesel  <nk@cosa.de>
2233
2234	* subr.c (line2argv): Allocate at least 4 slots for argv.
2235
2236	* checkout.c (checkout_proc): Add a comment which says why the
2237 	above change was necessary to avoid writing to unallocated memory.
2238
2239Wed Apr 23 11:20:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2240
2241	* entries.c (ParseTag): Always set *NONBRANCHP.
2242
224321 Apr 1997  Jim Kingdon
2244
2245	* client.c (update_entries), rcs.c (expand_keywords): Rewrite
2246	test to avoid signed/unsigned warning.
2247
2248Mon Apr 21 09:02:22 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2249
2250	* update.c (patch_file): Add comment about whether auto-detecting
2251	features of the DIFF program is a good idea.
2252
2253Mon Apr 21 00:03:34 1997  Ian Lance Taylor  <ian@cygnus.com>
2254
2255	Don't require the patch program:
2256	* client.c (struct update_entries_data): Add
2257	UPDATE_ENTRIES_RCS_DIFF to contents enum.
2258	(update_entries): Handle UPDATE_ENTRIES_RCS_DIFF.
2259	(handle_rcs_diff): New static function.
2260	(responses): Add "Rcs-diff".
2261	* server.c (server_updated): Handle SERVER_RCS_DIFF.
2262	(server_use_rcs_diff): New function.
2263	* server.h (enum server_updated_arg4): Add SERVER_RCS_DIFF.
2264	(server_use_rcs_diff): Declare.
2265	* update.c (rcs_diff_patches): New static variable.
2266	(update): Set rcs_diff_patches.
2267	(update_fileproc): If rcs_diff_patches, pass SERVER_RCS_DIFF
2268	rather than SERVER_PATCHED to server_updated.
2269	(patch_file): Correct initial comment to say diff rather than
2270	rcsdiff.  If rcs_diff_options, pass -n to diff rather than -c.
2271	* rcs.c (rcs_change_text): New function.
2272	* rcs.h (rcs_change_text): Declare.
2273
2274Mon Apr 21 00:08:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2275
2276	* diff.c (diff_fileproc): Add comment concerning updating the
2277	client timestamp.
2278
2279Sun Apr 20 23:20:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2280
2281	* commit.c (commit): Add comment regarding SEND_FORCE rationale.
2282
2283Sat Apr 19 17:10:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2284
2285	* server.c (dirswitch): If directory ends in '/', complain.
2286
2287Fri Apr 18 18:09:57 1997  Ian Lance Taylor  <ian@cygnus.com>
2288
2289	* rcs.c (apply_rcs_changes): New static function, broken out of
2290	RCS_deltas.
2291	(RCS_deltas): Call it.
2292	(linevector_add): Change return type to int.  Return an indication
2293	of an error for an invalid add, rather than calling error.
2294
2295Fri Apr 18 11:24:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2296
2297	* version.c: Change version number to 1.9.9.
2298
2299	* version.c: Version 1.9.8.
2300
2301	* commit.c (struct find_data): Add field force.
2302	(find_fileproc, commit): Use it instead of force_ci to decide
2303	whether to send files to server.
2304	(commit): Set it if either -f or -r is specified.
2305	* sanity.sh (basica): Add tests basica-8a0, basica-8a1, and
2306	basica-8a2; tests for above fix.
2307
2308Wed Apr 16 11:50:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2309
2310	* zlib.c: Remove paragraph with Free Software Foundation address.
2311	See 2 Jan 1997 entry in ../ChangeLog for rationale.
2312
2313Tue Apr 15 00:36:23 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2314
2315	* update.c (patch_file_write): Always assign to final_nl, so that
2316	it ends up reflecting whether the data from the last call had a
2317	newline, not whether the data from any of the calls ended in a
2318	newline.  Doesn't matter with the current RCS_checkout
2319	implementation, but it will if RCS_checkout is changed to pass
2320	less than the entire file.
2321
2322	* rcs.c (RCS_cmp_file): Change NULL to RUN_TTY in passing sout to
2323	RCS_checkout, for clarity.
2324
2325	* import.c (update_rcs_file): Remove unused variable ierrno.
2326
2327	* add.c, checkout.c, commit.c, diff.c, edit.c, import.c,
2328	history.c, log.c, main.c, patch.c, release.c, remove.c, rtag.c,
2329	status.c, tag.c, update.c, watch.c: Pass "+" to all calls to
2330	getopt.  This ensures that we maintain existing behavior even with
2331	glibc2.
2332
2333	* filesubr.c (fopen_case): Don't set *PATHP if we return an
2334	error.  Since the 9 Apr 1997 change, the behavior has been to
2335	sometimes set it and sometimes not.
2336	* rcs.c (RCS_parse): Adjust callers to not free it.  Without this
2337	change, they could call free() on an uninitialized variable.
2338
2339	* checkout.c (checkout): Add comment about export -k.
2340
2341	* root.c (check_root_consistent): Add comment about wording of
2342	message.
2343
2344Mon Apr 14 11:51:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2345
2346	* client.c (call_in_directory): If rdirp reaches the end of
2347	reposdirname, then just set it to NULL.  If server does not create
2348	directories one at a time, give a warning.
2349	* sanity.sh (modules3): Enable tests modules3-8 through
2350	modules3-11 for remote; tests for above fix.
2351
2352	* client.c (call_in_directory): Don't set short_pathname to
2353	pathname for a while; just use pathname itself (cleans up a relic
2354	of the old "Repository" (not "Directory") code).  Add comment
2355	explaining short_pathname.
2356
2357Sun Apr 13 18:07:50 1997  Ian Lance Taylor  <ian@cygnus.com>
2358
2359	* rcs.c (RCS_checkout): Add pfn and callerdat parameters.  Change
2360	all callers.  Move setting of expand after retrieval of file
2361	data.
2362	(struct cmp_file_data): Define.
2363	(RCS_cmp_file): New function.
2364	(cmp_file_buffer): New static function.
2365	* rcs.h (RCSCHECKOUTPROC): Define type.
2366	(RCS_checkout): Update declaration.
2367	(RCS_cmp_file): Define.
2368	* diff.c (diff_file_nodiff): Call RCS_cmp_file rather than
2369	RCS_checkout and xcmp.
2370	* import.c (update_rcs_file): Likewise.
2371	* no_diff.c (No_Difference): Likewise.
2372	* update.c (struct patch_file_data): Define.
2373	(patch_file): Just return if noexec, or if binary file.  Pass
2374	patch_file_write to RCS_checkout.  Don't check for newlines or
2375	compute checksums here.  Stat RCS file to set modes.
2376	(patch_file_write): New static function.
2377
2378	* update.c (patch_file): Checkout directly to file2, rather than
2379	to finfo->file followed by rename.  Remove check for whether
2380	result of checkout is readable; that was for an old, obsolete,
2381	form of death support.
2382
2383Sun Apr 13 13:16:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2384
2385	* checkout.c (build_one_dir): New function.
2386	(struct dir_to_build): New structure.
2387	(build_dirs_and_chir): Rewritten to accept a linked list of struct
2388	dir_to_build rather than the silly string processing we had been
2389	doing before.
2390	(checkout_proc): Rewrite code that calls build_dirs_and_chdir
2391	accordingly.
2392	* sanity.sh: Enable tests modules3-10 and modules3-11 for local CVS;
2393	tests for above fix.
2394
2395	* rcs.h (RCS_CO): Removed; no longer used.
2396
2397Sun Apr 13 00:04:34 1997  Ian Lance Taylor  <ian@cygnus.com>
2398
2399	Expand RCS keywords internally; never call co:
2400	* rcs.h (struct rcsversnode): Add state field.
2401	* rcs.c (kflags): Move out of RCS_check_kflag, and make file
2402	static.
2403	(enum kflag): Define.
2404	(RCS_reparsercsfile): Always save lock information.  Save state in
2405	new state field, rather than other field.
2406	(struct rcs_keyword): Define.
2407	(keywords): New static variable.
2408	(enum keyword): Define.
2409	(printable_date, escape_keyword_value): New static functions.
2410	(expand_keywords): New static function.
2411	(RCS_checkout): Call expand_keywords.  Don't call
2412	RCS_exec_checkout.
2413	(RCS_deltas): Add log and loglen parameters.  Change all callers.
2414	* log.c (log_version_requested): Use new state field.
2415	(log_version): Likewise.
2416	* cvs.h (RCS_exec_checkout): Don't declare.
2417	* rcscmds.c (RCS_exec_checkout): Remove.
2418
2419Sat Apr 12 17:32:59 1997  Ian Lance Taylor  <ian@cygnus.com>
2420
2421	* sanity.sh (modules3): Remove second-dir at end of tests.
2422	(sticky): Correct removal of directories at end of tests.
2423
2424	* sanity.sh (keyword): New tests for RCS keyword expansion.
2425
2426Sat Apr 12 16:47:13 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2427
2428	* sanity.sh (basicb): New tests basicb-1b, basicb-1c, basicb-9b,
2429	basic-9c test current build_dirs_and_chdir behavior.
2430
2431Fri Apr 11 23:54:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2432
2433	* sanity.sh (modules3): New tests modules3-7* test for ability to
2434	supply a path in -d in modules.  Similar to modules3-8 through
2435	modules3-11 except because the nesting is different, these ones
2436	work.
2437
2438Thu Apr 10 00:14:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2439
2440	* sanity.sh (modules3): New tests modules3-12 through modules3-15
2441	test use of a module name which contains a slash.
2442
2443	* sanity.sh (basicb): New tests basicb-14 to basicb-20 test use of
2444	co -d with two or more arguments.
2445
2446	* rcscmds.c: Refer to doc/RCSFILES in comment.
2447
2448Wed Apr  9 09:49:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2449
2450	* sanity.sh (basicb): New tests basicb-11 through basicb-13 test
2451	ability to specify several directory levels in co -d (commented
2452	out).
2453
2454	* filesubr.c (fopen_case): If CVS_OPENDIR gives an
2455	existence_error, return it to the caller instead of giving a fatal
2456	error.
2457
2458	* client.c (update_entries): Fix typo in call to error (1 -> errno).
2459
2460Tue Apr  8 23:02:22 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2461
2462	* error.h, error.c: Test for #ifdef __STDC__, not #if __STDC__.
2463	This is consistent with other parts of CVS; it means that the
2464	declaration for fperror will match the definition even if __STDC__
2465	is defined to 0 as the SunPro 4.0 compiler does.  Reported by
2466	Richard Smith <rjsmith@cisco.com>.
2467
24682 Apr 1997  Jim Kingdon
2469
2470	* entries.c (ParseTag): Add "break;" after "default:" to avoid
2471	error from Visual C++.
2472
2473Wed Apr  2 12:06:44 1997  Vince Del Vecchio  <vdelvecc@spd.analog.com>
2474			  and Jim Kingdon
2475
2476	* client.c: In reporting errors from socket calls, use
2477 	SOCK_STRERROR and SOCK_ERRNO since strerror(errno) doesn't work
2478 	for Win32.
2479
2480Tue Apr  8 10:45:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2481
2482	* sanity.sh (modules3): Add tests modules3-8 to modules3-11, to
2483	test for ability to supply a path to -d in modules.  Mostly
2484	commented out as CVS is buggy in this area.
2485
2486Mon Apr  7 12:41:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2487
2488	* add.c (add): Add comment about SEND_NO_CONTENTS.
2489
2490Sun Apr  6 21:46:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2491
2492	* update.c (update): Add comment about noexec and SEND_NO_CONTENTS.
2493
2494Sun Apr  6 17:34:08 1997  Robert Bihlmeyer  <robbe@orcus.priv.at>
2495
2496	* Pass +f not f to getopt_long to prevent options from being
2497	permuted with glibc 2.0.1.
2498
2499Sun Mar 30 00:07:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2500
2501	* cvs.h (struct vers_ts): Adjust comment regarding ts_user.
2502	* server.c (serve_is_modified): New function.  Set entries to show
2503	that the file is modified but we don't know the contents.
2504	* server.c (requests): Add "Is-modified" request.
2505	* vers_ts.c (time_stamp_server): If the timestamp in entdata is
2506	"M" or "D", just copy that over into ts_user.
2507	* vers_ts.c (Version_TS): If timestamp is "D", use the entries
2508	line for the sole purpose of passing it to time_stamp_server.
2509	* no_diff.c (No_Difference): If ts_user is "M", conclude the files
2510	are different.
2511	* client.h, client.c (send_files): Replace arguments build_dirs
2512	and force with argument flags.  Add flag SEND_NO_CONTENTS and add
2513	to struct send_data.
2514	(send_fileproc): If no_contents, then send Is-modified instead of
2515	Modified.
2516	* add.c, admin.c, client.c, commit.c, diff.c, edit.c, log.c,
2517	rcs.c, remove.c, status.c, tag.c, update.c, watch.c: Change all
2518	send_files callers.
2519
2520Fri Mar 28 22:32:25 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2521
2522	* server.c (requests): Change "Repository" to rq_optional.  I'm
2523	not sure whether I overlooked this when I removed support for
2524	Repository, or whether I was thinking that servers would need to
2525	support it anyway, for CVS 1.5 to 1.9 clients, but making it
2526	optional doesn't prevent the server from supporting it and it
2527	seems silly for the client to complain about absence of a request
2528	that it never will use.
2529
2530Fri Mar 28 10:06:59 1997  Steven Miller  <Miller@wingra.com>
2531
2532	* entries.c (Subdirs_Known): Don't create Entries.Log if noexec.
2533
2534Thu Mar 27 18:14:12 1997  Ian Lance Taylor  <ian@cygnus.com>
2535
2536	* sanity.sh (death2): Remove commented out test death2-21.  It
2537	would now pass, but it duplicates the new test sticky-11.
2538
2539Thu Mar 27 10:21:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2540
2541	* sanity.sh (dotest_internal): Write test output to logfile even
2542	if test succeeds.  This was the behavior prior to 30 Sep 1996.
2543	See the comment for rationale.
2544
2545Tue Mar 25 13:26:52 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2546
2547	* cvs.h, entries.c (WriteTag): Add arguments nonbranch,
2548	update_dir, and repository.  Move the server_set_sticky call from
2549	callers to here.
2550	* cvs.h, create_adm.c (Create_Admin): New argument nonbranch.
2551	* cvs.h, entries.c (ParseTag): Add argument nonbranchp.
2552	* cvs.h (struct stickydirtag): Add field nonbranch.
2553	* entries.c (Entries_Open): Set it.
2554	* cvs.h (Vers_TS): Add field nonbranch.
2555	* vers_ts.c (Version_TS): Copy it from struct stickydirtag.
2556	* server.c, server.h (server_set_sticky): Add argument nonbranch.
2557	* add.c, client.c, checkout.c, modules.c, update.c, create_adm.c,
2558	commit.c: Update callers.
2559	* add.c (add): If nonbranch, don't add the file on that "branch".
2560	* commit.c (write_dirnonbranch): New variable.
2561	(commit_fileproc, commit): Set it.
2562	(commit_dirleaveproc): Pass it to WriteTag.
2563	* update.c (rewrite_tag, nonbranch): New variables.
2564	(update, update_dirent_proc, update_fileproc): Set them.
2565	(update_filesdoneproc): If rewrite_tag, call WriteTag.
2566	* sanity.sh (sticky): New tests, test for above fix.
2567
2568	* version.c: Change version number to 1.9.7.
2569
2570	* version.c: Version 1.9.6.
2571
2572Mon Mar 24 13:02:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2573
2574	* entries.c (ParseTag): Add comment about unrecognized characters
2575	in CVS/Tag file.
2576
2577	* classify.c (Classify_File): Add comment about how specifying a
2578	tag (bogusly?) suppresses certain messages.
2579
2580Fri Mar 21 13:37:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2581
2582	* rcs.h (struct rcsnode): Add comment about case of PATH.
2583	* rcs.c (RCS_parse): If ign_case, then try opening the file with
2584	fopen_case.
2585	* ignore.c (ign_case): Adjust comment.
2586	* cvs.h, filesubr.c (cvs_casecmp, fopen_case): New functions.
2587
258820 Mar 1997  Jim Kingdon
2589
2590	* client.c (send_repository): When sending Directory request,
2591	send any ISDIRSEP character as '/'.  Fixes
2592	"cvs log foo\bar\baz.c" on NT & friends.
2593
2594	* client.c (send_file_names): Don't try to read Entries file if
2595	CVSADM directory does not exist.  Fixes fairly serious regression
2596	(warning on all fresh checkouts) introduced by 1997-01-08 change.
2597
2598Tue Mar 18 13:03:33 1997  Jim Meyering  <meyering@totoro.cyclic.com>
2599
2600	* sanity.sh (RCSINIT): Define to be empty and export, to hide any
2601	existing value that might cause spurious failures.
2602
2603	* Makefile.in: (install): Depend on installdirs.
2604	Remove `CYGNUS LOCAL' comment saying not to.
2605
2606Tue Mar 18 09:36:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2607
2608	* recurse.c (struct recursion_frame): Reindent.
2609	(do_dir_proc): Print message if we try to recurse into a CVSADM
2610	directory.
2611	* sanity.sh (basicb): New test basicb-4a tests for above fix.
2612
2613Sun Mar 16 10:18:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2614
2615	* sanity.sh (death2): Replace regexp matching temporary file name
2616	with new variable ${tempname}.  For most of the tests this is a
2617	cosmetic change, but death2-diff-6 had been missing _ which caused
2618	it to fail on Solaris (at least sometimes).
2619
2620	* sanity.sh (modes): Don't use export -n; it doesn't seem
2621	to be sufficiently portable.
2622
2623	* version.c: Change version number to 1.9.5.
2624
2625	* version.c: Version 1.9.4.
2626
2627	* rcscmds.c (RCS_checkin): Preserve the mode of the rcsfile.
2628	RCS_CI usually, but not always, does this for us.
2629	* commit.c (fix_rcs_modes): Replace algorithm with a more
2630	CVSUMASK-friendly one.
2631	* sanity.sh (modes): Update tests modes-5, modes-7, modes-10, and
2632	modes-15 so they test that CVSUMASK is honored.
2633
2634Sun Mar 16 10:18:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2635
2636	* sanity.sh (modes): New tests modes-7a and modes-7b test behavior
2637	if one manually changes the modes in the repository.
2638
2639	* server.c (server): Revise code which checks for errors creating
2640	temporary directory.  This won't solve the intermittent
2641	  can't create temporary directory
2642	  Unknown error -1
2643	but it will mean (a) the right message based on errno gets
2644	printed, instead of "unknown error -1", and (b) the message says
2645	that it happened in chmod instead of mkdir_p.
2646
2647Sat Mar 15 16:47:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2648
2649	* sanity.sh (modes): New tests.  Note that (for now) these are
2650	just testing how CVS already behaves; I want to record that before
2651	I move on to changing CVS's behavior with modes of RCS files.
2652
265313 Mar 1997  Jim Kingdon
2654
2655	* subr.c (line2argv): Change argv_allocated from size_t to int.
2656
2657Wed Mar 12 22:16:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2658
2659	* add.c (add_directory): If repository has an extraneous "."
2660	directory at the end, strip it off.  This fixes a bug which was
2661	introduced when strip_path was nuked (this fix is much more
2662	limited in scope than strip_path was; I _think_ that is a good
2663	thing).
2664	(add): Likewise, for client.
2665	(combine_dir): New function, helps with above.
2666	* sanity.sh (modules3): Reenable tests for this behavior.
2667	(basica-0b, basicb-0e): Adjust test to reflect "foo/bar" instead
2668	of "foo/./bar" in message.  As with the rest of this, I believe
2669	this is just restoring the behavior prior to the strip_path nuking
2670	(I tried it with CVS 1.9).
2671
2672Sun Mar  9 10:06:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2673
2674	* root.c (parse_cvsroot), server.c (serve_root, serve_init):
2675	If CVSroot_directory is not an absolute pathname, give a fatal error.
2676	* sanity.sh (crerepos): New tests crerepos-6* test for above fixes.
2677
2678Sat Mar  8 22:06:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2679
2680	This cleans up the last known code which can overflow its buffers
2681	(except the Mac client).  I've skimmed through much of CVS looking
2682	for other such places; but I didn't read everything.  If I missed
2683	any please report it to bug-cvs.
2684	* logmsg.c (logfile_write, title_proc): Realloc str_list as
2685	needed; don't assume MAXLISTLEN is enough.
2686	* cvs.h (MAXLISTLEN, MAXFILEPERDIR): Removed; no longer used.
2687	* add.c, myndbm.c, parseinfo.c, update.c: Nuke MAXLINELEN limit.
2688	* parseinfo.c, update.c, mkmodules.c: Check for errors reading file.
2689	* cvs.h (MAXLINELEN): Removed; no longer used.
2690	* logmsg (MAXHOSTNAMELEN): Removed; not used.
2691	* main.c (cmd_synonyms): Allocate based on fullname, nick1, and
2692	nick2, just in case someone makes those big enough so that 100
2693	bytes is not enough.
2694	(Make_Date): Use MAXDATELEN rather than our own fixed size.
2695	* mkmodules.c (mkmodules): Nuke arbitrary limit on line length.
2696	* rcs.c (ALLOCINCR): Remove; not used.
2697	(RCS_check_kflag): Add comment concerning karg size.
2698	* run.c: Allocate run_prog to the needed size, rather than
2699	allocating a fixed size buffer.
2700
2701Fri Mar  7 22:39:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2702
2703	* logmsg.c (logfile_write): Allocate prog to needed length rather
2704	than assuming MAXPROGLEN is enough.
2705	* cvs.h (MAXPROGLEN): Removed; no longer used.
2706	* subr.c (MIN_INCR): Update comment to reflect MAXPROGLEN's demise.
2707
2708	* subr.c (free_names): Fix comment: this function is not used to
2709	free memory allocated by Find_Names (at least it hasn't for a long
2710	time).
2711	* subr.c, cvs.h (line2argv): Change calling convention so that we
2712	allocate argv array rather than the caller.  The previous one had
2713	no way of checking whether we overflowed the passed-in buffer.
2714	* subr.c (free_names): Free the argv array too.
2715	* modules.c (do_module, cat_module): Update callers.
2716
2717Thu Mar  6 12:44:42 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2718
2719	* import.c: Allocate vhead and vbranch dynamically; removes
2720	arbitrary limit.
2721	* history.c: Likewise (since_rev, since_tag, backto, rec_types).
2722	* ignore.c: Likewise (line).  Also check for errors from getline
2723	and add 'copyright' notice to top of file.
2724	* wrapper.c (wrap_add_file): Likewise (line).  Also check for
2725	errors from various calls and add 'copyright' notice to top of file.
2726
2727Tue Mar  4 17:39:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2728
2729	* client.c (update_entries): Add comment about "move away <file>"
2730	message.
2731
2732Mon Mar  3 21:51:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2733
2734	* sanity.sh (basicb): Clean up topfile,v at end of test.  Fixes
2735	failure in modules-155b.
2736
2737Sun Mar  2 18:11:09 1997  Dan Wilder  <dan@gasboy.com>
2738			  and Jim Kingdon
2739
2740	* admin.c (admin): Arrange to perform recursion if "cvs admin"
2741	is passed only options.
2742
2743Sun Mar  2 18:11:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2744
2745	* sanity.sh (basicb): New tests basicb-0* test for files at top
2746	level.
2747
2748	* error.c (error): Add newline to "out of memory" message.  I think
2749	that its omission probably could cause the message to be lost in
2750	the bowels of server.c and never passed to the user.
2751
2752	* client.c (start_rsh_server): Add comment about "remsh" vs. "rsh".
2753
2754	* cvs.h: Move copyright notice to top of file.
2755
2756Sun Mar  2 13:44:36 1997  Ian Lance Taylor  <ian@cygnus.com>
2757
2758	* sanity.sh: Use -n when testing whether rsh works.
2759
2760	* server.c (serve_root): Free path.
2761
2762Sun Mar  2 13:12:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2763
2764	The following are things that I noticed in the process of trying
2765	to track down:
2766	  can't create temporary directory
2767	  Unknown error -1
2768	  FAIL: test 28
2769	from nightly testing.  I'm not sure that either item explains that
2770	message however.
2771	* server.c (server): Allocate pending_error_text;
2772	print_pending_error will try to free it so
2773	  pending_error_text = "foo"
2774	won't work.
2775	(mkdir_p): Don't assume that isdir will leave errno unmolested.
2776
2777Thu Feb 27 15:29:58 1997  Ian Lance Taylor  <ian@cygnus.com>
2778
2779	* remove.c (cvsremove): When forcing removal in client mode, use
2780	start_recursion rather than calling CVS_UNLINK on each argument.
2781	(remove_force_fileproc): New static function.
2782	* sanity.sh (deep): Add tests deep-rm7 through deep-rm10 for above
2783	patch.
2784
2785	* sanity.sh (death): Enable death-76a0 and death-76a1 tests for
2786	remote, since they now work.
2787
2788Wed Feb 26 16:13:26 1997  Ian Lance Taylor  <ian@cygnus.com>
2789
2790	* client.c (add_prune_candidate): Skip adding this directory if
2791	it is the same as the first directory already on the list.
2792
2793Mon Feb 24 21:36:43 1997  Noel Cragg  <noel@gargle.rain.org>
2794
2795	* main.c (lookup_command_attribute): Add the "init" command to the
2796 	list of commands that don't use the current working directory.
2797
2798Sun Feb 23 09:54:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2799
2800	* sanity.sh (devcom3): Clean up at end of test.
2801
2802	* sanity.sh (basicb): Add commented out test basicb-8a0, for
2803	whether CVS can print an error on bad numeric revision to diff.
2804	Commented out until we get around to fixing CVS.
2805	* diff.c (diff_file_nodiff): Add comment about this case.
2806
2807	* fileattr.c (fileattr_read): If a filename is duplicated,
2808	continue to ignore subsequent lines but free the node so that we
2809	don't leak memory.
2810	* sanity.sh (devcom3): New tests devcom3-8 and devcom3-9 test for
2811	behavior on duplicated filenames.
2812
2813	* fileattr.h: Add comment about unrecognized ENT-TYPE and order of
2814	lines in fileattr file.
2815	* fileattr.c (struct unrecog, unrecog_head): New variables, to
2816	record unrecognized lines.
2817	(fileattr_startdir): Assert that unrecog_head == NULL.
2818	(fileattr_read): Record unrecognized lines in unrecog_head linked
2819	list rather than ignoring them.
2820	(fileattr_write): Also write out unrecognized lines, if any.
2821	* sanity.sh (devcom3): New tests, test for above fix.
2822
2823	* fileattr.h (fileattr_modify): Fix example in comment.
2824
2825Sat Feb 22 08:30:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2826
2827	* sanity.sh: Add variable username.
2828	(basica rdiff multibranch log log2): Use it instead of our own
2829	(inconsistent) ways of matching an author name.
2830
2831	* filesubr.c, root.c, rtag.c, server.c, subr.c, update.c,
2832	wrapper.c: Nuke PATH_MAX.
2833	* cvs.h, wrapper.c (wrap_fromcvs_process_file): Now returns void
2834	(return value had been unused).
2835	* cvs.h: Adjust comment to reflect the fact that PATH_MAX is
2836	gone, at least from src/*.c (except safe_location, as noted).
2837
283822 Feb 1997  patch by Tom Hageman  <tom@basil.icce.rug.nl> (4 Jun 1996)
2839	updated and commented by Jim Kingdon  <kingdon@harvey.cyclic.com>
2840
2841	* update.c (checkout_file): Call unlink_file_dir on backup, not
2842	unlink_file.
2843
2844Fri Feb 21 16:40:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2845
2846	* Makefile.in (DISTFILES): Remove NOTES.
2847
2848	* NOTES: Removed.  bcopy->memcpy is done.  "static buffers" I
2849	assume refers to what is covered by reentrancy text in HACKING.
2850 	Obstack idea moved to comment in hash.c (at nodecache).  Checking
2851	system calls for error returns largely done, and isn't a very
2852	helpful suggestion unless you know where the bogus calls are
2853	anyway.  Sizing limits--we're in the progress of removing them
2854	(assuming it meant things like PATH_MAX and earlier, already
2855	nuked, limits).  Removed various items about changes which were
2856	done a long time ago (I realize that the ChangeLog's probably
2857	aren't reliable that far back, but I'm not convinced anyone cares
2858	anymore).  CONFIRM_DIRECTORY_ADDS: I assume this is a
2859	reference to the #if 0'd code in add_directory which asks for
2860	confirmation--a better way of making it harder to accidentally add
2861	directories would be to have to add and commit directories like
2862	for files.  I don't know what FORCE_MESSAGE_ON_ADD meant.
2863
2864	* rcs.c (RCS_getrevtime): Fix documentation (in particular, the
2865	size of the array that DATE must point to, but many other things
2866	too).
2867	* patch.c, recurse.c, release.c, remove.c, repos.c: Nuke PATH_MAX.
2868	(patch_fileproc): Use MAXDATELEN not hardcoded 50.
2869
2870Sun Feb 16 12:00:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2871
2872	* client.c (client_process_import_file): New variable fullname;
2873	pass it to send_modified.  This finishes the job of untangling the
2874	old short_pathname variable into update_dir vs. fullname.
2875
2876	* client.c (client_process_import_file): Nuke first_time.  If
2877	toplevel_repos were ever NULL here, the code would dump core in
2878	strncmp a few lines down.  And client_import_setup ensures
2879	toplevel_repos is not NULL.
2880
2881Sun Feb 16 08:16:48 1997  Ian Lance Taylor  <ian@cygnus.com>
2882
2883	* client.c (client_process_import_file): Rename short_pathname to
2884	update_dir (to reflect its function) and make sure that it doesn't
2885	point to uninitialized memory if repository and toplevel_repos
2886	contain the same string.
2887
2888Sun Feb 16 08:16:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2889
2890	* client.c (start_rsh_server): Nuke comment about weirdnesses with
2891	pre-1.5 versions of CVS and .bashrc/.cshrc.  The remote protocol
2892	is interoperable only back to 1.5, and people who need to know are
2893	unlikely to see this comment anyway.
2894
2895Sun Dec 15 13:12:30 1996  Michael Douglass <mikedoug@texas.net>
2896			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2897
2898	* main.c (cmds): Added an entry for new logout command.
2899	(cmd_usage): Added an entry for new logout command.
2900	(lookup_command_attribute): Added 'logout' to list of commands
2901	that set need_to_crate_root to 1.
2902	* login.c, cvs.h (logout): New command for removing entries from
2903	the .cvspass file.
2904	(logout_usage): Usage information on the logout command.
2905
2906Wed Feb 12 11:19:42 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2907
2908	* client.c (struct send_data): Fix indentation.
2909
2910Wed Feb 12 08:48:04 1997  Greg A. Woods  <woods@most.weird.com>
2911
2912	* mkmodules.c (loginfo_contents): add missing comma in
2913	initializer statement (caused syntax error on SunOS-4).
2914
2915Tue Feb 11 21:14:28 1997  Ian Lance Taylor  <ian@cygnus.com>
2916
2917	* commit.c (find_fileproc): If force_ci is set, set the status to
2918	T_MODIFIED even if the file hasn't changed.
2919	(commit): Pass force_ci to send_files as new force argument.
2920	* client.c (struct send_data): Define.
2921	(send_fileproc): The callerdat parameter now points to a send_data
2922	struct.  If force is set, always call send_modified.
2923	(send_dirent_proc): The callerdat parameter now points to a
2924	send_data struct.
2925	(send_files): Add force parameter. Change all callers.  Set up a
2926	send_data struct and pass it to start_recursion as callerdat.
2927	* client.h (send_files): Update declaration.
2928	* sanity.sh (basica): Add a simple test for the above patch.
2929
2930Sun Feb  9 12:58:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2931
2932	* tag.c (cvstag), rtag.c (rtag): Pass -f to server if specified in
2933	the client.  I haven't tried to come up with a test case because
2934	the fix seems obvious.
2935
2936	* import.c (add_rcs_file): Change size of altdate1 and altdate2 to
2937	MAXDATELEN.
2938	* cvs.h (MAXDATELEN): Fix comments; describe what this is for.
2939
2940	* diff.c (diff_usage): Document --ifdef and try to briefly say
2941	what "rcsdiff-options" means.
2942
2943	* update.c (update): If update had a nonzero status and we haven't
2944	yet tried to fetch unpatchable files, go ahead and try it again.
2945	The previous behavior was to quit, which meant that updates would
2946	keep failing until you hacked around the problem.  Patch and bug
2947	report by Ian; comment, ChangeLog entry, and willingness to take
2948	the flak if checking it is premature by Jim.
2949
2950	* server.c (alloc_pending): New function.
2951	* server.c: Call it.  Fixes places where we had neglected to
2952	check for NULL return from malloc.
2953
2954	* sanity.sh (binwrap): Add test binwrap-0, tests for import.c fix
2955	below.
2956
2957Sun, 9 Feb 1997 (submitted 19 Jul 1996)  John Polstra  <jdp@polstra.com>
2958
2959	* import.c (import): Give error if the same tag is specified more
2960	than once.  The previous behavior was to write an RCS file which
2961	had the same tag listed twice, once pointing to each revision,
2962	which is not legal.
2963
2964Sun Feb  9 12:37:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2965
2966	* checkin.c (Checkin): Use cvs_output to print message (should
2967	make out of order bugs no worse, as it merely substitues a
2968	protocol_pipe vs. stderr_pipe race instead of a stdout_pipe
2969	vs. stderr_pipe race).  Add comment about stdout vs. stderr.
2970
2971Fri Feb  7 08:29:52 1997  Josef Nelissen  <josef.nelissen@munich.ixos.de>
2972
2973	* server.c (check_command_legal_p): Don't use ANSI-style definition.
2974
2975Thu Feb  6 10:55:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2976
2977	* patch.c (patch): Give a fatal error for -V option (see comment
2978	for rationale).
2979
2980	* diff.c (diff): Also send "options" to server.  Pretty much the
2981	patch submitted independently by josef.nelissen@munich.ixos.de and
2982	Ronald Khoo <ronald@demon.net>.
2983
2984Wed Feb  5 18:57:14 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2985
2986	* modules.c (do_module): Fix typo in 30 Jan 97 PATH_MAX nuking
2987	(free -> free_cwd).  Testsuite test 151 gets credit for catching
2988	this one.
2989
2990Mon Feb  3 16:14:54 1997  Ian Lance Taylor  <ian@cygnus.com>
2991
2992	* main.c (lookup_command_attribute): Don't use an ANSI prototype
2993	when defining the function.
2994
2995Fri Jan 31 12:49:02 1997  Ian Lance Taylor <ian@cygnus.com>
2996
2997	* modules.c (do_module): Actually goto found if is_found is set
2998	(fixes thinko in PATH_MAX nuking of 30 Jan 97).
2999
3000Fri Jan 31 12:49:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3001
3002	* sanity.sh: Add modules3 and big to list of tests to run
3003	by default; they were omitted by accident.
3004
3005Thu Jan 30 11:46:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3006
3007	* logmsg.c, main.c, mkmodules.c, modules.c, parseinfo.c, patch.c:
3008	Nuke more PATH_MAX.
3009
3010	* server.c (server_updated): After we send Created or
3011	Update-existing for a file, mark it as unchanged, in case we
3012	process it again.
3013	* sanity.sh (modules3): New tests, test for above fix.
3014
3015	* logmsg.c (do_verify): Error return from fopen is NULL, not -1.
3016	Pass errno to error().
3017
3018	* login.c [_CRAY]: Don't declare getpass.
3019
3020Mon Jan 27 17:25:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3021
3022	* import.c (process_import_file): Fix freeing of rcs (Don't free
3023	it before we are done using it, and don't free it twice).
3024
3025	* modules.c (cat_module): Allocate line right before we use
3026	it.  The previous code was wrong because the length of the
3027	s_h->rest changes between the time we allocate line and the time we
3028	sprintf s_h->rest into it.
3029
3030Sun Jan 26 21:58:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3031
3032	* expand_path.c (expand_path): Revise to call expand_string as
3033	needed.  Nuke PATH_MAX.
3034	* find_names.c (find_dirs): Likewise.
3035	* import.c, lock.c: Nuke more PATH_MAX.
3036
3037	* server.c (mkdir_p): Set retval to 0 at start of function.
3038	Previously it had been uninitialized for some cases.  Thanks are
3039	due to nightly testing for catching this one.
3040
3041Sat Jan 25 21:34:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3042
3043	* subr.c, cvs.h (expand_string): New function.
3044	* rcs.c (getrcskey, getrcsrev): Call it.  This greatly reduces the
3045	number of calls to realloc if there is a very large file in the
3046	RCS file.  Credit goes to Mike Heath <mike@pswtech.com> for
3047	pointing out the problem and the basic solution (MIN_INCR,
3048	MAX_INCR); I adapted it into the separate function expand_string.
3049	* sanity.sh (big): New test helps insure this hasn't broken
3050	anything obvious.
3051
3052Wed Jan 22 10:06:13 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3053
3054	* status.c (status_fileproc): Change message which is printed for
3055	T_MODIFIED and ts_conflict set, so that it doesn't say "unresolved
3056	confict".  This message occurs whether the conflict is resolved or
3057	not.
3058	* sanity.sh (conflicts): Add tests conflicts-status-* to test
3059	output of "cvs status" in the context of conflicts.  Tests for
3060	above fix.
3061
3062	* rtag.c (rtag): Send -n if run_module_prog is NOT true.
3063
3064Thu Jan 16 00:06:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3065
3066	* version.c: Change version number to 1.9.3.
3067
3068	* version.c: Version 1.9.2.
3069
3070Wed Jan 15 09:14:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3071
3072	* client.c (call_in_directory): Take code that creates CVSADM at
3073	top level, move it before the CVS_CHDIR (dir_name) call, and do it
3074	regardless of whether dir_name is ".".  Pass "." not dir_name to
3075	Create_Admin (when the code was written they were always the
3076	same).  Don't add reposdirname to the repository we pass to
3077	Create_Admin (when the code was written, I think reposdirname
3078	probably would always be ".").  Don't create CVSADM if
3079	reposdirname_absolute.
3080	* sanity.sh (basicb): Enable tests basicb-1a and basicb-9a for
3081	remote; tests for above fix.
3082	(basic1): Do entire test within a "1" directory to deal with
3083	creation of CVS directories at top level.  Support --keep.
3084	(conflicts): In test conflicts-136, only update first-dir.
3085	(basica): Uncomment the part that tests "cvs co -l .".  That tests
3086	the existing functionality which I might have (but hopefully did not)
3087	perturbed with the call_in_directory changes.
3088
3089Mon Jan 13 11:04:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3090
3091	* server.c (check_command_legal_p): Do not call error (1, ...)
3092 	here; that will always cause a protocol violation by shutting down
3093	the connection prematurely.  Remove croak_on_illegal arg.
3094	(do_cvs_command): Move call to check_command_legal_p until after
3095	the call to print_pending_error.  Print the error message ourself.
3096
3097	* mkmodules.c (filelist): Add readers and writers.  Add comment
3098	about why passwd is not included.  Add comment about meaning of
3099	NULL contents field.
3100
3101Fri Jan 10 13:23:09 1997  Norbert Kiesel  <nk@col.sw-ley.de>
3102
3103	* release.c (release): Initialize delete_flag before reading it
3104	(found by running purify)
3105
3106	* logmsg.c (do_verify): Fix reading unallocated memory (found by
3107 	running purify)
3108
3109Thu Jan  9 16:32:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3110
3111	* checkout.c (build_dirs_and_chdir): Partially revert 3 Jan
3112	change--move call to Subdir_Register back above the CVS_CHDIR call
3113	(we need to register in the old, not the new, directory).  Instead
3114	of calling CVS_MKDIR and ignoring errors, call mkdir_if_needed;
3115	this is an effort to catch errors there rather than catching them
3116	in the CVS_CHDIR.  This makes test 27-add-add in sanity.sh work
3117	again.
3118
3119	* find_names.c (Find_Directories): Remove code inside
3120	#ifdef ATTIC_DIR_SUPPORT and replace it with a comment explaining
3121	why we don't look in the attic.  ATTIC_DIR_SUPPORT was never defined.
3122
3123	* find_names.c (find_dirs): Add comment about tmp being unset.
3124
3125	* commit.c (checkaddfile): Report errors with errno and specific
3126	error messages.
3127
3128	* rcs.c, commit.c, create_adm.c, entries.c, find_names.c,
3129	ignore.c, history.c: Nuke PATH_MAX arbitrary limits.
3130
3131Wed Jan  8 23:07:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3132
3133	* add.c (add): Reindent a portion which needed it.
3134
31351997-01-08  Jim Kingdon
3136
3137	* client.c (send_file_names): When looking name up in Entries,
3138	call Entries_Open and Entries_Close.  This has two effects:
3139	(1) we look at Entries.Log, and (2) we don't skip 'D' entries,
3140	both of which are needed to make us get the right (command
3141	line) name for a directory we are adding.
3142
3143Wed Jan  8 14:50:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3144
3145	* Makefile.in, cvs.h, hash.h, myndbm.h, rcs.h: Remove CVSid; we
3146	decided to get rid of these some time ago.
3147
3148Tue Jan  7 12:56:10 1997  Karl Fogel  <kfogel@ynu38.ynu.edu.cn>
3149
3150        * root.c (check_root_consistent): new func, compares below new
3151        global var with CVSroot_directory, assuming both set.
3152        (set_local_cvsroot): use above new func for security check.
3153        (parse_cvsroot): same.
3154        But do all of above only #ifdef AUTH_SERVER_SUPPORT.
3155
3156        * server.c: (Pserver_Repos): new global var, init to NULL.
3157        (pserver_authenticate_connection): set above new global.
3158        (check_repository_password): be a good scout and use
3159        CVSROOTADM and CVSROOTADM_PASSWD, now that they are the standard.
3160        Make sure all of above is in #ifdef AUTH_SERVER_SUPPORT.
3161        (check_command_legal_p): wrap most of body in #ifdef
3162        AUTH_SERVER_SUPPORT.
3163        Everywhere: wrap all references to CVS_Username in #ifdef
3164        AUTH_SERVER_SUPPORT.
3165
3166        * cvs.h (Pserver_Repos): new var, used in consistency [security]
3167        check.  Defined only #ifdef AUTH_SERVER_SUPPORT.
3168        (CVSROOTADM_PASSWD): new #define, trying to get with the program.
3169
3170Fri Jan  3 18:10:39 1997  Ian Lance Taylor  <ian@cygnus.com>
3171
3172	* checkout.c (build_dirs_and_chdir): Move call to Subdir_Register
3173	until after we know that the directory exists.
3174
3175Thu Jan  2 13:30:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3176
3177	* Makefile.in, cvsbug.sh, edit.c, edit.h, error.c, error.h,
3178	fileattr.c, fileattr.h, filesubr.c, run.c, update.h, watch.c,
3179	watch.h: Remove "675" paragraph; see ../ChangeLog for rationale.
3180
3181Thu Jan  2 12:27:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3182
3183	* sanity.sh (info): New test info-cleanup-verifymsg gets rid of
3184	verifymsg when we are done with it.
3185
3186	* sanity.sh (basicb): Skip tests basicb-1a and basicb-9a for remote.
3187	* sanity.sh (modules-155a4): It is OK if a CVS directory exists.
3188	* sanity.sh (ignore): Do everything inside a "1" directory.  The
3189	change to create CVS directories at top-level causes messages such as
3190	"? home" otherwise.  In test 191, specify -I CVS so that new CVS
3191	directory is ignored.
3192	* sanity.sh (crerepos): Manually remove CVS directory which had not
3193	existed before.
3194
3195Thu Jan  2 09:06:20 1997  Karl Fogel  <kfogel@ynu38.ynu.edu.cn>
3196
3197        * server.c: Changes for pserver read-only repository access:
3198        (check_command_legal_p): new func.  Right now, just checks if
3199        repository modification is permitted, and that only if pserver is
3200        active.
3201        (do_cvs_command): take new parameter `cmd_name', a string.  All
3202        callers changed.  Pass it on to new func check_command_legal_p()
3203        before executing the command.
3204        (CVS_Username): new global, init to NULL.  Used by
3205        check_command_legal_p(), set in check_password().
3206        (check_password): set above new global CVS_Username; reorganized a
3207        bit to facilitate this.
3208        (check_repository_password): give *host_user_ptr permanent
3209        storage iff success.
3210
3211        * main.c: Changes for pserver read-only repository access:
3212        (lookup_command_attribute): new func.
3213        (main): use new func lookup_command_attribute() to establish if
3214        CVS_CMD_IGNORE_ADMROOT and CVS_CMD_USES_WORK_DIR.
3215
3216        * cvs.h: Changes for pserver read-only repository access:
3217        (CVSROOTADM_READERS, CVSROOTADM_WRITERS): new #defines.
3218        Prototype lookup_command_attribute().
3219        (CVS_CMD_IGNORE_ADMROOT, CVS_CMD_USES_WORK_DIR,
3220        CVS_CMD_MODIFIES_REPOSITORY): new #defines for
3221        lookup_command_attribute() and its callers.
3222
3223Wed Jan  1 19:50:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3224
3225	* options.h.in: Reword comment for TMPDIR_DFLT to make it clear
3226	that this isn't specific to the pserver server.
3227
3228	* modules.c (do_module): Give an error message if one tries to
3229	specify -a together with another option.
3230	* sanity.sh (modules2): New tests modules2-a* test for above fix.
3231
3232	* sanity.sh (devcom): Add tests devcom-a-nonexist and
3233	devcom-t-nonexist for "cvs watchers" on nonexistent argument.
3234
32351997-01-01  Fred Fish  <fnf@ninemoons.com>
3236
3237	* run.c (piped_child, filter_stream_through_program): Actually
3238	install these HAVE_VFORK patches that got missed.
3239	(There was a log entry for these changes for 29 Nov 1996 but it
3240	seems I accidentally forgot to actually check them in -kingdon).
3241
3242Wed Jan  1 18:32:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3243
3244	* Makefile.in: Add ChangeLog-96.
3245	* ChangeLog-96: New file, contains former contents of ChangeLog.
3246	* ChangeLog: Now just contains 1997 changes.
3247
3248
3249For older changes see ChangeLog-96.
3250