12005-09-30  Larry Jones  <lawrence.jones@ugs.com>
2
3	* expand_path.c (expand_path): Fix memory leaks.
4
52005-09-29  Mark D. Baushke  <mdb@gnu.org>
6
7	* main.c (main): Simplify commitid creation.
8
9	* main.c (main): Not all hosts support O_NOCTTY for open.
10	Try to use more random data when time() returns -1.
11
122005-09-29  Derek Price  <derek@ximbiot.com>
13
14	* main.c (main): Check for error return from time().
15
162005-09-29  Paul Eggert  <eggert@CS.UCLA.EDU>
17	    Derek Price  <derek@ximbiot.com>
18
19	* client.c (handle_m, handle_e): Remove incomplete workaround for
20	O_NONBLOCK problem; no longer needed because of the fix below.
21	* cvs.h (piped_child): New bool argument saying whether O_NONBLOCK
22	fix is needed.  All uses changed.
23	* rsh-client.c (start_rsh_server): We need the O_NONBLOCK fix,
24	so pass 'true' to piped_child to enable the workaround.
25	* run.c (work_around_openssh_glitch): New function.
26	(piped_child): Use it if the fix is requested.  Avoid call call to
27	vfork with undefined behavior.
28
292005-09-29  Mark D. Baushke  <mdb@gnu.org>
30
31	* main.c (main): Rename N as COMMITID_RAW_SIZE.
32	Use base62 encoding for non-urandom case.
33
342005-09-29  Derek Price  <derek@ximbiot.com>
35
36	* buffer.c (fd_buffer_input), client.c (handle_m, handle_e): Use new
37	fd_select in place of select.
38
39	* subr.c: Remove select includes - the sleep functions are now in
40	lib.
41
422005-09-28  Mark D. Baushke  <mdb@gnu.org>
43
44	* main.c (N, RANDOM_BYTES): New constants for base62 conversion.
45	(divide_by): Used in base62 conversion.
46	(convert): Ditto.
47	(main): Set global_session_id using more random data and the
48	current time in base62 if possible, otherwise fallback to the old
49	method.
50
512005-09-25  Conrad T. Pino  <Conrad@Pino.com>
52
53	* rcs.c: Use "#ifdef HAVE_FSYNC" just like every where else.
54
552005-09-25  Conrad T. Pino  <Conrad@Pino.com>
56
57	* buffer.c client.h socket-client.h:  Remove HAVE_WINSOCK_H macro &
58	change <winsock.h> to <sys/socket.h> include.
59
60	* server.c:  Remove HAVE_WINSOCK_H and <winsock.h> include.
61
622005-09-25  Derek Price  <derek@ximbiot.com>
63
64	* rcs.c (rcs_internal_unlockfile): Fsync files before renaming them.
65	Patch from Rahul Bhargava <rahul@wandisco.com>.
66
67	* cvs.h, filesubr.c, main.c, server.c:
68	s/push_cvs_tmp_dir/push_cvs_temp_dir/.
69
70	* main.c (get_cvs_temp_dir): Use new get_system_temp_dir function.
71	(push_env_temp_dir): Move to...
72	* filesubr.c (push_env_temp_dir): ...here to split from Windows.
73	(get_system_temp_dir): New function.
74	* cvs.h (get_cvs_temp_dir, push_env_temp_dir): Add protos.
75
76	* buffer.c (fd_buffer_input): Fix spelling in header comment block.
77
782005-09-24  Derek Price  <derek@ximbiot.com>
79
80	* socket-client.c: Check HAVE_CONFIG_H, not HAVE_CONFIG.
81
82	* socket-client.c, socket-client.h: Minor cleanup.
83
84	* Makefile.am (cvs_SOURCES): Move socket-client.[ch] to...
85	(EXTRA_cvs_SOURCES): ...here to avoid compiling them.
86	* socket-client.c (init_sockaddr), socket-client.h (init_sockaddr):
87	Move to...
88	* client.c (init_sockaddr), client.c (init_sockaddr): ...here.
89
90	* socket-client.c (socket_buffer_input): Avoid overflow problems.
91
92	* socket-client.c: General cleanup.
93
942005-09-23  Larry Jones  <lawrence.jones@ugs.com>
95
96	* checkout.c (export_usage): Note that -r requires a tag.
97
982005-09-22  Derek Price  <derek@ximbiot.com>
99
100	* classify.c (Classify_File): Correct comment.
101
1022005-09-22  Larry Jones  <lawrence.jones@ugs.com>
103
104	* patch.c (patch_usage): Document -k option.
105
1062005-09-22  Derek Price  <derek@ximbiot.com>
107
108	* classify.c (Classify_File): If a file had a conflict and the
109	timestamp hasn't changed, it still has a conflict.  Add comment about
110	how T_MODIFIED could later turn out to have conflict markers and why
111	it should not be checked in this function.
112	* client.c (send_fileproc): Don't send contents for files known to have
113	conflicts unless this is for `cvs diff'.
114	* commit.c (check_fileproc): T_CONFLICT should be handled like
115	T_MODIFIED, since force could be requested.  Simplify logic since
116	T_CONFLICT can now be trusted.
117	* rcs.c (RCS_Checkout): Comment noexec behavior in header block.
118	* server.c (serve_unchanged, serve_is_modified): Handle conflicts.
119	* status.c (status_fileproc): Trust T_CONFLICT to simplify.
120	* subr.c (file_has_conflict): Removed.
121	* subr.h (file_has_conflict): Remove proto.
122	* update.c (update_fileproc): Trust T_CONFLICT.
123	(RegisterMerge): New function factored from...
124	(merge_file, join_file): ...these two functions.
125	* vers_ts.c (time_stamp_server): Handle = conflict timestamps in server
126	entdata.
127	* sanity.sh (files-12): Account for slight behavior improvement.
128	(status, conflicts, mwrap): Account for corrected behavior.
129	(join-readonly-conflict-10): Correct comment.
130	(binfiles-con1b): New test for correct behavior.
131
132	* classify.c (Classify_File): Consolidate redundant conditionals.
133
1342005-09-21  Derek Price  <derek@ximbiot.com>
135
136	* entries.c: Remove obsolete comment.
137
1382005-09-20  Derek Price  <derek@ximbiot.com>
139
140	* myndbm.c: #include getdelim.h for Windows.
141
142	* main.c: #include setenv.h for Windows.
143
1442005-09-19  Derek Price  <derek@ximbiot.com>
145
146	* sanity.sh (modules5-8): Rename...
147	(modules5-8r): ...to this and comment Mac OS X failure.
148	Comment Solaris 9 failure below with a `FIXME?' tag.
149
150	* sanity.sh: Remove previous hack in favor of setting TESTDIR on
151	Solaris (and Mac OS X) until problem is solved correctly.
152
1532005-09-15  Derek Price  <derek@ximbiot.com>
154
155	* sanity.sh: Use /bin/pwd to verify current dir since Solaris 9 is
156	sometimes resolving symlinked paths.
157
1582005-09-14  Derek Price  <derek@ximbiot.com>
159
160	* edit.c (edit_usage, unedit_usage, editors_usage), watch.c
161	(watch_usage, watchers_usage): Add quotes and reword for clarity and
162	consistency.
163
164	* edit.c (edit_usage): Add missing syntax.  Reword description for
165	clarity.  Mention default behavior.
166
1672005-09-13  Derek Price  <derek@ximbiot.com>
168
169	* sanity.sh ($anyusername): Reduce charset to that allowed on Linux.
170
171	* sanity.sh ($anyusername): Make more robust and expand comments.
172	Reported by Mark D. Baushke <mdb@gnu.org>.
173
174	* sanity.sh: Split $username into $username & $username8.  Rename
175	$author as $anyusername.
176
1772005-09-12  Derek Price  <derek@ximbiot.com>
178
179	* sanity.sh (username): Cut $username down to 8 characters when longer,
180	since that is all that appears in output.
181
1822005-09-11  Derek Price  <derek@ximbiot.com>
183
184	[bug #14504]
185	* main.c (main): Set server_hostname before it is used by
186	gserver_authenticate_connection.
187	(Report from Serguei E. Leontiev <leo@sai.msu.ru>.)
188
1892005-09-08  Larry Jones  <lawrence.jones@ugs.com>
190
191	* server.c (parseServerOptions): getopt() returns int, not char.
192
1932005-09-07  Derek Price  <derek@ximbiot.com>
194
195	* rcs.c (RCS_parse): Minor reformatting.
196
197	Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14462>.
198	* rcs.c (RCS_parse): Free variable *after* using it for the last time.
199
2002005-09-06  Derek Price  <derek@ximbiot.com>
201
202	* sanity.sh (tempfile): All CVS temp files start with "cvs".
203
204	* sanity.sh (tempfile): New var.
205	(tempname): Set to $TMPDIR/$tempfile after $TMPDIR is set.
206	(info): s#$TMPDIR/##.
207
208	* rcs.c (RCS_putdtree): Remove unused variable.
209
2102005-09-06  Mark D. Baushke  <mdb@gnu.org>
211
212	Close <https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14435>.
213	* rcs.c (RCS_putdtree): Avoid stack overflow which may be
214	possible with excessive recursive calls to RCS_putdtree().
215	(Patch from Serg Masyutin.)
216
2172005-09-06  Derek Price  <derek@ximbiot.com>
218
219	Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14448>.
220	* kerberos-client.c (start_kerberos4_server): Pass new root arg to
221	make_bufs_from_fds.
222	(Patch from <Manuel.Guijarro.AT.cern.ch>.)
223
224	* server.c: Reorganize includes slightly and alphabetize sections.
225
226	* server.c: #include canon-host.h.
227	(gserver_authenticate_connection): Print out canon-host errors.
228	* subr.c: #include canon-host.h.
229	(isThisHost): Print out canon-host errors.
230
231	* parseinfo.c (parse_config): Don't check hostname without client
232	or server support.
233
234	* main.c (main): Set cvs_cmd_name before calling parseServerOptions.
235
2362005-09-05  Derek Price  <derek@ximbiot.com>
237
238	* cvs.h (Tmpdir): Remove global decl.
239	(get_cvs_tmp_dir, push_env_tmp_dir): New protos.
240	* filesubr.c (cvs_temp_file): Use get_cvs_tmp_dir.
241	* main.c (Tmpdir): Remove global.
242	(tmpdir_cmdline, tmpdir_env): New globals.
243	(get_cvs_tmp_dir, push_env_tmp_dir): New functions.
244	(main): Discard most tmpdir overhead in favor of new globals and
245	functions.
246	* parseinfo.c (parse_config): Parse TmpDir.
247	* sanity.sh (config4): New tests.
248	* server.c (serve_root): Set env TMPDIR after parsing config.  Create
249	tmpdir here instead of...
250	(serve_co, server): ...either of thse locations.
251	(server_cleanup): Use new function in favor of obsolete Tmpdir.
252
253	* sanity.sh (config2): Don't overwrite potentially significant config.
254
255	* sanity.sh (info): Use $tempfile instead of reproducing the regex.
256
257	* sanity.sh (info): Accept `.' in temp file names.
258
259	* main (main): Set the actual PID, not a pointer to a string.
260
2612005-09-04  Derek Price  <derek@ximbiot.com>
262
263	* sanity.sh (config3): Generalize.
264
265	* main.c (main), server.c (serve_root, switch_to_user): Replace putenv
266	with GNULIB setenv.
267	* sanity.config.sh.in (HAVE_PUTENV): Remove.
268	* sanity.sh (env): Remove reference to $HAVE_PUTENV.
269
270	* sanity.sh (tests): Add config2 & config3.
271
272	* server.c (isSamePath, isThisHost): Move to...
273	* subr.c (isSamePath, isThisHost): ...here.
274	* subr.h (isSamePath, isThisHost): Add protos.
275	* parseinfo.c (parse_config): Handle [rootspec] syntax.
276	* main.c (main): Always set server_hostname.
277	* sanity.sh (config3): New tests for same.
278
279	* server.c (gserver_authenticate_connection): Output hostname in
280	error message.
281
282	* server.c (isThisHost): Fix typo.
283
284	* server.c (isThisHost, gserver_authenticate_connection): Simplify
285	using canon_host().
286
287	* root.c (free_cvsroot_t): Update header comment.
288
289	* root.c (new_cvsroot_t): directory is not client-specific.
290	(free_cvsroot_t): Declare static.
291	* root.h (free_cvsroot_t): Remove proto.
292	* server.c (server_init): Don't free cvsroot_t when finished with it.
293
2942005-09-03  Derek Price  <derek@ximbiot.com>
295
296	* root.h (cvsroot_t->isremote): Update comment.
297
298	* history.c (read_hrecs_file): Suppress signed/unsigned char warning.
299
300	* root.h (cvsroot_t->isremote): Declare bool.
301	* root.c (new_cvsroot_t): Initialize isremote to false instead of 0.
302
303	* add.c (add_usage): Standardize usage message somewhat.
304
3052005-09-02  Larry Jones  <lawrence.jones@ugs.com>
306
307	* commit.c (checkaddfile): Improve error messages for lock_RCS failure.
308	* release.c (release): Improve error message for pclose failure.
309
310	* root.h (struct cvsroot_s): Always declare isremote to simplify
311	other code.  Simplify referencing code.
312	* root.c (new_cvsroot_t): Always initialize isremote.
313	* server.h: Always declare server_active to simplify other code.
314	Simplify referencing code.
315	* server.c: Always define server_active.
316
3172005-09-02  Larry Jones  <lawrence.jones@ugs.com>
318
319	* parseinfo.c (parse_config): Variable declarations must precede
320	executable code for pre-C99 compilers.  Pass correct line number
321	variable to expand_path.
322
3232005-09-01  Derek Price  <derek@ximbiot.com>
324
325	* recurse.c: Update bug report email address.
326
3272005-08-31  Derek Price  <derek@ximbiot.com>
328
329	* cvs.h (expand_path): Update proto.
330	* expand_path.c (expand_variable): Accept and use cvsroot arg inplace
331	of global.
332	(expand_path): Accept and pass through cvsroot arg.
333	* main.c (main): Prescan args for config path before config options are
334	used.  Pass config path on as needed.  Update comment.
335	* modules.c (do_module): Update expand_path call.
336	* parseinfo.ci (Parse_Info): Ditto.
337	(allowed_config_prefixes): New global.
338	(parse_config): Accept configPath arg, update expand_path calls, and
339	expand LockDir path.
340	* parseinfo.h (parse_config): Update proto.
341	* root.c (root_allow_add, get_root_allow_config): Accept new configPath
342	arg and pass through to parse_config.
343	* root.h (root_allow_add, get_root_allow_config): Update protos.
344	* server.c (gConfigPath, server_usage): New globals.
345	(parseServerOptions): New function.
346	(server): Use new usage var.
347	(pserver_authenticate_connection): Update get_root_allow_config call.
348	* server.h (parseServerOptions): New proto.
349	* wrapper.c (wrap_add): Update expand_path calls.
350	* sanity.sh (server): New tests for setting config file path.
351
3522005-08-31  Derek Price  <derek@ximbiot.com>
353
354	* sanity.sh (close-stdout): Remove archive dir when done.
355
3562005-08-31  Larry Jones  <lawrence.jones@ugs.com>
357
358	* import.c (import_descend): Lock repository directory during import.
359
3602005-08-31  Derek Price  <derek@ximbiot.com>
361
362	* server.c (isSamePath): Compare args rather than assuming values.
363
3642005-08-29  Derek Price  <derek@ximbiot.com>
365
366	Add %{sV} format string to verifymsg script.
367	* logmsg.c (do_verify): Accept change list arg, pass through to...
368	(verifymsg_proc): ...here, to pass through to format_cmdline.
369	* commit.c (commit_fileproc, commit_direntproc), import.c (update):
370	Update all callers of do_verify.
371	* cvs.h (do_verify): Update proto.
372	* sanity.sh (info): Test new verifymsg format strings.
373
3742005-08-09  Derek Price  <derek@ximbiot.com>
375
376	* sanity.sh: Remove debugging echo.
377	(watch6, watch6-0): Clean up properly.
378
3792005-08-03  Jim Hyslop <jhyslop@dreampossible.ca>
380
381	* edit.c, watch.c, watch.h, sanity.sh: fixed problems with watch not
382	setting default attributes, when directory specified.
383
3842005-07-20  Derek Price  <derek@ximbiot.com>
385
386	* main.c: s/cvshome.org/nongnu.org.etc.../.
387
3882005-07-12  Derek Price  <derek@ximbiot.com>
389
390	* buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
391	release.c: Add copyright notices.
392
3932005-07-12  Derek Price  <derek@ximbiot.com>
394
395	* client.c: Update fwrite usage to use size & count in the standard
396	order.
397
3982005-07-11  Derek Price  <derek@ximbiot.com>
399
400	* buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
401	release.c: Update license notices.
402
4032005-06-28  Derek Price  <derek@ximbiot.com>
404
405	* server.c (serve_co): Remove obsolete support for Repository request.
406
4072005-06-10  Derek Price  <derek@ximbiot.com>
408
409	* filesubr.c, ignore.c, import.c, vers_ts.c: Include "lstat.h".
410
4112005-06-10  Derek Price  <derek@ximbiot.com>
412
413	* logmsg.c (logmsg_list_to_args_proc): Add format character for
414	destination tag.
415	(Original patch from Todd Vierling <tv@duh.org>).
416
417	* tag.c (pretag_list_to_args_proc): Likewise.
418	(check_fileproc): Set destination tag name.
419	(tag_delproc): Delete destination tag name.
420	* sanity.sh (info, taginfo): Test new format strings.
421
4222005-06-08  Derek Price  <derek@ximbiot.com>
423
424	* parseinfo.c: Restore comparison to NULL in assignment within
425	conditional to placate non-GNU compilers.  Eliminate assignments in
426	conditionals where possible by GNU coding standards.  Eliminate other
427	comparisons to NULL where possible.
428	(Parse_Info): Make int a true bool.
429
4302005-06-03  Derek Price  <derek@ximbiot.com>
431
432	* client.c (force_gzip): New static global.
433	(handle_force_gzip): New function.
434	(responses): Add `Force-gzip'.
435	(start_server): Turn on encryption and compression before potentially
436	sending other rooted requests.  Turn on compression when requested by
437	the user or the server.
438	* main.c (opt_usage):  Note that -z<level> *requests* compression
439	<level> from the server.
440	* parseinfo.c (new_config):  Initialize MaxCompressionLevel.
441	(parse_config): Parse MinCompressionLevel & MaxCompressionLevel.
442	* parseinfo.h (struct config): Add MinCompressionLevel &
443	MaxCompressionLevel.
444	* server.c (pending_warning_text):  New static global.
445	(print_pending_error): Print pending warnings too.
446	(warning_pending): New macro.
447	(alloc_pending_internal): New function with much content...
448	(alloc_pending): ...previously from here.
449	(alloc_pending_warning): New function.
450	(server_root, serve_gzip_contents, gzip_stream): Force gzip_level into
451	configured restrictions.
452	(serve_command_prep): Print pending errors.
453	(requests): Make `Gzip-stream', `gzip-file-contents',
454	`Kerberos-encrypt', `Gssapi-encrypt', & `Gssapi-authenticate' requests
455	rootless to allow them before compression starts.
456	(serve_valid_requests): Send `Force-gzip' response when needed.
457	(server): Abort if a rootless compression request forced compression
458	outside restricted levels.
459	* zlib.c (struct compress_buffer, compress_buffer_initialize): Store
460	compression level.
461	(compress_buffer_output): Reset compression level when global
462	gzip_level has changed.
463	* sanity.sh (config2): New tests for compression restrictions.
464
4652005-06-03  Derek Price  <derek@ximbiot.com>
466
467	* zlib.c (compress_buffer_input): Update comment.
468
4692005-06-03  Derek Price  <derek@ximbiot.com>
470
471	* error.c (error): Correct spelling and grammar in comment.
472
4732005-06-03  Derek Price  <derek@ximbiot.com>
474
475	* modules.c (my_module), wrappers.c (wrap_add): Use new expand_path
476	API.
477
4782005-06-03  Derek Price  <derek@ximbiot.com>
479
480	* cvs.h (expand_path): Rearrange args and use bool for formatsafe flag.
481	* expand_path.c: Globally: Remove init of globals to NULL by C89,
482	reformat to CVS conventions, remove unnecessary comparisons to NULL and
483	0, & remove unnecessary typecasts.
484	(expand_variable): Remove proto and move function above first use.
485	Make return value const.
486	(expand_path): Don't refer to var when contents are known.  Rearrange
487	args per cvs.h changes.  Improve header comment block.
488	* parseinfo.c (Parse_Info): Use new expand_path API.
489
4902005-06-02  Derek Price  <derek@ximbiot.com>
491
492	* client.c: Don't set NULL for globals by C89.  Globally remove
493	comparisons to NULL or replace with !.  Similarly remove or replace
494	comparisons of strcmp and strncmp return value to 0.  Remove some
495	unneeded braces around single-element blocks.
496	(handle_*): Remove unecessary protos.
497	(handle_notified, notified_a_file): Move up before first use.
498
4992005-06-02  Derek Price  <derek@ximbiot.com>
500
501	* sanity.sh (config): Simplify cleanup.
502
5032005-06-02  Derek Price  <derek@ximbiot.com>
504
505	* zlib.c (compress_buffer_input): Don't request more bytes from the
506	underlying buffer than asked for.
507	(compress_buffer_shutdown_input): Don't attempt to read EOF from the
508	client during shutdown.  It might never be sent.
509	* sanity.sh (abspath2): Test for this.
510
5112005-05-31  Derek Price  <derek@ximbiot.com>
512
513	* rcscmds.c (call_diff_argc_allocated): Rename to...
514	(call_diff_arg_allocated): ...to match similar usage in other files.
515
5162005-05-31  Derek Price  <derek@ximbiot.com>
517	for Alexander Taler <alex@0--0.org>
518
519	* rcscmds.c: Change type of call_diff_argc_allocated from int to
520	size_t, to match the prototype of run_add_arg_p().  This fixes a
521	bus error in OpenBSD 3.6 sparc64.
522
5232005-05-27  Derek Price  <derek@ximbiot.com>
524
525	* client.c (send_arg): Make arg const.  Remove unnecessary copy to
526	buffer.
527	(send_option_string): Rename to...
528	(send_options): ...this and accept argc/argv in place of string.
529	* client.h: Update protos to match the changes to client.c.
530	* cvs.h (RCS_exec_rcsdiff, diff_exec): Update protos.
531	(run_add_arg_p, run_arg_free_p): New protos.
532	* diff.c (opts, opts_allocated): Replace with...
533	(diff_argv, diff_argc, diff_arg_allocated): ...these.
534	(add_diff_args): New convenience function.
535	(diff): Use new constructs and APIs.
536	* patch.c (patch_fileproc, RCS_checkin, RCS_delete_revs), rcscmds.c
537	(call_diff_add_arg, call_diff_setup, RCS_merge, RCS_exec_rcsdiff,
538	diff_exec, RCS_output_diff_options), update.c (patch_file): Use new
539	APIs.
540	* run.c (run_add_arg_p, run_arg_free_p): New functions.
541	(run_argc_allocated): Make size_t.
542	(run_setup, run_add_arg): Use new functions.
543	* sanity.sh: Accomodate above changes.
544	(rcslib-diffrgx-3): Slip in test for space splitting.
545
5462005-05-26  Derek Price  <derek@ximbiot.com>
547
548	* subr.c (isabsolute), subr.h (isabsolute): Remove this function.
549	* root.c: Likewise, plus some reformatting.
550	* checkout.c, client.c, find_names.c, import.c, modules.c, parseinfo.c,
551	repos.c, root.c, server.c, subr.c: s/isabsolute/ISABSOLUTE/.
552
5532005-05-26  Derek Price  <derek@ximbiot.com>
554
555	* cvs.h: Move "system.h" include before GNULIB includes.  Move some
556	GNULIB includes from "system.h".
557
5582005-05-26  Conrad T. Pino <Conrad@Pino.com>
559
560	* buffer.c, buffer.h: Add & use typedefs for function pointer arguments
561	and struct buffer function pointers.  New typedefs are useful in casts.
562	* socket-client.c: Function pointers passed to buf_initialize use size_t
563	not int arguments.  buf_initialize warnings are gone from Windows build.
564
5652005-05-24  Derek Price  <derek@ximbiot.com>
566
567	* client.c, entries.c, filesubr.c, hardlink.c, ignore.c, import.c,
568	lock.c, logmsg.c, mkmodules.c, rcs.c, rcscmds.c, server.c, subr.c,
569	update.c, vers_ts.c: s/CVS_STAT/stat/ & s/CVS_LSTAT/lstat/.
570
5712005-05-23  Derek Price  <derek@ximbiot.com>
572
573	* filesubr.c (xresolvepath): Move to...
574	* subr.c (xcanonicalize_file_name): ...here and rename.  Use new
575	GNULIB canonicalize module.
576	* cvs.h (xresolvepath): Move proto...
577	* subr.h (xcanonicalize_file_name): ...here.
578	* checkout.c (safe_location), server.c (isSamePath): Use new function
579	name.
580
5812005-05-23  Derek Price  <derek@ximbiot.com>
582
583	* sanity.sh (rcslib-symlink-10): Accept empty result due to broken glob
584	in glibc 2.3.5.
585
5862005-05-18  Derek Price  <derek@ximbiot.com>
587
588	* sanity.sh (config-9): Split to local/remote tests to avoid unportable
589	expr characters.
590
5912005-05-17  Derek Price  <derek@ximbiot.com>
592
593	* sanity.sh: Use a predictable umask.
594
5952005-05-13  Derek Price  <derek@ximbiot.com>
596
597	* login.c (password_entry_parseline): Placate gcc -Wall.
598
5992005-05-11  Derek Price  <derek@ximbiot.com>
600
601	* cvs.h (find_files): New proto.
602	* find_names.c (find_files, strip_rcsext): New functions.
603	(find_rcs): Make arg const.  Use new find_files.  Improve header
604	comment block.
605	* history.c (histfile): Remove global.
606	(get_history_log_name): New function.
607	(history, history_write): Use new functions.
608	(read_hrecs_file): New function containing most content from...
609	(read_hrecs): ...this function, which now accepts a file list and calls
610	read_hrecs_file once for each file.
611	* parseinfo.c (parse_config): Parse HistoryLogPath & HistorySearchPath.
612	* parseinfo.h (struct config): Add HistoryLogPath & HistorySearchPath.
613	* sanity.sh (basic2-64): Remove obsolete comment.
614	(config): Test new history options.
615	(crerepos): Cleanup.
616
6172005-05-09  Derek Price  <derek@ximbiot.com>
618
619	* error.c (error): Avoid unportable calls to vsyslog.
620
6212005-05-09  Derek Price  <derek@ximbiot.com>
622
623	* history.c (history_write): Add FIXME.
624
6252005-05-09  Derek Price  <derek@ximbiot.com>
626
627	* hash.c (removenode, mergelists): New function.
628	(delnode): Use removenode.
629	* hash.h (mergelists): New proto.
630
6312005-05-04  Derek Price  <derek@ximbiot.com>
632
633	* error.c (error): Avoid recursion and syslog the problem.
634
6352005-05-03  Derek Price  <derek@ximbiot.com>
636
637	* tag.c (is_in_val_tags): Remove unnecessary existance checking for the
638	val-tags file and just rely on open() to create it when necessary.
639
6402005-05-03  Derek Price  <derek@ximbiot.com>
641
642	* tag.c (tag_check_valid): Don't verify the_val_args.found when it is
643	not initialized.
644
6452005-05-03  Derek Price  <derek@ximbiot.com>
646
647	* add.c: Update comment to include the -k option.  This resolves issue
648	#226 on cvshome.org.
649
6502005-05-02  Derek Price  <derek@ximbiot.com>
651
652	Remove unnecessary level of indirection.
653	* lock.c (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): Remove macros.
654	(internal_lock, internal_clear_lock): Accept lock as argument.
655	(history_lock, clear_history_lock, val_tags_lock, clear_val_tags_lock):
656	Replace old macro arg with an actual lock pointer.
657
6582005-05-02  Derek Price  <derek@ximbiot.com>
659
660	* lock.c (internal_lock, internal_clear_lock): Add protos.
661	(history_lock, val_tags_lock): Return the chartered true/false status.
662
6632005-05-02  Derek Price  <derek@ximbiot.com>
664
665	* cvs.h (CVSHISTLCK): Rename macro to...
666	(CVSHISTORYLCK): ...this.
667	(CVSVALTAGSLCK): New macro.
668	(val_tags_lock, clear_val_tags_lock): New functions.
669	* lock.c (global_val_tags_lock): New global.
670	(Lock_Cleanup): Clean up after val-tags lock if necessary.
671	(L_HISTORY_LOCK, L_VAL_TAGS_LOCK): New local macros.
672	(internal_lock, val_tags_lock, clear_val_tags_lock): New functions.
673	(history_lock): Use new internal function.
674	* tag.c (is_in_val_tags, add_to_val_tags): New functions using the
675	write lock for val-tags and factored from...
676	(tag_check_valid): ...this function.
677	* sanity.sh (lockfiles-22): Add val-tags lock test.
678
6792005-04-30  Mark D. Baushke  <mdb@cvshome.org>
680
681	* lock.c (global_readlock, global_writelock, global_history_lock):
682	Add missing alternatives for non-LOCK_COMPATIBILITY initialization.
683
6842005-04-28  Derek Price  <derek@ximbiot.com>
685
686	* cvs.h (history_lock, clear_history_lock): New protos.
687	* lock.c (struct lock): Add lockdirname.
688	(global_history_lock): New global.
689	(global_read_lock): Initialize.
690	(lock_name): Handle const args.
691	(lock_simple_remove): Factor out code in favor of clear_lock call.
692	(set_lock): Handle variable lockdirname.
693	(lock_filesdoneproc): Set new lockdirname.
694	(history_lock, clear_history_lock): New functions.
695	(clear_lock): Avoid segfault on missing lock.
696	(Lock_Cleanup): Clean up history locks when necessary.
697	* history.c (history_write): Use new lock.
698	* sanity.sh (lockfiles-20): Test new lock.
699
7002005-04-28  Derek Price  <derek@ximbiot.com>
701
702	* sanity.sh (lockfiles): Port some locking tests over from 1.12.x.
703
7042005-04-28  Derek Price  <derek@ximbiot.com>
705
706	* lock.c (clear_lock): Improve comment.
707
7082005-04-28  Derek Price  <derek@ximbiot.com>
709
710	* lock.c (struct lock): Store lockdir name.
711	(masterlock): Remove global.
712	(remove_lock_files, clear_lock, set_lock): Update to compensate.
713
7142005-04-25  Mark D. Baushke  <mdb@cvshome.org>
715
716	* server.c: Add support for <pam/pam_appl.h> to allow
717	--enable-pam to work on MacOSX 10.2 and newer.
718	(Pach from Moriyoshi Koizumi <moriyoshi@at.wakwak.com>.)
719
7202005-04-25  Derek Price  <derek@ximbiot.com>
721
722	* mkmodules.c (mkmodules): Remove `#if 0' and reformat comment.
723
7242005-04-22  Mark D. Baushke  <mdb@cvshome.org>
725
726	* expand_path.c (expand_variable): Add SESSIONID and COMMITID
727	internal variables. Both return the unique global session id of
728	the CVS process. Passing this information to administrative
729	triggers seems reasonable. (The same feature exists in CVSNT and
730	the names were chosen to be the same as the CVSNT names.)
731
732	* sanity.sh (info): Add a test for $COMMITID and $SESSIONID.
733
7342005-04-20  Mark D. Baushke  <mdb@cvshome.org>
735
736	* sanity.sh (rcs4): Fix a typo.
737
7382005-04-20  Derek Price  <derek@ximbiot.com>
739
740	* sanity.sh (rcs5): Minor cosmetic change.
741
7422005-04-20  Derek Price  <derek@ximbiot.com>
743
744	* sanity.sh (tests): Add rcs4.
745	(rcs5): Add comments.
746
7472005-04-20  Derek Price  <derek@ximbiot.com>
748
749	* rcs.c (expand_keywords): Avoid buffer overflow.
750	(Original patch from Stewart Brodie <stewart@eh.org>.)
751
752	* sanity.sh (rcs5): New tests for the above.
753
7542005-04-08  Derek Price  <derek@ximbiot.com>
755
756	* edit.c (edit_fileproc, unedit_fileproc): s/GMT/-0000/.
757	* rcs.c (RCS_getrevtime): Ditto, & replace a sprintf into a static
758	buffer with an Xasprintf which creates a dynamic one.
759	* sanity.sh: Update tests to compensate.
760	(Original bug report from Ian Abbott <abbotti@mev.co.uk>.)
761
7622005-03-26  Mark D. Baushke  <mdb@cvshome.org>
763
764	* checkout.c (checkout_proc): Use Xasprintf/xstrdup instead of
765	xmalloc/strcpy+strcat.
766
7672005-03-22  Mark D. Baushke  <mdb@cvshome.org>
768
769	* Makefile.in: Regenerated.
770
7712005-03-22  Mark D. Baushke  <mdb@cvshome.org>
772
773	* rcs.c (linevector_add): Use xnrealloc.
774	* server.c (serve_argument): Ditto.
775
7762005-03-22  Mark D. Baushke  <mdb@cvshome.org>
777
778	* rcs.c (linevector_copy): Use xtimes in argument.
779
780	* patch.c (patch): Remove dead code.
781
782	* lock.c (set_readlock_name): Use Xasprintf instead of
783	xmalloc/sprintf.
784	(lock_exists, set_promotable_lock, lock_wait): Ditto.
785	(lock_obtained, lock_dir_for_write): Ditto.
786	* log.c (rlog_proc): Ditto.
787
788	* ignore.c (ign_dir_add): Use xnrealloc.
789	* modules.c (save_d): Ditto.
790	* rcs.c (linevector_copy): Ditto.
791
792	* add.c (add): Use xstrdup instead of xmalloc/strcpy.
793	* client.c (client_process_import_file): Ditto.
794	* kerberos4-client.c (start_kerberos4_server): Ditto.
795	* logmsg.c (verifymsg_proc): Ditto.
796	* log.c (log_expand_revlist): Ditto.
797	* patch.c (patch_fileproc): Ditto.
798	* rcs.c (RCS_tag2rev, RCS_nodeisbranch, RCS_getbranch): Ditto.
799	(RCS_getdatebranch, expand_keywords, RCS_addbranch): Ditto.
800	(RCS_checkin): Ditto.
801	* remove.c (remove_fileproc): Ditto.
802
8032005-03-18  Derek Price  <derek@ximbiot.com>
804
805	* server.c: Reindent pragmas.
806	(become_proxy): Add parentheses for -Wall.
807
8082005-03-18  Derek Price  <derek@ximbiot.com>
809
810	* error.c (error): Simplify using vasnprintf.
811
8122005-03-17  Mark D. Baushke  <mdb@cvshome.org>
813
814	* admin.c (postadmin_proc): Cast NULL when it is an argument to
815	stdarg function to ensure it is the correct type.
816	* commit.c (precommit_proc): Ditto.
817	* edit.c (notify_proc): Ditto.
818	* fileattr.c (postwatch_proc): Ditto.
819	* logmsg.c (logfile_write, verifymsg_proc): Ditto.
820	* server.c (prepost_proxy_proc): Ditto.
821	* subr.c (cmdlineescape): Ditto.
822	* tag.c (posttag_proc): Ditto.
823	(Thanks to a report from Derek Price <derek@ximbiot.com>.)
824
8252005-03-17  Derek Price  <derek@ximbiot.com>
826
827	* rcs.h (RCSNode): Improve comment.
828	* rcs.c (RCS_head): Ditto, plus gratuitous reformatting.
829
8302005-03-17  Derek Price  <derek@ximbiot.com>
831
832	* rcs.c (RCS_deltas): Use rcs->print_path.
833
8342005-03-17  Derek Price  <derek@ximbiot.com>
835
836	* login.c (password_entry_parseline): Avoid using uninitialized
837	variable.
838	* rcs.c (RCS_deltas): Avoid buffer overflow.
839	(RCS_checkout): Avoid using uninitialized loglen.
840	* patch.c (patch_fileproc): Free original pointer, not one that may
841	have been incremented.
842	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
843
8442005-03-17  Derek Price  <derek@ximbiot.com>
845
846	* commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
847	response to a rare error.
848	* admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
849	(checkout_file), rcs.c (RCS_getdate, RCS_deltas, RCS_findlock_or_tip,
850	RCS_tag2rev): Avoid dereferencing NULL pointer.
851	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
852
8532005-03-17  Derek Price  <derek@ximbiot.com>
854
855	* rcs.c (RCS_reparsercsfile): Avoid memory leak.
856	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
857
8582005-03-17  Derek Price  <derek@ximbiot.com>
859
860	* log.c (log_expand_revlist): Suppress message and not error handling
861	when really_quiet.
862
8632005-03-16  Mark D. Baushke  <mdb@cvshome.org>
864
865	* buffer.c (fd_buffer_shutdown): Replace (int *) 0 with NULL.
866	* server.c (do_cvs_command): Ditto.
867
868	* client.c (update_entries): Use xnmalloc.
869
870	* checkin.c (Checkin): Replace (char *) 0 with NULL.
871	* patch.c (patch_fileproc): Ditto.
872	* update.c (update_fileproc): Ditto.
873	* no_diff.c (No_Difference): Ditto.
874	* patch.c (patch_fileproc): Ditto.
875	* rcscmds.c (call_diff_setup, call_diff_add_arg): Ditto.
876
877	* update.c (join_file): Replace (RCSCHECKOUTPROC)0 with NULL.
878	* rcs.c (RCS_checkin, RCS_cmp_file, RCS_delete_revs)
879	(RCS_delete_revs): Ditto.
880	* rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Ditto.
881
882	* annotate.c, checkin.c, classify.c, fileattr.c, find_names.c,
883	hash.c, lock.c, login.c, logmsg.c, main.c, modules.c, myndbm.c,
884	no_diff.c, patch.c, rcs.c, rcscmds.c, remove.c, server.c,
885	status.c, subr.c, tag.c, update.c, vers_ts.c: Avoid casting NULL.
886
8872005-03-17  Derek Price  <derek@ximbiot.com>
888
889	* client.c (call_in_directory): Put function call after var decls.
890
8912005-03-16  Derek Price  <derek@ximbiot.com>
892
893	* client.c (call_in_directory), commit.c (commit_filesdoneproc), log.c
894	(log_expand_revlist, log_version), logmsg.c (logfile_write), modules
895	(my_module), no_diff.c (No_Difference), parseinfo.c (Parse_Info), rcs.c
896	(RCS_deltas, RCS_checkin, RCS_addbranch, do_locks, do_symbols),
897	rcscmds.c (RCS_merge), root.c (parse_cvsroot, normalize_cvsroot),
898	update.c (merge_file): Verify assumptions via assertions.
899	(Thanks to (probably) incorrect reports from Alen Zukich
900	<alen.zukich@klocwork.com>.)
901
9022005-03-16  Mark D. Baushke  <mdb@cvshome.org>
903
904	* rcs.c (RCS_check_kflag): Use Xasprintf instead of
905	sprintf/xstrdup.
906
907	* mkmodules.c (checkout_file): Use Xasprintf instead of
908	xmalloc/strcpy+strcat.
909	* wrapper.c (wrap_unparse_rcs_options): Ditto.
910	(wrap_rcsoption): Ditto.
911
912	* subr.c (getcaller): Use Xasprintf instead of sprintf/xstrdup.
913
914	* history.c (history): Use Xasprintf instead of xmalloc/sprintf.
915	* lock.c (lock_name, set_lockers_name): Ditto.
916	* main.c (cmd_synonyms, main): Ditto.
917	* mkmodules.c (rename_rcsfile, init): Ditto
918	* modules.c (cat_module): Ditto.
919	* parseinfo.c (Parse_Info): Ditto.
920	* rcscmds.c (diff_exec, RCS_output_diff_options): Ditto.
921	* recurse.c (start_recursion, do_dir_proc): Ditto.
922	* remove.c (remove_fileproc): Ditto.
923	* repos.c (Name_Repository): Ditto.
924	* root.c (Name_Root, Create_Root): Ditto.
925	* status.c (status_fileproc, tag_list_proc): Ditto.
926	* wrapper.c (wrap_setup, wrap_tocvs_process_file): Ditto.
927
928	* hash.c (sortlist): Use xnmalloc.
929	* main.c (cmd_synonyms): Ditto.
930	* server.c (cvs_pam_conv): Ditto.
931
932	* create_adm.c (Create_Admin): Clean up use of Xasprintf/xstrdup.
933	* entries.c (WriteTag, base_walk): Ditto.
934	* modules.c (my_module): Ditto.
935
936	* wrapper.c (wrap_fromcvs_process_file): Use Xasprintf instead of
937	xmalloc/sprintf and clean up control flow.
938
9392005-03-16  Derek Price  <derek@ximbiot.com>
940
941	* history.c (history_write): Remove test that always evaluates to
942	false.
943
9442005-03-16  Derek Price  <derek@ximbiot.com>
945
946	* server.c (become_proxy): Close pipe to primary when pipe from it
947	closes.
948
9492005-03-16  Mark D. Baushke  <mdb@cvshome.org>
950
951	* sanity.sh (debug-log-nonfatal): Only set CVS_CLIENT_LOG to the
952	old value if it was previously set.
953
9542005-03-16  Derek Price  <derek@ximbiot.com>
955
956	* server.c (create_adm_p, serve_entry), tag.c (rtag_proc): Avoid memory
957	leaks.
958	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
959
9602005-03-16  Derek Price  <derek@ximbiot.com>
961
962	* logmsg.c (do_verify): Don't check for NULL return from xfopen().
963
9642005-03-16  Derek Price  <derek@ximbiot.com>
965
966	* sanity.sh (debug-log-nonfatal): New test.
967
9682005-03-16  Derek Price  <derek@ximbiot.com>
969
970	* sanity.sh (writeproxy-ssh-noredirect): Don't unconditionally create
971	a primary debug log.
972
9732005-03-16  Derek Price  <derek@ximbiot.com>
974
975	* cvs.h (open_file): Move proto...
976	* subr.h (xfopen): ...here and rename.
977	* filesubr.c (open_file): Move function...
978	* subr.c (xfopen): ...here, with additional commenting and minor
979	cosmetic changes.
980	* add.c, checkout.c, client.c, cvsrc.c, edit.c, entries.c, filesubr.c,
981	logmsg.c, mkmodules.c, modules,c, patch.c, root.c, subr.c:
982	s/open_file/xfopen/.
983
9842005-03-16  Derek Price  <derek@ximbiot.com>
985
986	* log-buffer.c (setup_logfiles): Failure to open a debug log file
987	should be non-fatal.
988
9892005-03-16  Derek Price  <derek@ximbiot.com>
990
991	* server.c (cvs_outerr): Quote error text in syslog messages.
992
9932005-03-15  Mark D. Baushke  <mdb@cvshome.org>
994
995	* history.c (select_hrec): Avoid possible memory leak.
996
9972005-03-15  Derek Price  <derek@ximbiot.com>
998
999	* patch.c (patch_proc): Avoid memory leak.
1000	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1001
10022005-03-12  Mark D. Baushke  <mdb@cvshome.org>
1003
1004	* server.c (receive_partial_file): Use ssize_t to deal with < 0
1005	return value from write().
1006
10072005-03-12  Mark D. Baushke  <mdb@cvshome.org>
1008
1009	* history.c (save_file): Bug fix from last change.
1010
10112005-03-11  Mark D. Baushke  <mdb@cvshome.org>
1012
1013	* update.c (get_linkinfo_proc): Use Xasprintf instead of
1014	xmalloc/sprintf.  Gratuitous reformatting.
1015	(update_ignproc, update_dirent_proc, checkout_file): Ditto.
1016	(patch_file, merge_file, join_file): Ditto.
1017	* modules.c (open_module): Ditto.
1018
1019	* modules (my_module): Use Xasprintf instead of xmalloc/sprintf
1020	and avoid possibility of trying to free(NULL).
1021
1022	* subr.c (backup_file): Use Xasprintf instead of xmalloc/sprintf.
1023	(cmdlinequote): Use Xasprintf instead of xmalloc/strcat+strlen.
1024	* modules.c (my_module): Ditto.
1025
1026	* client.c (handle_module_expansion): Use xnmalloc, xnrealloc,
1027	and xstrdup in place of xmalloc, xrealloc, and xmalloc/strcpy.
1028	(start_server): Do not assume gzip_level precision encoding.
1029	(send_modified): Do not assume 1024 bytes is sufficient for
1030	a temporary filename.
1031
1032	* modules.c (my_module): Use xnmalloc and xnrealloc. Gratuitous
1033	reformatting.
1034	* subr.c (line2argv): Ditto.
1035
10362005-03-11  Mark D. Baushke  <mdb@cvshome.org>
1037
1038	* modules.c (my_module): Protect against free (NULL) code path.
1039
10402005-03-11  Derek Price  <derek@ximbiot.com>
1041
1042	* annotate.c (rannotate_proc), fileattr.c (fileattr_write), rcs.c
1043	(RCS_deltas), server.c (check_repository_password), update.c (update):
1044	Avoid memory leaks.
1045	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1046
10472005-03-10  Derek Price  <derek@ximbiot.com>
1048
1049	* diff.c (diff_fileproc): Remove unnecessary check for NULL.
1050
10512005-03-10  Mark D. Baushke  <mdb@cvshome.org>
1052
1053	* commit.c: Gratuitous reformatting.
1054	* entries.c: Ditto.
1055	* import.c (import, import_descend): Ditto.
1056
1057	* commit.c (commit): Use xnmalloc. Gratuitous reformatting.
1058	* history.c (save_user, save_file, save_module, read_hrecs): Ditto.
1059	* ignore.c (ign_add): Ditto.
1060
1061	* hardlink.c (lookup_file_by_inode): Use Xasprintf instead of
1062	xmalloc/sprintf.  Gratuitous reformatting.
1063	(update_hardlink_info, list_linked_files_on_disk): Ditto.
1064	(find_checkedout_proc): Ditto.
1065	* history.c (history, history_write, save_file): Ditto.
1066	(select_hrec): Ditto.
1067	* ignore.c (ign_setup, ignore_files): Ditto.
1068	* import.c (process_import_file, import_descend_dir): Ditto.
1069
1070	* import.c (import_descend_dir): Use Xasprintf instead of
1071	xmalloc/strcpy+strcat+strcat.
1072
1073	* history.c (read_hrecs): Make function argument a const.
1074
10752005-03-10  Derek Price  <derek@ximbiot.com>
1076
1077	* fileattr.c (fileattr_read): Only eat a newline when it really is a
1078	newline.
1079
10802005-03-10  Mark D. Baushke  <mdb@cvshome.org>
1081
1082	* zlib.c: Include "pagealign_alloc.h".
1083
10842005-03-09  Derek Price  <derek@ximbiot.com>
1085
1086	* add.c (add, add_directory), buffer.c (allocate_buffer_datas),
1087	client.c (update_entries), commit.c (checkaddfile), entries.c
1088	(Entries_Open), fileattr.c (fileattr_read), ignore.c (ign_add),
1089	import.c (import), main.c (main), parseinfo.c (parse_config), rcs.c
1090	(RCS_reparsercsfile, RCS_getbranchpoint, RCS_checkout,
1091	RCS_delete_revs, apply_rcs_changes): Avoid memory leaks.
1092	(Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1093
1094	* hardlink.c, hardlink.h: Avoid compiling entire contents of these
1095	files w/o preserve permissions support.
1096
10972005-03-09  Mark D. Baushke  <mdb@cvshome.org>
1098
1099	* history.c (history, save_file): Cleanup the API to match the
1100	comments.
1101
11022005-03-08  Derek Price  <derek@ximbiot.com>
1103
1104	* rcs.c: Define MAP_FILE & MAP_FAILED when necessary.
1105
11062005-03-08  Derek Price  <derek@ximbiot.com>
1107
1108	* zlib.c (compress_buffer_input): Use pagealign_xalloc when allocating
1109	buffer datas.
1110	(compress_buffer_output, compress_buffer_flush,
1111	compress_buffer_shutdown_output): Don't assume that BUFFER_DATA_SIZE is
1112	a constant.
1113	(Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1114
11152005-03-08  Larry Jones  <lawrence.jones@ugs.com>
1116
1117	* release.c (release): Remove unneeded code.
1118
11192005-03-07  Conrad T. Pino  <Conrad@Pino.com>
1120
1121	* buffer.h (buf_free_data): Compile with proxy disabled.
1122	(Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1123
11242005-03-07  Mark D. Baushke  <mdb@cvshome.org>
1125
1126	* add.c (add_directory): Xasprintf instead of xmalloc/sprintf+strcat.
1127	* admin.c (arg_add): Ditto.
1128	(admin_fileproc, postadmin_proc, admin_fileproc): Gratuitous
1129	reformatting.
1130
1131	* client.c (mode_to_string): Use Xasprintf.
1132
1133	* checkout.c (checkout): Xasprintf instead of xmalloc/sprintf.
1134	Gratuitous reformatting.
1135	* entries.c (WriteTag): Ditto
1136	(subdir_record, base_walk): Ditto.
1137	* fileattr.c (fileattr_read, fileattr_set, fileattr_write): Ditto.
1138	* filesubr.c (deep_remove_dir, cvs_temp_file): Ditto.
1139	(strcat_filename_onto_homedir): Ditto.
1140	* find_names.c (Find_Names): Ditto.
1141
1142	* filesubr.c (expand_wild): Use xnmalloc instead of xmalloc.
1143
11442005-03-07  Derek Price  <derek@ximbiot.com>
1145
1146	* buffer.c (buf_free_data): Compile with proxy disabled.
1147	(Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1148
11492005-03-07  Derek Price  <derek@ximbiot.com>
1150
1151	* buffer.c (packetizing_buffer_input, packetizing_buffer_output): Don't
1152	assume BUFFER_DATA_SIZE is a constant.
1153	(Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1154
11552005-03-03  Derek Price  <derek@ximbiot.com>
1156
1157	Use new pagealign_alloc() and pagealign_free() functions in
1158	lieu of maintaining pointers for reuse.  On most systems this should be
1159	faster.
1160	* buffer.c: Include "pagealign_alloc.h".
1161	(free_buffer_data): Remove this global.
1162	(allocate_buffer_datas): Remove this function.
1163	(buf_free, buf_send_output): Call buf_free_data().
1164	(get_buffer_data): Use pagealign_alloc().
1165	(buf_free_datas): New function.
1166	(buf_send_output, buf_free_data, buf_read_file, buf_read_file_to_eof,
1167	buf_read_short_line, buf_read_data, buf_copy_counted): Call
1168	buf_free_datas().
1169	* buffer.h: Include "getpagesize.h".
1170	(BUFFER_DATA_SIZE): Default to getpagesize ();
1171	* rcs.c: Lean on m4/mmap-anon.m4 to simplify mmap setup.
1172
11732005-03-02  Jim Meyering  <jim@meyering.net>
1174
1175	Detect and report write failure for e.g., cvs up -p FILE > /dev/full
1176	* main.c: Include "closeout.h".
1177	(main): Arrange to close standard output upon exit.
1178	* sanity.sh (close-stdout): New test for this fix.
1179
11802005-03-01  Mark D. Baushke  <mdb@cvshome.org>
1181
1182	* checkout.c (emptydir_name): Xasprintf instead of
1183	xmalloc/sprintf.
1184
1185	* add.c (add): Xasprintf instead of xmalloc/sprintf.
1186	Gratuitous reformatting.
1187	(add_directory, build_entry): Ditto.
1188	* annotate.c (rannotate_proc): Ditto.
1189	* checkout.c (checkout_proc): Ditto.
1190	* client.c (call_in_directory): Ditto.
1191	(template, send_dirent_proc): Ditto.
1192	(client_process_import_file): Ditto.
1193	* commit.c (check_fileproc, precommit_proc): Ditto.
1194	(commit_fileproc, finaladd): Ditto.
1195	(checkaddfile): Ditto.
1196	* create_adm.c (Create_Admin): Ditto.
1197	* edit.c (notify_do): Ditto.
1198
11992005-03-01  Derek Price  <derek@ximbiot.com>
1200
1201	* subr.c (get_date): Minor reformatting.
1202
12032005-03-01  Derek Price  <derek@ximbiot.com>
1204
1205	* subr.c (get_date): Replace obsolete timeb cruft in this stub.
1206
12072005-02-28  Mark D. Baushke  <mdb@cvshome.org>
1208
1209	* admin.c (arg_add): Use xnmalloc and xnrealloc.
1210	(admin): Use xnmalloc. Minor reformatting.
1211	Xasprintf instead of xmalloc/strcpy+strcat.
1212	* client.c (client_expand_modules): Use xnmalloc.
1213	Minor reformatting.
1214	* cvsrc.c (read_cvsrc): Use xnmalloc and xnrealloc.
1215	Minor reformatting.
1216	* history.c (read_hrecs): Use xnrealloc. Minor reformatting.
1217	* ignore.c (ign_add): Use xnrealloc. Minor reformatting.
1218	* rcscmds.c (call_diff_add_arg): Use xnrealloc.
1219	* wrapper.c (wrap_add_entry): Use xnrealloc. Gratuitous
1220	reformatting.
1221
12222005-02-28  Derek Price  <derek@ximbiot.com>
1223
1224	* edit.c (notify_proc), logmsg.c (logfile_write): Minor reformatting.
1225
12262005-02-28  Derek Price  <derek@ximbiot.com>
1227
1228	* root.c (parse_root): Trigger a later error message rather than
1229	maintaining two copies.
1230
12312005-02-27  Mark D. Baushke  <mdb@cvshome.org>
1232
1233	* client.c (connect_to_pserver): Use TRACE_FUNCTION, not 1 in
1234	TRACE() calls.
1235	(connect_to_pserver,send_modified): Ditto.
1236	* create_adm.c (Create_Admin): Ditto.
1237	* entries.c (Register, Scratch_Entry, WriteTemplate): Ditto.
1238	* filesubr.c (copy_file, xchmod, rename_file): Ditto.
1239	* history.c (history_write): Ditto.
1240	* kerberos4-client.c (start_kerberos4_server): Ditto.
1241	* no_diff.c (No_Difference): Ditto.
1242	* parseinfo.c (Parse_Info): Ditto.
1243	* rcs.c (RCS_checkout): Ditto.
1244	* server.c (server_register): Ditto.
1245	* update.c (join_file): Ditto.
1246
1247	* no_diff.c (No_Difference): Gratuitous reformatting.
1248	* kerberos4-client.c (start_kerberos4_server): Ditto.
1249
12502005-02-27  Jim Meyering  <jim@meyering.net>
1251
1252	* login.c (password_entry_operation): Exit nonzero when
1253	failing to close a just-appended-to .cvspass file.
1254
12552005-02-26  Derek Price  <derek@ximbiot.com>
1256
1257	* root.c: Gratuitous reformatting.
1258
12592005-02-26  Mark D. Baushke  <mdb@cvshome.org>
1260
1261	* root.c (parse_cvsroot): Handle another Bad CVSROOT.
1262	* sanity.sh (parseroot-8r): Test for it.
1263	(Problem report from Hiroyuki Ikezoe <poincare@ikezoe.net>.)
1264
12652005-02-26  Derek Price  <derek@ximbiot.com>
1266
1267	* server.c: Include netdb.h with server support.  Other reformatting.
1268
12692005-02-25  Derek Price  <derek@ximbiot.com>
1270
1271	* sanity.sh (multiroot2-9a): Correct for new TRACE message.
1272
12732005-02-25  Derek Price  <derek@ximbiot.com>
1274
1275	* cvs.h (tag_check_valid): Declare NAME arg const.
1276	* tag.c (tag_check_valid): Ditto, update to account for this.
1277	Xasprintf instead of xmalloc/sprintf.
1278
12792005-02-25  Derek Price  <derek@ximbiot.com>
1280
1281	* client.c (send_modified): Suppress a -Wall warning.
1282
12832005-02-25  Derek Price  <derek@ximbiot.com>
1284
1285	* cvs.h (global_session_id): New global declaration.
1286	* import.c (add_rcs_file), rcs.c (RCS_checkin): Save commitid.
1287	* log.c (log_version), status.c (status_fileproc): Output commitid.
1288	* main.c (global_session_id): Define new global.
1289	(main): Create session ID.
1290	* sanity.sh: Update to compensate.
1291	(Original patch from Frank Hemer <frank@hemer.org>.)
1292
12932005-02-24 Derek Price <derek@ximbiot.com>
1294
1295	* subr.h (cvs_trace, TRACE*): Move to...
1296	* server.h: ...here.
1297	* subr.c: Ditto, but to...
1298	* server.c: ...here, and print out 'P' instead of 'S' for traces from
1299	secondary (proxy) servers.
1300
13012005-02-24 Derek Price <derek@ximbiot.com>
1302
1303	* admin.c (admin): Suppress warning with -Wall and --disable-client.
1304	* server.c: Don't declare functions that won't be defined when
1305	--disable-server.
1306
13072005-02-24 Derek Price <derek@ximbiot.com>
1308
1309	* sanity.sh (primary-wrapper): Rename CVS_SERVER_LOG for the primary in
1310	writeproxy mode to avoid overwriting.
1311
13122005-02-24 Derek Price <derek@ximbiot.com>
1313
1314	* client.c (open_connection_to_server): Fail with an expressive error
1315	message when connection is attempted via an unsupported protocol since
1316	this is no longer caught in parse_root().
1317	* edit.c (edit_fileproc), import.c (import): Don't verify
1318	current_parsed_root->isremote without client support.
1319	* parseinfo.c (parse_config): Parse PrimaryServer without proxy
1320	support.  Postpone method verification until the connect phase.
1321	* parseinfo.h (struct config): Always include PrimaryServer.
1322	* root.c (primary_root_translate, primary_root_inverse_translate):
1323	Don't declare vars without PROXY_SUPPORT when they won't be used.
1324	(parse_cvsroot): Parse remote connection methods with server support
1325	for PrimaryServer/Redirects.  Delay method support verification until
1326	the connect phase.
1327	* root.h (cvsroot_t): Include remote elements with SERVER_SUPPORT.
1328	* server.c (isProxyServer): Delay method verification until the connect
1329	phase.
1330
13312005-02-23 Derek Price <derek@ximbiot.com>
1332
1333	* tag.c (tag): Handle -r<tag>:<date>.
1334	* sanity.sh (tagdate-13.*): New tests.
1335
13362005-02-23 Derek Price <derek@ximbiot.com>
1337
1338	* annotate.c (annotate), ls.c (ls): Handle -r<tag>:<date>.
1339
13402005-02-23 Derek Price <derek@ximbiot.com>
1341
1342	* diff.c: Some reformatting.
1343	(diff): Handle -r<tag>:<date>.
1344	* sanity.sh (tagdate-13b): New test.
1345
13462005-02-23 Derek Price <derek@ximbiot.com>
1347
1348	* checkout.c (checkout): Use parse_tagdate.
1349	* tag.c (tag_check_valid_join): Remove this function.
1350	* cvs.h (tag_check_valid_join): Ditto for the proto.
1351	(parse_tagdate): New proto.
1352	(Make_Date): Make arg const.
1353	* main.c (Make_Date): Ditto.
1354	(parse_tagdate): New function.
1355	* update.c (date_rev1, date_rev2): Rename these globals...
1356	(join_date1, join_date2): ...to this.
1357	(update): Use parse_tagdate.
1358	(do_update): Use new API.
1359	* update.h (do_update): Update proto.
1360	* sanity.sh: Misc reformatting.
1361	(tagdate-12): This test now passes.
1362	(tagdate-12b): New test.
1363	(multiroot-9a): Handle new TRACE.
1364
13652005-02-23 Derek Price <derek@ximbiot.com>
1366
1367	* rsh-client.c (start_rsh_server): Update comment.  Replace
1368	malloc/sprintf combo with a call to Xasprintf.
1369
13702005-02-22 Derek Price <derek@ximbiot.com>
1371
1372	* error.c (error): Handle unsigned int format char.
1373	* parseinfo.c (parse_error): New function.
1374	(parse_config): Keep track of line number and output it in error
1375	messages.
1376	* rcs.c (RCS_setlocalid): Accept file path and line number for error
1377	messages.  Add header comment block.
1378	* rcs.h (RCS_setlocalid): Update prototype to match.
1379	* parseinfo.h (parse_error): Declare new function.
1380	* sanity.sh: Accept new --noredirect argument.
1381	(checklongoptarg): Accept longoptmode as an argument
1382	rather than via an environment variable.
1383	(notnoredirect): New function.
1384	(newroot): Handle root options.
1385	(keywordexpand, config): Skip in noredirect mode.  Update for new
1386	config error messages.
1387	(multiroot): Some reformatting.
1388	(writeproxy, writeproxy-noredirect): Skip in noredirect mode.
1389	(commit, writeproxy-noredirect): Quote CVSROOT arguments since they
1390	might contain semicolons.
1391
13922005-02-21  Mark D. Baushke  <mdb@cvshome.org>
1393
1394	* import.c (import): Avoid using assert with side effects it may
1395	be configured away using NDEBUG.
1396	(Patch from Frank Hemer <frank@hemer.org>.)
1397
13982005-02-20  Mark D. Baushke  <mdb@cvshome.org>
1399
1400	* main.c (main): Check the results from xgethostname(). Print a
1401	message with the errno and use "localhost" if NULL is returned.
1402
14032005-02-20 Derek Price <derek@ximbiot.com>
1404
1405	* cvs.h (run_arg): Rename to...
1406	(run_add_arg): New function.
1407	* run.c (run_arg): Remove.
1408	(run_add_arg): Remove static declaration.
1409	(run_piped): New function.
1410	* logmsg.c, modules.c: s/run_arg/run_add_arg/.
1411	* release.c (release): Replace use of piped_child with a call
1412	to run_piped to avoid quoting issues.
1413	* sanity.sh (info-cleanup-0): Expect success.
1414
14152005-02-19 Derek Price <derek@ximbiot.com>
1416
1417	* edit.c (unedit_fileproc, mark_up_to_date): Replace xmallc/strcat
1418	sequence with single call to Xasprintf.
1419
14202005-02-08 Derek Price <derek@ximbiot.com>
1421
1422	* rsh-client.c: Some reformatting.
1423
14242005-02-04 Derek Price <derek@ximbiot.com>
1425
1426	* zlib.c (compress_buffer_input): Don't return EOF when there is data
1427	pending.
1428
14292005-02-01 Derek Price <derek@ximbiot.com>
1430
1431	* main.c: Update year in copyright notice to match GNU standards.
1432	* sanity.sh (version-1): Update to match.
1433
14342005-02-01  Larry Jones  <lawrence.jones@ugs.com>
1435
1436	* log.c (log_fileproc, log_expand_revlist): Add support for BASE tag.
1437	* sanity.sh (log): New tests for above.
1438
14392005-01-31 Derek Price <derek@ximbiot.com>
1440
1441	* main.c: Rephrase --version message.
1442	* sanity.sh (version-1): Update to match.
1443
14442005-01-31 Derek Price <derek@ximbiot.com>
1445
1446	* Makefile.am, add.c, admin.c, annotate.c, checkin.c, checkout.c,
1447	classify.c, commit.c, create_adm.c, cvs.h, cvsrc.c, diff.c, entries.c,
1448	find_names.c, hash.c, hash.h, history.h, import.c, lock.c, log.c,
1449	login.c, logmsg.c, main.c, mkmodules.c, modules.c, myndbm.c, no_diff.c,
1450	parseinfo.c, patch.c, rcs.c, rcs.h, rcscmds.c, recurse.c, remove.c,
1451	repos.c, root.c, root.h, server.h, stack.c, stack.h, status.c, subr.c,
1452	tag.c, update.c, vers_ts.c, version.c: Update copyright notices.
1453
14542005-01-29 Derek Price <derek@ximbiot.com>
1455
1456	* log.c (log_usage): Add note about using -S with revision info
1457	supression and selection.
1458	(Suggestion from Dan Peterson <dbpete@aol.com>.)
1459
14602005-01-29 Derek Price <derek@ximbiot.com>
1461
1462	* sanity.sh (writeproxy-ssh-noredirect): Remove some commented out
1463	code.
1464
14652005-01-25  Larry Jones  <lawrence.jones@ugs.com>
1466
1467	* expand_path.c (expand_path): Rewrite using offsets instead of
1468	pointers to simplify and avoid reallocation bugs.
1469	(Inspired by Jeremy Bopp <jeremy@motive.com>.)
1470
14712005-01-20 Brian Murphy <brian@murphy.dk>
1472
1473	* server.c fixing the style of the pam function calls and if
1474	statements
1475
14762005-01-19 Brian Murphy <brian@murphy.dk>
1477
1478	* server.c (pam_username, pam_password) new global static
1479	variables to hold the username and pasword for cvs_pam_conv.
1480	(cvs_pam_conv) using pam_username and pam_password.
1481	(check_pam_password) set pam_username, pam_password before
1482	authentication and clear them when authentication is finished.
1483	(server, switch_to_user) Check for pamh being set before using
1484	pam functionality, NULL indicating that this user was authenticated
1485	using the repository password file.
1486
14872004-12-09 Derek Price <derek@ximbiot.com>
1488
1489	* log-buffer.c (buf_count_mem): Compile this for PROXY_SUPPORT.
1490	(Report from Brad L. Chisholm <blc@bsdwins.com>.)
1491
14922004-12-09 Derek Price <derek@ximbiot.com>
1493
1494	* sanity.sh (modules7): New test group.
1495	(Based on a patch from Mark D. Baushke <mdb@cvshome.org>, based on a
1496	report from Richard Verhoeven <Richard_Verhoeven@WestLB.de>.)
1497
14982004-12-09  Derek Price  <derek@ximbiot.com>
1499
1500	* client.c (start_server): Avoid advertising the Redirect response when
1501	the user asked us not to.
1502	* root.h (cvsroot_t): Add redirect field.
1503	* root.c (new_cvsroot_t): Init redirect field.
1504	(parse_cvsroot_t): Parse Redirect method option.
1505	* server.c (serve_command_prep): Don't throw proxy_log away when
1506	Redirect isn't supported and it might be needed later.
1507	* sanity.sh (parseroot): Improve comment, add a few new tests.
1508	(writeproxy-ssh): Specify Redirect=yes explicitly.
1509	(writeproxy-ssh-noredirect): New test group.
1510
15112004-12-09  Mark D. Baushke  <mdb@cvshome.org>
1512
1513	* main.c (usg): Remove Dr. Pascal Molli's CVS URL from the
1514	documentation.
1515
15162004-12-08  Derek Price  <derek@ximbiot.com>
1517
1518	* root.c (Name_Root): s/TRACE_FUNCTION/TRACE_FLOW/.
1519
15202004-12-08  Derek Price  <derek@ximbiot.com>
1521
1522	* root.c (parse_cvsroot): Suppress -Wall warning.
1523
15242004-12-08  Derek Price  <derek@ximbiot.com>
1525
1526	* root.c (parse_cvsroot): findnode() compares LIST to NULL w/o help.
1527
15282004-12-08  Derek Price  <derek@ximbiot.com>
1529
1530	* root.c (Name_root), server.c (serve_referrer): Don't free cvsroot_t.
1531	* server.sh (reposmv): Reaccount for multiple potential warnings and
1532	comment.
1533
15342004-12-07  Derek Price  <derek@ximbiot.com>
1535
1536	* root.c (parse_cvsroot): Cache parsed values for efficiency and to
1537	avoid printing warnings about non-fatal parsing errors multiple times.
1538	* client.c,, login.c, main.c, recurse.c: Don't dispose of parsed roots,
1539	parse_cvsroot() has control.
1540	* sanity.sh (reposmv): Stop accounting for multiple warnings.
1541
15422004-12-03  Mark D. Baushke  <mdb@cvshome.org>
1543
1544	* root.h (cvsroot_t): Add cvs_rsh and cvs_server for bookkeeping
1545	purposes.
1546	* root.c (new_cvsroot_t, free_cvsroot_t): Add support for case
1547	insensitive options CVS_RSH and CVS_SERVER.
1548	(parse_cvsroot): Ditto and make all keywords case insensitive.
1549	* client.c (connect_to_forked_server): Add support for the new
1550	"CVS_SERVER" option to CVSROOT.
1551	* rsh-client.c (connect_to_forked_server): Ditto
1552	(start_rsh_server): Ditto and add support for the new "CVS_RSH"
1553	option to CVSROOT.
1554	* sanity.sh (parseroot3): New tests for the new options to
1555	CVSROOT.
1556
15572004-11-30  Larry Jones  <lawrence.jones@ugs.com>
1558
1559	* mkmodules.c (config_contents): Add LocalKeyword and KeywordExpand,
1560	misc. cleanup.
1561
15622004-11-30  Derek Price  <derek@ximbiot.com>
1563
1564	* parseinfo.c (readBool): Update quotes in error message for
1565	consistency.  Move function to...
1566	* subr.c (readBool): ...here.
1567	(*): Gratuitous reformatting.
1568	* cvs.h: Move all subr.c function prototypes to...
1569	* subr.h: ...this new file.
1570	* Makefile.am (cvs_SOURCES): Add subr.h.
1571
15722004-11-30  Derek Price  <derek@ximbiot.com>
1573
1574	* parseinfo.c (readBool): Reorder arguments to error() and improve
1575	header comment.
1576
15772004-11-30  Derek Price  <derek@ximbiot.com>
1578
1579	* client.c (handle_referrer): New function.
1580	(handle_redirect): Handle possibility that CLIENT_REFERRER was set via
1581	a response.
1582	* server.c (serve_command_prep): Send a normalized Referrer response
1583	before a Redirect when the client supports it.
1584
15852004-11-29  Mark D. Baushke  <mdb@cvshome.org>
1586
1587	* rcs.c (RCS_setlocalid): Do more configuration validation.
1588	Include some gratuitous reformatting.
1589	* sanity.sh (keywordexpand): Add tests for new validation code.
1590
15912004-11-24  Derek Price  <derek@ximbiot.com>
1592
1593	* server.c (become_proxy): Note assumptions about syncronized primary
1594	and secondary versions with `FIXME?' note.
1595
15962004-11-22  Mark D. Baushke  <mdb@cvshome.org>
1597
1598	* sanity.sh (info): Ignore comments in verifymsg test.
1599
16002004-11-22  Mark D. Baushke  <mdb@cvshome.org>
1601
1602	* mkmodules.c (loginfo_contents, verifymsg_contents,
1603	commitinfo_contents, taginfo_contents, preproxy_contents,
1604	postadmin_contents, postproxy_contents, posttag_contents,
1605	postwatch_contents, notify_contents): Add comments regarding the
1606	additional format strings that are available. Include some
1607	gratuitous reformatting.
1608
16092004-11-19  Derek Price  <derek@ximbiot.com>
1610
1611	* subr.c (Xasnprintf): Improve header comment block.
1612
16132004-11-19  Derek Price  <derek@ximbiot.com>
1614
1615	* root.c (normalize_cvsroot): Improve header comment block.
1616
16172004-11-19  Derek Price  <derek@ximbiot.com>
1618
1619	* server.c: Misc reformatting and comment corrections.
1620
16212004-11-19  Derek Price  <derek@ximbiot.com>
1622
1623	* cvs.h (hostname): Redeclare as pointer rather than array.
1624	* main.c: Include xgethostname.h.  Declare server_hostname.
1625	(main): Use xgethostname().  Set server_hostname.
1626	* server.c (MAXHOSTNAMELEN): Remove this macro.
1627	(isThisHost): Reference global HOSTNAME rather than looking it up.
1628	Improve header comment block.
1629	(gserver_authenticate_connection): Likewise.
1630	(serve_command_prep): Correct comment.
1631	(serve_hostname): Don't bother to validate hostname length.
1632
16332004-11-19  Derek Price  <derek@ximbiot.com>
1634
1635	* server.c (isThisHost): strcasecmp before consulting the DNS as an
1636	optimization.
1637
16382004-11-18  Mark D. Baushke  <mdb@cvshome.org>
1639
1640	* checkout.c (checkout_proc): Passing the repository to
1641	tag_check_valid seems to stop the assertion failure in recurse.c
1642	do_recursion.
1643	* sanity.sh (basic2-21a): Removed.
1644	(basic2-21c): Fixed.
1645
16462004-11-18  Derek Price  <derek@ximbiot.com>
1647
1648	* sanity.sh (skip_always, notproxy): New functions.
1649	(skip, remoteonly, sshstdio, client): Use new functions.
1650
16512004-11-17  Mark D. Baushke  <mdb@cvshome.org>
1652
1653	* sanity.sh (basic2-21a): The val-tags file should have
1654	at least 'rtagged-by-head y' in it. Test from cvs 1.11.18 that
1655	shows fixed result.
1656	(basic2-21b, basic2-21c): New tests showing a cvs bug when
1657	val-tags is not present.
1658	(Report from "John Elgin" <John@JCElgin.com>.)
1659
1660	* sanity.sh (basicb-21): POSIX 1003.2 specifies 'illegal option'
1661	while lots of getopt implementations still use 'invalid option'.
1662	Allow either form for this test.
1663
16642004-11-17  Mark D. Baushke  <mdb@cvshome.org>
1665
1666	* buffer.c (fd_buffer_block): Deal with BSD and BSDI problems to
1667	set block/nonblock on /dev/null.
1668
16692004-11-17  Derek Price  <derek@ximbiot.com>
1670
1671	* Makefile.am (distclean-local): Clean check.plog~.
1672
16732004-11-11  Derek Price  <derek@ximbiot.com>
1674
1675	* sanity.sh: s/cp -r/cp -R/ to meet POSIX specification.
1676	(Thanks to report from Paul Eggert <eggert@cs.ucla.edu>.)
1677
16782004-11-10  Mark D. Baushke  <mdb@cvshome.org>
1679
1680	* ms-buffer.c (ms_buffer_input): Avoid UNICOS cc error where
1681	'Both sides of the assignment operator are not compatible.'
1682
1683	* sanity.sh (importc, rcs, rcs4, tagdate): Use TZ=UTC0 not TZ=UTC
1684	to get proper POSIX behavior on MacOS X.
1685
16862004-11-10  Derek Price  <derek@ximbiot.com>
1687
1688	* sanity.sh: Actually parse -e option like we claim to.
1689
16902004-11-10  Derek Price  <derek@ximbiot.com>
1691
1692	* sanity.sh: Maintain pass/skip/warn status and output at end.
1693	(usage): Note new functionality of -e.
1694	(warn): New function.
1695	(verify_tmp_empty): Warn instead of failing.  Delete turds if warn()
1696	doesn't exit.
1697
16982004-11-10  Derek Price  <derek@ximbiot.com>
1699
1700	* sanity.sh (verify_tmp_empty): New function.
1701	(dotest_internal_*): Call verify_tmp_empty as needed.
1702
17032004-11-09  Mark D. Baushke  <mdb@cvshome.org>
1704
1705	* sanity.sh (expr_tooltest3): Bugfix. Use $expr rather than $EXPR.
1706
17072004-11-08  Derek Price  <derek@ximbiot.com>
1708
1709	* sanity.sh (version_test): Echo good version data to the log, even
1710	when it went to stderr.  Don't echo bad version data.
1711
17122004-11-08  Mark D. Baushke  <mdb@cvshome.org>
1713
1714	* sanity.sh (tool_find): Rewrite. API changed to allow a list of
1715	tests to be used against a list of possible command names found on
1716	the SEARCHPATH.
1717	(version_test): Obtain the version of tools under test if
1718	possible.
1719	(id_tool_test): Check that 'id -u' and 'id -un' work.
1720	(expr_tooltest1): Check for NextStep 3.3 expr bug.
1721	(expr_tooltest2): Check for SunOS expr multi-line pattern bug.
1722	(expr_create_bar): Create a test file for expr testing.
1723	(expr_tooltest3): Use it and test for big multi-line identity
1724	matches.
1725	(expr_set_ENDANCHOR): Find and set the right value for ENDANCHOR.
1726	(expr_set_DOTSTAR): Find and set the right value for DOTSTAR.
1727	(expr_tooltest_DOTSTAR): Ensure that DOTSTAR works with big
1728	matches.
1729	(tr_tooltest1): Verify that tr handles NUL bytes.
1730	(ls_tooltest): See if /bin/ls returns true even if wildcard does
1731	not match any files.
1732	(awk_tooltest1): Verify that awk the BEGIN clause works properly.
1733	(awk_tooltest2): Verify that print %c format item works properly.
1734
17352004-11-08  Derek Price  <derek@ximbiot.com>
1736
1737	* sanity.sh (verify_tmp_empty): New function.
1738	(dotest_internal_*): Call verify_tmp_empty as needed.
1739
17402004-11-08  Derek Price  <derek@ximbiot.com>
1741
1742	* sanity.sh (run_filter): Add function header comment block.
1743
17442004-11-07  Larry Jones  <lawrence.jones@ugs.com>
1745
1746	* sanity.sh: Remove trailing / from cp -r commands.
1747
17482004-11-04  Derek Price  <derek@ximbiot.com>
1749
1750	* gssapi-client.c (connect_to_gserver): Silence gcc -Wall.
1751
17522004-11-04  Derek Price  <derek@ximbiot.com>
1753
1754	* sanity.sh (set_bad_tool): Remove unnecessary quotes.
1755
17562004-11-04  Derek Price  <derek@ximbiot.com>
1757
1758	* sanity.sh: s/depends_on_/require/.
1759
17602004-11-04  Derek Price  <derek@ximbiot.com>
1761
1762	* sanity.sh (find_tool): Eliminate variable with single reference.
1763
17642004-11-04  Mark D. Baushke  <mdb@cvshome.org>
1765
1766	* sanity.sh (SEARCHPATH): Unify the PATHs that are to be searched.
1767	(Which,find_tool): Use SEARCHPATH.
1768	(LS): Use default $SEARCHPATH for Which.
1769	(depend_on_rsync): Use default $SEARCHPATH for Which.
1770
17712004-11-04  Mark D. Baushke  <mdb@cvshome.org>
1772
1773	* sanity.sh (depends_on_rsync): Do not echo rsync information to
1774	stdout. Look for rsync in more directories.
1775
17762004-11-04  Derek Price  <derek@ximbiot.com>
1777
1778	* sanity.sh (depends_on_rsync): Minor simplifications.  Make sure that
1779	an rsync that doesn't understand `--version' sends its error message to
1780	the log file too.
1781
17822004-11-04  Mark D. Baushke  <mdb@cvshome.org>
1783
1784	* sanity.sh (set_bad_tool, is_bad_tool): Avoid printing errors
1785	about the same tool multiple times.
1786
17872004-11-03  Mark D. Baushke  <mdb@cvshome.org>
1788
1789	* sanity.sh (depends_on_rsync): Deal with missing rsync.
1790
17912004-11-03  Mark D. Baushke  <mdb@cvshome.org>
1792
1793	* sanity.sh (depends_on_rsync): Include rsync version information
1794	in output.
1795
17962004-11-03  Mark D. Baushke  <mdb@cvshome.org>
1797
1798	* sanity.sh (depends_on_rsync): More rigorous tests for rsync
1799	2.3.1 problems with --delete --include dir --exclude '*/.
1800
18012004-11-03  Derek Price  <derek@ximbiot.com>
1802
1803	* sanity.sh (depends_on_rsync): Verify that `rsync --delete' actually
1804	does what it is supposed ot do.
1805
18062004-11-03  Derek Price  <derek@ximbiot.com>
1807
1808	* subr.c (Xreadlink): Remove MAXSIZE macro.  Minor reformatting.
1809
18102004-11-03  Mark D. Baushke  <mdb@cvshome.org>
1811
1812	* filesubr.c (xreadlink): Remove and use GNULIB version.
1813	(islink): Return ssize_t instead of bool.
1814	(copy_file): Use Xreadlink().
1815	* cvs.h: Add include "xreadlink.h"
1816	(islink): Return ssize_t instead of bool.
1817	* import.c (preserve_initial_permissions): Use Xreadlink.
1818	* rcs.c (RCS_checkin): Ditto.
1819	* update.c (special_file_mismatch): Ditto.
1820	* subr.c (get_file): Ditto.
1821	(resolve_symlink): Ditto.
1822	(Xreadlink): New interface to xreadlink(), never return NULL.
1823
18242004-11-02  Mark D. Baushke  <mdb@cvshome.org>
1825
1826	* filesubr.c (MAXSIZE): New macro.
1827	(xreadlink): Ensure initial buffer size does not exceed MAXSIZE.
1828	Avoid cast. If readlink fails with buffer size just under MAXSIZE,
1829	try again with MAXSIZE.
1830
18312004-11-02  Mark D. Baushke  <mdb@cvshome.org>
1832
1833	* filesubr.c (xreadlink): AIX and HP-UX readlink() returns ERANGE
1834	when there is not enough room in the buffer.
1835
18362004-11-01  Derek Price  <derek@ximbiot.com>
1837
1838	* cvs.h: Remove getdate proto in favor of including getdate.h.
1839	* client.c (handle_mod_time), history.c (history), main.c (Make_Date,
1840	format_date_alloc), rcs.c (RCS_getrevtime), server.c
1841	(serve_checkin_time): Use new get_date API.
1842
18432004-11-01  Derek Price  <derek@ximbiot.com>
1844
1845	* sanity.sh (rcslib): Fix typo in path.
1846
18472004-11-01  Derek Price  <derek@ximbiot.com>
1848
1849	* sanity.sh (rcslib): Test a link to a path longer than 128
1850	characters.
1851
18522004-10-30  Mark D. Baushke  <mdb@cvshome.org>
1853
1854	* patch.c (patch_cleanup): Add signal argument and use it.
1855
18562004-10-30  Mark D. Baushke  <mdb@cvshome.org>
1857
1858	* client.c: Adjust include files to avoid problems with incomplete
1859	types under --disable-client.
1860	* msg-buffer.c: Deal with --disable-client --disable-server
1861	implicitly meaning --disable-proxy.
1862	* server.c: Adjust include files to avoid problems with incomplete
1863	types under --disable-server.
1864
18652004-10-30  Mark D. Baushke  <mdb@cvshome.org>
1866
1867	* server.c (isThisHost): Deal with possibility of a missing
1868	hstrerror() function.
1869
18702004-10-29  Derek Price  <derek@ximbiot.com>
1871
1872	* server.c (server_root, move_file_offset, replace_file_offset):
1873	Remove dead code.
1874
18752004-10-29  Derek Price  <derek@ximbiot.com>
1876
1877	* filesubr.c (xreadlink): Make sure allocation is tried once at the
1878	maximum buffer size.  Protect against overflow.
1879
18802004-10-29  Derek Price  <derek@ximbiot.com>
1881
1882	* server.c (isSameHost): Handle gethostname & gethostbyname errors.
1883
18842004-10-29  Derek Price  <derek@ximbiot.com>
1885
1886	* server.c (isSameHost): Use strcasecmp to compare host names.
1887
18882004-10-29  Mark D. Baushke  <mdb@cvshome.org>
1889
1890	* server.c: Need to #include <netdb.h> for either PROXY_SUPPORT or
1891	HAVE_GSSAPI to get gethostbyname() declarations for
1892
18932004-10-29  Mark D. Baushke  <mdb@cvshome.org>
1894
1895	* filesubr.c (SIZE_MAX, SSIZE_MAX): Use #include "xsize.h" instead.
1896	(xreadlink): Use xrealloc instead of xmalloc/free.
1897
18982004-10-29  Mark D. Baushke  <mdb@cvshome.org>
1899
1900	* filesubr.c (SIZE_MAX, SSIZE_MAX): New constants.
1901	(xreadlink): Deal with symlinks longer than 127 bytes.
1902	(Problem reported as issue 190 by Gottfried Ganssauge
1903	<gotti@cvshome.org>.)
1904
19052004-10-29  Derek Price  <derek@ximbiot.com>
1906
1907	* server.c (isSameHost): New fuction.
1908	(same_path): Rename to...
1909	(isSamePath): ...this.
1910	(isProxyServer): Use new functions/names.
1911
19122004-10-29  Mark D. Baushke  <mdb@cvshome.org>
1913
1914	* sanity.sh (writeproxy): Use DOTSTAR to avoid problems with
1915	a missing Gssapi-authenticate in Valid-requests.
1916
19172004-10-28  Derek Price  <derek@ximbiot.com>
1918
1919	* server.c (same_path): New function.
1920	(isProxyServer): Use new function.
1921	* sanity.sh (writeproxy): Test that server resolves symlinks when
1922	deciding whether it is a primary server.
1923
19242004-10-28  Derek Price  <derek@ximbiot.com>
1925
1926	* cvs.h (isdir, isfile, islink, isdevice, isreadable, iswritable,
1927	isaccessible, isabsolute): Return boolean rather than int.
1928	* filesubr.c (isdir, isfile, islink, isdevice, isreadable, iswritable,
1929	isaccessible), subr.c (isabsolute): Ditto.  Some reformatting.
1930	* filesubr.c (xresolvepath): Use save_cwd in place of xgetwd.  Some
1931	reformatting.
1932
19332004-10-28  Derek Price  <derek@ximbiot.com>
1934
1935	* client.c (handle_redirect): Detect redirect loops.
1936	* sanity.sh (client-20): Test that client detects redirect loops.
1937
19382004-10-28  Mark D. Baushke  <mdb@cvshome.org>
1939
1940	* release.c (release): Allow builds of cvs with --disable-server
1941	--disable-client both used for local installation configuration.
1942	* root.c (Name_Root): Ditto.
1943	* update.c (checkout_file): Ditto.
1944	* edit.c (edit_fileproc): Ditto.
1945	* import.c (import): Ditto.
1946	(Problem reported by Jean Olivier Caron <jecar@mlab.t.u-tokyo.ac.jp>.)
1947
19482004-10-27  Mark D. Baushke  <mdb@cvshome.org>
1949
1950	* cvs.h (RCS_FLAGS_USETIME): New flag.
1951	* rcs.c (RCS_checkin): Add citime argument.
1952	* rcs.h (RCS_checkin): Ditto.
1953	* checkin.c (Checkin): Pass new RCS_checkin argument.
1954	* commit.c (remove_file, checkaddfile): Ditto.
1955	* import.c (add_rev): Ditto.
1956
1957	* sanity.sh (tagdate): Delete tagdate-19b as an incorrect test.
1958
19592004-10-27  Mark D. Baushke  <mdb@cvshome.org>
1960
1961	* sanity.sh (tagdate): Provide more output.
1962
19632004-10-26  Mark D. Baushke  <mdb@cvshome.org>
1964
1965	* commit.c (checkaddfile): Create a dead version for a new file
1966	added to a branch. Fixes FIXCVS for tagdate tests.
1967	* sanity.sh (tagdate): Update to expect correct results.
1968	(death2, branch-after-import, join, ignore-on-branch): Ditto.
1969
19702004-10-26  Mark D. Baushke  <mdb@cvshome.org>
1971
1972	* server.c (isProxyServer): Fix hostname setup.
1973
19742004-10-26  Derek Price  <derek@ximbiot.com>
1975
1976	Call all exit handlers via atexit() & exit().  Signal handlers exit().
1977	Eliminates a compiler warning.
1978
1979	* exithandle.c (cleanup_register): Don't register a signal handler.
1980	Register a function to block signals before the exit handler is called.
1981	* lock.c (Lock_Cleanup): Remove never_run_again cruft and assoc. cmts.
1982	* rcs.c (rcs_cleanup), server.c (server_cleanup): Ditto, plus assume
1983	signals are blocked.
1984	* main.c (main_cleanup): Declare noreturn attribute.
1985
19862004-10-26  Derek Price  <derek@ximbiot.com>
1987
1988	* gssapi-client.c (connect_to_gserver): Avoid truncating error messages
1989	from the GSSAPI server.
1990	(Report from Dan Peterson <dbpete@aol.com>.)
1991
19922004-10-26  Derek Price  <derek@ximbiot.com>
1993
1994	* sanity.sh (import-quirks): Test an even branch number.
1995
19962004-10-25  Derek Price  <derek@ximbiot.com>
1997
1998	* import.c (import): Repair regex for regressions introduced in last
1999	commit.
2000	* sanity.sh (import-quirks): Test a few branch numbers import shouldn't
2001	have a problem with.
2002
20032004-10-25  Mark D. Baushke  <mdb@cvshome.org>
2004
2005	* sanity.sh (modes3): Quiet rsync messages in proxy mode when
2006	permissions are removed. They are expected and not a problem here.
2007
20082004-10-25  Derek Price  <derek@ximbiot.com>
2009
2010	* import.c (import): Anchor and simplify branch verification regex.
2011	* sanity.sh (import-quirks): Test another pattern that should fail.
2012
20132004-10-25  Derek Price  <derek@ximbiot.com>
2014
2015	* cvs.h (yesno): Remove prototype.
2016	* edit.c, release.c: Include yesno.h.  Flush output before calling
2017	yesno().
2018
20192004-10-25  Mark D. Baushke  <mdb@cvshome.org>
2020
2021	* sanity.sh (tagdate): Added some additional tests and FIXCVS
2022	comments for dealing properly with a 'cvs add' of a file to
2023	a branch that already exists on the mainline.
2024	(Problem reported by Renny Barrett <rbarrett@curamsoftware.com>.)
2025
2026	* sanity.sh (getrlogdate): New shell function.
2027	(tagdate-{13,14,16}): Use it to avoid 'sleep 60' by using
2028	the exact 1.1.4.1 timestamp for tagdate-14 and tagdate-16.
2029
20302004-10-25  Derek Price  <derek@ximbiot.com>
2031
2032	* sanity.sh (depends_on_rsync): Redirect rsync output to /dev/null when
2033	just testing.
2034
20352004-10-23  Mark D. Baushke  <mdb@cvshome.org>
2036
2037	* socket-client.c (socket_buffer_initialize): Drop obsolete
2038	arguments to buf_initialize().
2039
20402004-10-22  Mark D. Baushke  <mdb@cvshome.org>
2041
2042	* client.c (handle_m, handle_e): Winsock is returning
2043	SOCK_ERRNO == WSAENOTSOCK for select() problems and not
2044	setting errno. Do not bother with printing an error from a
2045	select() that is not returning an non-zero errno.
2046	(Report from Conrad T. Pino <Conrad@Pino.com>.)
2047
20482004-10-22  Mark D. Baushke  <mdb@cvshome.org>
2049
2050	* sanity.sh (proxy): proxycheck depends on rsync, but skip all if
2051	no rsync is found rather than generate an error return.
2052
20532004-10-22  Mark D. Baushke  <mdb@cvshome.org>
2054
2055	* Makefile.am (proxycheck): New test target.
2056	* sanity.sh: Keep one more level of check.log backup.
2057	* Makefile.in: Regenerated.
2058
20592004-10-22  Derek Price  <derek@ximbiot.com>
2060
2061	* client.c, update.c: Use new MD5 interface.
2062
20632004-10-22  Mark D. Baushke  <mdb@cvshome.org>
2064
2065	* sanity.sh (find_tool): Search /usr/pkg/bin for NetBSD tools
2066	like rsync.
2067
20682004-10-22  Mark D. Baushke  <mdb@cvshome.org>
2069
2070	* sanity.sh (tagdate): Fix typo.
2071
20722004-10-21  Derek Price  <derek@ximbiot.com>
2073
2074	* subr.c: #include vasnprintf.h to avoid compiler warning.
2075
20762004-10-21  Derek Price  <derek@ximbiot.com>
2077
2078	* cvs.h (error_use_protocol): Move decl here from lib/error.h so that
2079	we may use an unforked error.h from GNULIB.
2080
20812004-10-21  Derek Price  <derek@ximbiot.com>
2082
2083	* main.c: #include strftime.h.
2084	(format_time_t, gmformat_time_t): Supply missing args to my_strftime.
2085
20862004-10-21  Derek Price  <derek@ximbiot.com>
2087
2088	* buffer.c: Don't maintain last_index & last_count for buffers.
2089	* buffer.h (struct buffer): Update struct.
2090	(buf_initialize): Update proto.
2091	* log-buffer.c, ms-buffer.c, zlib.c: Update all callers.
2092
20932004-10-21  Derek Price  <derek@ximbiot.com>
2094
2095	* sanity.sh: Fail gracefully in proxy mode when rsync is defective.
2096	(depends_on_rsync): New function.
2097	(writeproxy, writeproxy-noredirect, writeproxy-ssh): Skip these tests
2098	gracefully when rsync is missing.
2099
21002004-10-21  Mark D. Baushke  <mdb@cvshome.org>
2101
2102	* add.c (add): Pay attention to cvswrite mode when resurrecting a
2103	file that was not yet committed.
2104	(Report from Frank Hemer <frank@hemer.org>.)
2105	* sanity.sh (resurrection): Add new tests to deal with read-only
2106	mode on a cvs add durring a resurrection. Verify that -r is not
2107	honored when the resurrected file must be committed to be seen.
2108
21092004-10-21  Derek Price  <derek@ximbiot.com>
2110
2111	* ls.c (ls_fileproc): Deal with files specified on the command line.
2112	(ls_delproc): Move to a more accessible location.
2113
21142004-10-20  Derek Price  <derek@ximbiot.com>
2115
2116	* add.c (add): Avoid unnecessary typecast.
2117
21182004-10-20  Mark D. Baushke  <mdb@cvshome.org>
2119
2120	* Makefile.in: Regenerate for new configure.in.
2121
21222004-10-19  Mark D. Baushke  <mdb@cvshome.org>
2123
2124	* add.c (add): Backout last typecasts cleanup.
2125
21262004-10-19  Derek Price  <derek@ximbiot.com>
2127
2128	* add.c (add): Avoid attempting to resurrect a dead rev 1.1.
2129	* sanity.sh (resurrection): Add test for the above.
2130	(Report from Dan Peterson <dbpete@aol.com>.)
2131
21322004-10-19  Derek Price  <derek@ximbiot.com>
2133
2134	* add.c (add): Avoid unnecessary typecasts.
2135
21362004-10-19  Derek Price  <derek@ximbiot.com>
2137
2138	* cvs.h: Prototype new function.
2139	* subr.c (Xasnprintf): New function.
2140	* root.c (primary_root_translate, primary_root_inverse_translate):
2141	s/asnprintf/Xasnprintf/.
2142	* client.c (connect_to_pserver): Store line length for efficiency.
2143
21442004-10-19  Derek Price  <derek@ximbiot.com>
2145
2146	* history.c: Remove unecessary typecasts.  Some reformatting.
2147
21482004-10-18  Derek Price  <derek@ximbiot.com>
2149
2150	* server.c (serve_modified): Eliminate >= 0 check since size_t may not
2151	be negative.
2152	(Originally reported by Martin Neitzel <neitzel@sco.gaertner.de>.)
2153
21542004-10-18  Derek Price  <derek@ximbiot.com>
2155
2156	* cvs.h (DEVNULL): This is system dependant.  Move it to lib/system.h.
2157	* client.c (copy_a_file): Consolidate USE_VMS_FILENAMES stuff under a
2158	single #ifdef.
2159
21602004-10-15  Derek Price  <derek@ximbiot.com>
2161
2162	* cvs.h: Don't include vasnprintf.h.
2163	(Xasprintf): New prototype.
2164	* client.c, edit.c, history.c, import.c, ls.c, main.c, parseinfo.c,
2165	recurse.c, release.c, repos.c, root.c, server.c, status.c, subr.c,
2166	vers_ts.c: s/asnprintf/Xasprintf/.
2167	* root.c: Include vasnprintf.h.
2168	(primary_root_translate, primary_root_inverse_translate): Use
2169	asnprintf() properly.
2170	* subr.c: Include vasprintf.h.
2171	(Xasprintf): New function.
2172
21732004-10-14  Derek Price  <derek@ximbiot.com>
2174
2175	* import.c (import): Remove an unecessary level of nesting.  Simplify
2176	xmalloc/sprintf with asnprintf.  Remove useless comment.
2177
21782004-10-14  Derek Price  <derek@ximbiot.com>
2179
2180	* import.c (import): Verify branch specifications more thoroughly.
2181	* sanity.sh (importb): Adapt to new error message.
2182	(import-quirks): New test.
2183
21842004-10-14  Mark D. Baushke  <mdb@cvshome.org>
2185
2186	* server.c (server_pause_check, do_cvs_command, server_cleanup):
2187	Avoid typecasts.
2188
21892004-10-14  Derek Price  <derek@ximbiot.com>
2190
2191	* gssapi-client.c: Use new size_t buffer APIs.
2192
21932004-10-11  Mark D. Baushke  <mdb@cvshome.org>
2194
2195	* buffer.h, buffer.c (buf_output, buf_input_data, buf_read_line,
2196	buf_read_data, struct packetizing_buffer,
2197	packetizing_buffer_initialize) Use size_t instead of int.
2198	Silences warnings in buffer.c, server.c, and zlib.c on OpenBSD
2199	sparc64 where sizeof(int) is not the same as sizeof(size_t).
2200	* client.c (read_line_via, read_line, try_read_from_server,
2201	get_server_response, handle_ok, handle_error,
2202	handle_valid_requests, handle_checked_in, handle_new_entry,
2203	handle_checksum, handle_copy_file, handle_updated, handle_merged,
2204	handle_patched, handle_rcs_diff, handle_removed,
2205	handle_remove_entry, handle_set_static_directory,
2206	handle_clear_static_directory, handle_set_sticky,
2207	handle_clear_sticky, handle_clear_template,
2208	handle_module_expansion, handle_wrapper_rcs_option, handle_m,
2209	handle_e, handle_f, handle_notified): Ditto
2210	* client.h (struct response): Ditto.
2211	* server.c (receive_partial_file, receive_file, serve_modified,
2212	do_cvs_command): Ditto.
2213	* zlib.c (compress_buffer_input, compress_buffer_shutdown_input):
2214	Ditto.
2215	(Patch from Alexander Taler <dissent@cvshome.org>.)
2216
22172004-10-08  Derek Price  <derek@ximbiot.com>
2218
2219	* client.c (send_args): Carry through a const to silence gcc -Wall.
2220	* hardlink.c (delhardlist): New function.
2221	(lookup_file_by_inode): Use new function as delproc since it should
2222	work.  Carry through a const to silence gcc -Wall.
2223	* ms-buffer.c (ms_buffer_initialize): Use a working delproc.
2224
22252004-10-08  Derek Price  <derek@ximbiot.com>
2226
2227	* client.c (open_connection_to_server, close_connection_to_server,
2228	handle_redirect): Add traces.
2229
22302004-10-07  Derek Price  <derek@ximbiot.com>
2231
2232	* Makefile.am (cvs_SOURCES): Add parseinfo.h.
2233
22342004-10-07  Mark D. Baushke  <mdb@cvshome.org>
2235
2236	* vers_ts.c (entries_time): Use size_t pointers. sizeof(int)
2237	may not be the same as sizeof(size_t) on OpenBSD sparc64.
2238	(Patch from Alexander Taler <dissent@cvshome.org>.)
2239
2240	* wrapper.c (wrap_clean_fmt_str): Make static.
2241
22422004-10-07  Mark D. Baushke  <mdb@cvshome.org>
2243
2244	* client.h (struct response): Make name a const.
2245	* cvs.h (RETSIGTYPE): Use a full prototype.
2246	* hash.h (struct node): Use a full prototype for delproc.
2247
2248	* client.c (send_arg, send_option_string, option_with_arg): Make
2249	args of function const.
2250	* client.h (send_arg, send_option_string, option_with_arg): Ditto.
2251
2252	* checkout.c (checkout): Make valid_options const.
2253
22542004-10-06  Derek Price  <derek@ximbiot.com>
2255
2256	* release.h: Silence gcc -Wall.
2257
22582004-10-06  Derek Price  <derek@ximbiot.com>
2259
2260	* cvs.h: Move include of getopt.h to system.h with similar headers.
2261
22622004-10-06  Derek Price  <derek@ximbiot.com>
2263
2264	* login.c: Include getpass.h.
2265
22662004-10-06  Derek Price  <derek@ximbiot.com>
2267
2268	* cvs.h: Include strcase.h.
2269	(cvs_casecmp): remove proto.
2270	* subr.c (cvs_casecmp): Remove function.
2271	* parseinfo.c: s/cvs_casecmp/strcasecmp/.
2272
22732004-10-06  Derek Price  <derek@ximbiot.com>
2274
2275	* cvs.h: Move getopt.h and regex.h into the GNULIB include section.
2276
22772004-10-06  Derek Price  <derek@ximbiot.com>
2278
2279	* main.c (cmds): Release calls unedit, to it modifies the repository.
2280	(struct cmd): Add const and full prototype where needed.
2281	* sanity.sh (edit-check): Use modify_repo where needed.
2282	(release): No more special case for release in proxy mode.
2283	(Patch from Mark D. Baushke  <mdb@cvshome.org>.)
2284
2285	* release.c (release): Simplify login in if statement.
2286
22872004-10-06  Derek Price  <derek@ximbiot.com>
2288
2289	* client.c (send_file_names): Back out broken portion of previous
2290	change.
2291
22922004-10-06  Derek Price  <derek@ximbiot.com>
2293
2294	* client.c (call_in_directory): Make args of function arg const.
2295	* client.h, client.c, edit.h, edit.c, server.h, zlib.c: Carry change
2296	through to called functions and functions passed in as args.
2297
22982004-10-06  Derek Price  <derek@ximbiot.com>
2299
2300	* checkout.c, commit.c, edit.c, rcs.c: Avoid typecasts.  Some
2301	reformatting.
2302
23032004-10-06  Derek Price  <derek@ximbiot.com>
2304
2305	* client.c: Avoid more typecasts.  Some reformatting.
2306
23072004-10-06  Mark D. Baushke  <mdb@cvshome.org>
2308
2309	* client.c (send_file_names): Use new save-cwd API.
2310	(connect_to_pserver): Use a union to avoid incompatible pointer
2311	type warnings.
2312
23132004-10-05  Derek Price  <derek@ximbiot.com>
2314
2315	* cvs.h (Xstrdup): New proto mapped via define to xstrdup.
2316	* subr.c (Xstrdup): New function.
2317
23182004-10-05  Derek Price  <derek@ximbiot.com>
2319
2320	* add.c, client.c, history.c, import.c, mkmodules.c, modules.c,
2321	recurse.c, release.c, tag.c, update.c: Use new save-cwd API.
2322
23232004-10-05  Derek Price  <derek@ximbiot.com>
2324
2325	* checkout.c, client.c, commit.c, create_adm.c, cvs.h, filesubr.c,
2326	hardlink.c, history.c, logmsg.c, main.c, recurse.c, update.c:
2327	s/xgetwd/xgetcwd/.
2328
23292004-10-04  Derek Price  <derek@ximbiot.com>
2330
2331	* client.c (responses): Add "Edit-file".
2332	(handle_edit_file): New function.
2333	* commit.c (usage): Add -c option.
2334	(check_fileproc): Check for edit when requested.
2335	(commit_fileproc): Use new notify_do API.
2336	* edit.c (check_edited): New global.
2337	(setting_tedit, setting_tunedit, setting_tcommit): s/int/bool/.
2338	(ncheck_fileproc): Use new notify_do API.
2339	(send_notifications): Remove redundant proto.  Remove unnecessary
2340	repository lock.
2341	(editors_output, find_editors_and_output, edit_file): New functions.
2342	edit_file() factored from...
2343	(edit_fileproc): ...here.  Skip files with existing editors when
2344	requested.
2345	(usage): Add -c and -f.
2346	(edit): Handle new -c and -f options.
2347	(notify_do): Accept update_dir as an argument for user messages.
2348	(editors_fileproc): Factor most content to find_editors_and_output()
2349	and edit_file().
2350	* edit.h (notify_do): Proto new API.
2351	(editors_output, edit_file): New functions.
2352	* rcs.c (RCS_unlock): Use new notify_do() API.
2353	* sanity.sh: Update assorted tests to compensate for new output.
2354	(edit-check): New tests.
2355	* server.c (gupdate_dir): New global.
2356	(struct notify_note): Keep track of update_dir.
2357	(serve_notify): Use update_dir.
2358	(serve_hostname, serve_localdir, serve_edit, server_edit_file): New
2359	functions.
2360	(server_notify): Use new notify_do() API.
2361	(requests): Add Hostname, LocalDir, and edit.
2362	* server.h (server_edit_file): New proto.
2363	(Note: Original design of new advisory lock behavior came from Noel Yap
2364	<yap_noel@yahoo.com>'s original advisory locks patch, originally ported
2365	forward and enhanced by Matthew Ogilvie <mmo9317bd@mailcan.com>.)
2366
23672004-10-04 Derek Price <derek@ximbiot.com>
2368
2369	* admin.c (postadmin_proc), edit.c (notify_proc), fileattr.c
2370	(postwatch_proc), logmsg.c (logfile_write, verifymsg_proc), server.c
2371	(prepost_proxy_proc), tag.c (pretag_proc, posttag_proc): Pass referrer
2372	to called scripts when possible.
2373	* client.c (handle_redirect): Save the original server.
2374	(start_server): Send referrer to the new server if possible.
2375	* sever.c (referrer): New global.
2376	(serve_referrer): Save referrer.
2377	(requests): Add "Referrer" response.
2378	* server.h (referrer): Add extern decl.
2379	* sanity.sh (ssh-wrapper): Use in remote mode too.
2380	(writeproxy-ssh): New tests.
2381
23822004-10-04 Derek Price <derek@ximbiot.com>
2383
2384	* cvs.h (CVSROOT_DFLT): Undef rather than defining to NULL.
2385	* main.c (main): Untangle parsing of CVSROOT, eliminating several
2386	variables in the process.  Simplify xmalloc/sprintf with asnprintf.
2387
23882004-10-04 Derek Price <derek@ximbiot.com>
2389
2390	* root.c (primary_root_translate, primary_root_inverse_translate,
2391	get_local_root_dir, local_cvsroot): Simplify logic without proxy
2392	support.
2393
23942004-10-02  Mark D. Baushke  <mdb@cvshome.org>
2395
2396	* root.c (primary_root_translate, primary_root_inverse_translate,
2397	get_local_root_dir): Protect PrimaryServer with #ifdef
2398	PROXY_SUPPORT
2399
24002004-10-01  Mark D. Baushke  <mdb@cvshome.org>
2401
2402	* main.c (main): Initialize CVSroot before it is used.
2403	(Report and patch by Martin Neitzel <neitzel@sco.gaertner.de>.)
2404	* sanity.sh (status): Test it.
2405
24062004-10-01  Derek Price <derek@ximbiot.com>
2407
2408	* checkout.c (checkout_proc), fileattr.c (fileattr_read), find_names.c
2409	(Find_Names), myndbm.c (mydbm_open, mydbm_load_file), parseinfo.c
2410	(Parse_Info), rcs.c (RCS_parsercsfile_i, rcsbuf_getkey,
2411	rcsbuf_getrevnum, rcsbuf_valword): Root translation functions no longer
2412	allocate.
2413	* commit.c (commit): Use send_a_repository rather than reimplementing.
2414	* main.c (main): Remove --primary-root option.
2415	* root.c (primary_root_add): Remove this function.
2416	(primary_root_in, primary_root_out): Remove globals.
2417	(primary_root_translate, primary_root_inverse_translate): Return const.
2418	Don't allocate return value.  Rely on parsed root and confg's
2419	PrimarServer rather than separately maintained globals.
2420	(get_local_root_dir): New function.
2421	(local_cvsroot): Translate requests for primary roots when necessary.
2422	* root.h (primary_root_add, primary_root_translate,
2423	primary_root_inverse_translate): Update protos to match.
2424	* sanity.sh (top level, writeproxy): Simplify $proxy setup.
2425	(client): Don't execute $proxy.  Simplify skips and reindent.
2426	(writeproxy-noredirect): Use --allow-root in place of --primary-root.
2427	Save and restore $PRIMARY_CVSROOT*.
2428	* server.c (serve_root): Rely on local_cvsroot() to do any necessary
2429	root translation.
2430	(serve_directory): Root translation functions no longer allocate.
2431
24322004-10-01  Derek Price <derek@ximbiot.com>
2433
2434	* client.c (arg_should_not_be_sent_to_server), create_adm.c
2435	(Create_Admin), recurse.c (start_recursion, do_recursion, do_dir_proc),
2436	release.c (release), repos.c (Name_Repository, Short_Repository),
2437	update.c (update_filesdone_proc):
2438	s/original_root/original_parsed_root->MEMBER/.
2439	* main.c (set_root_directory): Set original_parsed_root when setting
2440	current_parsed_root.
2441	(main): s/original_root/original_parsed_root->MEMBER/.
2442	* root.c (original_root): Make cvsroot_t and rename to...
2443	(original_parsed_root): ...this.
2444	* root.h: Update extern decl to match.
2445	* server.c (serve_root): Set original_parsed_root.
2446
24472004-10-01  Derek Price <derek@ximbiot.com>
2448
2449	* server.c (serve_questionable): Use pending errors per API.
2450
24512004-10-01  Derek Price <derek@ximbiot.com>
2452
2453	* repos.c (Name_Repository): asnprintf, not sprintf.
2454
24552004-10-01  Derek Price <derek@ximbiot.com>
2456
2457	* sanity.sh (ignore-11r): Rename second occurance to...
2458	(ignore-11ar): ...this.
2459
24602004-10-01  Derek Price <derek@ximbiot.com>
2461
2462	* sanity.sh (1): Rename to...
2463	(init-1): ...this.
2464
24652004-10-01  Derek Price <derek@ximbiot.com>
2466
2467	* repos.c (Name_Repository): Simplify string construction with
2468	asnprintf().  Improve comment.  Some reformatting.
2469
24702004-10-01  Derek Price <derek@ximbiot.com>
2471
2472	* release.c (release): Simplify string construction with asnprintf().
2473
24742004-10-01  Derek Price <derek@ximbiot.com>
2475
2476	* recurse.c (do_file_proc): Improve header comment.  Replace
2477	xmalloc()/strcat() combination with asnprintf().
2478
24792004-09-29  Derek Price <derek@ximbiot.com>
2480
2481	* sanity.sh (config): Handle $SECONDRY_ROOT_DIRNAME output in $proxy
2482	mode.
2483
24842004-09-29  Mark D. Baushke  <mdb@cvshome.org>
2485
2486	* sanity.sh: Workaround MacOS X '/bin/ls' is not returning false
2487	when no files are listed.  Label some old tests.
2488
24892004-09-29  Derek Price <derek@ximbiot.com>
2490
2491	* cvs.h: Include parseinfo.h.
2492	(top_level_admin, UseNewInfoFmtStrings,
2493	ImportNewFilesToVendorBranchOnly, PrimaryServer, MaxProxyBufferSize,
2494	MaxCommentLeaderLength, UseArchiveCommentLeader, RereadLogAfterVerify,
2495	lock_dir, UserAdminOptions):  Move extern decls for global config opts
2496	to config struct in parseinfo.h.
2497	(config): New global.
2498	(parse_config): Move proto to...
2499	* parseinfo.h: This new file.
2500	* parseinfo.c (parse_config): Return struct config.
2501	(new_config): New function.
2502	* admin.c: Remove global UserAdminOptions.
2503	(admin): Don't check config on client.
2504	* checkin.c (Checkin), checkout.c (checkout_proc), filesubr.c (xchmod),
2505	import.c (import, add_rcs_file, expand_and_copy_contents):
2506	Use config instead
2507	of globals.  Some reformatting.
2508	* history.c (logHistory): Move to struct config.
2509	(history_write): Use config instead of globals.
2510	* lock.c (lock_dir): Move global to struct config.
2511	(lock_name): Use config instead of globals.
2512	* logmsg.c (RereadLogAfterVerify): Move global to struct config.
2513	(do_verify, logfile_write, verifymsg_proc): Prefer config to globals.
2514	* main.c (top_level_admin, UseNewInfoFmtStrings, PrimaryServer,
2515	MaxProxyBufferSize, MaxCommentLeaderLength, UseArchiveCommentLeader,
2516	ImportNewFilesToVendorBranchOnly): Move globals to struct config.
2517	(config): New global.
2518	(main): Use new parse_config API.
2519	* rcs.c (preserve_perms, keywords): Move globals to struct config.
2520	(keyword_local): Move to struct rcs_keyword.
2521	(new_keywords, free_keywords): New functions.
2522	(expand_keywords, RCS_setlocalid, RCS_setincexc): Prefer config to
2523	globals.
2524	* rcs.h (free_keywords): New proto.
2525	(RCS_setincexc, RCS_setlocalid): Accept opaque keywords element.
2526	* root.c (delconfig, get_root_allow_config): New functions.
2527	* root.h (get_root_allow_config): New proto.
2528	* server.c (system_auth): Move global to struct config.
2529	(isProxyServer, become_proxy, serve_command_prep): Prefer config to
2530	globals.
2531	(serve_root): Ditto.  Set config.
2532	* server.h (system_auth): Move extern decl for global moved to config.
2533
25342004-09-29  Derek Price <derek@ximbiot.com>
2535
2536	* history.h: Protect against multiple include.
2537
25382004-09-29  Derek Price <derek@ximbiot.com>
2539
2540	* root.c (root_allow_count, root_allow_vector, root_allow_size):
2541	Replace with...
2542	(root_allow): ...this single List *.
2543	(root_allow_add, root_allow_free, root_allow_ok): Use new List API.
2544	Make args const.  Return bool rather than int when necessary.
2545	* root.h (root_allow_add, root_allow_ok): Update protos to match.
2546
25472004-09-29  Derek Price <derek@ximbiot.com>
2548
2549	* admin.c (admin): s/int/bool/ as appropriate.  Some reformatting.
2550
25512004-09-29  Derek Price <derek@ximbiot.com>
2552
2553	* history.c (history_write): Use asnprintf().  Some reformatting.
2554
25552004-09-29  Derek Price <derek@ximbiot.com>
2556
2557	* import.c (killnew): s/int/bool/.
2558	(add_rcs_file): Ditto for do_killnew.
2559	* rcs.h (add_rcs_file): Change proto to match.
2560
25612004-09-29  Derek Price <derek@ximbiot.com>
2562
2563	* client.c (start_server): Use bool in place of int.
2564
25652004-09-29  Derek Price <derek@ximbiot.com>
2566
2567	* subr.c (cvs_trace): Correct header comment.  Some reformatting.
2568
25692004-09-28  Mark D. Baushke  <mdb@cvshome.org>
2570
2571	* sanity.sh (ssh-wrapper-env): New script to avoid the assumption
2572	that the remote end of a $CVS_RSH is running a bourne shell.
2573	(ssh-wrapper): Use it.
2574
25752004-09-28  Derek Price <derek@ximbiot.com>
2576
2577	* sanity.sh (writeproxy): Remove some setup obsoleted by redirects.
2578
25792004-09-27  Derek Price <derek@ximbiot.com>
2580
2581	Use original_root for client comparisons with CVS/Root since
2582	current_parsed_root may be the product of a redirect.
2583
2584	* client.c (handle_redirect): Don't free current_parsed_root.  Validate
2585	new roots.
2586	(args_should_not_be_sent_to_server):
2587	s/current_parsed_root->original/original_root/.
2588	* create_adm.c (Create_Admin): Likewise.
2589	* cvs.h (current_parsed_root): Move extern decl...
2590	* root.h: ...here.  Decl original_root extern.
2591	* main.c (set_root_directory): Store original_root.
2592	(main): s/current_parsed_root->original/original_root/.
2593	* recurse.c, release.c, update.c: Likewise.
2594	* root.c: Declare original_root.
2595
25962004-09-24  Derek Price <derek@ximbiot.com>
2597
2598	* sanity.sh (parseroot2): Correct two test names.  Restore CVSROOT.
2599
26002004-09-24  Derek Price <derek@ximbiot.com>
2601
2602	* root.c (parse_cvsroot): Use TRACE_FLOW, not TRACE_FUNCTION since this
2603	routine is called repeatedly by the recursion routines.
2604	* sanity.sh (multiroot2): Adjust to compensate.
2605
26062004-09-24  Derek Price <derek@ximbiot.com>
2607
2608	* sanity.sh (parseroot2): Use remoteonly.
2609
26102004-09-24  Derek Price <derek@ximbiot.com>
2611
2612	* sanity.sh (tests): Add parseroot2.
2613
26142004-09-24  Derek Price <derek@ximbiot.com>
2615
2616	* recurse.c (do_recursion, do_dir_proc): Make process_this_directory a
2617	boolean.
2618
26192004-09-24  Derek Price <derek@ximbiot.com>
2620
2621	* sanity.sh (parseroot2): New test for root parsing consistency.
2622	(Original patch from Alexander Taler <dissent@cvshome.org>.)
2623
2624	* cvs.h (Name_Root, free_cvsroot_t, parse_cvsroot, local_cvsroot,
2625	Create_Root, root_allow_add, root_allow_free, root_allow_ok): Move
2626	these protos to...
2627	* root.h: ...here.
2628	* client.c (arg_should_not_be_sent_to_server), recurse.c
2629	(start_recusrion, do_recursion): Use new Name_Root API.
2630	* main.c (current_root): Remove global.
2631	(set_root_directory): Set current_parsed_root directly.
2632	(main): Use new Name_Root API.  Restore deletion of root directories
2633	list.
2634	* root.c (Name_Root): Return a parsed cvsroot_t rather than a string.
2635
26362004-09-24  Mark D. Baushke  <mdb@cvshome.org>
2637
2638	* buffer.c (buf_append_buffer): Fix typo in comment.
2639
26402004-09-23  Mark D. Baushke  <mdb@cvshome.org>
2641
2642	* buffer.c (buf_read_file): Fix typo in comment.
2643	(buf_read_file_to_eof): Ditto.
2644	* server.c (serve_command_prep): Ditto.
2645
26462004-09-23  Derek Price <derek@ximbiot.com>
2647
2648	* sanity.sh (depends_on_ssh, sshstdio): Don't use skip() to skip
2649	remote-only tests.
2650
26512004-09-23  Derek Price <derek@ximbiot.com>
2652
2653	* sanity.sh (crerepos, sshstdio): Minor modifications to make use of
2654	the new depends_on_?sh API.
2655
26562004-09-23  Derek Price <derek@ximbiot.com>
2657
2658	* sanity.sh: Accept new -e option to interpret non-fatal calls to skip
2659	as errors.
2660	(skip, depends_on_rsh, depends_on_ssh): New functions.
2661
26622004-09-23  Mark D. Baushke  <mdb@cvshome.org>
2663
2664	* server.c (cvs_output, cvs_output_binary): fflush (stderr)
2665	here to avoid problems with 'cvs status 2>&1'.
2666	(Report by Frank Hemer <frank@hemer.org>.)
2667
26682004-09-17  Derek Price  <derek@ximbiot.com>
2669
2670	* buffer.c, buffer.h, log-buffer.c, log-buffer.h, main.c, mkmodules.c,
2671	parseinfo.c, server.c: Remove TRUST_OS_FILE_CACHE.
2672
26732004-09-17  Derek Price  <derek@ximbiot.com>
2674
2675	* buffer.c (fd_set_block): Ignore FreeBSD /dev/null problem.
2676
26772004-09-17  Derek Price  <derek@ximbiot.com>
2678
2679	* cvs.h (strip_trailing_slashes): Remove proto in favor of including
2680	dirname.h from GNULIB.
2681	* sever.c (dir_name): Rename to...
2682	(gDirname): ...this to avoid conflicts with the GNULIB function.
2683
26842004-09-16  Derek Price  <derek@ximbiot.com>
2685
2686	* expand_path.c (expand_path): Silence `gcc -Wall'.  Reformat some
2687	comments to fit in 80 characters.
2688
26892004-09-15  Derek Price  <derek@ximbiot.com>
2690
2691	* sanity.sh (sync-secondary, writeproxy, writeproxy-noredirect): Remove
2692	redundant checks for $RSYNC readability.
2693
26942004-09-15  Derek Price  <derek@ximbiot.com>
2695
2696	* sanity.sh: Only find $RSYNC once.
2697
26982004-09-15  Derek Price  <derek@ximbiot.com>
2699
2700	* sanity.sh (writeproxy, writeproxy-noredirect): Find $RSYNC in a
2701	portable manner.
2702
27032004-09-15  Mark D. Baushke  <mdb@cvshome.org>
2704
2705	* sanity.sh: Find $RSYNC in a portable manner.
2706
27072004-09-15  Derek Price  <derek@ximbiot.com>
2708
2709	* parseinfo.c (parse_config): Complete parsing of the remainder of the
2710	config file when errors are encountered.  Accept and ignore
2711	UseNewInfoFmtStrings=yes when !SUPPORT_OLD_INFO_FMT_STRINGS.
2712
27132004-09-15  Derek Price  <derek@ximbiot.com>
2714
2715	* buffer.c (buf_copy_data): Pass args to buf_append_data correctly.
2716
27172004-09-15  Derek Price  <derek@ximbiot.com>
2718
2719	* sanity.sh: Set $RSYNC in proxy mode.
2720
27212004-09-15  Derek Price  <derek@ximbiot.com>
2722
2723	* main.c: Fix typo in comment.
2724
27252004-09-15  Derek Price  <derek@ximbiot.com>
2726
2727	* rcs.c: s/abort/assert/.  Reformat function headers.  Remove
2728	unnecessary typecasts & prototypes.
2729
27302004-09-14  Mark D. Baushke  <mdb@cvshome.org>
2731
2732	* parseinfo.c (readBool): Remove dead code.
2733
2734	* filesubr.c (cvs_casecmp): Move to...
2735	* subr.c (cvs_casecmp): ...here.
2736	* cvs.h (cvs_casecmp): No longer ifdef under SERVER_SUPPORT
2737
2738	* parseinfo.c (readBool): Return false when there was no boolean
2739	found.
2740
27412004-09-14  Derek Price  <derek@ximbiot.com>
2742
2743	* cvs.h (top_level_admin, ImportNewFilesToVendorBranchOnly):
2744	s/int/bool/.
2745	(MaxCommentLeaderLength, UseArchiveCommentLeader): New vars.
2746	* main.c: Ditto, for all four vars above.
2747	* mkmodules.c (config_contents): Add default info for
2748	MaxCommentLeaderLength & UseArchiveCommentLeader.
2749	* parseinfo.c (readBool, readSizeT): New functions.
2750	(parse_info): Use new functions.  Parse MaxCommentLeaderLength &
2751	UseArchiveCommentLeader.
2752	* rcs.c (expand_keywords): Limit the size of the comment leader to
2753	MaxCommentLeaderLength & fall back to the comment leader specified in
2754	the RCS archive when requested.
2755	(preserve_perms): s/int/bool/.
2756	* rcs.h (preserve_perms), server.c (system_auth), server.h
2757	(system_auth): Likewise.
2758	* sanity.sh (keywordlog): Add new tests for the above.
2759
27602004-09-12  Mark D. Baushke  <mdb@cvshome.org>
2761
2762	* rcs.c (RCS_checkout): Allow noexec to do checkouts when
2763	server_active is true.
2764	* sanity.sh (join7): Test above change (fixes a FIXCVS).
2765
27662004-09-09  Derek Price  <derek@ximbiot.com>
2767
2768	* buffer.c (stuct packetizing_buffer): Use size_t & bool as appropriate
2769	in preference to int.
2770	(packetizing_buffer_output): s/int/size_t/ as appropriate.
2771
27722004-09-09  Derek Price  <derek@ximbiot.com>
2773
2774	* buffer.c (packetizing_buffer_input): s/int/size_t/ as appropriate.
2775
27762004-09-09  Mark D. Baushke  <mdb@cvshome.org>
2777
2778	* root.c (primary_root_inverse_translate): No longer inline.
2779
27802004-09-09  Conrad T. Pino  <Conrad@Pino.com>
2781
2782	* server.c: Add comment before #if at line 5580 to move it further
2783	into the file which seems to work around an apparent buffer managment
2784	bug in Microsoft Visual C++ 6.0 compiler.
2785
27862004-09-08  Mark D. Baushke  <mdb@cvshome.org>
2787
2788	* sanity.sh (join7): Fix if-then-else conditional.
2789
2790	* sanity.sh (join7): Re-order join7-5 and join7-6 tests.
2791
27922004-09-08  Conrad T. Pino  <Conrad@Pino.com>
2793
2794	* server.c: Remove extra token in conditional compile line 5580
2795	causing error in Windows Visual C++ 6.0 compile.
2796
27972004-09-08  Mark D. Baushke  <mdb@cvshome.org>
2798
2799	* buffer.c (fd_buffer_block): Protect fcntl calls when F_GETFL,
2800	O_NONBLOCK and F_SETFL are not available.
2801	* server.c (move_file_offset): Ditto.
2802	(set_nonblock_fd): Ditto.
2803
2804	* buffer.c (packetizing_buffer_input): Use size_t rather than int.
2805	(struct packetizing_buffer): Ditto.
2806
28072004-09-07  Mark D. Baushke  <mdb@cvshome.org>
2808
2809	* server.c (server_updated): Deal with cvs -n update -jt1 -jt2
2810	"protocol error: uncounted data discarded" problem.
2811	* sanity.sh (join7): New test for this case.
2812
28132004-09-04  Derek Price  <derek@ximbiot.com>
2814
2815	* socket-client.c (socket_client_initialize): Pass new args to
2816	buf_initialize.
2817
28182004-09-04  Derek Price  <derek@ximbiot.com>
2819
2820	Silence `gcc -Wall'.
2821
2822	* buffer.c (buf_initialize): Remove unnecessary typecasts by using
2823	size_t instead of int or bool as args.
2824	* buffer.c, import.c, log-buffer.c, ms-buffer.c, zlib.c: Change all
2825	callers.
2826	* buffer.h, cvs.h: Update protos.
2827	* client.c, ls.c, main.c, rcs.c, root.c, server.c: Remove unused vars,
2828	add parens, as requested by `gcc -Wall'.
2829
28302004-09-04  Mark D. Baushke  <mdb@cvshome.org>
2831
2832	* sanity.sh (writeproxy-noredirect): Between "Set" and
2833	"expand-modules" are the optional Kerberos-encrypt, Gssapi-encrypt
2834	and Gssapi-authenticate entries. Use ${DOTSTAR} to deal with
2835	these optionally configured requests.
2836
28372004-09-04  Mark D. Baushke  <mdb@cvshome.org>
2838
2839	* import.c (expand_at_signs): Typecasting for fwrite results.
2840	* log-buffer.c (log_buffer_input, log_buffer_output,
2841	log_buffer_initialize): Ditto.
2842
2843	* log-buffer.c (log_buffer_initialize): Protect reference to
2844	fatal_errors.
2845
2846	* parseinfo.c (parse_config): Protect reference to PrimaryServer
2847	using #ifdef PROXY_SUPPORT.
2848
2849	* ls.c (ls_fileproc): Remove unused variables.
2850	* subr.c (increment_revnum): Ditto.
2851	* vers_ts.c (time_stamp): Ditto.
2852
28532004-09-03  Derek Price  <derek@ximbiot.com>
2854
2855	* rcs.c (RCS_checkin), commit.c (remove_file): Accept UPDATE_DIR
2856	argument and use it to output full relative path on commit.
2857	* rcs.h (RCS_checkin): Update prototype.
2858	* checkin.c, commit.c, import.c: Change all callers.
2859	* sanity.sh: Adjust to compensate.
2860
28612004-09-03  Derek Price  <derek@ximbiot.com>
2862
2863	* client.c (call_in_directory): Change passed in function to accept
2864	void * to avoid typecasting.  Change all functions using this API.
2865
28662004-09-03  Derek Price  <derek@ximbiot.com>
2867
2868	* sanity.sh (secondary-wrapper, writeproxy-secondary-wrapper): Improve
2869	comments.  Use exec to launch server.
2870	(writeproxy-noredirect): New tests for writeproxy functionality in
2871	conjunction with clients that cannot handle the `Redirect' response.
2872
28732004-09-03  Derek Price  <derek@ximbiot.com>
2874
2875	* log-buffer.c, rsh-client.c, client.c: Reformat function headers.
2876	Remove unnecessary typecasts and prototypes.
2877	* client.h: Remove unnecessary extern declarations on protos.
2878
28792004-09-03  Derek Price  <derek@ximbiot.com>
2880
2881	* sanity.sh (skip): New function.
2882	(sshstdio): Use new function.
2883	(writeproxy): Skip test when rsync isn't found.
2884
28852004-09-02  Mark D. Baushke  <mdb@cvshome.org>
2886
2887	* server.c (serve_directory): C89 compilers do not like mixed
2888	declarations and code.
2889
28902004-08-19  Mark D. Baushke  <mdb@cvshome.org>
2891
2892	* sanity.sh (sync-secondary): 'dirname -b' fails during the
2893	spacefiles-5 test on FreeBSD, so use 'dirname -- "\$dir"' for now
2894	and look to AS_DIRNAME at some future date.
2895
28962004-08-19  Derek Price  <derek@ximbiot.com>
2897
2898	* sanity.sh (ssh-wrapper): Create for $proxy mode too & forward CVS_PID
2899	for crerepos.
2900
29012004-08-18  Mark D. Baushke  <mdb@cvshome.org>
2902
2903	* sanity.sh (writeproxy): Use CVS_PID instead of PPID as the
2904	former environment variable is set by cvs and the latter is
2905	NOT set by all bourne shells.
2906
29072004-08-18  Mark D. Baushke  <mdb@cvshome.org>
2908
2909	* log-buffer.c (log_buffer_rewind): Avoid FreeBSD compilation
2910	error for dereferencing a void * pointer tmp as well as using it
2911	as a buffer pointer under some conditions.
2912
29132004-08-17  Derek Price  <derek@ximbiot.com>
2914
2915	* server.c (isProxyServer): Always compile.  Cache hostname lookup.
2916	(serve_notify): Ignore notifications in conjunction with redirects.
2917	(do_cvs_command): Send an error when !PROXY_SUPPORT and a client does
2918	not support redirects.  Only close proxy logs when they exist.
2919	(serve_command_prep): New function.
2920	* sanity.sh (secondary-wrapper, writeproxy): Dynamically switch the
2921	servers proxy/primary status for testing.
2922	(basica): Gratuitous reformatting.
2923	(devcom3, config, release): Handle some new proxy/redirect error
2924	messages.
2925
29262004-08-17  Derek Price  <derek@ximbiot.com>
2927
2928	* main.c (PrimaryServer): Include without PROXY_SUPPORT to support
2929	redirects.
2930	(main): Handle --primary-root without PROXY_SUPPORT.
2931	* mkmodules.c (PrimaryServer), parseinfo.c (parse_config), root.c
2932	(primary_root_add, primary_root_translate,
2933	primary_root_inverse_translate): Likewise.
2934
29352004-08-17  Derek Price  <derek@ximbiot.com>
2936
2937	* client.c: Misc reformatting.
2938	(handle_redirect, close_connection_to_server): New functions.
2939	(failure_exit,*): s/int/bool/.
2940	(responses): Add `Redirect'.
2941	(get_server_responses): Handle response_type_redirect.
2942	(get_responses_and_close): Use close_connection_to_server().
2943	(supported_request): Change API to use bool & const.
2944	(start_server): Handle response_type_redirect.
2945	* client.h (supported_request): Update proto.
2946	(type): Add response_type_redirect.
2947	* main.c (lookup_command_attribute): Declare arg const.
2948	* cvs.h (lookup_command_attribute): Ditto.
2949	* sever.c (requests): Create dummy `Command-prep' request.
2950
29512004-08-12  Derek Price  <derek@ximbiot.com>
2952
2953	* main.c (main): Don't process --primary-root without PROXY_SUPPORT.
2954	* root.c (primary_root_translate, primary_root_inverse_translate):
2955	Declare inline.
2956
29572004-08-11  Derek Price  <derek@ximbiot.com>
2958
2959	* ms-buffer.h, ms-buffer.c: Disable contents without PROXY_SUPPORT.
2960
29612004-08-11  Derek Price  <derek@ximbiot.com>
2962
2963	* server.c (isProxyServer): Declare inline.
2964	(reprocess_proxy_log): Rename to...
2965	(rewind_buf_from_net): ...this and change all callers.
2966
29672004-08-11  Derek Price  <derek@ximbiot.com>
2968
2969	* sanity.sh (sync-secondary): Don't bother to log sync activity.
2970
29712004-08-11  Derek Price  <derek@ximbiot.com>
2972
2973	* buffer.c (buf_copy_data), buffer.h (buf_copy_data), log-buffer.c
2974	(log_buffer_initialize, log_buffer_input, log_buffer_output,
2975	log_buffer_rewind, log_buffer_closelog), log-buffer.h
2976	(log_buffer_initialize), main.c (MaxProxyBufferSize), mkmodules.c
2977	(config_contents), parseinfo.c (parse_config), server.c (server):
2978	Switch eariler support for logs in memory buffers on
2979	TRUST_OS_FILE_CACHE.
2980
29812004-08-11  Derek Price  <derek@ximbiot.com>
2982
2983	* buffer.c (buf_free_data, buf_copy_data): Only compile with proxy
2984	support.
2985	* buffer.h: Ditto for including the protos.
2986
29872004-08-11  Derek Price  <derek@ximbiot.com>
2988
2989	* buffer.c (fd_buffer_input): Bracket misguided attempt at improved
2990	I/O efficiency with TRUST_OS_FILE_CACHE pragmas.
2991
29922004-08-10  Derek Price  <derek@ximbiot.com>
2993
2994	* cvs.h, main.c, mkmodules.c, parseinfo.c, server.c:
2995	s/MaxSecondaryBufferSize/MaxProxyBufferSize/.
2996
29972004-08-10  Derek Price  <derek@ximbiot.com>
2998
2999	* sever.c (secondary_log, secondary_log_out): Rename globals everywhere
3000	to...
3001	(proxy_log, proxy_log_out): ...these.
3002	(isSecondaryServer): Rename function...
3003	(isProxyServer): ...to this.
3004
30052004-08-10  Derek Price  <derek@ximbiot.com>
3006
3007	* log-buffer.c: #ifdef PROXY_SUPPORT in appropriate places.
3008
30092004-08-10  Derek Price  <derek@ximbiot.com>
3010
3011	* cvs.h, log-buffer.h, main.c, mkmodules.c, parseinfo.c, server.c:
3012	s/SECONDARY_SUPPORT/PROXY_SUPPORT/.
3013
30142004-08-10  Derek Price  <derek@ximbiot.com>
3015
3016	* server.c (isSecondaryServer): Declare static.
3017	* server.h (isSecondaryServer): Remove proto.
3018
30192004-08-10  Derek Price  <derek@ximbiot.com>
3020
3021	* log-buffer.h (log_buffer_rewind, log_buffer_closelog): Don't define
3022	protos without SECONDARY_SUPPORT.
3023	* server.c (*): #ifdef correctly for !SECONDARY_SUPPORT.
3024	* version.c (version): Remove unused code.
3025
30262004-08-10  Derek Price  <derek@ximbiot.com>
3027
3028	* server.c (server_cleanup): Remove unused variable.
3029
30302004-08-10  Derek Price  <derek@ximbiot.com>
3031
3032	* server.c (buf_from_net_save): Remove obsolete variable.
3033	(server_cleanup): Don't close BUF_FROM_NET_SAVE.
3034
30352004-08-09  Derek Price  <derek@ximbiot.com>
3036
3037	* sanity.sh (sync-secondary, *info): Sync only the updated directories
3038	rather than the entire repository after a write for a minor efficiency
3039	improvement.
3040	(info, taginfo): Hack *info to sync all dirs for these tests rather
3041	than rewriting the sync-secondary script to handle old-style *info
3042	format strings.
3043
30442004-08-05  Derek Price  <derek@ximbiot.com>
3045
3046	Beginnings of support for turning off writeproxy support (still broke.)
3047	* cvs.h (PrimaryServer, MaxSecondaryBufferSize), main.c (PrimaryServer,
3048	MaxSecondaryBufferSize), mkmodules.c (config_contents), parseinfo.c
3049	(parse_config): Switch off when writeproxy support disabled.
3050	* server.c (replace_file_offset, move_file_offset): Comment out
3051	temporarily.
3052
30532004-08-05  Derek Price  <derek@ximbiot.com>
3054
3055	* filesubr.c (copy_file): Don't fsync.  It's slow.
3056
30572004-08-05  Derek Price  <derek@ximbiot.com>
3058
3059	* buffer.c (buf_copy_data): New function.
3060	* buffer.h: Proto new function.
3061	* cvs.h (MaxSecondaryBufferSize): Declare new config global.
3062	* log-buffer.c: Allow file-backed memory buffers for "speed".
3063	(struct log_buffer): Add new fields.
3064	(log_buffer_force_file): New function.
3065	(log_buffer_initialize): Initialize new fields.
3066	(log_buffer_input, log_buffer_output): Handle logging to memory when
3067	asked.
3068	(log_buffer_disable): Remove function, moving much functionality...
3069	(log_buffer_rewind): ...to this new function and expanding.
3070	(log_buffer_closelog): Handle new fields and structs.
3071	(log_buffer_get_fd): Remove function.
3072	(setup_logfiles): Use new _initialize API.
3073	* log-buffer.h: Update protos to match.
3074	* main.c (MaxSecondaryBufferSize): Init new config global.
3075	* mkmodules.c (config_contents): Add comments 4 MaxSecondaryBufferSize.
3076	* parseinfo.c (parse_config): Parse MaxSecondaryBufferSize..
3077	* server.c (secondary_log_name, secondary_log_out_name): Remove unused
3078	globals.
3079	(read_secondary_log): Remove function.
3080	(reprocess_secondary_log): Use log_buffer_rewind() instead of the above.
3081	(become_proxy): Ditto.
3082	(server_cleanup): No need to clean up logfiles any longer.
3083	(server): Use new log_buffer_initialize API.
3084
30852004-08-04  Derek Price  <derek@ximbiot.com>
3086
3087	* buffer.c (buf_read_data): s/abort/assert/.
3088
30892004-08-04  Derek Price  <derek@ximbiot.com>
3090
3091	* server.c (loop_over_inputs): Remove function, moving contents back...
3092	(server): ...to here.
3093
30942004-08-03  Derek Price  <derek@ximbiot.com>
3095
3096	Checking in IO changes intended to improve speed for posterity since
3097	they actually increase CPU usage by about .2% in remote mode and 5% in
3098	writeproxy mode.
3099	* Makefile.am (cvs_SOURCES): Add ms-buffer.c & ms-buffer.h.
3100	* buffer.c (buf_free_data): New function.
3101	(buf_read_data): s/abort/assert/.
3102	(fd_buffer_input): Try to improve efficiency of blocking read.
3103	* buffer.h (buf_free_data): New proto.
3104	* server.c (reprocess_secondary_log): Only reopen log and attach to
3105	BUF_FROM_NET - don't actually loop over inputs.
3106	(become_proxy, serve_co, do_cvs_command): Use new log from above.
3107	* ms-buffer.c, ms-buffer.h: New files.
3108
31092004-08-03  Derek Price  <derek@ximbiot.com>
3110
3111	* sanity.sh (TIMING): Make this work when not in $remotehost mode.
3112	(reserved-13b): Use sorted output.
3113
31142004-08-03  Derek Price  <derek@ximbiot.com>
3115
3116	* log-buffer.c: Improve comments.
3117
31182004-08-02  Derek Price  <derek@ximbiot.com>
3119
3120	* sanity.sh (ssh-wrapper): Export CVSUMASK to remote host.
3121	(*): Remove some hacks that were needed because CVSUMASK was not
3122	exported to the remote host.  Misc cleanup.
3123
31242004-07-28  Mark D. Baushke  <mdb@cvshome.org>
3125
3126	* sanity.sh (pserver-auth-no-dos): ENOMEM on Solaris 7, 8, 9, and
3127	AIX 4.3 all use the text "Not enough space" instead of the text
3128	"Cannot allocate memory" as is printed on GNU/Linux, NetBSD, and
3129	FreeBSD systems.
3130
31312004-07-28  Derek Price  <derek@ximbiot.com>
3132
3133	* sanity.sh (ssh-wrapper): Export CVS_RSH on remote host.
3134
31352004-07-28  Mark D. Baushke  <mdb@cvshome.org>
3136
3137	* sanity.sh (secondary-wrapper): Not all $TESTSHELL shells
3138	are able to set a variable and export it at the same time.
3139	Separate the value assignment from the export statement.
3140	(writeproxy-secondary-wrapper): Ditto.
3141
31422004-07-28  Derek Price  <derek@ximbiot.com>
3143
3144	* server.c (isSecondaryServer): Fix array out of bounds problem.
3145	* sanity.sh (ssh-wrapper): Wrap any rsh implementation we are handed to
3146	forward variables relevant to testing.  Add new $TIMING variable to
3147	allow timing of processes on a remote host.
3148	(*): Gratuitous reformatting.
3149
31502004-07-26  Derek Price  <derek@ximbiot.com>
3151
3152	* server.c (read_secondary_log): Minor comment corrections.
3153
31542004-07-23  Derek Price  <derek@ximbiot.com>
3155
3156	* buffer.c (fd_buffer_output): Don't fsync.  It is unneeded and slow.
3157	* server.c (move_file_offset, replace_file_offset): Ditto.
3158	* log-buffer.c (log_buffer_flush_log): Remove function.
3159
31602004-07-19  Derek Price  <derek@ximbiot.com>
3161
3162	* log-buffer.c (log_buffer_disable): Return log FILE *.  Don't close
3163	log.  Fix header comment.
3164	(log_buffer_closelog): New function.
3165	* log-buffer.h: Update protos to match.
3166	* server.c (read_secondary_log): Rewind file pointer rather than
3167	closing and reopening file for speed.
3168	(serve_root): Close secondary log rather than just disabling when not
3169	running in secondary mode.
3170
31712004-07-19  Derek Price  <derek@ximbiot.com>
3172
3173	* buffer.c (buf_flush): Replace abort w/assert.
3174	* log-buffer.c (log_buffer_flush_log): New function for syncing a log.
3175	(log_buffer_flush, log_buffer_flush): Don't sync log for speed.
3176	* log-buffer.h (log_buffer_flush_log): New proto.
3177	* sanity.sh: Tidy.
3178	(run_filter): Accept file name to filter as argument.
3179	(dotest_*): pass new arg to run_filter.
3180	* server.c (read_secondary_log): Sync log before reopening.
3181
31822004-07-16  Derek Price  <derek@ximbiot.com>
3183
3184	* buffer.c (fd_buffer_input): Back out previous two changes due to
3185	incompatibility with current state of write proxies.
3186	* log-buffer.c (log_buffer_initialize): Handle new buffers which
3187	already have some data in them.
3188	(log_buffer_input): Don't fsync here.  It is slow.
3189	* server.c (serve_root): Disable the secondary output log too.
3190	(serve_noop, pserver_authenticate_connection): Misc cleanup.
3191	* sanity.sh: Misc gratuitous cleanup.
3192
31932004-07-16  Derek Price  <derek@ximbiot.com>
3194
3195	* buffer.c (fd_buffer_input): Don't overwrite the input buffer the
3196	second time through the blocking read loop.
3197
31982004-07-15  Derek Price  <derek@ximbiot.com>
3199
3200	* buffer.c (fd_buffer_input): Improve efficiency.
3201	* sanity.sh (modify_repo): Move timestamp race avoidance to...
3202	(sync-secondary): This script.
3203	(big): Misc cleanup.
3204
32052004-07-15  Derek Price  <derek@ximbiot.com>
3206
3207	* sanity.sh: Misc gratuitous cleanup.
3208	(modify_repo): Sleep 1 before rsync to avoid timestamp comparison
3209	issues.
3210
32112004-07-15  Derek Price  <derek@ximbiot.com>
3212
3213	* log-buffer.c (log_buffer_output): Remove extremely slow fsync call.
3214	(log_buffer_disable): Move to here so log files are sync'd before
3215	close.
3216	* sanity.sh (run_filter): New function to allow for filtering of cruft
3217	output by Rational Quantify or other profilers.
3218	(dotest_*): Call new function.
3219
32202004-07-13  Derek Price  <derek@ximbiot.com>
3221
3222	* server.c (prepost_proxy_proc): Add the CVSROOT string for the primary
3223	server, as documented.
3224
32252004-07-13  Derek Price  <derek@ximbiot.com>
3226
3227	* tag.c (tag_filesdoneproc): Don't track posttag errors.
3228	(cvstag): Move addition of successful tags to val-tags to...
3229	(tag_fileproc): ...here and...
3230	(rtag_fileproc): ...here.  Consolidate returns at single location.
3231	(*): Misc reformatting.
3232	* sanity.sh (sync-secondary): Include more data in the update-log.
3233
32342004-07-13  Derek Price  <derek@ximbiot.com>
3235
3236	* .cvsignore: Ignore coverage data generated by GCC.
3237
32382004-07-12  Derek Price  <derek@ximbiot.com>
3239
3240	* sanity.sh: Watch $servercvs and other minor fixes.
3241
32422004-07-12  Derek Price  <derek@ximbiot.com>
3243
3244	* server.c: Gratuitous reformatting.
3245	* sanity.sh: Misc write proxy accommodations.
3246
32472004-07-11  Derek Price  <derek@ximbiot.com>
3248
3249	* log.c (log_fileproc, log_expand_revlist, log_fix_singledate,
3250	log_count_print, log_tree, log_abranch, log_version), parseinfo.c
3251	(Parse_Info, parse_config), rcs.c (RCS_fully_parse, rcsbuf_getkey,
3252	rcsbuf_getrevnum, rcsbuf_valword, RCS_getbranchpoint, RCS_getdate,
3253	RCS_getrevtime, RCS_checkout, RCS_findlock_or_tip, RCS_addbranch,
3254	RCS_cmp_file, RCS_lock, RCS_unlock, RCS_delete_revs, RCS_deltas,
3255	RCS_getdeltatext, RCS_putdtree): Print primary path.
3256	* server.c (serve_kopt): Handle secondary log.
3257	* sanity.sh: Misc accommodations.
3258
32592004-07-11  Derek Price  <derek@ximbiot.com>
3260
3261	* checkin.c (checkout_proc): Correct vi induced typo.
3262
32632004-07-11  Derek Price  <derek@ximbiot.com>
3264
3265	* admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
3266	(notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
3267	server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
3268	default %c format string.
3269	* client.c, edit.c, lock.c, fileattr.c, mkmodules.c, myndbm.c,
3270	parseinfo.c, recurse.c: Misc gratuitous cleanup.
3271	* commit.c (commit_filesdoneproc): Move loginfo call to after CVSROOT
3272	sync.
3273	* checkout.c (checkout_proc), fileattr.c (fileattr_read), myndbm.c
3274	(mydbm_open, mydbm_load_file): Print primary path.
3275	* server.c (serve_checkin_time): Handle secondary log.
3276	(prepost_proxy_proc): Move before first call.
3277	(become_proxy): Move before first call.
3278	(serve_notify): Become proxy for this request.
3279	* sanity.sh: Misc accommodations.
3280
32812004-07-10  Derek Price  <derek@ximbiot.com>
3282
3283	* server.c (serve_notify): Handle secondary_log.
3284
32852004-07-08  Derek Price  <derek@ximbiot.com>
3286
3287	Intermediate checkin.  Adds some new server requests and test fixes.
3288	* sanity.sh: Update tests to handle proxies and new hooks.
3289	* cvs.h (CVSROOTADM_PREPROXY): Alphebetize & sub correct name.
3290	* mkmodules.c (filelist): Alphabetize.
3291	* server.c (serve_max_dotdot, serve_static_directory, serve_argumentx):
3292	Handle secondary_log.
3293	* tag.c (*): Misc gratuitous cleanup.
3294
32952004-07-08  Derek Price  <derek@ximbiot.com>
3296
3297	Intermediate checkin.  Adds preproxy, & postproxy hooks and some test
3298	cruft to test everything.
3299
3300	* cvs.h (CVSROOTADM_*): Add new hook config files.
3301	* log.c (log_fileproc): Print primary path.
3302	* mkmodules.c (*_content): Add init content for new files.
3303	(filelist): Add new files.
3304	* rcs.c (RCS_parsercsfile_i): Set print_path.  Misc gratuitous cleanup.
3305	(freercsnode): Free print_path.
3306	* rcs.h (struct rcsnode): Add print_path.
3307	* rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Print primary path.
3308	* server.c (isSecondaryServer): No longer static.
3309	(serve_sticky, serve_argumentx): Handle secondary logging.
3310	(prepost_proxy_proc): New function.
3311	(become_proxy): Call pre & post proxy hooks.  Handle IO closing better.
3312	* server.h (isSecondaryServer): No longer static.
3313	* status.c (status_fileproc): Print primary path.
3314	* sanity.sh: Accept --proxy argument and run in write proxy mode when
3315	seen.  Misc fixes to account for other changes.  Misc gratuitous
3316	cleanup.
3317
33182004-07-02  Derek Price  <derek@ximbiot.com>
3319
3320	Woo-hoo!  Write proxies work!
3321	* client.c (open_connection_to_server): Set up log files...
3322	(start_server): ...here.
3323	* server.c (secondary_log_out_name, secondary_log_out): New globals.
3324	(argument_cound, argument_vector, argument_vector_size): Move before...
3325	(reprocess_secondary_log): ...referencing here.  Assume secondary_log.
3326	(read_secondary_log): Accept buf & name args.
3327	(serve_modified, serve_unchanged, serve_is_modified, serve_entry):
3328	Handle logging pass.
3329	(become_proxy): Use new output-to-client-log.  Verify buffers still
3330	exist before using.
3331	(output_dir): Translate paths to the client on the secondary.
3332	(serve_co): Only reprocess the secondary log when one exists.
3333	(server_cleanup): Free buf after shutdown.  Dispose of client output
3334	log.
3335	(server): Create client output log.
3336	(*): Misc reformatting & detypecasting.
3337	* log-buffer.c (log_buffer_output): Handle fatal_errors.
3338	(log_buffer_flush): Don't operate on NULL streams.
3339	(log_buffer_disable): Reformat so as not to confuse the optimizer.
3340	* root.c (primary_root_translate): Remove unused variable and redundant
3341	slash.
3342	(primary_root_inverse_translate): New function.
3343	* root.h: Add new proto.
3344	* sanity.sh (writeproxy): Wrap server executables to set args and
3345	server variables properly.  Fill in some test gaps.  Correct `cd' args.
3346	Clean up wrappers.
3347
33482004-06-30  Derek Price  <derek@ximbiot.com>
3349
3350	* root.h (primary_root_add, primary_root_translate): New protos.
3351	* root.c (primary_root_add, primary_root_translate): New functions.
3352	* main.c (long_options): Add --primary-root.  Handle --primary-root
3353	and --allow-root only with SERVER_SUPPORT.
3354	(main): Ditto.
3355	* server.c (move_file_offset): Set block before fsync.  Report
3356	ftruncate errors.  Force sync after rearranging data.
3357	(replace_file_offset): Force sync after replacing data.
3358	(serve_directory): Translate roots based on --primary-root arg.
3359	(serve_root): Likewise & don't rewrite the log file.
3360	(become_proxy): Increment select's N arg because it is required.
3361	(do_cvs_command): Use MAX macro appropriately.
3362	* sanity.sh (writeproxy): Wrap the secondary server in such a way that
3363	it gets the --primary-root option and the primary does not.  Move the
3364	primary root out of the way for the read operations to prove only the
3365	secondary was accessed.
3366
33672004-06-30  Derek Price  <derek@ximbiot.com>
3368
3369	* log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
3370	soon as they are written to better diagnose hangs.
3371
33722004-06-30  Derek Price  <derek@ximbiot.com>
3373
3374	* client.c (connect_to_forked_server): Compile for SERVER_SUPPORT.
3375
33762004-06-30  Derek Price  <derek@ximbiot.com>
3377
3378	* buffer.c (buf_append_buffer): Handle NULL from->data.
3379
33802004-06-28  Derek Price  <derek@ximbiot.com>
3381
3382	* log-buffer.c (log_buffer_flush): Sync all, not just data.
3383	* buffer.c (fd_buffer_flush): Ditto.  Ignore problems synchronizing
3384	unsynchronizable descriptors.
3385
33862004-06-28  Derek Price  <derek@ximbiot.com>
3387
3388	Intermediate checkin on the way to enabling the write proxy.
3389
3390	* server.c (isSecondaryServer): Handle forked primary.
3391	(read_secondary_log, move_file_offset, replace_file_offset,
3392	become_proxy): New functions.
3393	(reprocess_secondary_log): Use new read_secondary_log().
3394	(serve_root): Replace `Root' request with new version for primary.
3395	(do_cvs_command): Use new become_proxy() function.
3396	(*): Gratuitous reformatting.
3397	(server): Open new logs and avoid opening pipes to pserver twice.
3398	* buffer.c (buf_initialize): Handle new LAST_INDEX & LAST_COUNT
3399	initializers.
3400	(*): Remove unnecessary typecasts.  Gratuitous reformatting.  Use
3401	assert() rather than if()/abort().
3402	(buf_append_buffer, buf_read_data, buf_copy_lines, buf_copy_counted):
3403	Track LAST_INDEX & LAST_COUNT.
3404	(buf_read_short_line): Track LAST_INDEX & LAST_COUNT.
3405	* buffer.h (struct buffer): Add LAST_INDEX & LAST_COUNT.
3406	* cvs.h: Include minmax.h.
3407	* root.h (enum CVSmethod): Force null_method to 0.
3408	* zlib.c: Remove unnecessary typecasts.  Gratuitous reformatting.  Use
3409	assert() rather than if()/abort().
3410
34112004-06-23  Derek Price  <derek@ximbiot.com>
3412
3413	Checkout and probably other read-only commands now work.
3414
3415	* server.c (serve_expand_modules): Discard arguments even when
3416	reprocessing.
3417	(serve_argument): Always process arguments.
3418	(serve_wrapper_sendme_rcs_options): Process in first pass.
3419
34202004-06-23  Derek Price  <derek@ximbiot.com>
3421
3422	Operate correctly in non-write proxy mode, delaying processing of most
3423	commands until after the `Root' request is received.
3424
3425	* server.c (buf_from_net_save): New global variable to store the input
3426	buffer from the client while the secondary log is being reprocessed.
3427	(reprocessing): Global to track whether we are reprocessing.
3428	(various redundant prototypes): Removed.
3429	(fd_buffer_*): Remove unneeded typecasts.
3430	(serve_valid_responses, serve_global_option, serve_set,
3431	serve_valid_requests): Avoid processing twice.
3432	(command_pid, outbuf_memory_error, input_memory_error): Moved above new
3433	references.
3434	(server): Factor loop over the client inputs to...
3435	(loop_over_inputs): ...this new function.
3436	(serve_root): Loop over secondary log of client inputs when we
3437	discover we are not the secondary.
3438	(*): Add !secondary_log assertions to verify that certain code paths
3439	are not yet taken.
3440	(do_cvs_command, serve_init): Add switch and pseudo-code comments about
3441	what will need to be done on secondary servers.
3442	(seve_noop): Print errors & "ok" in the first pass, skip "ok" but
3443	restore handling of entries and notification in the second.
3444	(serve_co): Note what will need to be done on secondaries.
3445	(server_cleanup): Deal with buf_from_net_save when necessary.
3446
34472004-06-22  Derek Price  <derek@ximbiot.com>
3448
3449	* server.c (server): Move previously fatal error on failure to open a
3450	secondary log to...
3451	(serve_root): ...here, and only when we discover we are actually a
3452	secondary server.
3453	(server): Ensure an interrupt cannot dump core.
3454
34552004-06-22  Derek Price  <derek@ximbiot.com>
3456
3457	Enable the writeproxy log and turn it off when we determine we are not
3458	running as a secondary server.
3459
3460	* log-buffer.c: Compile log buffer routines in server mode for write
3461	proxy.
3462	(struct log_buffer): Add fatal_error member.
3463	(log_buffer_initialize, log_buffer_input): Allow for fatal write errors
3464	for writeproxy.
3465	(log_buffer_disable): Turn off the log when asked.
3466	(log_buffer_shutdown): Close log via log_buffer_disable.
3467	(log_buffer_input, log_buffer_output, log_buffer_flush): Don't operate
3468	on the log when it doesn't exist.
3469	(*): Misc gratuitous cleanup.
3470	(setup_logfiles): Use new log_buffer_initialize API.
3471	* log-buffer.h (log_buffer_initialize, log_buffer_disable): New
3472	prototypes.
3473	(log_buffer_initialize): Update prototype.
3474	* server.c: Include log-buffer.h.  Gratuitous reformatting of pragmas.
3475	(secondary_log_name, secondary_log): New globals.
3476	(server): Set up recording for writeproxy.
3477	(serve_root): Turn off recording when we determine that we are not a
3478	secondary.
3479
34802004-06-21  Derek Price  <derek@ximbiot.com>
3481
3482	* sanity.sh (writeproxy): Verify that secondary is updated after a
3483	commit.  Comment test that verifies that commit took place on primary.
3484
34852004-06-10  Derek Price  <derek@ximbiot.com>
3486
3487	* sanity.sh (writeproxy): Test response to a failing rsync.
3488
34892004-06-09  Derek Price  <derek@ximbiot.com>
3490
3491	* server.c (isSecondaryServer): New function.
3492	(MAXHOSTNAMELEN): Move to top of file and improve comment.
3493
34942004-06-09  Derek Price  <derek@ximbiot.com>
3495
3496	* parseinfo.c (parse_config): Get my enum references correct.
3497
34982004-06-09  Derek Price  <derek@ximbiot.com>
3499
3500	* parseinfo.c (parse_config): Verify that the ProxyServer connection
3501	method is valid.
3502
35032004-09-02  Derek Price <derek@ximbiot.com>
3504
3505	* server.c (do_cvs_command): Pass new args to fd_buffer_initialize().
3506	(server): Don't initialize BUF_TO_NET & BUF_FROM_NET when
3507	pserver_authenticate already did.
3508	(pserver_read_line): New function to access pserver auth dialogue via
3509	buffers.
3510	(pserver_authenticate_connection): Init buffers to/from net and access
3511	via pserver_read_line() and the buffer output functions.
3512	(fd_buffer_*): Move to...
3513	* buffer.c (fd_buffer_*): ...here.  Handle blocking input more
3514	efficiently.
3515	(buf_initialize): Handle get_fd() argument.
3516	(buf_nonio_initialize, packetizing_buffer_initialize): Pass new
3517	get_fd() argument.
3518	(buf_copy_data, buf_free_data, buf_read_short_line, buf_get_fd,
3519	packetizing_buffer_get_fd): New functions.
3520	(bufread_line): Wrap buf_read_short_line().
3521	(stdio_buffer_*): Remove these functions.
3522	(*): Some reformatting of function headers.
3523	* buffer.h (struct buffer, buf_initialize): Add get_fd().
3524	(buf_read_short_line, buf_get_fd, buf_copy_data, buf_free_data,
3525	fd_buffer_initialize): New prototypes.
3526	* client.c (get_port_number, get_cvs_port_number,
3527	get_proxy_port_number): Compile with SERVER_SUPPORT.
3528	(make_bufs_from_fds): Likewise, and accept new ROOT arg and pass on to
3529	fd_buffer_initialize().
3530	(connect_to_pserver, connect_to_forked_server): Pass ROOT to
3531	make_bufs_from_fds().
3532	(start_server): Factor much functionality into...
3533	(open_connection_to_server): ...this new function.
3534	* client.h (make_bufs_from_fds): Update proto.
3535	(open_connection_to_server): New proto.
3536	* log-buffer.c (log_buffer_initialize): Handle get_gd().
3537	(log_buffer_get_fd): New function.
3538	* zlib.c (compress_buffer_initialize, compress_buffer_get_fd): Ditto
3539	twice.
3540	* rsh-client.c (start_rsh_server): Pass ROOT to make_bufs_from_fds().
3541	* sanity.sh (pserver): Expect new error messages.
3542
35432004-09-01  Derek Price <derek@ximbiot.com>
3544
3545	* run.c: Remove unneeded typecasts.  Reformat function headers.  Fix
3546	trace.
3547
35482004-08-31  Derek Price <derek@ximbiot.com>
3549
3550	* subr.c (format_cmdline), cvs.h (format_cmdline): Accept bool rather
3551	than int.
3552	* admin.c, commit.c, edit.c, fileattr.c, logmsg.c, tag.c: Change all
3553	callers.
3554	* main.c (UseNewInfoFmtStrings), cvs.h (UseNewInfoFmtStrings):
3555	s/int/bool/.
3556	* parseinfo.c: Change all references.
3557
35582004-08-31  Derek Price <derek@ximbiot.com>
3559
3560	* checkout.c: Reformat function headers.  Remove unnecessary typecasts
3561	and prototypes.  Some other reformatting for legibility.
3562
35632004-08-31  Derek Price <derek@ximbiot.com>
3564
3565	* buffer.c: Gratuitous reformatting of header comments.
3566	s/abort/assert/.  Remove unnecessary typecasts.
3567	* buffer.h: Remove unnecessary "extern" decls.  Some reformatting.
3568
35692004-08-24  Derek Price <derek@ximbiot.com>
3570
3571	* recurse.c (start_recursion): Don't shorten //. to / (use //).
3572
35732004-08-24  Derek Price <derek@ximbiot.com>
3574
3575	* recurse.c (start_recursion): Strip trailing CWD indirections on
3576	repository.
3577	* sanity.sh (rstar-toplevel): Update to account for new behavior.
3578	(Report from Dan Peterson <dbpete@aol.com>.)
3579
35802004-08-24  Mark D. Baushke  <mdb@cvshome.org>
3581
3582	* recurse.c (do_recursion): Correct test for calling
3583	server_pause_check to occur when locktype != CVS_LOCK_WRITE.
3584	(Patch suggested by Ian Lance Taylor <ian@wasabisystems.com>
3585	in bug#198).
3586
35872004-08-24  Derek Price <derek@ximbiot.com>
3588
3589	* sanity.sh: Update a few tests to account for the recent error message
3590	changes.
3591
35922004-08-24  Derek Price <derek@ximbiot.com>
3593
3594	* rcs.c (RCS_valid_rev): Declare arg const.
3595	* rcs.h: Likewise.
3596
35972004-08-24  Derek Price <derek@ximbiot.com>
3598
3599	* rcs.c (translate_symtag): Prevent infinite loop.
3600	* tag.c (tag_check_valid): Check tag syntax before searching for tags.
3601	* sanity.sh (tag-space): Some tests for the above.
3602	(Report from Dan Peterson <dbpete@aol.com>.)
3603
36042004-08-24  Derek Price <derek@ximbiot.com>
3605
3606	* tag.c (tag_check_valid): Use RCS_valid_rev() rather than duplicating
3607	code.  Misc error message improvements.
3608
36092004-08-24  Mark D. Baushke  <mdb@cvshome.org>
3610
3611	* ignore.c (ignore_directory): Include the terminating NUL
3612	character in the directory name comparison to avoid matching
3613	substrings of directories by accident.
3614	(Report and suggested fix from James E Wilson
3615	<wilson@specifixinc.com>.)
3616	* sanity.sh (modules4): Add some more tests testing the above
3617	change.
3618
36192004-08-20  Mark D. Baushke  <mdb@cvshome.org>
3620
3621	* sanity.sh (binfiles): Cleanup the 2a temporary directory.
3622
36232004-08-20  Derek Price <derek@ximbiot.com>
3624
3625	Cache tags in val-tags on successful creation to avoid problems with
3626	write proxies.  Merged from `writeproxy2' branch.
3627
3628	* tag.c (tag_filesdoneproc): Don't track posttag errors.
3629	(cvstag): Move addition of successful tags to val-tags to...
3630	(tag_fileproc): ...here and...
3631	(rtag_fileproc): ...here.  Consolidate returns at single location.
3632	(*): Misc reformatting.
3633
3634	* tag.c (add_val_tag): New function with content factored from...
3635	(tag_check_valid): ...here.
3636	(cvstag): Call add_val_tag() when needed.
3637	* annotate.c, checkout.c, commit.c, diff.c, ls.c, patch.c, recurse.c,
3638	tag.c, update.c: Pass new args to tag_check_valid.
3639
3640	Merge of postadmin, posttag, and postwatch functionality from
3641	`writeproxy2' branch.
3642
3643	* admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
3644	(notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
3645	server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
3646	default %c format string.
3647
3648	* cvs.h (CVSROOTADM_POSTWATCH): New macro.
3649	* fileattr.c (*): Misc cleanup.
3650	(postwatch_proc): New function.
3651	(fileattr_write): Call watch proc when done writing fileattr.
3652	* mkmodules.c (postwatch_contents): New var.
3653	(filelist): Add postwatch.
3654	* watch.c (addremove_filesdoneproc): Remove function.
3655	(watch_addremove): Don't call above function.
3656	(*): Misc cleanup.
3657	* watch.h: Remove some unnecessary "extern" decls.
3658
3659	* admin.c (postadmin_proc, admin_filesdoneproc): New functions.
3660	(admin): Pass admin_filesdoneproc() to start_recursion().
3661	(*): Misc gratuitous cleanup.
3662	* cvs.h (CVSROOTADM_*): Alphabetize, add new hook config files.
3663	(format_cmdline): Fix proto to match change below.
3664	* mkmodules.c (*_content): Add init content for new files.  Misc
3665	cleanup.
3666	(filelist): Add new files.
3667	* tag.c (struct pretag_proc_data): Move before first use.
3668	(posttag_proc, tag_filesdoneproc): New functions.
3669	(rtag_proc): Pass new procs to start_recursion().
3670	(*): Misc gratuitous cleanup.
3671	* sanity.sh: Misc accommodations.
3672
36732004-08-19  Mark D. Baushke  <mdb@cvshome.org>
3674
3675	* log-buffer.c (log_buffer_output): Protect call to fsync()
3676	with #ifdef HAVE_FSYNC.
3677
36782004-08-18  Mark D. Baushke  <mdb@cvshome.org>
3679
3680	* log-buffer.c (log_buffer_input): Protect call to fsync()
3681	with #ifdef HAVE_FSYNC.
3682
36832004-08-17  Mark D. Baushke  <mdb@cvshome.org>
3684
3685	* sanity.sh (sshstdio): Fix comment typo plus gratuitous
3686	reformatting.
3687
3688	* client.c (handle_m): Workaround to deal with stdio getting put
3689	into non-blocking via redirection of stderr and interaction with
3690	ssh on some platforms. On those boxes, stdio can put stdout
3691	unexpectedly into non-blocking mode which may lead to fwrite() or
3692	fflush() failing with EAGAIN, but cvs not checking for the error.
3693	(Patch suggested by Frank Hemer <frank@hemer.org>.)
3694
3695	* client.c (handle_e): Similar fix for stderr.
3696	* sanity.sh (sshstdio): New test for non-blocking stdio via ssh.
3697
36982004-08-11  Derek Price <derek@ximbiot.com>
3699
3700	* sanity.sh (basicc): Work around a problem in Linux 2.2 & Bash 2.05b
3701	which prevents a `cd ..' from a deleted directory from working.
3702	(Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
3703
37042004-07-18  Mark D. Baushke  <mdb@cvshome.org>
3705
3706	* sanity.sh (newb-123j0): Use DOTSTAR at end of response.
3707
37082004-07-17  Mark D. Baushke  <mdb@cvshome.org>
3709
3710	* main.c (ImportNewFilesToVendorBranchOnly): New variable.
3711	* cvs.h (ImportNewFilesToVendorBranchOnly): Declare new variable.
3712	* import.c (import): Respect setting of
3713	ImportNewFilesToVendorBranchOnly.
3714	* mkmodules.c (config_contents): Document the default
3715	ImportNewFilesToVendorBranchOnly=no option in newly generated
3716	config files.
3717	* parseinfo.c (parse_config): Parse
3718	ImportNewFilesToVendorBranchOnly option.
3719	* sanity.sh (importX2): New test, to test
3720	ImportNewFilesToVendorBranchOnly config file option.
3721	(New feature from Chris Demetriou <cgd@broadcom.com>.)
3722
37232004-07-17  Mark D. Baushke  <mdb@cvshome.org>
3724
3725	* sanity.sh (basic2-14): Use DOTSTAR to be more portable.
3726
3727	* status.c (status_fileproc): Print datetimes using output_cvs_tagged.
3728	* sanity.sh (basic2-14): Allow for an extra blank line at the end.
3729
37302004-07-16  Derek Price  <derek@ximbiot.com>
3731
3732	* server.c (pamh): New global static to hold the PAM handle.
3733	(server): Close the PAM session so that logging works properly.
3734	(switch_to_user): Opens a PAM session and gets credentials from PAM so
3735	that PAM modules can change group permissions.  Get the username from
3736	PAM so that PAM modules can modify the final local username.
3737	(cvs_pam_conv): Changed the assertions to allow PAM to output text to
3738	the user.
3739	(check_system_password): Renamed to...
3740	(check_pam_password): ...this.  Changed argument type for username so
3741	that PAM modules can modify the username under authentication.  Setting
3742	a terminal so some PAM modules which expect it to be set work, it is
3743	set to the pam servicename which defaults to the binary name.  Set the
3744	username from PAM after authentication if a module has changed it.
3745	(check_password): Calls check_pam_password if PAM is enabled otherwiseu
3746	calls check_system_password.
3747	(Patch from Brian Murphy <brian@murphy.dk>.)
3748
37492004-07-15  Derek Price  <derek@ximbiot.com>
3750
3751	* sanity.sh (run_filter): New function to allow for filtering of cruft
3752	output by Rational Quantify or other profilers.
3753	(dotest_*): Call new function.
3754
37552004-07-13  Derek Price  <derek@ximbiot.com>
3756
3757	* .cvsignore: Ignore GCC profiling data.
3758
37592004-07-12  Derek Price  <derek@ximbiot.com>
3760
3761	* client.c: Misc reformatting.
3762
37632004-07-12  Derek Price  <derek@ximbiot.com>
3764
3765	* main.c: fix format_time_t to call localtime
3766	(Patch from Bart Robinson  <lomew@pobox.com>.)
3767
37682004-07-02  Derek Price  <derek@ximbiot.com>
3769
3770	* vers_ts.c: Gratuitous reformatting & detypecasting.
3771
37722004-06-30  Derek Price  <derek@ximbiot.com>
3773
3774	* log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
3775	soon as they are written to better diagnose hangs.
3776
37772004-06-29  Derek R. Price  <derek@ximbiot.com>
3778
3779	* sanity.sh (toplevel-12): Handle new error output.
3780
37812004-06-29  Derek R. Price  <derek@ximbiot.com>
3782
3783	* subr.c (xrealloc_and_strcat): Use bool in place of short.
3784
37852004-06-29  Derek R. Price  <derek@ximbiot.com>
3786
3787	* client.c: Gratuitous reformatting.
3788	(send_repository): Send relative Directory when server reports it is
3789	able to handle it.
3790	* server.c (serve_directory): Handle relative directories.
3791	(output_dir): Send relative directories.
3792	(requests): Add `Relative-directory' request.
3793
37942004-06-26  Mark D. Baushke  <mdb@cvshome.org>
3795
3796	* import.c (import_usage): Add new -X flag.
3797	(import): Handle new -X flag.
3798	(process_import_file): Handle new -X flag.
3799	(killnew): New static flag variable to indicate use of -X flag.
3800	(preserve_initial_permissions): New function, extracted from
3801	add_rcs_file().
3802	(expand_and_copy_contents): Likewise.
3803	(add_rcs_file): New argument, do_killnew, to cause "import -X" flag
3804	processing.  Implement -X flag, and use newly abstracted functions.
3805	* rcs.h (add_rcs_file): Update prototype for do_killnew argument.
3806	* commit.c (checkaddfile): Update for add_rcs_file function change.
3807	* mkmodules.c (init): Likewise.
3808	* client.c (handle_mt): Handle an importmergecmd tag without
3809	any conflicts (for 'import -X' support).
3810	* sanity.sh (importX): New test.
3811	(New feature from Chris Demetriou <cgd@broadcom.com>.)
3812
38132004-06-22  Derek Price  <derek@ximbiot.com>
3814
3815	* wrapper.c: Add explicit "void" return type to "wrap_clean_fmt_str"
3816	definition.
3817	(Patch from Conrad T. Pino <Conrad@Pino.com>.)
3818
38192004-06-09  Derek Price  <derek@ximbiot.com>
3820
3821	* server.c (entries, serve_is_modified): Reorder to remove prototypes.
3822	(supported_response): Remove prototype.
3823
38242004-06-09  Derek Price  <derek@ximbiot.com>
3825
3826	* commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
3827	security fixes.
3828	(Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
3829	Krahmer <krahmer@suse.de>.)
3830
3831	* cvs.h: Include xsize.h.
3832
38332004-06-09  Derek Price  <derek@ximbiot.com>
3834
3835	* server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
3836	against malformed entries.
3837	* sanity.sh (server): Tests for same.
3838
38392004-06-07  Larry Jones  <lawrence.jones@ugsplm.com>
3840
3841	* sanity.sh (basica): More tests for string-based revision inc.
3842
38432004-06-04  Larry Jones  <lawrence.jones@ugsplm.com>
3844
3845	* subr.c (increment_revnum): Rewrite ala RCS to work directly on
3846	the string rather than converting to int to avoid overflow.
3847	* sanity.sh (basica): New tests for above, update others to match.
3848
38492004-06-04  Derek Price  <derek@ximbiot.com>
3850
3851	Preliminary writeproxy functionality.
3852	* main.c: Declare PrimaryServer.
3853	* cvs.h: Likewise, but extern.
3854	* mkmodules.c: Add PrimaryServer to default CVSROOT/config content.
3855	* parseinfo.c: Handle PrimaryServer line.
3856	* sanity.sh: (Failing) tests for writeproxy functionality.
3857
38582004-05-28  Derek Price  <derek@ximbiot.com>
3859
3860	* main.c (format_time_t, gm_format_time_t): Use my_strftime from
3861	GNULIB rather than the system-dependant strftime.
3862
38632004-05-20  Derek Price  <derek@ximbiot.com>
3864
3865	* sanity.sh: s/GMT/UTC/ where appropriate.
3866
38672004-05-20  Derek Price  <derek@ximbiot.com>
3868
3869	* server.c (cvs_output_tagged): Move new server code inside a
3870	SERVER_SUPPORT block.
3871
38722004-05-19  Derek Price  <derek@ximbiot.com>
3873
3874	* cvs.h (gmformat_time_t, entries_time, unix_time_stamp): New protos.
3875	* ls.c (struct long_format_data): New structure.
3876	(ls_print): Print datetimes using cvs_output_tagged.
3877	(long_format_data_delproc): New function.
3878	(ls_fileproc, ls_direntproc): Keep track of long_format_data.
3879	* main.c (Make_Date): Use standard quotes.
3880	(format_time_t, gmformat_time_t): New functions.
3881	(format_date_alloc): Use new functions.  Improve comments.
3882	* server.c (cvs_output_tagged): Only output in localtime in local mode.
3883	* vers_ts.c (entries_time, unix_time_stamp): New functions.
3884	(time_stamp): Use new functions.
3885	* sanity.sh (ls, branches2): Use $ISO8601DATE where applicable.
3886
38872004-05-19  Derek Price  <derek@ximbiot.com>
3888
3889	Output `cvs log' times in the local timezone.
3890
3891	* client.c (handle_mt): Handle the new "date" MT response
3892	* server.c (cvs_output_tagged): Likewise
3893	* cvs.h: Proto for format_date_alloc
3894	* main.c (format_date_alloc, tm_diff): Added.
3895	* log.c (log_version): Use MT response to tag date output.
3896	(Original patch from Bart Robinson <lomew@pobox.com>.)
3897
3898	* sanity.sh (importc, rcs, rcs4): Use TZ=GMT for the duration of these
3899	tests to obtain consistent times in output.
3900	(ISO8601DATE, ISO8601DATE1971, ISO8601DATE2034): Use more precise
3901	regex.
3902
39032004-05-19  Derek Price  <derek@ximbiot.com>
3904
3905	* server.c (serve_unchanged, serve_is_modified): Overwrite existing
3906	data in timefields.  Fixes CAN-2004-0396.
3907
39082004-05-15  Derek Price  <derek@ximbiot.com>
3909
3910	* lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
3911	(server_cleanup):  Clean up inchoherent comment.
3912
39132004-05-15  Derek Price  <derek@ximbiot.com>
3914
3915	* cvs.h, client.c, history.c, main.c, rcs.c, sanity.sh, server.c:
3916	Back out get_date() changes from 2004-04-28.
3917
39182004-05-14  Mark D. Baushke  <mdb@cvshome.org>
3919
3920	* sanity.sh (trailingslashes): During cleanup remove topfile,v to
3921	avoid problems in later tests (editor-1).
3922
39232004-05-13  Derek Price  <derek@ximbiot.com>
3924
3925	* sanity.sh (trailingslashes): Note TODO item #205 in the comment.
3926
39272004-05-13  Derek Price  <derek@ximbiot.com>
3928
3929	* sanity.sh (trailingslashes): New tests to expose a bug in CVS when
3930	paths are specified with trailing slashes.  This relates to TODO #205.
3931
39322004-05-13  Mark D. Baushke  <mdb@cvshome.org>
3933
3934	* ls.c (ls): Use client_senddate() so the server is able to parse
3935	the date/time.
3936
39372004-05-12  Derek Price  <derek@ximbiot.com>
3938
3939	* entries.c, subr.c: Gratuitous reformatting.
3940
39412004-05-12  Derek Price  <derek@ximbiot.com>
3942
3943	* subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Only
3944	special case "=" when it is the only character in a timestamp field.
3945	Gratuitous reformatting.
3946	* vers_ts.c (time_stamp_server): Check for NULL in a consistent manner.
3947	Gratuitous reformatting.
3948
39492004-05-12  Derek Price  <derek@ximbiot.com>
3950
3951	* sanity.sh (ls): Add some new tests of the ls command with dates
3952	specified and show an assertion error when an existing file is
3953	specifically requested.
3954	(Original patch from Alexander Taler <dissent@cvshome.org>.)
3955
39562004-05-11  Mark D. Baushke  <mdb@cvshome.org>
3957
3958	* sanity.sh (RCSKEYDATE): New regular expression to match the rcs
3959	keyword date format.
3960	(keyword,keywordlog): Use it.
3961	(RCSDELTADATE): New regular expression to match the internal rcs
3962	file format delta.
3963	(admin): Use it.
3964	(RCSDATE): Deleted.
3965	(ISO8601DATE}: A more exact regular expression for cvs log date
3966	output than the previous RCSDATE variable.
3967	(basica,basic2,branches,branches3,multibranch,import,importb,importc,
3968	join,modules,editor,binfiles,log,log2,keyword,multibranch2,admin,
3969	reserved,recase,multiroot,trace):
3970	Use ${ISO8601DATE} for cvs log output date patterns.
3971	(TOUCH1971,ISO8601DATE1971): New variables for test importc.
3972	(TOUCH2034,ISO8601DATE2034): Ditto.
3973	(importc): Use them. Isolate the touch commands in a sub-shell
3974	with TZ=GMT to make the time more predictable.
3975	(RAWRCSDATE2000A,RAWRCSDATE1996A,RAWRCSDATE1996B): New date variables.
3976	(ISO8601DATE2000A,ISO8601DATE1996A,ISO8601DATE1996B): Regexps to match.
3977	(rcs): Use them.
3978	(rcs4): Put the touch commands into sub-shells for temporary
3979	TZ=GMT use.
3980
39812004-05-11  Derek Price  <derek@ximbiot.com>
3982
3983	* checkin.c (Checkin), commit.c (commit_filesdoneproc, remove_file,
3984	checkaddfile), rcs.c (RCS_checkin): Remove redundant commit messages.
3985	Suppress output when really_quiet.
3986	* sanity.sh: Update to match.
3987
39882004-05-10  Derek Price  <derek@ximbiot.com>
3989
3990	* sanity.sh (top-level): Rename to...
3991	(rstar-toplevel): ...this for clarity.
3992
39932004-05-10  Derek Price  <derek@ximbiot.com>
3994
3995	* sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
3996
39972004-05-08  Larry Jones  <lawrence.jones@ugsplm.com>
3998
3999	* log.c (log_expand_revlist): Suppress warnings if really_quiet.
4000
40012004-05-08  Derek Price  <derek@ximbiot.com>
4002
4003	* server.c: Gratuitous reformatting.  Remove unnecessary prototype &
4004	unnecessary type cast.
4005
40062004-05-07  Derek Price  <derek@ximbiot.com>
4007
4008	* sanity.sh (basica): Remove unnecessary empty arguments.
4009
40102004-05-07  Derek Price  <derek@ximbiot.com>
4011
4012	* cvs.h (fopen_case): Remove obsolescent prototype.
4013
40142004-05-05  Derek Price  <derek@ximbiot.com>
4015
4016	* sanity.sh: Wait a second and retry if cvs-serv* directories are
4017	discovered to avoid race conditions on some systems.
4018	(Patch from Pavel Roskin <proski@gnu.org>.)
4019
40202004-05-05  Derek Price  <derek@ximbiot.com>
4021
4022	* commit.c: Some gratuitous reformatting.
4023
40242004-05-04  Derek Price  <derek@ximbiot.com>
4025
4026	* update.c: Some gratuitous reformatting.
4027
40282004-05-04  Derek Price  <derek@ximbiot.com>
4029
4030	* add.c (add): Remove obsolete FIXME comment.
4031	(*): Some gratuitous reformatting.
4032
40332004-05-03  Derek Price  <derek@ximbiot.com>
4034
4035	* src/sanity.sh (branches2-14-ls-4): Change expectations due to new -d
4036	flag.
4037
40382004-05-02  Derek Price  <derek@ximbiot.com>
4039
4040	* sanity.sh (ls): Add some new tests of ls -d flag.
4041	(Original patch from Alexander Taler <dissent@cvshome.org>.)
4042
4043	* ls.c (ls): Accept -d to show dead files.
4044	(ls_proc): Add W_ATTIC to start_recursion flags when user requests dead
4045	files.
4046	(ls_fileproc): Don't show dead files with -d.  Print "dead" in long
4047	listings for dead files.
4048
40492004-05-02  Derek Price  <derek@ximbiot.com>
4050
4051	* ls.c (ls_dirleaveproc): Return err.
4052	(Original patch from Mark D. Baushke <mdb@cvshome.org>.)
4053
40542004-05-02  Derek Price  <derek@ximbiot.com>
4055
4056	* ls.c (ls_print): Return 0.
4057	(Patch from Mark D. Baushke <mdb@cvshome.org>.)
4058
40592004-04-30  Derek Price  <derek@ximbiot.com>
4060
4061	* tag.c (tag_check_valid): Treat a NULL repository the same as an empty
4062	one.
4063	* sanity.sh (branches2-ls-7): Verify absence of assertion failure.
4064
40652004-04-29  Derek Price  <derek@ximbiot.com>
4066
4067	* sanity.sh (branches2-rls-1): Reformat comment.
4068
40692004-04-28  Derek Price  <derek@ximbiot.com>
4070
4071	* sanity.sh (rcs2-5): Update to cope with new getdate.y.
4072
40732004-04-28  Derek Price  <derek@ximbiot.com>
4074
4075	* Makefile.am (cvs_LIBADD): Use libs for nanosleep & clock_gettime when
4076	necessary.
4077	* cvs.h: Remove get_date() proto and #include getdate.h.
4078	* client.c, history.c, main.c, rcs.c, server.c: Use new form of
4079	get_date().
4080	* Makefile.in: Regenerated.
4081
40822004-04-28  Derek Price  <derek@ximbiot.com>
4083
4084	* lock.c (set_lock), subr.c (sleep_past): Assume we have nanosleep.
4085
40862004-04-27  Derek Price  <derek@ximbiot.com>
4087
4088	* root.c (normalize_cvsroot): Use asnprintf in preference to other
4089	indirections.
4090
40912004-04-27  Derek Price  <derek@ximbiot.com>
4092
4093	Add dirname module from GNULIB.
4094
4095	* add.c, client.c, commit.c, find_names.c, import.c, lock.c, ls.c,
4096	repos.c, server.c, subr.c: s/ISDIRSEP/ISSLASH/.
4097
40982004-04-27  Derek Price  <derek@ximbiot.com>
4099
4100	* commit.c, create_adm.c, entries.c, filesubr.c, hash.c, update.c:
4101	Gratuitious reformatting.
4102
41032004-04-27  Derek Price  <derek@ximbiot.com>
4104
4105	* ls.c (ls_direntproc): Remove unneeded assertion.
4106
41072004-04-27  Derek Price  <derek@ximbiot.com>
4108
4109	* ls.c (ls): Set client_prune_dirs in order to delete any directories
4110	created by the server.
4111	(ls_dirleaveproc): Always delete directories created by
4112	ls_direntproc().
4113	* sanity.sh (ls): Update to match.
4114
41152004-04-27  Derek Price  <derek@ximbiot.com>
4116
4117	* ls.c: Remove unneeded prototypes.  Add `prune' option.
4118	(dircount): Remove static global.
4119	(set_tag, created_dir, ls_prune_dirs): New static globals.
4120	(ls): Handle new prune option.
4121	(ls_print_dir): Don't count directories, just remember not to print a
4122	blank line in front of the first one.  Don't list empty directories
4123	when prune is specified.
4124	(ls_delproc): New function to dispose of dirlist.
4125	(ls_direntproc): Reorganize to assume a directory without a parent must
4126	be listed.  Create missing directories a la update and checkout so that
4127	they may be processed.  Use new delproc when creating new list nodes.
4128	(ls_dirleave_proc): New function to remove directories created by
4129	ls_direntproc.
4130	(ls_proc): Call start_recursion() once for each argument so that
4131	ls_direntproc() may assume that any directory without a parent in the
4132	dirlist must be listed and others must not unless recursing.
4133	* sanity.sh (ls): New tests.
4134	(Thanks to a report from Mark D. Baushke <mdb@cvshome.org>.)
4135
41362004-04-26  Derek Price  <derek@ximbiot.com>
4137
4138	* rsh-client.c (start_rsh_server): Don't rely on GNU argument
4139	processing capabilities in the RSH command.
4140	(Report from Mark Andrews <Mark_Andrews@isc.org>.)
4141
41422004-04-26  Derek Price  <derek@ximbiot.com>
4143
4144	* ls.c (dircount): s/long long/long/ for Windows.
4145
41462004-04-23  Derek Price  <derek@ximbiot.com>
4147
4148	* ls.c (usage): Sync with manual.
4149
41502004-04-23  Derek Price  <derek@ximbiot.com>
4151
4152	* Makefile.am (cvs_SOURCES): Add ls.c.
4153	* client.c, subr.c: Move #include vasnprintf.h to...
4154	* cvs.h: ...here.
4155	(ls): Add prototype.
4156	* ls.c: New file.
4157	* main.c (cmds): Add ls & rls entries.
4158	* server.c (serve_ls, serve_rls): New functions.
4159	(requests): Add list, ls, rlist, & global-list-quiet.
4160	* sanity.sh (branches2): Test new cvs ls & rls commands.
4161	* Makefile.in: Regenerated.
4162	(Thanks for patches from Alexander Taler <dissent@cvshome.org>
4163	and Mark D. Baushke <mdb@cvshome.org>.)
4164
41652004-04-23  Derek Price  <derek@ximbiot.com>
4166
4167	* Makefile.am (AM_CPPFLAGS): No, really, $(top_builddir)/lib.
4168	* Makefile.in: Regenerated.
4169
41702004-04-23  Derek Price  <derek@ximbiot.com>
4171
4172	* Makefile.am (AM_CPPFLAGS): Add the builddir/lib directory for
4173	generated header files.
4174	* Makefile.in: Regenerated.
4175
41762004-04-22  Derek Price  <derek@ximbiot.com>
4177
4178	* cvs.h: Move include of fnmatch.h into lib/system.h with the other
4179        GNULIB headers.
4180
41812004-04-22  Derek Price  <derek@ximbiot.com>
4182
4183	* tag.c: Use bool where appropriate.  Some gratuitous reformatting.
4184
41852004-04-19  Derek Price  <derek@ximbiot.com>
4186
4187	* ignore.c: Gratuitous reformatting.
4188
41892004-04-16  Derek Price  <derek@ximbiot.com>
4190
4191	* tag.c: Gratuitous reformatting.
4192
41932004-04-16  Derek Price  <derek@ximbiot.com>
4194
4195	* client.c (connect_to_pserver): Use size_t instead of int as argument
4196	to asnprintf.  Some gratuitous reformatting.
4197	(Report from Mark <cm_mark@yahoo.com>.)
4198
41992004-04-15  Derek Price  <derek@ximbiot.com>
4200
4201	* client.c, commit.c, server.c: Gratuitous reformatting.
4202
42032004-04-11  Derek Price  <derek@ximbiot.com>
4204
4205	* client.c (call_in_directory): Check paths the server sends us to make
4206	sure they are within a sandbox the user requested be updated.
4207	(is_valid_client_path, path_list_prefixed): New functions.
4208
42092004-04-11  Derek Price  <derek@ximbiot.com>
4210
4211	* modules.c (do_module): Don't allow up-level references in paths to
4212	step out of the repository.
4213	* sanity.sh (multiroot3): Update tests and add a few more.
4214
42152004-04-11  Derek Price  <derek@ximbiot.com>
4216
4217	* client.c (get_proxy_port_number): Use CVS_PROXY_PORT as the default
4218	proxy port rather than CVS_AUTH_PORT.
4219
42202004-04-10  Mark D. Baushke  <mdb@cvshome.org>
4221
4222	* client.c (get_cvs_port_number): Use CVS_AUTH_PORT as the default
4223	for "cvspserver" rather than the CVS_PROXY_PORT.
4224	(Fixes parseroot-3r on machines without "cvspserver" in
4225	their /etc/services file.)
4226
42272004-04-07  Derek Price  <derek@ximbiot.com>
4228
4229	* sanity.sh (parseroot): s/oberon/$username/.
4230
42312004-04-06  Derek Price  <derek@ximbiot.com>
4232
4233	Import Jim Kingdon's old, old patch which allows CVS to work via a
4234	web proxy server.
4235	* client.c (*): Some gratuitous restyling.
4236	(get_proxy_port_number): New function.
4237	(connect_to_pserver): Connect via proxy.
4238	* client.h (CVS_PROXY_PORT): Define.
4239	* root.c (parse_cvsroot): Parse method options.
4240	* sanity.sh (parseroot): Add new tests.
4241
42422004-04-06  Derek Price  <derek@ximbiot.com>
4243
4244	* root.h (cvsroot_t): Move username, password, hostname, port inside
4245	CLIENT_SUPPORT ifdefs.
4246	* buffer.c, gssapi-client.c, root.c, sever.c: Add #ifdefs as necessary
4247	so that this will compile without client support and the root.h change.
4248	Some gratuitous restyling.
4249
42502004-04-06  Derek Price  <derek@ximbiot.com>
4251
4252	* log.c, tag.c: Gratuitous restyling.
4253
42542004-04-04  Derek Price  <derek@ximbiot.com>
4255
4256	* filesubr.c (isabsolute): Move...
4257	* subr.c: ...here and use new ISABSOLUTE macro.
4258
42592004-04-04  Derek Price  <derek@ximbiot.com>
4260
4261	* client.c (send_file_names): Cast out an unneeded const to avoid a
4262	warning.
4263
42642004-04-03  Larry Jones  <lawrence.jones@ugsplm.com>
4265
4266	* cvsrc.c: Remove unused declarations.
4267	* run.c: Ditto.
4268	* server.h (gunzip_and_write): Declare.
4269
4270	* client.c (send_file_names): Remove unused variables.
4271
42722004-04-02  Derek Price  <derek@ximbiot.com>
4273
4274	* sanity.sh (client): Honor $keep.
4275
42762004-04-02  Derek Price  <derek@ximbiot.com>
4277
4278	* log.c, patch.c, rcs.c: Gratuitous restyling.
4279
42802004-04-02  Derek Price  <derek@ximbiot.com>
4281
4282	* import.c (import): Use ISDIRSEP rather than testing paths against `/'
4283	directly.  Some gratuitos reformatting.
4284
42852004-04-02  Derek Price  <derek@ximbiot.com>
4286
4287	* sanity.sh: Note the effectiveness of `tail -f check.log' in providing
4288	running status.
4289
42902004-04-02  Derek Price  <derek@ximbiot.com>
4291
4292	* client.c (send_file_names): Move code which calculates and sends
4293	Max-dotdot...
4294	(send_max_dotdot): ...to this new function.
4295	(send_files): Call send_max_dotdot.
4296	* sanity.sh (files-14): Expect .. in paths to work now.
4297	(status): Add a few new tests using `..'.
4298
42992004-04-01  Derek Price  <derek@ximbiot.com>
4300
4301	* lock.c: Gratuitous restyling.
4302
43032004-04-01  Derek Price  <derek@ximbiot.com>
4304
4305	* commit.c, cvs.h, server.c: Gratuitous restyling.
4306	* run.c (run_exec): Ditto, plus call cvs_flush{out,err}() instead of
4307	flushing stderr & stdout directly.
4308
43092004-03-29  Derek Price  <derek@ximbiot.com>
4310
4311	* login.c, server.c: Gratuitous restyling.
4312
43132004-03-25  Derek Price  <derek@ximbiot.com>
4314
4315	* client.c (send_file_names): Initialize string to NULL rather than to
4316	a single byte string containing only a null byte.
4317	* subr.c (xrealloc_and_strcat): If the destination string is NULL,
4318	simply allocate a new string.
4319	(Original report from Chris Bohn <cbohn@rrinc.com>.)
4320
43212004-03-24  Mark D. Baushke  <mdb@cvshome.org>
4322
4323	* sanity.sh (ISODATE): Fix ISO 8601 format comment.
4324
43252004-03-22  Derek Price  <derek@ximbiot.com>
4326
4327	* sanity.sh (toplevel): Remove FIXME type comment and unneeded
4328	Emtptydir removal.
4329
43302004-03-22  Derek Price  <derek@ximbiot.com>
4331
4332	* update.c: Some minor style cleanup.
4333
43342004-03-22  Derek Price  <derek@ximbiot.com>
4335
4336	* update.c: Some minor style cleanup.
4337
43382004-03-22  Derek Price  <derek@ximbiot.com>
4339
4340	* sanity.sh (top-level): Don't match most of the assertion since this
4341	string is often system dependent.
4342	(Thanks to Larry Jones <lawrence.jones@ugsplm.com>.)
4343
43442004-03-22  Derek Price  <derek@ximbiot.com>
4345
4346	* sanity.sh (top-level): Don't match the assertion's line number.
4347
43482004-03-22  Derek Price  <derek@ximbiot.com>
4349
4350	* sanity.sh (top-level): New test to confirm assertion failure.
4351
43522004-03-22  Derek Price  <derek@ximbiot.com>
4353
4354	* sanity.sh: Only verify argument to -f when -f was passed.  Check for
4355	$TMPDIR/cvsXXXXXX temp files after each test.
4356
43572004-03-22  Derek Price  <derek@ximbiot.com>
4358
4359	* sanity.sh: Verify that the argument to -f is really a test.
4360
43612004-03-20  Larry Jones  <lawrence.jones@ugsplm.com>
4362
4363	* cvs.h: Change command_name to cvs_command_name to avoid conflict
4364	on HP-UX (incredibly, it declares a global command_name in prot.h,
4365	which is included from shadow.h, which we include in server.c).
4366	Change all references.
4367
4368	* subr.c (previous_rev): Fix == vs = typo.
4369
4370	* buffer.h: Add prototype for buf_empty.
4371
4372	* add.c (add): Remove unused variable.
4373
43742004-03-20  Derek Price  <derek@ximbiot.com>
4375
4376	* add.c (add, add_directory, build_entry), admin.c (admin_dirproc),
4377	checkin.c (Checkin), checkout.c (safe_location, build_dirs_and_chdir),
4378	client.c (add_prune_candidate, send_repository, send_a_repository,
4379	send_to_server, start_rsh_server, send_arg, send_modified,
4380	send_ignproc, send_filesdone_proc, send_dirent_proc,
4381	send_dirleave_proc, client_notify), commit.c (check_direntproc,
4382	check_filesdoneproc, checkaddfile, commit_direntproc,
4383	commit_dirleaveproc, lock_RCS, precommit_proc, find_data,
4384	find_dirent_proc, find_ignproc, find_filesdoneproc), create_adm.c
4385	(Create_Admin), cvsrc.c (read_cvsrc), diff.c (diff_dirproc,
4386	diff_filesdoneproc, diff_dirleaveproc), edit.c (onoff_filesdoneproc,
4387	mark_up_to_date, editor_set, notify_proc_args, notify_proc, notify_do,
4388	notify_check), entries.c (Scratch_Entry, Register, WriteTag),
4389	expand_path.c (expand_variable, expand_path), fileattr.c
4390	(fileattr_startdir), filesubr.c (mkdir_if_needed, xchmod,
4391	last_component), history.c (history_write), ignore.c (ignore_directory,
4392	ignore_files), import.c (get_comment, add_rcs_file, expand_at_signs),xi
4393	lock.c (lock_filesdoneproc), log.c (log_dirproc), logmsg.c
4394	(logfile_write, rcsinfo_proc, update_logfile_proc, editinfo_proc,
4395	verifymsg_proc, do_editor, do_verify, Update_Logfile), main.c (main
4396	program_name, program_path, command_name), parseinfo.c (Parse_Info),
4397	patch.c (patch_dirproc), rcs.c (RCS_getdatebranch, rcs_lockfilename,
4398	RCS_parse, RCS_setattic, RCS_getversion, RCS_gettag, RCS_getbranch,
4399	RCS_getdate, RCS_datecmp, RCS_getrevtime, RCS_setexpand,
4400	expand_keywords, RCS_checkout, RCS_addbranch, RCS_checkin, RCS_lock,
4401	RCS_cmp_file, RCS_deltas, rcs_lockfilename, make_file_label),
4402	rcscmds.c (RCS_output_diff_options, call_diff, RCS_merge,
4403	RCS_exec_rcsdiff, diff_exec), recurse.c (start_recursion, do_recursion,
4404	do_file_proc), remove.c (remove_dirproc), repos.c (Name_Repository,
4405	Short_Repository), root.c (Name_Root, Create_Root), run.c
4406	(piped_child), server.c (output_dir, server_register,
4407	server_checked_in, server_update_entries, server_copy_file,
4408	server_set_entstat, server_clear_entstat, server_set_sticky,
4409	server_template, cvs_output_tagged), status.c (status_dirproc), subr.c
4410	(make_message_rcslegal), tag.c (pretag_proc, tag_dirproc,
4411	check_fileproc, check_filesdoneproc, tag_fileproc, val_direntproc),
4412	update.c (update_dirent_proc, update_dirleave_proc, update_ignproc,
4413	update_filesdone_proc, isemptydir), vers_ts.c (time_stamp_server,
4414	time_stamp), watch.c (watch_modify_watchers, addremove_filesdoneproc),
4415	zlib.c (read_and_gzip): Make most string args const, mainly in the
4416	interest of preserving repository & updatedir but including some
4417	collateral damage.  Update a few functions to comply with new
4418	requirement.  Some style fixes.
4419	* client.h, cvs.h, edit.h, fileattr.h, rcs.h, server.h, update.h,
4420	watch.h: Update prototypes to match.
4421
44222004-03-20  Derek Price  <derek@ximbiot.com>
4423
4424	* sanity.sh (conflicts2): s/cvs/$testcvs/.
4425
44262004-03-20  Derek Price  <derek@ximbiot.com>
4427
4428	* add.c (add): Correct longstanding resurrection bugs.  Remove FIXME
4429	comment to this effect.  Set mode and Entries timestamps of resurrected
4430	files correctly.
4431	* sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
4432	update-p): Update tests to compensate.  Remove FIXCVS comments.
4433
44342004-03-19  Mark D. Baushke  <mdb@cvshome.org>
4435
4436	* server.c (gserver_authenticate_connection): Handle large
4437	GSSAPI packets dynamically.
4438	(Bug report from Douglas Engert <DEEngert@anl.gov>)
4439
44402004-03-19  Derek Price  <derek@ximbiot.com>
4441
4442	* cvs.h (pathname_levels, previous_rev): Remove leading underscore from
4443	prototype arguments to avoid potential conflicts with implementations.
4444
44452004-03-18  Derek Price  <derek@ximbiot.com>
4446
4447	* cvs.h (pathname_levels): Make string argument const.
4448	* subr.c (pathname_levels): Simplify function.
4449
44502004-03-17  Derek Price  <derek@ximbiot.com>
4451
4452	* commit.c (precommit_list_to_args_proc), logmsg.c (do_editor), subr.c
4453	(format_cmdline), tag.c (pretag_list_to_args_proc):
4454	s/atribute/attribute/.
4455	(Report from Matthew Doar <matt@trpz.com>.)
4456
44572004-03-17  Derek Price  <derek@ximbiot.com>
4458
4459	* subr.c (pathname_levels): Get it right this time.
4460
44612004-03-17  Derek Price  <derek@ximbiot.com>
4462
4463	* subr.c (pathname_levels): Remove incorrect assertion and just
4464	return 0 when pathname is NULL.
4465
44662004-03-17  Derek Price  <derek@ximbiot.com>
4467
4468	* subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
4469	and remove FIXME comment to that effect.
4470
44712004-03-16  Derek Price  <derek@ximbiot.com>
4472
4473	* main.c (main): Update the --version Copyright (c) string to
4474	include 2004.
4475
44762004-03-15  Mark D. Baushke  <mdb@cvshome.org>
4477
4478	* release.c (release): Add missing xmalloc of update_cmd.
4479
44802004-03-15  Derek Price  <derek@ximbiot.com>
4481
4482	* release.c (release): Enable authentication and encryption for a child
4483	update process when necessary.
4484	(Original patch from Dan Russell <russelld@aol.net> via Hal Mahaffey
4485	<HMahaffey@aol.com>.)
4486
44872004-03-14  Derek Price  <derek@ximbiot.com>
4488
4489	* add.c (add): Only call server_updated() when we actual have a new
4490	resurrected file for the client.
4491
44922004-03-14  Derek Price  <derek@ximbiot.com>
4493
4494	* cvs.h (previous_rev, write_letter): New prototypes.
4495	(struct file_info): Move to before the write_letter prototype.
4496	* add.c (add): Allow resurrection of files which used to exist on a
4497	branch.
4498	* subr.c (previous_rev): New function.
4499	* update.c: Consolidate like pragmas.
4500	 (write_letter): Remove prototype.  Remove static declaration.
4501	* sanity.sh (resurrection): New tests.
4502
45032004-03-14  Derek Price  <derek@ximbiot.com>
4504
4505	* commit.c (remove_file): Print the actual previous revision instead of
4506	a branch number.
4507	* sanity.sh: Update to match.
4508
45092004-03-14  Derek Price  <derek@ximbiot.com>
4510
4511	* rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
4512	open in the error message.
4513
45142004-03-14  Derek Price  <derek@ximbiot.com>
4515
4516	* diff.c (diff_fileproc): Allow diffing of new files against arbitrary
4517	revisions instead of assuming that there is no RCS archive file.
4518
45192004-03-14  Derek Price  <derek@ximbiot.com>
4520
4521	* sanity.sh: Update serveral tests to use $CPROG & $SPROG correctly.
4522
45232004-03-14  Derek Price  <derek@ximbiot.com>
4524
4525	* add.c (add): Update file resurrection messages for consistency.
4526	* sanity.sh: Update to match.
4527
45282004-03-13  Derek Price  <derek@ximbiot.com>
4529
4530	* server.c (server_updated): Fix header comment.
4531
45322004-03-13  Derek Price  <derek@ximbiot.com>
4533
4534	* Makefile.am (cvs_SOURCES): Remove error.h since it is now included in
4535	lib.
4536	* Makefile.in: Regenerated.
4537
45382004-03-09  Larry Jones  <lawrence.jones@ugsplm.com>
4539
4540	* run.c: Move #includes required for cmdline_escape and friends...
4541	* subr.c: ...to here.
4542
45432004-03-07  Derek Price  <derek@ximbiot.com>
4544
4545	* run.c (struct cmdline_bindings, cmdline_bindings_hash_node_delete,
4546	cmdline_escape, cmdline_quote, format_cmdline): Move...
4547	* subr.c: ...here so they will compile under Windows.
4548
45492004-03-03  Derek Price  <derek@ximbiot.com>
4550
4551	* import.c (import): Check that the module name specified by the user
4552	does not contain `CVS' as a directory name.
4553	* ignore.c (ign_add): Never cease ignoring "CVS" - it is a reserved
4554	name.
4555	(Original patch from Dan Peterson <dbpete@aol.com>.)
4556
4557	* sanity.sh (import-CVS): New tests for the above.
4558
45592004-02-29  Larry Jones  <lawrence.jones@ugsplm.com>
4560
4561	* import.c (expand_at_signs): Change type of len to size_t.
4562	* subr.c (resolve_symlink): Move declaration of newname inside
4563	#ifdef, clean up coding style.
4564	* zlib.c (gunzip_and_write): Fix up potential overlow problems.
4565	(read_and_gzip): Add explicit casts to placate paranoid compilers.
4566
45672004-02-28  Larry Jones  <lawrence.jones@ugsplm.com>
4568
4569	* sanity.sh (join6): New tests for previous fix.
4570
4571	* update.c (join_file): One more fix to avoid dereferencing NULL.
4572	(Reported by Steve McIntyre <steve@einval.com>.)
4573	* sanity.sh (join6): New tests for above.
4574
45752004-02-25  Larry Jones  <lawrence.jones@ugsplm.com>
4576
4577	* update.c (join_file): Fix optimization to avoid dereferencing NULL.
4578	(Reported by Steve McIntyre <steve@einval.com>.)
4579
45802004-02-25  Derek Price  <derek@ximbiot.com>
4581
4582	No longer require directories specified to `checkout -d' to exist.
4583
4584	* checkout.c (safe_location): Only confirm that destination is a safe
4585	location for directories that already exist since we can assume that
4586	creating directories under such a safe directory is acceptable.
4587	(dir_to_build): Remove just_chdir member.
4588	(checkout_proc): Add trace.  No longer set dir_to_build->just_chdir.
4589	Minor reformatting.
4590	(build_dirs_and_chdir): Don't create or register directories that are
4591	not created.
4592	* sanity.sh (*): Update tests to account for new behavior.
4593
45942004-02-25  Derek Price  <derek@ximbiot.com>
4595
4596	* buffer.c (buf_empty): New function.
4597	* server.c (server): Check for unread data in buffer before closing.
4598
45992004-02-25  Derek Price  <derek@ximbiot.com>
4600
4601	* release.c (release): Restore the initial directory before and after
4602	calling various sections of code that expect it to prevent corruption
4603	of CVS/Entries files on release of a subdir and tell unedit() what to
4604	release.
4605	* sanity.sh: Add test case for release.c fix.
4606	(Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
4607
4608	* client.c (last_entries): Move global variable...
4609	(call_in_directory): ...here (now a local variable).  Remove test that
4610	always evaluates to true.
4611	(last_dir_name): Remove unused global variable.
4612
46132004-02-24  Larry Jones  <lawrence.jones@ugsplm.com>
4614
4615	* filesubr.c (xresolvepath): Fix crash in error case.
4616	(Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
4617
46182004-02-24  Derek Price  <derek@ximbiot.com>
4619
4620	* sanity.sh (crerepos): Fix it so that it ignores the user's
4621	.cvsrc file (.cvsrc "checkout -r" used to cause the "rm -r 1"
4622	command to print warnings and wait for input).
4623	(Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
4624
4625	* sanity.sh (reposmv, parseroot, devcom3, binwrap3):
4626	s/_SAVED\>/_save/ for consistency.
4627
46282004-02-24  Derek Price  <derek@ximbiot.com>
4629
4630	* sanity.sh (taginfo-newfmt-examine-2): Correct expected results.
4631
46322004-02-23  Larry Jones  <lawrence.jones@ugsplm.com>
4633
4634	* sanity.sh (taginfo-examine-1): Correct expected results.
4635
46362004-02-20  Derek Price  <derek@ximbiot.com>
4637
4638	* subr.c (expand_string): Use x2realloc() from GNULIB for core
4639	functionality.
4640
46412004-02-20  Derek Price  <derek@ximbiot.com>
4642
4643	* subr.c (set_nonblock_fd): Move back to...
4644	* server.c: ...here.
4645	* cvs.h: Remove protos for the above two functions.
4646	* buffer.c (stdio_buffer_shutdown): Remove unexessary and possibly
4647	dangerous check for unread data on a pipe with a nonblock read.
4648
46492004-02-20  Larry Jones  <lawrence.jones@ugsplm.com>
4650
4651	* tag.c (check_fileproc): Remove unused variable.
4652
46532004-02-20  Derek Price  <derek@ximbiot.com>
4654
4655	* ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
4656	update.c: Remove VIM editor commands.
4657
46582004-02-20  Derek Price  <derek@ximbiot.com>
4659
4660	Import xalloc module from GNULIB, as well as its remaining unimported
4661	dependency, the exitfail module.
4662
4663	* cvs.h: #include "xalloc.h".
4664	* subr.c (xmalloc, xrealloc, xstrdup): Remove these functions.
4665
46662004-02-20  Larry Jones  <lawrence.jones@ugsplm.com>
4667
4668	* hash.h (struct node): Change data from char * to void *, change
4669	all callers.
4670
4671	* run.c (cmdlinequote, cmdlineescape): Use prototype in definition
4672	to match cvs.h.
4673	(format_cmdline): UNIQUE_*_TYPE_* macros imply HAVE_*, so no need
4674	to check for both.  Remove duplicate code for size_t and ptrdiff_t.
4675
4676	* tag.c (check_fileproc): Remove spurious invalid cast, clean up
4677	coding style.
4678
4679	* commit.c (precommit_list_proc): Remove vestigial prototype.
4680
46812004-02-19  Derek Price  <derek@ximbiot.com>
4682
4683	* run.c (format_cmdline): Don't accept printf `L' modifier at all when
4684	long doubles are not available.  Allow UNIQUE_FLOAT_TYPE_LONG_DOUBLE to
4685	imply HAVE_LONG_DOUBLE.
4686
46872004-02-19  Derek Price  <derek@ximbiot.com>
4688
4689	* run.c: Remove include of stddef.h - it is already included via
4690	lib/system.h.
4691
46922004-02-19  Larry Jones  <lawrence.jones@ugsplm.com>
4693
4694	* run.c: Include the appropriate headers for wchar_t and wint_t,
4695	create a typedef for convproc and use it (required for va_arg),
4696	add explicit comparisons to keep gcc -Wall happy, remove unused
4697	variables.
4698	(format_cmdline): Fix bugs and portability problems.
4699	* tag.c: Remove unused global variable.
4700	(pretag_proc): Correct call to format_cmdline: %hhc is not a valid
4701	printf format (should just be %c) and NULL must be cast to the correct
4702	type in a varargs call.
4703	(pretag_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
4704	remove unused variable, add auxiliary variable to simplify code,
4705	clean up coding style.
4706
4707	* commit.c (precommit_list_to_args_proc): Initialize arg to keep
4708	gcc -Wall happy, remove unused variable, clean up coding style.
4709	(precommit_proc): Cast NULL to the correct type in varargs call.
4710	* edit.c (notify_proc): Remove unused variables.
4711	* expand_path.c (expand_path): Initialize inquotes, add explicit
4712	comparison to keep gcc -Wall happy.
4713	* logmsg.c: Remove unused global variables and function decl.
4714	(do_verify): Add explicit comparison to keep gcc -Wall happy,
4715	clean up coding style.
4716	(logmsg_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
4717	remove unused variable.
4718	(logfile_write): Cast NULL to the correct type in varargs call.
4719	(verifymsg_proc): Cast NULL to the correct type in varargs call.
4720
47212004-02-19  Derek Price  <derek@ximbiot.com>
4722
4723	* run.c (format_cmdline): Correct some typos and cut/paste errors.
4724	Switch on HAVE_WINT_T for Solaris.  Switch on HAVE_INTMAX_T for other
4725	pre-C99 platforms.
4726
47272004-02-19  Derek Price <derek@ximbiot.com>
4728
4729	* sanity.sh (crerepos): Correct comment.
4730
47312004-02-19  Derek Price <derek@ximbiot.com>
4732
4733	* logmsg.c (verifymsg_proc), run.c (format_cmdline): Plug memory leak.
4734	(Report from Mark D. Baushke <mdb@cvshome.org>.)
4735
4736	* run.c (format_cmdline): Simplify two expressions.
4737
47382004-02-19  Larry Jones  <lawrence.jones@ugsplm.com>
4739
4740	* login.c (password_entry_operation): Initialize line.
4741
47422004-02-19  Derek Price  <derek@ximbiot.com>
4743
4744	* sanity.sh (tests): Add errmsg3.
4745
47462004-02-19  Derek Price  <derek@ximbiot.com>
4747
4748	* sanity.sh (errmsg3): Don't create directories named `tmp' in
4749	$TESTDIR to avoid conflicts with the default value of $TMPDIR.
4750
47512004-02-19  Derek Price  <derek@ximbiot.com>
4752
4753	* sanity.sh (crerepos): Don't create directories named `tmp' in
4754	$TESTDIR to avoid conflicts with the default value of $TMPDIR.
4755
47562004-02-19  Derek Price  <derek@ximbiot.com>
4757
4758	* sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
4759	dotest functions.
4760
47612004-02-19  Derek Price  <derek@ximbiot.com>
4762
4763	* sanity.sh: No longer allow user override of $tmp.  Set $TMPDIR to a
4764	directory under $TESTDIR, as for $HOME, but still allowing for user
4765	override.  Check for cvs-serv* directories under $TMPDIR rather than
4766	$tmp at the end of the script.
4767
47682004-02-19  Derek Price <derek@ximbiot.com>
4769
4770	* run.c (cmdline_quote): Plug memory leak.
4771	(format_cmdline): Don't bother with freeing memory before a call to
4772	error() which will exit.  Plug memory leak.
4773	(Report from Mark D. Baushke <mdb@cvshome.org>.)
4774
47752004-02-18  Derek Price <derek@ximbiot.com>
4776
4777	* run.c (format_cmdline): Move variable declaration to a position more
4778	acceptable to the ANSI C standards.
4779
47802004-02-17  Derek Price <derek@ximbiot.com>
4781
4782	* commit.c (precommit_proc): Installed new format_cmdline() instead
4783	of the old, nonuniform info file interpreter.  Support for new user
4784	data field in Parse_Info() callbacks.  Use cmdlinequote() instead of c.
4785	10 lines of quote processing.
4786	* cvs.h (expand_path):  Update proto.
4787	(UseNewInfoFmtStrings): New global variable to keep track of the config
4788	option of the same name.
4789	(format_cmdline): Added function prototypes and type definitions to
4790	support this new function.
4791	* edit.c (notify_proc):  Added the formatsafe flag to an
4792	expand_path() call.  Installed new format_cmdline() instead of the old,
4793	nonuniform info file interpreter.  Support for new user data field in
4794	Parse_Info() callbacks.
4795	* expand_path.c (expand_path):  Added the formatsafe flag to and some
4796	code to double up '%'s in variable subs if formatsafe is set on the
4797	presumption that the variables that expand_path() subs into the string
4798	are already working paths to files or whatever.  It should be quoting
4799	too but I haven't done that yet.
4800	* logmsg.c (title_proc, logmsg_list_to_args_proc, update_logfile_proc,
4801	rcsinfo_proc, editinfo_proc, verifymsg_proc, logfile_write): Installed
4802	new format_cmdline() instead of the old, nonuniform info file
4803	interpreter.  Support for new user data field in Parse_Info()
4804	callbacks.
4805	* main.c:  Added global UseNewInfoFmtStrings variable to keep track
4806	of the config file option of the same name (see above).
4807	* mkmodules.c (commitinfo_contents, editinfo_contents,
4808	taginfo_contents, verifymsg_contents, loginfo_contents: Document new
4809	format string features.
4810	(config_contents): Added new UseNewInfoFmtStrings option with default
4811	of yes.
4812	* modules.c (do_module):  Added the formatsafe flag to an
4813	expand_path call.
4814	* parseinfo.c (Parse_Info, parse_config):  Added the formatsafe flag
4815	to an expand_path() call.  Added handling for UseNewInfoFmtStrings
4816	option in the config file.  Set to no, modifications needed to set to
4817	yes are harmless.  Set to yes, modifications needed for full
4818	compatibility cause deprecation warnings.  Eliminating deprecation
4819	warnings should allow executable to be compile with
4820	--disable-old-info-format-support passed into configure.  Added user
4821	data field (closure) which is passed through into callproc to
4822	Parse_Info().
4823	* run.c (format_cmdline): New function to provide uniform handling of
4824	*info file scripting hook lines.
4825	(cmdline_bindings_hash_node_delete,
4826	(cmdlineescape, cmdlinequote): New functions to "quote" and "escape"
4827	strings like you would to get them past a command line parser as an
4828	argument.
4829	(run_setup): Made quote aware
4830	* sanity.sh (info, taginfo, config, pserver, lockfiles, reserved):
4831	New tests for the new format string functionality as well as the
4832	support of backwards compatibility.  Had to alter a few of the tests to
4833	not care which version of some of the (shared) config files they'd just
4834	checked in so that the tests can be run in any order.
4835	(taginfo): Add tests for file names with spaces in them.
4836	* server.c (template_proc): Support for new user data field in
4837	Parse_Info() callbacks.
4838	* tag.c (pretag_proc): Installed new format_cmdline() instead of the
4839	old, nonuniform info file interpreter.  Add support for new user data
4840	field in Parse_Info() callbacks.
4841	(check_fileproc): Add proper tag_info struct as node data rather than a
4842	single revision number in a string and pass tlist properly rather than
4843	in a global variable.
4844	(check_filesdone_proc): Altered to use non-global tlist.
4845	(tag_delproc): Handle new tag_info struct data members.
4846	(pretag_list_to_args_proc): Ditto.
4847	(pretag_list_proc): Deleted.
4848	* wrapper.c (Parse_Info): Added the formatsafe flag to an expand_path()
4849	call.
4850
48512004-02-17  Derek Price  <derek@ximbiot.com>
4852
4853	* sanity.sh: Check for $PWD != $TESTDIR after each set of tests rather
4854	than once at the end.  Check that there are no cvs-serv* directories in
4855	$tmp after each set of remote tests.
4856
48572004-02-17  Derek Price  <derek@ximbiot.com>
4858
4859	* sanity.sh: Don't check for an empty $TESTDIR - if $TESTDIR was empty
4860	then the preceding call to mkdir would have failed anyhow.
4861
48622004-02-17  Larry Jones  <lawrence.jones@ugsplm.com>
4863
4864	* log.c (rlog_proc): Fix (harmless) uninitialized variable.
4865
4866	* sanity.sh (basicc): Add tests pointing out defective handling
4867	of the Entries file.
4868
48692004-02-17  Derek Price  <derek@ximbiot.com>
4870
4871	* checkout.c (build_dir_and_chdir): Expand header comment.
4872
48732004-02-15  Mark D. Baushke  <mdb@cvshome.org>
4874
4875	* annotate.c (rannotate_proc): Plug a memory leak.
4876	* log.c (log_fileproc): Ditto.
4877	* tag.c (tag_fileproc): Ditto.
4878	* update.c (checkout_file): Ditto.
4879	* server.c (server_updated): Do not buf_free (filebuf) here.
4880
48812004-02-15  Derek Price  <derek@ximbiot.com>
4882
4883	Make error() accessible to the GNULIB functions.
4884
4885	* error.h: Move into the ../lib directory.
4886
48872004-02-13  Derek Price  <derek@ximbiot.com>
4888
4889	* lock.c (Reader_Lock, lock_dir_for_write): Plug memory leaks.
4890	(Report from Mark D. Baushke <mdb@cvshome.org>.)
4891
48922004-02-13  Derek Price  <derek@ximbiot.com>
4893
4894	* lock.c (remove_lock_files): Minor refactoring.
4895
48962004-02-12  Mark D. Baushke  <mdb@cvshome.org>
4897
4898	* lock.c (lock_exists): Plug a memory leak.
4899
49002004-02-12  Derek Price  <derek@ximbiot.com>
4901
4902	* modules.c: Reformat comment and line to fit in 80 chars.
4903
49042004-02-12  Mark D. Baushke  <mdb@cvshome.org>
4905
4906	* server.c (do_cvs_command): Plug a memory leak.
4907	(Use buf_free() rather than free().)
4908
49092004-02-12  Derek Price  <derek@ximbiot.com>
4910
4911	* sanity.sh (lockfiles): Reformat a comment for 80 characters.  Fix a
4912	few minor issues that caused tests to fail in remote mode.  Clean up
4913	after test.
4914
49152004-02-12  Derek Price  <derek@ximbiot.com>
4916
4917	* lock.c (unlock_proc): Don't expect an int in closure as it is not
4918	condoned in the C standard.  For now, just assume zero since this
4919	function is currently only called from one location.
4920	(remove_locks): Pass NULL for the closure argument to unlock_proc().
4921
49222004-02-12  Derek Price  <derek@ximbiot.com>
4923
4924	* lock.c (unlock_proc): Use closure as true/false free_repository
4925	free_repository argument to remove_lock_files.  Move to a position
4926	above remove_locks and delete prototype.
4927	(remove_locks): Don't free storage, as specified in our header comment,
4928	in order to avoid a seg fault that could otherwise occur after waiting
4929	on a lock.
4930	* sanity.sh (lockfiles): Add tests for all operation (read, read
4931	promotably, or write) and lock combinations.
4932	(Original report from Mark <cm_mark@yahoo.com>.)
4933
49342004-02-12  Larry Jones  <lawrence.jones@ugsplm.com>
4935
4936	* modules.c (_do_module): Rename to my_module to avoid reserved name.
4937	* stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
4938
49392004-02-12  Mark D. Baushke  <mdb@cvshome.org>
4940
4941	* commit.c (find_fileproc): Plug a memory leak.
4942
49432004-02-12  Larry Jones  <lawrence.jones@ugsplm.com>
4944
4945	* lock.c (_lock_simple_remove): Rename to remove_lock_files to avoid
4946	reserved name.  Fix typo (free => free_repository).
4947	(lock_simple_remove): Delete; use remove_lock_files directly.
4948	(lock_simple_remove_and_free): Ditto.
4949	(_lock_exists): Rename to lock_exists.
4950
49512004-02-11  Larry Jones  <lawrence.jones@ugsplm.com>
4952
4953	* root.c (parse_cvsroot): Set hostname in fork mode for error messages.
4954	* buffer.c (stdio_buffer_shutdown): Undo previous change.
4955
49562004-02-11  Mark D. Baushke  <mdb@cvshome.org>
4957
4958	* buffer.c (buf_free): Plug a memory leak.
4959	* commit.c (checkaddfile): Ditto.
4960
4961	* server.c (fd_buffer_shutdown): Avoid a double free().
4962
4963	* parseinfo.c (parse_config): Fix comments.
4964
49652004-02-11  Derek Price  <derek@ximbiot.com>
4966
4967	* buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
4968	print current_parsed_root->hostname when using the fork method.
4969
49702004-02-11  Derek Price  <derek@ximbiot.com>
4971
4972	* server.c (do_cvs_command): Simplify stream & pipe closing.
4973	(Suggestion from Eric Siegerman <erics@telepres.com>.)
4974
4975	* cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
4976
49772004-02-11  Derek Price  <derek@ximbiot.com>
4978
4979	* checkout.c (checkout_proc): Remove unneeded variable and enclosing
4980	block.
4981	* modules.c (_do_modules): Minor whitespace change.
4982
49832004-02-10  Derek Price  <derek@ximbiot.com>
4984
4985	* lock.c (lock_simple_remove): Move core functionality...
4986	(_lock_simple_remove): ...here.
4987	(lock_simple_remove_and_free): New function.
4988	(set_promotable_lock): Use new function to avoid freeing data that will be
4989	reused.
4990
49912004-02-10  Derek Price  <derek@ximbiot.com>
4992
4993	* server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
4994	(set_block_fd, set_nonblock_fd): Move to...
4995	* subr.c: ...here.
4996	* cvs.h: Add protos for the above two functions.
4997	* buffer.c (stdio_buffer_shutdown): Replace fgetc() which checked for
4998	unread data on a pipe with a nonblock read.
4999
50002004-02-10  Derek Price  <derek@ximbiot.com>
5001
5002	* server.c (do_cvs_command): Have the server child close all the pipes
5003	but the flow control pipe and wait on an EOF on the flow control pipe
5004	from the parent when done to avoid a race condition that could
5005	otherwise generate a SIGPIPE for the parent before the SIGCHILD when
5006	the other pipes were so full after a child exited that the parent
5007	attempted to write a stop byte to the flow control pipe.
5008	(Original report from <jesse_off@stchome.com>.)
5009
50102004-02-10  Derek Price  <derek@ximbiot.com>
5011
5012	* buffer.c (stdio_buffer_shutdown): Add a helpful comment.
5013
50142004-02-09  Derek Price  <derek@ximbiot.com>
5015
5016	* lock.c (lock_simple_remove): Add comments.  Use critical sections to
5017	set some variables that might otherwise cause trouble.
5018	(struct lock): Correct comment.
5019
50202004-02-09  Derek Price  <derek@ximbiot.com>
5021
5022	Attempt to improve readability of code.
5023
5024	* lock.c (promotable_lock): Rename to...
5025	(set_promotable_lock): ...this.
5026	(set_promotablelock_proc): Expand header comment.
5027	(Promotable_Lock): Rename to...
5028	(lock_tree_promotably): ...this.
5029
50302004-02-09  Derek Price  <derek@ximbiot.com>
5031
5032	* lock.c (set_writelock_proc): Remove unused prototype.
5033	(promotable_lock): Remove unneded whitespace.
5034	(Promotable_Lock): Correct comments.
5035
50362004-02-09  Derek Price  <derek@ximbiot.com>
5037
5038	* sanity.sh (co-d): Update comments and tests to reflect the current
5039	state of my side of my discussion with Larry Jones on how these
5040	commands should behave.
5041
50422004-02-09  Derek Price  <derek@ximbiot.com>
5043
5044	* sanity.sh (emptydir): Add two new tests for how modules -d behaves
5045	when a directory already exists in the user's workspace.
5046	(emptydir): Add --keep functionality.
5047
50482004-02-09  Derek Price  <derek@ximbiot.com>
5049
5050	* sanity.sh (co-d): New test to prove `co -d' failure case.
5051
50522004-02-05  Derek Price  <derek@ximbiot.com>
5053
5054	* sanity.sh (recase): Fix typo that creeped in somehow between my last
5055	test run and my commit.
5056
50572004-02-04  Derek Price  <derek@ximbiot.com>
5058
5059	* modules.c (do_modules): Move content to and make this function a
5060	wrapper for...
5061	(_do_modules): ...this new function which can watch for infinite loops
5062	in alias modules.
5063	* stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
5064	unshift_string, shift_string): New
5065	functions.
5066	* stack.h (push_string, pop_string, unshift_string, shift_string: New
5067	prototypes.
5068	* sanity.sh (modules): Add check for nested alias loops.
5069
50702004-02-04  Derek Price  <derek@ximbiot.com>
5071
5072	* sanity.sh (recase): Update test names and comments for clarity and
5073	consistency.
5074
50752004-02-04  Derek Price  <derek@ximbiot.com>
5076
5077	* sanity.sh (recase): Restore some cruft necessary when clients know
5078	they are on case insensitive systems.
5079
50802004-02-03  Derek Price  <derek@ximbiot.com>
5081
5082	Preserve the case of checked out directories in a path as well as file
5083	names for client communication with the server.
5084
5085	* Makefile.am (cvs_SOURCES): Add stack.c & stack.h.
5086	* stack.c, stack.h: New files.
5087	* cvs.h: Include stack.h.
5088	* client.c (send_file_names): Preserve the case of directories in a
5089	path as well as file names for communication with the server.
5090
5091	* Makefile.in: Regenerated.
5092
50932004-02-04  Derek Price  <derek@ximbiot.com>
5094
5095	* checkout.c (find_fileproc): Update error message for consistency.
5096	* sanity.sh (basica): Update to compensate.
5097
50982004-02-04  Derek Price  <derek@ximbiot.com>
5099
5100	* classify.c (Classify_File): Update header comment block and reformat
5101	prototype for readability in 80 character widths.
5102
51032004-02-02  Derek Price  <derek@ximbiot.com>
5104
5105	* sanity.sh (*): Update tests for the new status message from update.c.
5106
51072004-02-02  Derek Price  <derek@ximbiot.com>
5108
5109	* sanity.sh (join-rm): New test for issue #104 & #159.
5110
51112004-02-02  Derek Price  <derek@ximbiot.com>
5112
5113	* update.c (join_file): Correct status message for consistency.
5114
51152004-02-02  Derek Price  <derek@ximbiot.com>
5116
5117	Continue removal from server of handling of case insensitive clients.
5118
5119	* cvs.h: Remove extern declaration of ign_case.
5120	* ignore.c (ign_case): Remove declaration.
5121	(ign_name): Remove support for ign_case.
5122	* server.c (serve_case): Ditto.
5123	(requests): No longer support the "Case" request.
5124	* rcs.c (locate_rcs): Remove reference to GLOBAL in function header
5125	comment.
5126
51272004-02-02  Derek Price  <derek@ximbiot.com>
5128
5129	* client.c (send_file_names): Restore prescribed client handling of the
5130	FILENAMES_CASE_INSENSITIVE switch.
5131
51322004-01-25  Derek Price  <derek@ximbiot.com>
5133
5134	* server.c (kserver_authenticate_connection): Fix call to
5135	switch_to_user().
5136	(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
5137
51382004-01-22  Derek Price  <derek@ximbiot.com>
5139
5140	* modules.c (do_module): Strip trailing slashes before checking for
5141	infinite alias loops.
5142	* sanity.sh (modules): Tests for response to infinite alias loops.
5143
51442004-01-17  Mark D. Baushke  <mdb@cvshome.org>
5145
5146	* logmsg.c (do_verify): Eliminate double-free bug.
5147	(Original patch from Gerald Combs.)
5148
51492004-01-12  Mark D. Baushke  <mdb@cvshome.org>
5150
5151	* lock.c (lock_name): Deal with potentially NULL string pointers
5152	in calls to TRACE.
5153	(promotable_lock): Ditto.
5154	(set_lock): Ditto.
5155	* sanity.sh (trace): Update to latest patterns.
5156
51572004-01-07  Larry Jones  <lawrence.jones@ugsplm.com>
5158
5159	* checkout.c (safe_location): Remove unused variable(s).
5160	* lock.c (lock_tree_for_write): Ditto.
5161	* rcs.c (RCS_checkin): Ditto.
5162	* subr.c (compare_revnums): Ditto.
5163	* tag.c (tag_check_valid): Ditto.
5164	* mkmodules.c (init): Initialize err and return it rather than 0.
5165	* server.c (do_cvs_command): Only define and set max_command_fd if
5166	we're actually going to use it.
5167
51682004-01-06  Mark D. Baushke  <mdb@cvshome.org>
5169
5170	* socket-client.c (socket_buffer_initialize): Fix argument
5171	declaration for VMS compiler.
5172	(Patch submitted from Michael Lemke
5173	<ai26@sternwarte.uni-erlangen.de>.)
5174
51752004-01-01  Larry Jones  <lawrence.jones@ugsplm.com>
5176
5177	* zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
5178	overruns, use names for magic numbers.
5179	(Original patch from Jeff Downs <heydowns@borg.com>.)
5180
51812003-12-17  Larry Jones  <lawrence.jones@ugsplm.com>
5182
5183	* main.c (main): Don't reference isremote without CLIENT_SUPPORT.
5184	(Patch from Jim Salter <jsalterjim@earthlink.net>.)
5185
51862003-12-18  Derek Price  <derek@ximbiot.com>
5187
5188	* server.c (switch_to_user): SysLog attempts to root from pserver.
5189
51902003-12-18  Derek Price  <derek@ximbiot.com>
5191
5192	* server.c (switch_to_user): Don't allow CVS to run as root in pserver
5193	mode.
5194	(Original patch from Wichert Akkerman via Bradley M Kuhn
5195         <bkuhn@fsf.org>.)
5196	* sanity.sh (pserver): Check for bad root error message.
5197
51982003-12-17  Larry Jones  <lawrence.jones@eds.com>
5199
5200	* run.c (close_on_exec): fcntl is not documented to return 0 for
5201	success (and QNX doesn't), only -1 for error.
5202	(Patch from George Refseth <george.refseth@arxi.no>.)
5203
52042003-12-10  Larry Jones  <lawrence.jones@eds.com>
5205
5206	* rcs.c: Cleanup HAVE_MMAP code in preparation for falling back to
5207	stdio if mmap fails on large files.
5208
52092003-12-10  Mark D. Baushke  <mdb@cvshome.org>
5210
5211	* tag.c (tag_check_valid): Fix typo.
5212	(Patch from Rob Clevenger <rob@robsite.org>.)
5213
52142003-12-09  Derek Price  <derek@ximbiot.com>
5215
5216	Rewrite code to use promotable write locks to avoid locking more than a
5217	directory at a time for a full write.
5218
5219	* cvs.h (lock_tree_for_write): Rename to...
5220	(lock_tree_promotably): ...this.
5221	(Simple_Lock_Cleanup): New prototype.
5222	* lock.c: Remove some unneeded prototypes.  Some function
5223	reorganization.
5224	 (struct lock): Make repository const.  Add file1 & file2 to
5225	track lock names.  Keep track of when repository needs to be freed.
5226	(promotablelock, global_writelock): New globals.
5227	(locked_dir, locked_list): Remove unneeded globals.
5228	(lock_name): Take const args.
5229	(remove_locks): Update comment.  Move readlock cleanup...
5230	(Simple_Lock_Cleanup): ...to this new function which also cleans up
5231	writelocks.
5232	(Lock_Cleanup): No need to clean up after the obsolete locked_dir &
5233	locked_list.
5234	(lock_simple_remove): Use new lock name cache.  Set lock->repository to
5235	NULL to show locks are removed.  Free repository name when necessary.
5236	(Reader_Lock): Copy xrepository argument so we do not need to trust the
5237	caller not to dispose of it.  Use lock name cache.  Factor code to set
5238	the global readlock variable...
5239	(set_readlock_name): ...to this new function so it can be used by
5240	promotable_lock too.
5241	(readers_exist): Factor common code and make wrapper for...
5242	(_lock_exists): ...this new function.
5243	(promotable_exists): Wrapper for _lock_exists().
5244	(write_lock): Rename to...
5245	(promotable_lock): ...this and tweak for new behavior.
5246	(set_writelock_proc): Rename to...
5247	(set_promotablelock_proc): ...this and tweak for new functionality.
5248	(Write_Lock): Rename to...
5249	(Promotable_Lock): ...this and tweak for new functionality.
5250	(set_lock): Add trace.
5251	(lock_tree_for_write): Rename to...
5252	(lock_tree_promotably): ...this and tweak for new functionality.
5253	(lock_dir_for_write): Lock only one directory at a time in a promotable
5254	lock aware fashion using new interfaces.
5255	* admin.c, commit.c, edit.c, watch.c:
5256	s/lock_tree_for_write/lock_tree_promotably/.
5257	s/CVS_LOCK_NONE/CVS_LOCK_WRITE/ in calls to start_recursion that used
5258	to rely on lock_tree_for_write() to obtain their write locks.  Remove
5259	some unnecessary typecasting.
5260	* recurse.c (do_recursion): Use Simple_Lock_Cleanup() rather than
5261	Lock_Cleanup to avoid removing promotable locks.
5262	* server.c (do_cvs_command): Add traces.
5263	(server): Add new way to sleep the parent server process for connecting
5264	a debugger.
5265	* sanity.sh (lockfiles, multiroot2): Update tests to accomodate minor
5266	trace inconsistencies.
5267
52682003-12-09  Mark D. Baushke  <mdb@cvshome.org>
5269
5270	* sanity.sh (trace): Remove trace from the set of tests to run.
5271	The regexps used take an excessive amount of time and need to
5272	be simplified.
5273
52742003-12-08  Mark D. Baushke  <mdb@cvshome.org>
5275
5276	* rcs.c (rcsbuf_ftell): Rename to...
5277	(rcsbuf_ftello): this.
5278	(rcsbuf_cache_open): Use off_t rather than long as the pos
5279	argument. Use fseeko rather than fseek and ftello rather than
5280	ftell.
5281	* rcs.h (struct rcsnode): delta_pos is now an off_t type.
5282
52832003-12-03  Derek Price  <derek@ximbiot.com>
5284
5285	* sanity.sh (recase): Add some clarifying comments.
5286
52872003-12-03  Larry Jones  <lawrence.jones@eds.com>
5288
5289	* expand_path.c (expand_variable): Expand ${CVSROOT} to just the
5290	directory like it's supposed to be.
5291	(Reported by Michael S. Tsirkin <cvs1@misha.eml.cc>.)
5292
52932003-11-26  Mark D. Baushke  <mdb@cvshome.org>
5294
5295	* sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
5296
52972003-11-26  Derek Price  <derek@ximbiot.com>
5298
5299	Remove server support for case insensitive clients.  Includes some
5300	merges from 1.11.x.
5301
5302	* add.c, client.c, cvs.h, rcs.c, subr.c: Remove unnecessary support for
5303	case insensitive clients.
5304	* sanity.sh (tests): Add recase.
5305	(recase): New test of cases that might be expected to cause problems
5306	with a heterogeneous mix of case sensitive and case insensitive clients
5307	and servers.
5308
53092003-11-26  Derek Price  <derek@ximbiot.com>
5310
5311	* sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
5312	intermittent conniptions.
5313
53142003-11-25  Mark D. Baushke  <mdb@cvshome.org>
5315
5316	* sanity.sh (binfiles2): Correct yet another Cygwin difficulty.
5317
53182003-11-25  Derek Price  <derek@ximbiot.com>
5319
5320	* sanity.sh (release): Perform forgotten cleanup.
5321
53222003-11-25  Derek Price  <derek@ximbiot.com>
5323
5324	* sanity.sh (env): Enable to work with $remotehost.
5325
53262003-11-25  Mark D. Baushke  <mdb@cvshome.org>
5327
5328	* sanity.sh (trace-19): Separate stdout and stderr to workaround
5329	problems on SGI IRIX.
5330	(crecrepos): Use 'unset DISPLAY' to avoid problems with ssh
5331	X11Forwarding configurations.
5332
53332003-11-25  Derek Price  <derek@ximbiot.com>
5334
5335	* sanity.sh (pserver, server, server2): Save $servercvs and use the
5336	local $testcvs for these tests.
5337
53382003-11-25  Derek Price  <derek@ximbiot.com>
5339
5340	* commit.c (commit_fileproc): Reword comment.
5341
53422003-11-25  Derek Price  <derek@ximbiot.com>
5343
5344	* sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
5345	considerably between platforms.
5346
53472003-11-25  Mark D. Baushke  <mdb@cvshome.org>
5348
5349	* sanity.sh (CVS_RSH): Read config file sooner to pickup RSH_DFLT
5350	for use in setting CVS_RSH variable.
5351	* sanity.config.sh.in (RSH_DFLT): Use new substitution variable.
5352	* Makefile.am (localcheck, remotecheck): Depend on sanity.config.sh.
5353	* Makefile.in: Regenerate for new Makefile.am.
5354
5355	* update.c (join_file): Deal with rev1 == NULL due to rev1 merge tag
5356	being missing from the current file.
5357	* sanity.sh (join6): New tests for this case.
5358	(trace): Renumber test cases.
5359
53602003-11-24  Larry Jones  <lawrence.jones@eds.com>
5361
5362	* diff.c (diff_file_nodiff): use_rev1 does *not* imply that diff_rev1
5363	is not null, diff_date1 could be set instead (ditto for use_rev2).
5364	(Reported by <jnelson-cvsbug@jamponi.net>.)
5365
53662003-11-24  Mark D. Baushke  <mdb@cvshome.org>
5367
5368	* client.c (connect_to_forked_server): Avoid passing NULL strings
5369	to TRACE. Calling printf("%s",NULL) is not defined and may
5370	segfault on some systems.
5371	* diff.c (diff_file_nodiff): Ditto.
5372	* main.c (main): Ditto.
5373	* modules.c (do_module): Ditto.
5374	* patch.c (patch_proc): Ditto.
5375	* rcs.c (RCS_cmp_file): Ditto.
5376	* recurse.c (start_recursion): Ditto.
5377	* root.c (parse_cvsroot): Ditto.
5378	* server.c (dirswitch, server_pathname_check, dirswitch,
5379	serve_directory):  Ditto.
5380	* tag.c (rtag_proc, check_fileproc, tag_check_valid): Ditto.
5381	* sanity.sh (trace): New testcase to test the -t option.
5382	(RCSDATE, ISODATE, PFMT): New variables in aid of the trace tests.
5383	(dotest_fail_sort): New function in aid of the trace tests.
5384	(template): Fix cleanup.
5385
53862003-11-24  Derek Price  <derek@ximbiot.com>
5387
5388	* sanity.sh (modes3): Skip modes3-5 entirely under Cygwin since
5389	permisions are broken there.  This change removes most of the earlier
5390	Cygwin differentiation in this test ($cygwin_hack & $cygwin_hack2) in
5391	favor of skipping the test entirely.
5392
53932003-11-24  Derek Price  <derek@ximbiot.com>
5394
5395	* sanity.sh: Add `-h <hostname>' option to enable testing across a
5396	:ext: connection to another host.  Warn when `-h' is specified without
5397	$TESTDIR.  Leave $TESTDIR intact when it looks absolute since it may
5398	contain symlinks.  Allow $CVS_SERVER to be overridden via the
5399	environment for `-h'.  Default $CVS_RSH to `ssh'.
5400	(*): Use $CVS_RSH to perform certain commands on the remote host (esp.
5401	`ln -s' and `chmod') when `-h' is specified to work around
5402	incompatibilities with CygWin & Samba.  Add a few other minor
5403	workarounds for Cygwin bugs.
5404
5405	(newroot): New function.
5406	(*): Use newroot when appropriate.
5407
54082003-11-21  Larry Jones  <lawrence.jones@eds.com>
5409
5410	* hash.c (printnode, printlist): Cast %p arguments to void * as
5411	required by the C standard.
5412
54132003-11-21  Larry Jones  <lawrence.jones@eds.com>
5414
5415	* recurse.c (start_recursion, do_recursion): Cast %p arguments to
5416	void * as required by the C standard.
5417
54182003-11-19  Larry Jones  <lawrence.jones@eds.com>
5419
5420	* rcs.c (RCS_getrevtime): Add error checking; cleanup.
5421
54222003-11-18  Derek Price  <derek@ximbiot.com>
5423
5424	* socket-client.c (socket_buffer_initialize): Rename poorly named `n'
5425	to a slightly more descriptive `sbuf'.
5426	(Suggestion from Larry Jones  <lawrence.jones@eds.com>.)
5427
54282003-11-18  Derek Price  <derek@ximbiot.com>
5429
5430	* socket-client.c (socket_buffer_initialize): Pass in the socket
5431	closure we allocate.
5432	(Report from Larry Jones  <lawrence.jones@eds.com>.)
5433
54342003-11-18  Derek Price  <derek@ximbiot.com>
5435
5436	* modules.c (do_module): Reject absolute paths.
5437	(Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
5438
5439	* sanity.sh (abspath2): Check for the above.
5440	(spacefiles): Remove tests that expect absolute paths to files in the
5441	top level repository directory to work.
5442	(tests): Add abspath2.
5443
54442003-11-18  Derek Price  <derek@ximbiot.com>
5445
5446	* socket-client.c (socket_buffer_initialize): Correct a typo that
5447	happened to compile.
5448	(Report and suggested fix from Patrick Brown <BrownP@symbol.com>.)
5449
54502003-11-13  Derek Price  <derek@ximbiot.com>
5451
5452	* rcs.c (RCS_delete_revs): It's `&&', not `and'.
5453
54542003-11-13  Derek Price  <derek@ximbiot.com>
5455
5456	* sanity.sh: Create the empty log to make it easier to tail immediately
5457	after the script is started.
5458
54592003-11-13  Derek Price  <derek@ximbiot.com>
5460
5461	* sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
5462	the help option.
5463
54642003-11-13  Derek Price  <derek@ximbiot.com>
5465
5466	* rcs.c (RCS_delete_revs): Don't use the WOE32 kludge which refuses to
5467	delete revisions from bvinary files on Cygwin.  I'm not sure what the
5468	kludge was trying to avoid, but commenting it out causes the test suite
5469	to pass.
5470
54712003-11-12  Derek Price  <derek@ximbiot.com>
5472
5473	* main.c (main): Remove a trailing newline from the version string.
5474	Replace multiple calls to fputs to a single call reformated to C89
5475	specifications.  Remove some typecasts unecessary under C89.
5476	* sanity.sh (version): Remove trailing newline from the version string.
5477
54782003-11-12  Derek Price  <derek@ximbiot.com>
5479
5480	* add.c (add): Allocate more space for the string I added characters
5481	to.
5482	(Report from Mark D. Baushke <mdb@cvshome.org>.)
5483
54842003-11-11  Derek Price  <derek@ximbiot.com>
5485
5486	* add.c (add), classify.c (Classify_File), client.c (update_entries),
5487	repos.c (Name_Repository): Use consistent quoting in error messages.
5488	Misc reformatting.
5489	* sanity.sh: Update to match.
5490
54912003-11-10  Derek Price  <derek@ximbiot.com>
5492
5493	* commit.c (find_fileproc, check_fileproc):  Refuse to remove files
5494	when the file exists in the sandbox.  This used to cause data loss.
5495	(Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
5496
5497	* sanity.sh (rmadd3): Update to match.  Expand comments.
5498
54992003-11-10  Derek Price  <derek@ximbiot.com>
5500
5501	* sanity.sh (rmadd3): Test the behavior of commit after the
5502	add/replace.
5503	(Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
5504
55052003-11-10  Derek Price  <derek@ximbiot.com>
5506
5507	* sanity.sh (rmadd3): Fix another typo.
5508
55092003-11-10  Mark D. Baushke  <mdb@cvshome.org>
5510
5511	* recurse.c (do_dir_proc): Set xframe.repository to NULL after a
5512	call to free().
5513
55142003-11-10  Derek Price  <derek@ximbiot.com>
5515
5516	* sanity.sh (rmadd3): Fix typo.
5517
55182003-11-10  Derek Price  <derek@ximbiot.com>
5519
5520	* sanity.sh (rmadd3): New tests that confirms that CVS refuses to
5521	delete a file it thinks was already removed.
5522	(Report and test from Andreas Reifschneider
5523	<andyreif@studcs.uni-sb.de>.)
5524
55252003-11-03  Derek Price  <derek@ximbiot.com>
5526
5527	* sanity.sh (server): Test that the global `-l' option is ignored
5528	nonfatally.
5529
55302003-11-03  Derek Price  <derek@ximbiot.com>
5531
5532	* server.c (serve_global_option): Warn that -l is being ignored rather
5533	than exiting fatally due to backwards compatibility complaints from
5534	administrators.
5535
55362003-11-01  Larry Jones  <lawrence.jones@eds.com>
5537
5538	* filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
5539	(Reported by Paul Edwards <kerravon@nosppaam.w3.to>.)
5540
55412003-10-31  Derek Price  <derek@ximbiot.com>
5542
5543	* sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
5544
55452003-10-28  Derek Price  <derek@ximbiot.com>
5546
5547	* sanity.sh (devcom): Renumber tests and use dotest function.
5548
55492003-10-28  Derek Price  <derek@ximbiot.com>
5550
5551	* sever.h: Add the standard copyright notice.
5552
55532003-10-28  Derek Price  <derek@ximbiot.com>
5554
5555	* lock.c: Remove some suggestions which have already been implemented
5556	or which have become obsolete from the header comment.
5557
55582003-10-26  Derek Price  <derek@ximbiot.com>
5559
5560	* sanity.sh (join6): Fix a few typos in the last test and remove a
5561	misplaced test.
5562
55632003-10-25  Mark D. Baushke  <mdb@cvshome.org>
5564
5565	* sanity.sh (parseroot): Use dokeep function.
5566
5567	* sanity.sh (parseroot): Perform this test in a subdirectory.
5568	It should avoid problems on case-insensitive systems where
5569	CVSROOT and cvsroot are the same directory (eg, MacOS X).
5570
55712003-10-24  Derek Price  <derek@ximbiot.com>
5572
5573	* update.c (join_file): Restore the optimization Mark recently removed,
5574	but fix it.  Move one other optimization up since it needs to be
5575	checked for first.  Add bew status messages like merge_file produces
5576	when the requested diff has already been applied to the destination.
5577	Expand header comment.
5578	* sanity.sh (join6): Add tests for the new error messages.
5579	(import-113, join-admin-2, diffmerge1): Fix collateral damage.
5580
55812003-10-24  Derek Price  <derek@ximbiot.com>
5582
5583	* update.c (merge_file): Optimize & eliminate code.
5584
55852003-10-24  Derek Price  <derek@ximbiot.com>
5586
5587	* recurse.c (do_recursion): Assert that ignoring the return value of
5588	Name_Repository is not a memory leak.
5589
55902003-10-24  Derek Price  <derek@ximbiot.com>
5591
5592	* repos.c (Name_Repository): Replace a FIXME with the improved error
5593	message it requested.
5594	* sanity.sh (errmsg3): New test for the above.
5595
55962003-10-24  Derek Price  <derek@ximbiot.com>
5597
5598	* patch.c (patch_proc): Avoid memory leak.
5599	(Patch from Mark D. Baushke  <mdb@cvshome.org>.)
5600	(patch_proc): Reformat a few long lines for readability.
5601
56022003-10-24  Derek Price  <derek@ximbiot.com>
5603
5604	* vers_ts.c (Version_TS): Move variable declaration inside the only
5605	block where it is used and remove uneeded reinitialization.
5606
56072003-10-24  Derek Price  <derek@ximbiot.com>
5608
5609	* server.h: s/^extern// off of function declarations per HACKING.
5610	Reformat protos for readability.
5611
56122003-10-24  Derek Price  <derek@ximbiot.com>
5613
5614	* vers_ts.c (Version_TS): Reformat declaration and expand header
5615	comment.
5616
56172003-10-24  Derek Price  <derek@ximbiot.com>
5618
5619	* update.c (merge_file): Remove code that hasn't been used since CVS
5620	used an external RCS (1.9.something).
5621
56222003-10-23  Mark D. Baushke  <mdb@cvshome.org>
5623
5624	* update.c (join_file): Do the -jrev1 -jrev2 merge even when
5625	the file is already at rev2.
5626	* sanity.sh (join6): New testcase for above.
5627	(Suggested by Paul Edwards, from somewhere in Australia.)
5628	(import): Fix collateral damage.
5629
56302003-10-23  Derek Price  <derek@ximbiot.com>
5631
5632	* sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
5633	on failure.
5634
56352003-10-22  Derek Price  <derek@ximbiot.com>
5636
5637	* recurse.c (start_recursion): Reformat function declaration and
5638	expand comments.
5639	(Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
5640
56412003-10-22  Derek Price  <derek@ximbiot.com>
5642
5643	* Makefile.am (cvs_LDADD): Add $(LIBINTL) for gettext.
5644	* Makefile.in: Regenerated.
5645
56462003-10-19  Mark D. Baushke  <mdb@cvshome.org>
5647
5648	* sanity.sh (admin-31): Fix more typos.
5649
56502003-10-18  Mark D. Baushke  <mdb@cvshome.org>
5651
5652	* sanity.sh (admin): Fix a typo.
5653
5654	* admin.c (admin_fileproc): Restore the ':' character in the
5655	-mtag:message admin argument even if the tag does not exist so
5656	that other files with the tag will be found. Also, be more
5657	paranoid that a symbolic tag actually points to a version that
5658	exists.
5659	(Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
5660	* sanity.sh (admin): Test these changes.
5661
56622003-10-17  Mark D. Baushke  <mdb@cvshome.org>
5663
5664	* admin.c (admin_fileproc): Force tag match on admin
5665	-mversion:message rather than altering the wrong log message.
5666	(Patch from "Rodolfo Schulz de Lima" <rodsoft@uol.com.br>.)
5667	* sanity.sh (admin): Test case for it.
5668
56692003-10-15  Larry Jones  <lawrence.jones@eds.com>
5670
5671	* commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
5672	if the RCS file didn't get created at all.
5673	(Reported by David Wood <David.Wood@thestreet.com>.)
5674
56752003-10-14  Derek Price  <derek@ximbiot.com>
5676
5677	Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
5678	testing with _POSIX2_VERSION=200112 in the environment.
5679
5680	* sanity.sh: Use 'sed 1q', not 'head -1'.
5681	(Patch from Paul Eggert <eggert@twinsun.com>.)
5682
56832003-10-10  Derek Price  <derek@ximbiot.com>
5684
5685	* lock.c (set_lock): Clarify comment.
5686
56872003-10-11  Larry Jones  <lawrence.jones@eds.com>
5688
5689	* server.c (server_cleanup): Replace CVS_CHDIR call: some systems
5690	won't allow you to delete a directory tree containg your working
5691	directory.
5692
56932003-10-10  Derek Price  <derek@ximbiot.com>
5694
5695	* server.c (cvs_output, cvs_outerr): Protect calls to syslog()
5696	with the usual preprocessor condition: HAVE_SYSLOG_H.
5697	(Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
5698
56992003-10-09  Derek Price  <derek@ximbiot.com>
5700
5701	* cvs.h: s/^extern// off of function declarations per HACKING.
5702
57032003-10-08  Derek Price  <derek@ximbiot.com>
5704
5705	* Makefile.am (cvs_SOURCES): Add history.h.
5706	* history.c: Include history.h.  Add the `P' record types to more
5707	comments. s/ALL_REC_TYPES/ALL_HISTORY_REC_TYPES/.
5708	(usage): Reference ALL_HISTORY_REC_TYPES rather than using a separate
5709	string literal.
5710	(report_hrecs): Handle `P' record type.
5711	(ALL_REC_TYPES): Rename and move...
5712	* history.h (ALL_HISTORY_REC_TYPES): ...here.
5713	* mkmodules.c: Include history.h.
5714	(config_contents): Update contents of and references to LogHistory
5715	records to use ALL_HISTORY_REC_TYPES.
5716	* sanity.sh (basic2-64): Update to include history records of type `P'.
5717
5718	* Makefile.in: Regenerated.
5719
57202003-10-08  Derek Price  <derek@ximbiot.com>
5721
5722	* update.c (patch_file): Correct spelling and punctuation in comment.
5723	Update some lines to fit in 80 characters.
5724
57252003-10-08  Derek Price  <derek@ximbiot.com>
5726
5727	* lock.c (remove_locks): Copy global struct and set status variable to
5728	NULL before calling disposal functions that might try to access it
5729	during calls to error(1,...).
5730
57312003-10-08  Larry Jones  <lawrence.jones@eds.com>
5732
5733	* history.c (history): Don't conflate -e with -x since the client's
5734	idea of what -e means may not match the server's.
5735	(Reported by Frank Hemer <frank@hemer.org>.)
5736
57372003-10-08  Derek Price  <derek@ximbiot.com>
5738
5739	* lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
5740	(server_cleanup): Expand comments about the never_run_again variable
5741	and its interoperation with critical sections, exit, and interrupts.
5742
57432003-10-08  Derek Price  <derek@ximbiot.com>
5744
5745	* lock.c (remove_locks): Reduce TRACE level since this function is
5746	rarely called and we can usually rely on tracing higher level
5747	functions.
5748
57492003-10-08  Derek Price  <derek@ximbiot.com>
5750
5751	* lock.c (lock_name, lock_simple_remove),
5752	server.c (server_pathname_check, dirswitch): Add TRACE.
5753
57542003-10-08  Derek Price  <derek@ximbiot.com>
5755
5756	* main.c: Reformat header comment to fit in 80 chars.
5757
57582003-10-08  Larry Jones  <lawrence.jones@eds.com>
5759
5760	* sanity.sh: Use dotest_fail instead of dotest_status for diff tests
5761	since CVS only returns success/fail rather than 0/1/2 like diff does.
5762
57632003-10-08  Derek Price  <derek@ximbiot.com>
5764
5765	Fix a client/server bug introduced via the data loss fix of 2003-03-17.
5766	Basically, the server was reporting ambiguous filename requests when it
5767	should have been trusting the user to type the intended case or using
5768	the case the client preserved in CVS/Entries before it tried to look
5769	anything up in case insensitive mode.
5770
5771	* rcs.c (locate_rcs): Use the filename exactly as cased before
5772	investigating a case insensitive lookup, per the client/server protocol
5773	specification.  Expand comments.
5774	* subr.c (locate_file_in_dir): This function only needs to locate files
5775	case insensitively.  Expand comments.
5776	* cvs.h (locate_file_in_dir): Only prototype when servers which need to
5777	handle case insensitivity are being compiled.
5778
57792003-10-08  Derek Price  <derek@ximbiot.com>
5780
5781	* rcs.c (locate_rcs): Declare static.  Move to an earlier location in
5782	file to avoid prototyping.
5783	* rcs.h (locate_rcs): Remove proto.
5784
57852003-10-08  Derek Price  <derek@ximbiot.com>
5786
5787	* lock.c (lock_filesdoneproc): Reformat long function prototype.
5788
57892003-10-07  Larry Jones  <lawrence.jones@eds.com>
5790
5791	* server.c (server_cleanup): Remove old code that was commented out
5792	with //, which isn't valid in C.
5793
57942003-10-04  Derek Price  <derek@ximbiot.com>
5795
5796	* exithandle.c: New file.
5797	* Makefile.am (cvs_SOURCES): Add exithandle.c.
5798	* cvs.h (cleanup_register, signals_register): New prototypes.
5799	* lock.c (Lock_Cleanup, remove_locks), rcs.c (rcs_cleanup),
5800	server.c (server_cleanup): Avoid calling twice when called from a
5801	signal handler and then exit.  Avoid being interrupted while globals
5802	that the signal handler might touch are in inconsistent states.  Expand
5803	comments.
5804	* rcs.c (rcs_internal_lockfile): Ditto. Use cleanup_register rather
5805	than calling atexit() directly.
5806	* main.c (main): Consolidate signal stuff into a call to
5807	signals_register().  Call cleanup_register to register cleanup
5808	functions rather than calling atexit() directly.
5809
5810	* Makefile.in: Regenerated.
5811
58122003-10-04  Derek Price  <derek@ximbiot.com>
5813
5814	* error.c, error.h: Remove error_exit() function.
5815	* add.c, client.c, history.c, import.c, main.c, mkmodules.c, modules.c,
5816	rcscmds.c, recurse.c, release.c, root.c, server.c, socket-client.c,
5817	tag.c, update.c: s/\<error_exit *();$/exit (EXIT_FAILURE);/.  Remove
5818	related comments.
5819
58202003-10-04  Derek Price  <derek@ximbiot.com>
5821
5822	* buffer.c: Reformat a few long function prototypes and lines.
5823
58242003-10-04  Derek Price  <derek@ximbiot.com>
5825
5826	* hash.c (dellist): Immediately set input pointers to NULL in case they
5827	are references to global variables which might be accessed by interrupt
5828	handlers.
5829
58302003-10-04  Derek Price  <derek@ximbiot.com>
5831
5832	* rcs.c (rcs_cleanup): Declare static.
5833	* rcs.h (rcs_cleanup): Remove prototype.
5834
58352003-10-03  Derek Price  <derek@ximbiot.com>
5836
5837	Move calls to Lock_Cleanup to the atexit handler.
5838
5839	* commit.c (commit): Don't call Lock_Cleanup on error exit.
5840	* error.c (error_exit): Don't call Lock_Cleanup.
5841	* lock.c (Lock_Cleanup): Don't worry about recursive calls now that we
5842	are using atexit for calls on exit.  Dispose locklist storage after the
5843	locks are removed.  Expand comments.
5844	* main.c (main): Move Lock_Cleanup call into atexit(Lock_Cleanup).
5845	* server.c (server_notify): Add TRACE.
5846
58472003-10-03  Derek Price  <derek@ximbiot.com>
5848
5849	* recurse.c (start_recursion): Remove unnecessary typecasts.
5850	(do_recursion): Ditto.  Add TRACE.  Expand comments.  Remove unneeded
5851	parens.
5852
58532003-10-03  Derek Price  <derek@ximbiot.com>
5854
5855	* main.c (main): Dispose of old Tmpdir and Editor when specified
5856	multiple times between the command line & the ~/.cvsrc file.
5857
58582003-10-03  Derek Price  <derek@ximbiot.com>
5859
5860	* lock.c (remove_locks): Eliminate unecessary typecasting.
5861
58622003-10-03  Derek Price  <derek@ximbiot.com>
5863
5864	Move calls to rcs_cleanup to the atexit handler.
5865
5866	* error.c (error_exit): Don't call rcs_cleanup.
5867	* rcs.c: Initialize global RCS_LOCKFILE to NULL.
5868	(rcs_internal_lockfile): Use atexit (rcs_cleanup) rather than
5869	setting up signal handlers.
5870
58712003-10-03  Derek Price  <derek@ximbiot.com>
5872
5873	* modules.c (do_module): Format prototype.
5874
58752003-10-03  Derek Price  <derek@ximbiot.com>
5876
5877	* server.c (server_cleanup): Skip BUF_TO_NET checks as an optimization
5878	when ERROR_USE_PROTOCOL is set.
5879
58802003-10-03  Derek Price  <derek@ximbiot.com>
5881
5882	* modules.c (do_module): Use TRACE.
5883
58842003-10-02  Derek Price  <derek@ximbiot.com>
5885
5886	* main.c (main): Don't free globals that might be needed by the cleanup
5887	functions.
5888	* server.c (server_cleanup): Only clean up when called in the parent
5889	process.  Set buffers to NULL before shutting down and freeing in case
5890	we are interrupted.  Improve comments.  Add TRACE.
5891
58922003-10-01  Derek Price  <derek@ximbiot.com>
5893
5894	* main.c (main): Use symbolic name for trace level.
5895
58962003-10-01  Derek Price  <derek@ximbiot.com>
5897
5898	* client.c (connect_to_forked_server): Use TRACE macro rather than the
5899	old style.
5900
59012003-10-01  Derek Price  <derek@ximbiot.com>
5902
5903	* server.c (protocol): Initialize the protocol buffer to NULL so that
5904	use before initialization may be detected.
5905	(cvs_output, cvs_outerr): Syslog messages when the appropriate buffers
5906	are not available.
5907	(server_cleanup): Reorganize for a single exit point and to eliminate
5908	duplicated code.  Set buf_to_net to NULL before calling the buffer
5909	shutdown functions in order to force error messages into the syslog.
5910	* buffer.c (stdio_buffer_close): Remove FIXME comment re syslog since
5911	the calls to error should go through the cvs_outerr function anyhow.
5912
59132003-09-30  Derek Price  <derek@ximbiot.com>
5914
5915	* entries.c (WriteTemplate): TRACE on entrance to a function, not exit.
5916	Don't worry about checking noexec without server support since this
5917	function will then do nothing.
5918
59192003-09-30  Derek Price  <derek@ximbiot.com>
5920
5921	* update.c (do_update): Reformat function decl.  Move and merge
5922	comment.
5923
59242003-09-30  Derek Price  <derek@ximbiot.com>
5925
5926	* client.h (buf_output, buf_outerr): Check that our buffers exist
5927	before sending them data.
5928	(buf_output_binary): Assert that the output buffer is not NULL.
5929
59302003-09-30  Derek Price  <derek@ximbiot.com>
5931
5932	* client.h, rcs.c, rcs.h, server.h: Assume __STDC__ since it is
5933	defined as part of the C89 spec.
5934
59352003-09-30  Derek Price  <derek@ximbiot.com>
5936
5937	* commit.c (commit): Optimize function towards a single exit point.
5938
59392003-09-30  Derek Price  <derek@ximbiot.com>
5940
5941	* error.c (error_exit): Remove call to SYSTEM_CLEANUP.
5942	* main.c (main): Set up atexit(SYSTEM_CLEANUP) rather than calling it
5943	explicitly before exit.
5944	* server.c (pserver_authenticate_connection): Don't call SYSTEM_CLEANUP
5945	before exiting.
5946
59472003-09-30  Derek Price  <derek@ximbiot.com>
5948
5949	* error.c (exit_error): Remove call to server_cleanup.
5950	* main.c (main): Call atexit(server_cleanup).  Let server_cleanup turn
5951	server_active off.
5952	* server.c (server_cleanup): Don't require an argument.  Fill out
5953	header comment.  Unset server_active when done.
5954	(server): Don't call server_cleanup - let it be called via the atexit
5955	handler.
5956	* server.h (server_cleanup): Update proto.
5957
59582003-09-30  Derek Price  <derek@ximbiot.com>
5959
5960	* server.c (buf_output): Don't check that the buffers exist before
5961	using them since cvs_outerr does this without problems.
5962
59632003-09-30  Derek Price  <derek@ximbiot.com>
5964
5965	* server.c: Remove some unecessary function prototypes.
5966
59672003-09-29  Derek Price  <derek@ximbiot.com>
5968
5969	* rcs.c (make_file_label): Make a failure to stat a file a fatal error
5970	since it signals that a later read will also fail.
5971
59722003-09-29  Derek Price  <derek@ximbiot.com>
5973
5974	* diff.c (diff_fileproc): Optimize the check for labels set by the
5975	user.
5976
59772003-09-26  Derek Price  <derek@ximbiot.com>
5978
5979	* diff.c (diff): Add a FIXME re spaces in diff arguments.
5980
59812003-09-25  Mark D. Baushke  <mdb@cvshome.org>
5982
5983	* rcs.c (make_file_label): Do not return an uninitialized label.
5984	(Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
5985
59862003-09-24  Derek Price  <derek@ximbiot.com>
5987
5988	* lock.c (lock_name): Remove useless prototype.
5989
59902003-09-12  Derek Price  <derek@ximbiot.com>
5991
5992	* sanity.sh (mkmodules): Correct comments.
5993
59942003-09-12  Derek Price  <derek@ximbiot.com>
5995
5996	* mkmodules.c (mkmodules): Do not pass a string which came from the
5997	checkoutlist file directly to error as a format string since we don't
5998	want to trust any user with access to checkoutlist with creating printf
5999	format strings.  I already claimed I did this in the NEWS file.
6000	(Thanks to Larry Jones for spotting my mistake.)
6001	* sanity.sh (mkmodules): Test for the above.
6002
60032003-09-12  Derek Price  <derek@ximbiot.com>
6004
6005	* mkmodules.c (checkoutlist_contents): Document the optional portions
6006	of this file format more accurately.
6007	(mkmodules): Ditto, in comments.  Fix bug that always failed to ignore
6008	whitespace before error messages.
6009	* sanity.sh (mkmodules-temp-file-removal): Rename to...
6010	(mkmodules): ...this and add a test of the checkoutlist error message.
6011	Add cleanup step to restore checkoutlist.
6012
60132003-09-08  Derek Price  <derek@ximbiot.com>
6014
6015	* filesubr.c (cvs_temp_file): Replace a chmod 0600, which shouldn't
6016	really be necessary and which provided a false sense of security, with
6017	an informative comment.
6018	(Thanks to Paul Eggert <eggert@cs.ucla.edu> for his educational
6019	advice.)
6020
60212003-08-29  Derek Price  <derek@ximbiot.com>
6022
6023	* cvs.h: Delete reference to CVSADMROOT_EDITINFO.
6024	* logmsg.c (editinfo_proc): Delete function and proto.
6025	(do_editor): Don't look for editinfo script.
6026	* mkmodules.c (editinfo_contents): Delete.
6027	* sanity.sh (*): Remove references to editinfo in updates of the
6028	CVSROOT module.
6029
60302003-08-29  Derek Price  <derek@ximbiot.com>
6031
6032	* remove.c (cvsremove): Update quotes for consistency.
6033
60342003-08-27  Larry Jones  <lawrence.jones@eds.com>
6035
6036	* history.c: 'P' is a valid record type and has been for a long time.
6037	Add it to the comments, usage message, and, most important,
6038	ALL_REC_TYPES so it gets recorded by default.
6039	* server.c (do_cvs_command): Set global command_name to the real
6040	command name rather than leaving it set to "server".
6041	* sanity.sh: Update to match.
6042	(Reported by Dmitry Ryzhkov <rdim_outside@softhome.net>.)
6043
60442003-08-19  Derek Price  <derek@ximbiot.com>
6045
6046	* filesubr.c (cvs_temp_file): Expand comments.  Check for glibc version
6047	before compiling chmod command.  Remove FIXME to this effect.
6048
60492003-08-19  Derek Price  <derek@ximbiot.com>
6050
6051	* logmsg.c (do_editor): Use cvs_temp_file rather than cvs_temp_name to
6052	create and open the temporary file.  Remove FIXME to this effect.
6053
60542003-08-19  Derek Price  <derek@ximbiot.com>
6055
6056	* logmsg.c (do_editor): Move editinfo processing to before creation of
6057	the temp file so that it may be skipped when no editor is defined.
6058	Remove related FIXME.  Add comments.  Remove some processing of
6059	editinfo_editor rendered obsolete when editinfo_editor ceased to be a
6060	global.
6061
60622003-08-19  Derek Price  <derek@ximbiot.com>
6063
6064	* (*.c): Move some includes to lib/system.h.
6065
60662003-08-18  Derek Price  <derek@ximbiot.com>
6067
6068	* add.c (add): Use consistent quoting style in user messages.
6069	* sanity.sh (*): Ditto.
6070
60712003-08-13  Larry Jones  <lawrence.jones@eds.com>
6072
6073	* server.c (server_cleanup): Don't shutdown buf_from_net if it's
6074	null.
6075	(Reported by Scott Mitchell <scott@fishballoon.org>.)
6076
60772003-08-03  Mark D. Baushke  <mdb@cvshome.org>
6078
6079	* lock.c: Do not include xtime.h (already included via system.h).
6080	* subr.c: Ditto.
6081	(Original patch from Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6082	to fix IRIX 5.3 problem.)
6083
60842003-08-01  Derek Price  <derek@ximbiot.com>
6085
6086	* sanity.sh (join5): Use $SPROG rather than $PROG.
6087
60882003-08-01  Derek Price  <derek@ximbiot.com>
6089
6090	* sanity.sh (join5): Use $PROG consistently and escape a `.'.
6091
60922003-08-01  Derek Price  <derek@ximbiot.com>
6093
6094	* sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
6095
60962003-07-31  Derek Price  <derek@ximbiot.com>
6097
6098	* rcscmds.c (RCS_merge): Pass `--' before the filename arguments to
6099	diff so that filenames starting with `-' can be merged.
6100	* sanity.sh (join5): New test for same.
6101
61022003-07-31  Derek Price  <derek@ximbiot.com>
6103
6104	* add.c (add_directory): Don't print status information in really_quiet
6105	mode.
6106
61072003-07-29  Derek Price  <derek@ximbiot.com>
6108
6109	* commit.c (checkaddfile): Simplify the logic here, using assumptions
6110	already made later in the function to remove calls to locate_rcs and
6111	some conditionals.  Use same assumptions to remove some variables.
6112
61132003-07-29  Derek Price  <derek@ximbiot.com>
6114
6115	* login.c: Remove GETPASS & HAVE_GETPASSPHRASE cruft in favor of always
6116	using the GNULIB getpass since the system getpass was removed from the
6117	POSIX.2 specification.
6118
61192003-07-28  Derek Price  <derek@ximbiot.com>
6120
6121	* subr.c (strip_trailiing_newlines): Use size_t rather than int to
6122	count string length.
6123	(Suggestion from Paul Edwards, who provides a broken return email
6124	address in Tonga.  I believe he is actually from Australia.)
6125
61262003-07-28  Derek Price  <derek@ximbiot.com>
6127
6128	* checkout.c (checkout): Remove out-of-date comment about Checkin.prog
6129	and Update.prog.
6130
61312003-07-25  Derek Price  <derek@ximbiot.com>
6132
6133	* rcs.c (RCS_parsercsfile): Declare rcsfile argument as const.
6134	* rcs.h (RCS_parsercsfile): Update prototype to match.
6135	* commit.c (fixaddfile): Accept a single path to an rcs file as an
6136	argument rather than trying to look it up again when it is not
6137	necessary.
6138
61392003-07-25  Derek Price  <derek@ximbiot.com>
6140
6141	* commit.c (finaladd): But don't free variables we no longer allocate.
6142
61432003-07-25  Derek Price  <derek@ximbiot.com>
6144
6145	* checkin.c (Checkin): The rcs argument is unecessary since we know
6146	that the parsed RCS data always exists as part of finfo by the time
6147	this function gets called.
6148	* commit.c (commit_fileproc, finaladd):  Use new Checkin() API.
6149	* cvs.h (Checkin): Update prototype.
6150
61512003-07-25  Derek Price  <derek@ximbiot.com>
6152
6153	* subr.c (strip_trailing_newlines): Check len b4 str[len] to avoid
6154	exceeding the array bounds when the string length == 0.
6155	(Report from John Tytgat <JoTy@esko-graphics.com>.)
6156
61572003-07-25  Derek Price  <derek@ximbiot.com>
6158
6159	* subr.c (strip_trailing_newlines): Generalize this function to watch
6160	len so that it cannot walk past the beginning of the string passed in.
6161	(Report from John Tytgat <JoTy@esko-graphics.com>.)
6162
61632003-07-25  Derek Price  <derek@ximbiot.com>
6164
6165	* subr.c (strip_trailing_newlines): Leave the K&R function decl on this
6166	branch.
6167
61682003-07-25  Derek Price  <derek@ximbiot.com>
6169
6170	* cvs.h (strip_trailing_newlines): Update prototype.
6171	* subr.c (strip_trailing_newlines): Return true when newlines are
6172	removed.
6173	* server.c (pserver_authenticate_connection): Don't give a DOS attack a
6174	chance to authenticate accidentally because I like to be paranoid.
6175	* sanity.sh (pserver): New test for same.
6176
61772003-07-24  Mark D. Baushke  <mdb@cvshome.org>
6178
6179	* server.c (check_system_password): Cleanup pam_* return code
6180	checking. (Original patch from Brian Murphy <brian@murphy.dk>.)
6181
61822003-07-24  Derek Price  <derek@ximbiot.com>
6183
6184	* main.c: But the GNULIB gethostname accepts an int not ssize_t.
6185
61862003-07-24  Derek Price  <derek@ximbiot.com>
6187
6188	* main.c: Don't declare gethostname when we already have it to avoid
6189	decl conflicts.
6190
61912003-07-24  Derek Price  <derek@ximbiot.com>
6192
6193	* server.c (server_directory): Add a TRACE for OS X debugging.
6194
61952003-07-23  Derek Price  <derek@ximbiot.com>
6196
6197	* client.c: Avoid some warning from gcc -Wall.
6198	* lock.c: Ditto.
6199	* login.c: Ditto.
6200	* modules.c: Ditto.
6201	* server.c: Ditto.
6202
62032003-07-23  Derek Price  <derek@ximbiot.com>
6204
6205	* filesubr.c (isaccessible): Correct some double const warnings from
6206	protoize.
6207	* login.c (password_entry_parseline): Ditto.
6208	* server.c (kserver_authenticate_connection): Remove a multi-line
6209	string along with the warning from GCC.
6210
62112003-07-23  Derek Price  <derek@ximbiot.com>
6212
6213	* *.{c,h}: Back out the indent run.
6214
62152003-07-23  Derek Price  <derek@ximbiot.com>
6216
6217	* cvs.h: Move some includes into lib/system.h.
6218
62192003-07-23  Derek Price  <derek@ximbiot.com>
6220
6221	* *.{c,h}: Run these through GNU indent as per the NEWS file to fix
6222	some of the long function decls which came out of protoize.
6223
62242003-07-23  Derek Price  <derek@ximbiot.com>
6225
6226	* *.c: Run these through GCC's protoize to convert the pre-ANSI C
6227	function decls to C89 compliance.
6228
62292003-07-22  Derek Price  <derek@ximbiot.com>
6230
6231	* cvs.h: Remove support for the PTR macro, since we can assume void *
6232	under C89.  It also was not being made use of in very many places so
6233	even most K&R compilers must have supported it, or nobody was using
6234	K&R compilers.  We can also assume <stdarg.h> under C89, but move the
6235	include...
6236	* error.c: ...here, de-macro VA_START, and...
6237	* subr.c: ...put a copy here too, as well as de-macroing VA_START.
6238	* history.c: s/PTR /void */g;
6239	* modules.c: Ditto.
6240
62412003-07-22  Derek Price  <derek@ximbiot.com>
6242
6243	* cvs.h: Include GNULIB exit.h.
6244
62452003-07-20  Derek Price  <derek@ximbiot.com>
6246
6247	* server.c: Add PAM support.
6248	(cvs_pam_userinfo): New data type for PAM conversations.
6249	(cvs_pam_conv): New function.
6250	(check_password): Add PAM support.
6251	(Original patch from Brian Murphy <brian@murphy.dk>.)
6252
62532003-07-20  Derek Price  <derek@ximbiot.com>
6254
6255	* wrapper.c: Remove mention of obsolete -f and -t wrapper options from
6256	a comment.
6257
62582003-07-18  Derek Price  <derek@ximbiot.com>
6259
6260	* sanity.sh (release): Add new tests for release with unrecognized
6261	recognized directories.
6262
62632003-07-18  Derek Price  <derek@ximbiot.com>
6264
6265	* vers_ts (Version_TS): Don't allow command line keyword expansion
6266	modes to override binary mode.
6267	* sanity.sh (): Tests for the above.
6268	(Original patch from Dieter Maurer <dieter@handshake.de>.)
6269
62702003-07-16  Derek Price  <derek@ximbiot.com>
6271
6272	* add.c: s/PROTO//.
6273	* admin.c: Ditto.
6274	* annotate.c: Ditto.
6275	* buffer.c: Ditto.
6276	* buffer.h: Ditto.
6277	* checkout.c: Ditto.
6278	* classify.c: Ditto.
6279	* client.c: Ditto.
6280	* client.h: Ditto.
6281	* commit.c: Ditto.
6282	* cvs.h: Ditto.
6283	* diff.c: Ditto.
6284	* edit.c: Ditto.
6285	* edit.h: Ditto.
6286	* entries.c: Ditto.
6287	* error.c: Ditto.
6288	* error.h: Ditto.
6289	* expand_path.c: Ditto.
6290	* fileattr.c: Ditto.
6291	* fileattr.h: Ditto.
6292	* filesubr.c: Ditto.
6293	* find_names.c: Ditto.
6294	* gssapi-client.c: Ditto.
6295	* gssapi-client.h: Ditto.
6296	* hardlink.h: Ditto.
6297	* hash.c: Ditto.
6298	* hash.h: Ditto.
6299	* history.c: Ditto.
6300	* import.c: Ditto.
6301	* kerberos4-client.h: Ditto.
6302	* lock.c: Ditto.
6303	* log-buffer.c: Ditto.
6304	* log-buffer.h: Ditto.
6305	* log.c: Ditto.
6306	* login.c: Ditto.
6307	* logmsg.c: Ditto.
6308	* mkmodules.c: Ditto.
6309	* modules.c: Ditto.
6310	* myndbm.c: Ditto.
6311	* myndbm.h: Ditto.
6312	* patch.c: Ditto.
6313	* rcs.c: Ditto.
6314	* rcs.h: Ditto.
6315	* rcscmds.c: Ditto.
6316	* recurse.c: Ditto.
6317	* release.c: Ditto.
6318	* remove.c: Ditto.
6319	* root.c: Ditto.
6320	* rsh-client.h: Ditto.
6321	* run.c: Ditto.
6322	* server.c: Ditto.
6323	* server.h: Ditto.
6324	* socket-client.c: Ditto.
6325	* socket-client.h: Ditto.
6326	* status.c: Ditto.
6327	* subr.c: Ditto.
6328	* tag.c: Ditto.
6329	* update.c: Ditto.
6330	* update.h: Ditto.
6331	* vers_ts.c: Ditto.
6332	* watch.c: Ditto.
6333	* watch.h: Ditto.
6334	* wrapper.c: Ditto.
6335	* zlib.c: Ditto.
6336
63372003-07-16  Derek Price  <derek@ximbiot.com>
6338
6339	* cvs.h: Include pathmax.h.
6340
63412003-07-16  Derek Price  <derek@ximbiot.com>
6342
6343	* myndbm.c: Use the GNU getdelim function rather than our package
6344	getstr.
6345	* server.c: Use the (hopefully) GNULIB and more appropriately named
6346	getnline function rather than our getline_safe function.
6347
63482003-07-12  Larry Jones  <lawrence.jones@eds.com>
6349
6350	* sanity.sh (diffnl): New tests for diff on files with no newline
6351	at end.
6352	(Patch from Andrew Moise <chops@demiurgestudios.com>.)
6353
63542003-07-11  Larry Jones  <lawrence.jones@eds.com>
6355
6356	* Makefile.am (cvs_DEPENDENCIES): Include the libraries.
6357	* Makefile.in: Regenerated.
6358
6359	* diff.c (diff_file_nodiff): Fix -Wall complaints.
6360	* log.c (rlog_proc): Ditto.
6361	* rcs.c (RCS_setlocalid): Ditto.
6362	* recurse.c (start_recursion): Handle null repository_in in TRACE.
6363
63642003-07-09  Larry Jones  <lawrence.jones@eds.com>
6365
6366	* sanity.sh: Use ${CPROG} instead of ${PROG} so that changes merged
6367	from cvs1-11-x-branch without updating won't appear to work.
6368
6369	* sanity.sh (keywordexpand): Use ${SPROG} instead of ${PROG} as
6370	required.
6371
6372	* add.c (add): Update "re-adding" message to have quotes around
6373	the file name like all the other similar messages.
6374	* sanity.sh: Update to match.
6375
6376	* update.c (join_file): Handle locally removed but not yet committed
6377	files.
6378	(Reported by Larry Lords <LordsLL@ldschurch.org>.)
6379	* sanity.sh (join, join4): New tests for above.
6380
63812003-06-28  Larry Jones  <lawrence.jones@eds.com>
6382
6383	* commit.c (fixaddfile): Bail out if locate_rcs() fails.  Make
6384	parameters const.
6385
6386	* add.c (add): Fix -Wall complaints.
6387	* diff.c (diff_file_nodiff): Ditto.
6388	* filesubr.c (cvs_casecmp): Ditto.
6389	* patch.c (patch_fileproc): Ditto.
6390	* rcs.c (RCS_cmp_file): Ditto.
6391	* root.c (parse_cvsroot): Ditto.
6392	* subr.c (locate_file_in_dir): Ditto.
6393	* cvs.h (cvs_casecmp, locate_file_in_dir): Update prototypes.
6394
63952003-06-27  Larry Jones  <lawrence.jones@eds.com>
6396
6397	* lock.c (readers_exist): Use LockDir rather than always looking
6398	in the repository.
6399	(Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
6400	Remove vestigial lock promotion code.
6401
64022003-06-27  Derek Price  <derek@ximbiot.com>
6403
6404	* checkout.c (safe_location): Don't try and print from a NULL pointer.
6405	(Report and original patch from Sampo Kellomaki <sampo@symlabs.com>.)
6406
64072003-06-26  Larry Jones  <lawrence.jones@eds.com>
6408
6409	* hash.c (sortlist): Avoid crash when list is null.
6410
64112003-06-23  Derek Price  <derek@ximbiot.com>
6412
6413	* patch.c (patch_fileproc): Output revision number of the original
6414	revision in the removed case.
6415	(Idea from Paul Edwards <kerravon@w3.to>.)
6416
6417	* sanity.sh (rdiff-add-remove-nodiff): Rename to...
6418	(rdiff-short): ...this.  Test for the above changes.  Add some tests
6419	for when rev2 defaults to the trunk.  Expand comments.
6420
64212003-06-23  Derek Price  <derek@ximbiot.com>
6422
6423	* client.c: Reapply Alexey's changes to client.c from three commits
6424	back they were left out of the diff.
6425
64262003-06-23  Derek Price  <derek@ximbiot.com>
6427
6428	* add.c (add): Fix xmalloc's strlen() of wrong variable.
6429	* checkout.c (safe_location): leak: reused where_location without free.
6430	* log.c (rlog_proc): leak: free where before exit.
6431	* logmsg.c (do_verify): leak: free verifymsg_script before exit.
6432	(Original patch from Kenneth Lorber <keni@his.com>.)
6433
64342003-06-23  Derek Price  <derek@ximbiot.com>
6435
6436	* client.c: Remove silly comment.
6437	(Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
6438
64392003-06-23  Derek Price  <derek@ximbiot.com>
6440
6441	* kerberos4-client.h, kerberos4-client.c, client.c: Rename
6442	start_tcp_server() to start_kerberos4_server().
6443	(Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
6444
64452003-06-20  Derek Price  <derek@ximbiot.com>
6446
6447	* kerberos-client.c, kerberos-client.h, client.c: Split out
6448	Kerberos 4 code to separate files.
6449
6450	* Makefile.am: Mention new files.
6451	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6452
6453	* Makefile.in: Regenerated.
6454
64552003-06-16  Derek Price  <derek@ximbiot.com>
6456
6457	* cvs.h: Comment an #endif.
6458
64592003-06-13  Derek Price  <derek@ximbiot.com>
6460
6461	* filesubr.c (cvs_temp_name): Remove portability cruft obsoleted by the
6462	import of GNULIB's mkstemp().
6463
64642003-06-13  Derek Price  <derek@ximbiot.com>
6465
6466	* subr.c (file_has_conflict): Fix comment.
6467	(Patch from Paul Edwards <kerravon@w3.to>.)
6468
64692003-06-13  Derek Price  <derek@ximbiot.com>
6470
6471	* subr.c (xrealloc): Trivial comment fix.
6472	(Patch from Kenneth Lorber <keni@his.com>.)
6473
64742003-06-13  Derek Price  <derek@ximbiot.com>
6475
6476	* diff.c (diff_fileproc): Fix memory leak.
6477	(Patch from Kenneth Lorber <keni@his.com>.)
6478
64792003-06-12  Derek Price  <derek@ximbiot.com>
6480
6481	* root.c (parse_cvsroot, local_cvsroot): Parse trailing '/'s off the
6482	end of cvsroots.  Make arguments const.
6483	* cvs.h: Update prototypes to match.
6484	(Idea from Miles Zarathustra <shiva@aranyaka.org>.)
6485
64862003-06-12  Derek Price  <derek@ximbiot.com>
6487
6488	* checkout.c (safe_location): Fix memory leak.
6489	(Patch from Kenneth Lorber <keni@his.com>.)
6490
64912003-06-11  Larry Jones  <lawrence.jones@eds.com>
6492
6493	* filesubr.c (xresolvepath): Fix memory leak.
6494	(Original patch from Kenneth Lorber <keni@his.com>.)
6495
64962003-06-11  Derek Price  <derek@ximbiot.com>
6497
6498	* commit.c: Change Parse_Info calling convention to include void *
6499	suggested in HACKING file and generalize all argument to opt.
6500	* cvs.h: update defs for Parse_Info and its callproc.
6501	* edit.c: Change Parse_Info calls for new calling convention.
6502	* logmsg.c: Ditto.
6503	* parseinfo.c: Change Parse_Info for new calling convention.
6504	* server.c: Change Parse_Info calls for new calling convention.
6505	* tag.c: Ditto.
6506	(Original patch from Ken Lorber <keni@his.com>.)
6507
65082003-06-11  Derek Price  <derek@ximbiot.com>
6509
6510	* Makefile.in: Regenerate for new configure.in.
6511
65122003-06-11  Larry Jones  <lawrence.jones@eds.com>
6513
6514	* sanity.sh: Change warning messages to note that defective tools
6515	can result in defective results, both pass and fail.  Also change
6516	"which" to "that" for errant grammar pedants.
6517
65182003-06-10  Derek Price  <derek@ximbiot.com>
6519
6520	* recurse.c (start_recursion): Avoid unneeded allocation.
6521
65222003-06-10  Mark D. Baushke  <mdb@gnu.org>
6523
6524	* rcs.c (RCS_setlocalid,RCS_setincexc): New functions to support
6525	LocalKeyword and KeywordExpand config keywords.
6526
6527	* rcs.h (RCS_setlocalid,RCS_setincexc): New prototypes.
6528
6529	* parseinfo.c (parse_config): Added LocalKeyword
6530	and KeywordExpand keywords.
6531
6532	* sanity.sh (keywordexpand): New CVSROOT/config tests for
6533	LocalKeyword and KeywordExpand options.
6534
65352003-06-09  Derek Price  <derek@ximbiot.com>
6536
6537	* rcs.c (RCS_delete_revs): Reference WOE32 rather than WIN32 in
6538	accordance with the GNU convention to avoid implying that we consider
6539	the Microsoft Windows Operating Environment any sort of "win".
6540
65412003-06-09  Derek Price  <derek@ximbiot.com>
6542
6543	* filesubr.c (cvs_temp_file): Tidy a comment.
6544
65452003-06-09  Derek Price  <derek@ximbiot.com>
6546
6547	* patch.c (patch_fileproc): Don't assume the content of files is
6548	different just because the revision number is different.
6549	* sanity.sh (rdiff-add-remove-nodiff): New tests for the above.
6550	(Report & original patches from Paul Edwards <kerravon@w3.to>.)
6551
65522003-06-04  Derek Price  <derek@ximbiot.com>
6553
6554	* cvs.h (locate_file_in_dir): New proto.
6555	(locate_rcs): Move proto...
6556	* rcs.h: ...here.
6557	* filesubr.c (locate_rcs): Move function...
6558	* rcs.c: ...here for Windows.
6559	* filesubr.c (locate_file_in_dir): Move function...
6560	* subr.c: ...here for Windows.
6561
65622003-06-02  Derek Price  <derek@ximbiot.com>
6563
6564	* sanity.sh: Add comments re portability of test -x & test -e.  Don't
6565	bother with quotes in arguments to test when we have laready checked
6566	the variables for empty content.
6567
65682003-06-02  Derek Price  <derek@ximbiot.com>
6569
6570	* sanity.sh: Don't use `test -x' since BSD 4.3 doesn't like it.  Minor
6571	reorganization for clarity.  Don't check for $server = false after we
6572	set its default.  Use </dev/null with calls to $prog --version when we
6573	don't know what $prog does for sure.
6574
65752003-06-02  Derek Price  <derek@ximbiot.com>
6576
6577	* diff.c (diff_file_nodiff): Don't assume that because two specified
6578	revision numbers are different, the contents are different.
6579	(Original report & patch from Paul Edwards <kerravon@w3.to>.)
6580
6581	* diff.c (diff_file_nodiff): Pass through rev1_cache to be filled in
6582	by RCS_cmp_file when it needs to check out revision 1 into a file.  Add
6583	some more informative error messages.  Cleanup for efficiency &
6584	readability.
6585	(diff_fileproc): Pass the cached revision to RCS_exec_diff().  Clean up
6586	the error exit code.  Remove code killed by the changes to
6587	diff_file_nodiff().
6588	* rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
6589	if present.
6590	* rcs.c (RCS_cmp_file): Accept a second revision number and cache the
6591	first revision if it needs to be checked out.
6592
6593	* checkin.c (Checkin): Use new RCS_cmp_file().
6594	* import.c (update_rcs_file): Ditto.
6595	* no_diff.c (No_Difference): Ditto.
6596
6597	* cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
6598	* rcs.h (RCS_cmp_file): Ditto.
6599
6600	* sanity.sh: Minor corrections to handle the above changes.
6601
66022003-05-31  Derek Price  <derek@ximbiot.com>
6603
6604	* root.c (parse_cvsroot): Refuse :fork: only in client mode, not
6605	server.
6606	* client.c (connect_to_forked_server): Die without SERVER_SUPPORT when
6607	CVSSERVER isn't supplied in the environment.
6608	* sanity.sh: Default $servercvs to $testcvs.  Add SPROG so that testing
6609	a client and server with different names works in order to test the
6610	above changes.  s/PROG/SPROG/ almost everywhere.  Misc corrections to
6611	tests when ${PROG} is required not to use [a-z]*.  Misc uniqifications
6612	of test names.  Misc replacement of CVS_SERVER=${testcvs} with
6613	CVS_SERVER=${servercvs}.  Confirm ${testcvs} & ${servercvs} exist and
6614	are executable.  Set testcvs_server_support=true if the ${testcvs}
6615	executable has server support.  Misc comment corrections.
6616	(pserver): s/\$\{testcvs\}/${servercvs}/ for invocations of pserver.
6617	(server): Ditto for invocations of `cvs server'.
6618	(fork): Accept the `was not compiled with server support' error
6619	message.
6620
66212003-05-29  Derek Price  <derek@ximbiot.com>
6622
6623	* client.c (start_server): Don't send -l to server.
6624	* history.c (history_write): Fix comment.
6625	* main.c (main): Don't process -l.
6626	* server.c (serve_global_option): Ditto.
6627	(Suggestion from Rob Lanphier <robla@real.com>.)
6628
66292003-05-29  Derek Price  <derek@ximbiot.com>
6630
6631	* log-buffer.c, rsh-client.c, socket-client.c: Allow compilation
6632	with --disable-client.
6633	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6634
66352003-05-29  Derek Price  <derek@ximbiot.com>
6636
6637	* gssapi-client.h: Move contents of lib/xgssapi.h here.
6638	* server.c: xgssapi.h is no more.
6639	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6640
66412003-05-28  Derek Price  <derek@ximbiot.com>
6642
6643	* server.c: Use standard PROTOTYPES symbol instead of non-standard
6644	USE_PROTOTYPES.
6645	* error.h, cvs.h: Use PROTO.h.
6646	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6647
66482003-05-23  Larry Jones  <lawrence.jones@eds.com>
6649
6650	* sanity.sh (info-cleanup-verifymsg): Avoid race in output.
6651
6652	* sanity.sh (template): Fix unintended duplicate DEFAULT lines,
6653	duplicate test names.
6654
66552003-05-22  Larry Jones  <lawrence.jones@eds.com>
6656
6657	* commit.c (commit): Fix leading zero stripping code to not strip
6658	unless there's a following digit.
6659
6660	* parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
6661	* sanity.sh (info): New test for above.
6662
66632003-05-21  Derek Price  <derek@ximbiot.com>
6664
6665	* Makefile.in: Regenerate with Automake version 1.7.5.
6666
66672003-05-20  Larry Jones  <lawrence.jones@eds.com>
6668
6669	* parseinfo.c (Parse_Info): Fix stupid memory management error.
6670
6671	* logmsg.c (do_verify): Treate Parse_Info errors as failure.
6672	* parseinfo.c (Parse_Info): Don't call expand_path until executing
6673	the command so that errors in unexecuted commands aren't reported.
6674	* sanity.sh (info): New tests for above.
6675
66762003-05-20  Derek Price  <derek@ximbiot.com>
6677
6678	* mkmodules.c (config_contents): Add missing newline.
6679	(Patch from Kenneth Lorber <keni@his.com>.)
6680
66812003-05-20  Derek Price  <derek@ximbiot.com>
6682
6683	* Makefile.am: Macro subsitution for zlib include path and library
6684	location
6685	* zlib.c: #ifdef inclusion of <zlib.h> versus "zlib.h"
6686	(Original patch from Anthon Pang <apang@telus.net>.)
6687
6688	* Makefile.in: Regenerated
6689
66902003-05-20  Derek Price  <derek@ximbiot.com>
6691
6692	* cvs.h: Move the standard includes into lib/system.h.
6693	* subr.c: s/malloc/CVS_MALLOC/;s/realloc/CVS_REALLOC/.
6694
66952003-05-19  Derek Price  <derek@ximbiot.com>
6696
6697	* filesubr.c: s/\bstat\b/CVS_STAT/g;s/\blstat\b/CVS_LSTAT/g
6698	* hardlink.c: Ditto.
6699	* ignore.c: Ditto.
6700	* rcs.c: Ditto.
6701	* update.c: Ditto.
6702
67032003-05-18  Larry Jones  <lawrence.jones@eds.com>
6704
6705	* checkout.c (safe_location): Remove unused variable.
6706	* hash.c (walklist, printnode, printlist): Use %p to print pointers
6707	if available, convert to unsigned long if not.
6708	* recurse.c (start_recursion, do_recursion): Ditto.
6709	* tag.c (rtag_proc, tag_check_valid): Ditto.
6710
67112003-05-18  Mark D. Baushke  <mdb@gnu.org>
6712
6713	* Makefile.am (localcheck,remotecheck): Use cvs$(EXEEXT) not cvs.
6714	* Makefile.in: Regenerated.
6715	* sanity.sh (status-init-7): Use ${PROG} not cvs in tests.
6716	(branch-after-import-5): Ditto.
6717	(keywordname-update-11): Ditto.
6718
67192003-05-18  Larry Jones  <lawrence.jones@eds.com>
6720
6721	* server.h (kserver_authenticate_connection,
6722	pserver_authenticate_connection): Add prototypes.
6723
6724	* client.c (update_entries): Set file's access time to the current
6725	time rather than the same as the modification time.
6726	* vers_ts.c (Version_TS): Ditto.
6727
67282003-05-09  Derek Price  <derek@ximbiot.com>
6729
6730	* client.c: #ifdef inclusion of gssapi-client.h.
6731	* server.c: Ditto.
6732	(Reported by Boyd Lynn Gerber <gerberb@zenez.com>.)
6733
67342003-05-09  Derek Price  <derek@ximbiot.com>
6735
6736	* client.h: Move some of the GSSAPI stuff...
6737	* gssapi-client.h: ...to this new file.
6738	* client.c (start_server): Use new initialize_gssapi_buffers().
6739	(*): Move most of the GSSAPI stuff from here and...
6740	* server.c (*): ...here...
6741	* gssapi-client.c: ...to this new file.
6742	* Makefile.am (EXTRA_cvs_SOURCES, cvs_DEPENDENCIES, cvs_LDADD): Support
6743	$(cvs_client_objects).
6744	(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6745
6746	* Makefile.in: Regenerated.
6747
67482003-05-09  Derek Price  <derek@ximbiot.com>
6749
6750	* buffer.c: Reindent some compiler directives in order to make nesting
6751	clearer.
6752
67532003-05-08  Derek Price  <derek@ximbiot.com>
6754
6755	* client.c (log_buffer*): Move...
6756	* log-buffer.c (log_buffer*): ...to this new file.
6757	* log-buffer.h (setup_logfiles): New file to share prototype.
6758	* Makefile.am: Add log-buffer.c & log-buffer.h.
6759	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6760
6761	* Makefile.in: Regenerated.
6762
67632003-05-08  Derek Price  <derek@ximbiot.com>
6764
6765	* client.c (init_sockaddr): Move...
6766	* socket-client.c (init_sockaddr): ...here.
6767	* socket-client.h (init_sockaddr): Prototype.
6768	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6769
67702003-05-08  Derek Price  <derek@ximbiot.com>
6771
6772	* client.c (send_to_server): Move most of the functionality to and
6773	wrap...
6774	(send_to_server_via): ...this new function which accepts the buffer
6775	pointer as an argument.
6776	(read_line): Ditto, but to...
6777	(read_line_via): ...here.
6778	(auth_server): Rename lto_server & lfrom_server to s/^l//.  Remove
6779	ugly code which sets the global versions of these variables
6780	temporarily for function calls.
6781	s/send_to_server(/send_to_server_via(to_server,/g,
6782	s/read_line(/read_line(from_server,/g,
6783	Remove emotional FIXME comment to the effect that all this is
6784	necessary.
6785	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6786
67872003-05-07  Derek Price  <derek@ximbiot.com>
6788
6789	* client.c (from_server, to_server): Rename these global buffer
6790	pointers to...
6791	(global_from_server, global_to_server): ...this in order to avoid
6792	confusion.
6793	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6794
67952003-05-07  Derek Price  <derek@ximbiot.com>
6796
6797	* client.c (make_bufs_from_fds, connect_to_forked_server,
6798	start_tcp_server): Rename struct buffer ** arguments to s/$/_p/ in an
6799	attempt to denote their pointerness more clearly.
6800	* rsh-client.c (start_rsh_client): Ditto.
6801	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6802
6803	* client.h (make_bufs_from_fds): Sanitize prototype so that the
6804	argument name change doesn't clash.
6805
68062003-05-07  Derek Price  <derek@ximbiot.com>
6807
6808	* client.h (make_bufs_from_fd): Prototype in order to make available to
6809	rsh-client.c.
6810	* client.c (start_rsh_server): Moved most of the RSH (:ext:) client
6811	stuff to...
6812	* rsh-client.h: ...here...
6813	* rsh-client.c: ...and here.
6814	* Makefile.am (cvs_SOURCES): Add new source files.
6815	(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6816
6817	* Makefile.in: Regenerated.
6818
68192003-05-06  Derek Price  <derek@ximbiot.com>
6820
6821	* client.c (socket_buffer_*): Moved most of the socket stuff to...
6822	* socket-client.h: ...here...
6823	* socket-client.c: ...and here.
6824	* Makefile.am (cvs_SOURCES): Add new source files.
6825	(Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
6826
6827	* Makefile.in: Regenerated.
6828
68292003-05-05  Derek Price  <derek@ximbiot.com>
6830
6831	* hash.c (findnode): Document behavior of this function when its list
6832	argument is NULL and document this behavior.  Remove FIXME comment to
6833	the effect that this is necessary.
6834
68352003-05-01  Derek Price  <derek@ximbiot.com>
6836
6837	* main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
6838	(Report from Jim Salter <jsalterjim@earthlink.net>.)
6839
68402003-05-01  Derek Price  <derek@ximbiot.com>
6841
6842	* repos.c (Sanitize_Repository_Name): Remove some old comments about
6843	the defunct RELATIVE_REPOS macro.
6844	* server.c (outside_root): Ditto.
6845
68462003-04-30  Derek Price  <derek@ximbiot.com>
6847
6848	* vers_ts.c (Version_TS): Minor optimization.
6849
68502003-04-30  Derek Price  <derek@ximbiot.com>
6851
6852	* add.c (add): Fix a possible, if unlikely, memory out of bounds error.
6853
68542003-04-30  Derek Price  <derek@ximbiot.com>
6855
6856	* commit.c: Free vers in single place
6857	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6858
68592003-04-30  Derek Price  <derek@ximbiot.com>
6860
6861	* Makefile.am: Get rid of $includeopt, using $CPPFLAGS as intended by
6862	the Autoconf folk.
6863	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6864
6865	* Makefile.in: Regenerated.
6866
68672003-04-30  Derek Price  <derek@ximbiot.com>
6868
6869	* add.c (add): Fix a possible, if unlikely, memory out of bounds error.
6870
68712003-04-28  Derek Price  <derek@ximbiot.com>
6872
6873	* client.c (save_prog): Remove unneeded struct.
6874	(checkin_progs, update_progs): Remove these unneeded globals.
6875	(handle_set_checkin_prog, handle_set_update_prog, do_deferred_progs):
6876	Remove these functions.
6877	(send_repository): Remove checkin and update prog support.
6878	(responses): Remove Set-checkin-prog and Set-update-prog.
6879	(get_responses_and_close): Don't call do_deferred_prog().
6880	* commit.c (commit_usage): Remove reference to -n.
6881	(commit): Don't set and send run_module_prog via -n.  Don't run
6882	Checkin.prog or Checkout.prog in local mode.
6883	* modules.c (CVSMODULE_OPTS): Remove -i and -u.
6884	(do_module): Don't process -i and -u options to set checkin and update
6885	progs, respectively.
6886	* server.c (server_prog, serve_checkin_prog, server_update_prog):
6887	Remove unused functions.
6888	(requests): Remove Checkin-prog and Update-prog.
6889	* update.c (update_dirleave_proc): Remove update prog functionality.
6890
6891	* cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
6892	* server.h (server_prog): Remove proto.
6893	(progs): Remove enum.
6894
6895	* sanity.sh (modules5): Remove tests for checkin and update programs.
6896
68972003-04-15  Derek Price  <derek@ximbiot.com>
6898
6899	* sanity.sh (*): Shrink the yucky case statement using sed's transform
6900	functionality.
6901	(getlongoptarg): Convert this function to only confirm the arg and move
6902	it...
6903	(checklongoptarg): ...here.
6904
69052003-04-10  Larry Jones  <lawrence.jones@eds.com>
6906
6907	* Makefile.in: Regenerated.
6908
69092003-04-04  Larry Jones  <lawrence.jones@eds.com>
6910
6911	* sanity.sh (branches4-15): New test.
6912
6913	* error.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
6914	versions < 3.0.
6915
69162003-04-03  Derek Price  <derek@ximbiot.com>
6917
6918	* Makefile.am (DISTCLEAN_FILES): Move the contents of this variable...
6919	(distclean-local): ...to this target now that Automake supports it.
6920
69212003-04-03  Derek Price  <derek@ximbiot.com>
6922
6923	* cvs.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
6924	versions < 3.0.
6925
69262003-04-02  Larry Jones  <lawrence.jones@eds.com>
6927
6928	* update.c (update, update_fileproc, update_filesdone_proc,
6929	update_dirent_proc, update_dirleave_proc): Keep track of whether
6930	a tag is both a revision tag and a branch tag and warn the user.
6931	* sanity.sh (branches4): New tests for above.
6932
69332003-04-02  Derek Price  <derek@ximbiot.com>
6934
6935	* recurse.c (do_recursion): Use strstr("/./") rather than strchr('.')
6936	to catch only indirections in paths and not directory names with dots
6937	in them.
6938	(Report from Pavel Roskin <proski@gnu.org>.)
6939
6940	* sanity.sh (multiroot): Put a dot in the CVSROOT_DIRNAMEs.
6941	(dottedroot): New test.
6942	(Based on a script from Pavel Roskin <proski@gnu.org>.)
6943
69442003-04-01  Derek Price  <derek@ximbiot.com>
6945
6946	* sanity.sh (multiroot2-9): Add newly TRACEd parse_cvsroot() to
6947	expected output.
6948
69492003-03-31  Derek Price  <derek@ximbiot.com>
6950
6951	* rcs.c (freercsnode): Revert an accidental change from the previous
6952	commit.
6953
69542003-03-31  Derek Price  <derek@ximbiot.com>
6955
6956	* recurse.c (start_recursion): Accept new repository argument so that
6957	the working directory may be tracked by do_recursion without using
6958	xgetwd(), which returned a value different from the one the user
6959	requested when symlinks were in use.  Add TRACE.  Pass repository_in
6960	to do_recursion() as part of the recursion frame.
6961	(do_recursion): Default srepository to NULL and only set when we set
6962	repository.  Keep track of repository using xframe.repository for the
6963	r* commands rather than xgetwd(), which used to break when CVSROOT was
6964	a symlink to a real root.
6965
6966	* cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
6967	(xresolvepath): New proto.
6968	(start_recursion): Add repository to proto.
6969	(*): Define some more abstract TRACE levels.
6970	* update.h (do_update): Add repository argument to proto.
6971
6972	* checkout.c (safe_location): Add more complete header comment.  Add
6973	TRACE.  Use new xresolvepath() function.  Always return true in
6974	client mode since checking our destination path against the CVSROOT
6975	path is usually meaningless in client/server mode.
6976	(checkout_proc): Pass repository to do_update() for later use with
6977	start_recursion().
6978	(*): s/<chdir>/CVS_CHDIR/.
6979	* filesubr.c (xreadlink): #ifdef HAVE_READLINK this function.  Add more
6980	complete header comment.
6981	(xresolvepath): New function.
6982	* hash.c (walklist): Add TRACE.
6983	* main.c (main): Don't copy and dispose of CVSRoot_cmdline twice.
6984	* patch.c (patch_proc): Add TRACE.  Pass repository to
6985	tag_check_valid() for r* commands.
6986	* root.c (parse_cvsroot): Add TRACE.
6987	* tag.c (rtag_proc): Add TRACE.
6988	(check_fileproc): Ditto.
6989	(tag_check_valid): Ditto.
6990	* update.c (do_update): Accept new repository argument for co.
6991	(update): Pass NULL repository to do_update().
6992
6993	* admin.c (*): Use new definition of start_recursion().
6994	* annotate.c (*): Ditto.
6995	* client.c (*): Ditto.
6996	* commit.c (*): Ditto.
6997	* diff.c (*): Ditto.
6998	* edit.c (*): Ditto.
6999	* lock.c (*): Ditto.
7000	* log.c (*): Ditto.
7001	* patch.c (*): Ditto.
7002	* remove.c (*): Ditto.
7003	* status.c (*): Ditto.
7004	* tag.c (*): Ditto.
7005	* update.c (*): Ditto.
7006	* watch.c (*): Ditto.
7007
7008	* sanity.sh: Add new -l option to test symlinked roots.
7009	(abspath-3.2): Use [a-z]* rather than "checkout".
7010	(check_repository-1): Add server error messages about absolute paths
7011	since the client now skips destination validity checks.
7012	(check_repository-2): Process client error messages about CVSROOT
7013	files being in the way since the client skips destination validity
7014	checks since it should be rare that a client is running in
7015	client/server mode on the server and CVS has no current way to check if
7016	it is runnning on the server.
7017
70182003-03-27  Mark D. Baushke  <mdb@cvshome.org>
7019
7020	* sanity.sh (rdiff2): Add new test case for SEGV problem reported
7021	against cvs 1.11.5.
7022	(Report from James Cribb)
7023
70242003-03-26  Derek Price  <derek@ximbiot.com>
7025
7026	* client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
7027	and HAVE_GSSAPI.
7028	* client.h: Ditto.  Remove some unecessary server function prototypes.
7029
70302003-03-26  Derek Price  <derek@ximbiot.com>
7031
7032	* client.c: Include the net headers for HAVE_GSSAPI.
7033	(Report from Jim Salter <jsalterjim@earthlink.net>.)
7034
70352003-03-26  Derek Price  <derek@ximbiot.com>
7036
7037	* main.c (main): Verify the argument to -z when running without
7038	CLIENT_SUPPORT since Eric Siegerman complained about being bit
7039	by a run of `cvs -z -n up' which parsed the -n as the argument to
7040	-z.
7041	* sanity.sh (opterrmsg): New tests for -z argument checking.
7042
70432003-03-26  Larry Jones  <lawrence.jones@eds.com>
7044
7045	* main.c (main): Use strtol() instead of atoi() when parsing -z
7046	to detect errors.
7047	(Reported by Eric Siegerman <erics@telepres.com>.)
7048
70492003-03-25  Derek Price  <derek@ximbiot.com>
7050
7051	* cvs.h: Disable GNU attributes as part of PROTO behavior.
7052	* error.h: Mirror GNU attribute definitions from cvs.h.
7053
70542003-03-25  Derek Price  <derek@ximbiot.com>
7055
7056	* subr.c (cvs_trace): #ifdef use of server_active.
7057	(Report from Jim Salter <jsalter@proofpoint.com>.)
7058
7059	* cvs.h (xmalloc, xrealloc, xstrdup, parse_cvsroot,
7060	local_cvsroot, normalize_cvsroot): Use GNU attributes.
7061	* error.h (error_exit): Fix PROTO/__attribute__ specification.
7062	* root.c (new_cvsroot_t): Add GNU attribute.
7063
70642003-03-24  Derek Price  <derek@ximbiot.com>
7065
7066	* Makefile.am: Update copyright notice.
7067
7068	* Makefile.in: Regenerated.
7069
70702003-03-24  Larry Jones  <lawrence.jones@eds.com>
7071
7072	* server.h (server_clear_template): Add declaration.
7073	(server_template): Add parameter names to prototype.
7074
70752003-03-20  Mark D. Baushke  <mdb@cvshome.org>
7076
7077	* sanity.sh (env): Try more than one ps command if the first one
7078	fails. This may let the test succeed on more platforms. Also,
7079	keep the ps output that was processed for the error report.
7080
70812003-03-19  Mark D. Baushke  <mdb@cvshome.org>
7082
7083	* sanity.sh (env): Use 'ps -el' rather than 'ps -l' so that
7084	crontab jobs that might be running these tests without a
7085	controlling terminal work properly.
7086
7087	* client.c (start_rsh_server): Use new definition of RSH_DFLT to
7088	allow "rsh" to be configured to default to "ssh" or some other
7089	local remote transport program.
7090
7091	* Makefile.in: Regenerated.
7092
70932003-03-19  Larry Jones  <lawrence.jones@eds.com>
7094
7095	* filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
7096	(Patch from Brian Poole <raj@cerias.purdue.edu>.)
7097	* sanity.sh (abspath-4): Update to match.
7098
7099	* filesubr.c (locate_rcs): Fix gcc warning.
7100
71012003-03-19  Derek Price  <derek@ximbiot.com>
7102
7103	* add.c (add_directory): Only call WriteTemplate when the server is
7104	active.
7105	* create_adm.c (Create_Admin): Don't call WriteTemplate here since
7106	Create_Admin is only called from the client.
7107	* commit.c (commit_dirleaveproc): Don't call WriteTemplate here.  I'm
7108	a little confused as to why since update_direntproc works for update.c,
7109	but I can't come up with a test case that fails when this call is
7110	missing.  Nor can I come up with a test case that passes when this call
7111	is present and the one in commit_filesdoneproc is removed.
7112	* sanity.sh (template): Tidy, minimize, and add some extra tests.
7113
71142003-03-19  Mark D. Baushke  <mdb@cvshome.org>
7115
7116	* .cvsignore: Added sanity.config.sh, a new auto-generated file.
7117
7118	* cvs.h (CVS_PID_ENV): New environment variable CVS_PID has the
7119	pid of the parent cvs process.
7120	* main.c (main): Initialize it.
7121	* sanity.sh (env): Test it.
7122
71232003-03-19  Derek Price  <derek@ximbiot.com>
7124
7125	* sanity.config.sh.in: New file.
7126	* sanity.sh: Source new config file when available.  Accept alternate
7127	config file as an argument to a -c option.  Accept long options with
7128	arguments.
7129	(getlongoptarg): New function.
7130
7131	* Makefile.in: Regenerated.
7132
71332003-03-18  Derek Price  <derek@ximbiot.com>
7134
7135	* root.c (parse_root): Add some more comments and expand
7136	#ifdef CLIENT_SUPPORT pragmas.  Rearrange sanity checks slightly.
7137
71382003-03-18  Derek Price  <derek@ximbiot.com>
7139
7140	* main.c (main): Output -R warning in quiet mode and correct spelling
7141	in this warning message.
7142	* sanity.sh (commit-readonlyfs-2r4): Correct cascaded spelling mistake
7143	in test.
7144
71452003-03-17  Derek Price  <derek@ximbiot.com>
7146
7147	* add.c: Correct comment.
7148	* client.c: Ditto.
7149	* checkin.c (Checkin): Pass work file name to RCS_checkin so that this
7150	function works properly in the case insensitive mode.
7151	* commit.c (checkaddfile): Fix and factor add logic so that the
7152	correct files and directories are created in the case insensitive mode.
7153	Reuse code in RCS_parse() below.  This avoids a problem that could
7154	cause corrupted RCS files to be created on an add from a case
7155	insensitive system.  Corrupted RCS files could cause later assertion
7156	failures for everyone.
7157	(locate_rcs): Move this function...
7158	* filesubr.c (locate_rcs): ...here and rewrite it.
7159	(fopen_case): Remove this function.
7160	(locate_file_in_dir): New function.
7161	* cvs.h (locate_rcs): Prototype new function.
7162	* rcs.c (RCS_parse): Factor out file location into locate_rcs.
7163
71642003-03-17  Mark D. Baushke  <mdb@cvshome.org>
7165
7166	* main.c (main): Issue a warning about readonlyfs options unless
7167	quiet or really_quiet is set.
7168	* lock.c (Writer_Lock): Modify readonlyfs error message text.
7169	* sanity.sh (commit-readonlyfs): Adjust test for new messages.
7170
71712003-03-17  Larry Jones  <lawrence.jones@eds.com>
7172
7173	* server.c (switch_to_user): Add syslog calls for setgid/setuid
7174	failure.
7175
71762003-03-16  Mark D. Baushke  <mdb@cvshome.org>
7177
7178	* cvs.h (CVSREADONLYFS_ENV): New macro to support new environment
7179	variable "CVSREADONLYFS" for read-only file-system repository mode.
7180	* lock.c (Reader_Lock, Writer_Lock): Add support for new read-only
7181	file-system repository mode.
7182	* main.c (main, opt_usage): Ditto.
7183	* root.c (parse_cvsroot): Ditto.
7184	* sanity.sh (commit-readonlyfs): Test new read-only file-system
7185	repository mode.
7186
71872003-03-14  Mark D. Baushke  <mdb@cvshome.org>
7188
7189	* server.c (template_proc): Fix broken Template protocol code.
7190	Must call send buf_send_counted() for Template files to avoid
7191	"Protocol error: uncounted data discarded" messages in some
7192	circumstances.
7193	* sanity.sh (template): Test case to verify fix this fix.
7194
71952003-03-10  Mark D. Baushke  <mdb@cvshome.org>
7196
7197	* cvs.h (WriteTemplate): Add missing prototype.
7198
71992003-03-07  Mark D Baushke <mdb@cvshome.org>
7200
7201	* sanity.sh: Fix broken setting of the servercvs variable.
7202
72032003-03-07  Derek Price  <derek@ximbiot.com>
7204
7205	* sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
7206	consistency.
7207
72082003-03-07  Derek Price  <derek@ximbiot.com>
7209
7210	* sanity.sh (usage): Show users long --help rather than less
7211	informative -h.
7212
72132003-03-07  Derek Price  <derek@ximbiot.com>
7214
7215	* sanity.sh: Add support for long options.
7216	(exit_usage): Move the actual generation of usage text to...
7217	(usage): ...this new function and improve the usage message.
7218	(exit_help): New function.
7219
72202003-03-07  Mark D. Baushke  <mdb@cvshome.org>
7221
7222	* sanity.sh: Drop the clientcvs option. Add usage info for
7223	the -s servercvs option.
7224
72252003-03-07  Larry Jones  <lawrence.jones@eds.com>
7226
7227	* commit.c (check_fileproc): Remove unused variables.
7228
7229	* patch.c (patch): Pass local to do_module so that -l actually works.
7230	(Reported by John Coers <coers@intrinsity.com>.)
7231	(patch_fileproc): Fix uninitialized variables.
7232	* sanity.sh: Define a DATE pattern for rdiff and use it.
7233	(basic2-24a): New test for above.
7234
72352003-03-07  Mark D. Baushke  <mdb@cvshome.org>
7236
7237	* entries.c (WriteTemplate): New function to control updates to
7238	the CVS/Template file or its removal.
7239	* create_adm.c (Create_Admin): Use the new WriteTemplate function.
7240	* add.c (add_directory): Add a WriteTemplate() call
7241	when a new directory is added to the repository.
7242	* commit.c (commit_filesdoneproc): Ensure that the CVS/Template is
7243	updated at the end of a commit -- mostly to remove it if it is not
7244	relevant.
7245	(commit_dirleaveproc): Ensure that the CVS/Template gets updated
7246	when the directory is left.
7247	* update.c (update_dirent_proc): Update CVS/Template file.
7248	* server.c (server_clear_template): New protocol response to
7249	remove existing CVS/Template files.
7250	* client.c (clear_template): New function to remove or truncate a
7251	CVS/Template file.
7252	(handle_clear_template): New function. Handle Clear-template
7253	protocol response message.
7254	(save_prog): Add new Clear-template response line.
7255	* sanity.sh (template): Test the CVS/Template creation with
7256	the remote protocol. Nothing gets created locally.
7257	(multiroot2): Fix for minor changes to trace output.
7258	(getopts): Allow tests to be run with specified client and server
7259	cvs commands to allow for interoperatbility testing.
7260	(check_keep): New shell function for --keep processing.
7261
72622003-03-06  Derek Price  <derek@ximbiot.com>
7263
7264	* subr.c (file_has_conflict): New file.
7265	* commit.c (check_fileproc): Factor code into new file_has_conflict()
7266	function.
7267	* update.c (update_fileproc): Ditto.
7268	* status.c (status_fileproc): Use new file_has_conflict() function.
7269	(Report from Bernd Kuemmerlen <bkuemmer@mevis.de>.)
7270
7271	* sanity.sh (status): New test for same.
7272
72732003-03-06  Larry Jones  <lawrence.jones@eds.com>
7274
7275	* sanity.sh (branches3-4): Set and export CVS_LOCAL_BRANCH_NUM
7276	to be sure it really gets into the environment, then unset it
7277	when finished (ala CVSWRAPPERS et al).
7278
72792003-03-03  Mark D. Baushke  <mdb@cvshome.org>
7280
7281	* sanith.sh (branches3): Localize the setting of
7282	the CVS_LOCAL_BRANCH_NUM environment variable.
7283
7284	* rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
7285	Port of the FreeBSD hack for setting the next magic branch number
7286	to be used. The original patch was written by Peter Wemm
7287	<peter@FreeBSD.org> and may be found by visiting the URL:
7288	http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
7289	Implement a horrible (but simple) hack to allow some control over the
7290	branch number that is assigned. This is specifically to support the
7291	local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
7292	(say) 1000 then branches the local repository, the revision numbers
7293	will look like 1.66.1000.xx. This is almost a dead-set certainty that
7294	there will be no conflicts with version numbers.
7295	(This needs to be something more than an option to 'cvs tag' or 'cvs
7296	rtag' as various parts of cvs "know" how to automatically branch files
7297	(eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
7298	* sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
7299
73002003-03-04  Derek Price  <derek@ximbiot.com>
7301
7302	* history.c (history_write): Remove unneeded O_CREAT in the call to
7303	open() since we abort a few lines earlier if the file doesn't exist.
7304	Add a comment to the effect that this is not the optimal method of
7305	doing things and needs fixed.
7306
73072003-02-28  Derek Price  <derek@ximbiot.com>
7308
7309	* root.c (parse_cvsroot): Set no_password for :gserver: and :kserver:
7310	as tokens should already be obtained via external sources.
7311	* update.c (update_fileproc): Remove redundant code.
7312
73132003-02-28  Larry Jones  <lawrence.jones@eds.com>
7314
7315	* lock.c (set_lock): If possible, try a short wait with no message
7316	before calling lock_wait() to optimize master lock contention.
7317
73182003-02-26  Larry Jones  <lawrence.jones@eds.com>
7319
7320	* checkout.c (checkout): Send "--" before file names.
7321	* sanity.sh (spacefiles): Remote now works just like local.
7322
73232003-02-25  Derek Price  <derek@ximbiot.com>
7324
7325	* sanity.sh (rcs4): Use UTC to work across timezones.
7326
73272003-02-25  Derek Price  <derek@ximbiot.com>
7328
7329	* rcs.c (RCS_getdate): Fix a bug that shows up when checking out
7330	files by date with the "-D date" command line option. There is
7331	code in the original to handle a special case. If the date search
7332	finds revision 1.1 it is supposed to check whether revision
7333	1.1.1.1 has the same date stamp, which would indicate that the
7334	file was originally brought in with "cvs import". In that case it
7335	is supposed to return the vendor branch version 1.1.1.1.
7336
7337	However, there was a bug in the code. It actually compares the date
7338	of revision 1.1 for equality with the date given on the command
7339	line -- clearly wrong. This commit fixes the coding bug.
7340
7341	Note: There is an additional bug which is _not_ fixed in this
7342	commit. The date comparison should not be a strict equality test.
7343	It should allow a fudge factor of, say, 2-3 seconds. Old versions
7344	of CVS created the two revisions with two separate invocations of
7345	the RCS "ci" command. We have many old files in the tree in which
7346	the dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
7347
7348	This bug was discovered and fixed for FreeBSD cvs. See v 1.21 of
7349	<http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff>
7350        for more information.
7351
7352	* sanity.sh (rcs4): Tests for same.
7353	(Patch from Mark D. Baushke <mdb@cvshome.org>.)
7354
73552003-02-25  Derek Price  <derek@ximbiot.com>
7356
7357	* logmsg.c (logfile_write): Do not pass a NULL pointer to
7358	fprintf() when we have an empty log message.
7359	* sanity.sh (editor): Add new tests to verify correct behavior of
7360	empty log messages.
7361	(Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
7362	Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
7363
73642003-02-25  Derek Price  <derek@ximbiot.com>
7365
7366	* cvs.h (user_admin_options): Rename to...
7367	(UserAdminOptions): ...this to match the convention set by
7368	of RereadLogAfterVerify.
7369	* admin.c (admin): Ditto.
7370	* parseinfo.c (parse_config): Ditto.
7371
7372	* mkmodules.c (config_contents): Update with UserAdminOptions
7373	information.
7374
73752003-02-25  Derek Price  <derek@ximbiot.com>
7376
7377	* cvsbug.in: Import use of mktemp function from RedHat 8.0's
7378	CVS 1.11.2 RPM.  Use new MKTEMP configure variable.  Use new
7379	SENDMAIL from configure.
7380
7381	* Makefile.in: Regenerated.
7382
73832003-02-25  Derek Price  <derek@ximbiot.com>
7384
7385	* cvs.h (user_admin_options): New global config option.
7386	* admin.c (admin): Handle user_admin_options.
7387	* parseinfo.c (parse_config): Handle UserAdminOptions.
7388	(Original patch from Dan Peterson <dbpete@aol.com>.)
7389
73902003-02-25  Derek Price  <derek@ximbiot.com>
7391
7392	* watch.c (watch_usage): Use {} rather than () for literals.
7393
73942003-02-21  Larry Jones  <lawrence.jones@eds.com>
7395
7396	* server.c (switch_to_user): Update comment, change error message
7397	so it's not an exact duplicate of the one in check_password.
7398	(check_repository_password): Add syslog call for password mismatches.
7399	(check_password): Add syslog call for password mismatches, rearrange
7400	code to simplify and eliminate redundancy.
7401	(pserver_authenticate_connection): Remove syslog call, now done by
7402	lower-level routines.
7403
74042003-02-19  Larry Jones  <lawrence.jones@eds.com>
7405
7406	* sanity.sh (admin-10): Add test for repository files not in
7407	working directory.
7408
7409	* admin.c (admin_fileproc): Fix crash when no rcs file, return
7410	failure status for bogus files.
7411	* sanity.sh (admin-4a): Test for above.
7412	(Original patch submitted by Mark D. Baushke <mdb@cvshome.org>).
7413
74142003-02-14  Larry Jones  <lawrence.jones@eds.com>
7415
7416	* log.c (log_expand_revlist): Fix crashes in error cases.
7417	(Reported by Bart Santy <Bart.Santy@switch.be>.)
7418	* sanity.sh (log): New tests for above.
7419
74202003-02-14  Derek Price  <derek@ximbiot.com>
7421
7422	* rcs.h (RCSNode): Add a field for the original path to print with
7423	error messages.
7424	* rcs.c (RCS_parsercsfile_i): Keep track of the original path for error
7425	messages.
7426	(freercsnode): Free the origpath.
7427
74282003-02-14  Derek Price  <derek@ximbiot.com>
7429
7430	* watch.c (watch_usage): Make the repeatability of -a part of the
7431	usage spec.
7432
74332003-02-14  Derek Price  <derek@ximbiot.com>
7434
7435	* watch.c (watch_usage): Mention default for -a.  Mention multiple
7436	invocations of -a.  Mention -R as default.  Use required () rather than
7437	optional [] around watch subcommand list in invocation spec.  Use
7438	`path' instead of `file'.  Put variable <> around `action' and `path'.
7439
74402003-02-12  Derek Price  <derek@ximbiot.com>
7441
7442	* main.c (main): Update copyright message to 2003.
7443
74442003-02-08  Derek Price  <derek@ximbiot.com>
7445
7446	* rcs.c (RCS_checkout): Supply the full function name in the TRACE
7447	output.
7448	* update.c (checkout_file, join_file): Supply tag properly to
7449	RCS_checkout more often.
7450	(patch_file): Ditto.  Fill out comments.
7451	* sanity.sh (keyword, keywordname): Some changes to accomodate the fact
7452	that the above changes cause patches generated by patch_file to fail
7453	occassionally.
7454
74552003-02-07  Derek Price  <derek@ximbiot.com>
7456
7457	* sanity.sh (*): Don't keep running after a test when --keep has been
7458	supplied.  That was kind of silly, wasn't it?
7459
74602003-02-07  Derek Price  <derek@ximbiot.com>
7461
7462	* rcscmds.c (RCS_merge): Add a FIXME.
7463
74642003-02-07  Derek Price  <derek@ximbiot.com>
7465
7466	* commit.c (checkaddfile): Do not lose the vendor branch when
7467	adding files to a new branch. Avoids extranious conflicts for
7468	future vendor imports. This was found and fixed in FreeBSD cvs.
7469	See http://www.freebsd.org/cgi/query-pr.cgi?pr=4033 for details.
7470	* sanity.sh (branch-after-import): New test.
7471	(Thanks to Mark D Baushke <mdb@cvshome.org> for forwarding the
7472	patch and writing the test cases!)
7473
7474	* sanity.sh (branch-after-import): Misc portablility and standard
7475	changes.
7476
74772003-02-07  Derek Price  <derek@ximbiot.com>
7478
7479	* add.c: Exercise the pet peeve Karl Fogel, I think, infected me with
7480	about using the word invalid rather than illegal and reserving illegal
7481	for use when actually discussing laws and governmentally enforced
7482	restrictions:
7483	s/illegal/invalid/g;s/legality/validity/g;s/legal/valid/g;
7484	* admin.c: Ditto.
7485	* cvs.h: Ditto.
7486	* expand_path.c: Ditto.
7487	* log.c: Ditto.
7488	* modules.c: Ditto.
7489	* rcs.c: Ditto.
7490	* rcs.h: Ditto.
7491	* repos.c: Ditto.
7492	* root.c: Ditto.
7493	* sanity.sh: Ditto.
7494	* scramble.c: Ditto.
7495	* server.c: Ditto.
7496	* subr.c: Ditto.
7497
74982003-02-06  Derek Price  <derek@ximbiot.com>
7499
7500	* rcs.c (RCS_getdatebranch): Update header comment to reflect the state
7501	of the docs and the code's operation.
7502
75032003-02-06  Derek Price  <derek@ximbiot.com>
7504
7505	* client.c: Use the complete path to the CVSADM_TEMPLATE file in
7506	error messages.  Remove related FIXME.
7507
75082003-02-04  Derek Price  <derek@ximbiot.com>
7509
7510	* status.c (status_fileproc): Add a FIXME comment.
7511
75122003-02-04  Derek Price  <derek@ximbiot.com>
7513
7514	* sanity.sh (conflicts2- c. 142d): New test for double add and two
7515	attempted commits of files with the same name.  Fill out some comments
7516	and change one FIXME to a FIXCVS THEN FIXME.
7517
75182003-02-03  Derek Price  <derek@ximbiot.com>
7519
7520	* client.c (start_Server): Send multiple trace options when
7521	necessary.
7522	* server.c (server): Update trace option processing to accept multiple
7523	-t arguments.
7524	* *: Use new TRACE macro.
7525
75262003-02-02  Larry Jones  <lawrence.jones@eds.com>
7527
7528	* error.c: Update to match error.h.
7529
7530	* cvs.h (cvs_trace): Add attribute for GNU printf format checking.
7531	* error.h: Use same check for prototypes as cvs.h.  Use PROTO
7532	macro rather than #ifdef for error and error_exit.
7533
75342003-02-01  Larry Jones  <lawrence.jones@eds.com>
7535
7536	* buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
7537	(Patch from Johannes Gr�dem <johs+n@ifi.uio.no>.)
7538
75392003-02-01  Derek Price  <derek@ximbiot.com>
7540
7541	* lock.c: Remove extra line feed on TRACE output.
7542
75432003-01-31  Derek Price  <derek@ximbiot.com>
7544
7545	* cvs.h: Move header includes in from...
7546	* error.c: ...here.  Remove checks for definition of vprintf().
7547	Since our error() function was making assumptions about the definition
7548	of VA_START, we must not have been compiling on platforms without
7549	vprintf for quite awhile and I've heard no complaints.
7550	(fperrmsg): Assume vprintf().
7551	* subr.c (cvs_trace): Don't assume ANSI C function declarations.
7552
75532003-01-31  Derek Price  <derek@ximbiot.com>
7554
7555	* main.c (main): Allow multiple -t options.
7556	(opt_usage): Correct usage.
7557	* cvs.h (TRACE): New macro.
7558	* subr.c (cvs_trace): New function.
7559	(Thanks to the team at the CVSNT project.)
7560
7561	* lock.c (*): Use new TRACE macro.
7562
75632003-01-31  Derek Price  <derek@ximbiot.com>
7564
7565	* sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
7566
75672003-01-30  Derek Price  <derek@ximbiot.com>
7568
7569	* sanity.sh (keywordname): New test.
7570
75712003-01-23  Larry Jones  <lawrence.jones@eds.com>
7572
7573	* diff.c (diff_fileproc): Restructure code to simplify and eliminate
7574	redundant tests.
7575
7576	* server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
7577	coding test for core file.
7578
75792003-01-21  Larry Jones  <lawrence.jones@eds.com>
7580
7581	* root.c (method_name): Redefine as a 2D array.
7582	* root.h (method_name): Ditto.
7583
75842003-01-21  Jim Meyering  <jim@meyering.net>
7585
7586	* add.c (add): Rename local-shadowing `i' to `j'.
7587
7588	* root.c (method_names): Declare to be a const array of const strings.
7589	(Name_Root): Save errno so it doesn't get clobbered
7590	by the intervening error call.
7591	Use getline's return value, mainly to save a call to strrchr.
7592
75932003-01-20  Larry Jones  <lawrence.jones@eds.com>
7594
7595	* myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
7596	it parses correctly.
7597	(Reported by Andres Bertens <abertens@entelchile.net>.)
7598
75992003-01-15  Karl Fogel  <kfogel@collab.net>
7600
7601	* server.c (dirswitch): Don't free dir_name until right before
7602	allocating it again.  This removes a potential double-free
7603	problem, whereby this function could free dir_name and then
7604	immediately return due to invalid directory syntax (without ever
7605	reassigning dir_name), then reenter and free dir_name again.
7606
7607        Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
7608
76092003-01-08  Larry Jones  <lawrence.jones@eds.com>
7610
7611	* client.c (update_entries): Only "0" is a special version number;
7612	other numbers starting with 0 (like 0.1) are normal version numbers.
7613	* commit.c (find_fileproc): Ditto.  Also reorganize the code to
7614	simplify the conditions.
7615	(Reported by Michele Zamparelli <michele.zamparelli@eso.org>.)
7616
76172003-01-02  Larry Jones  <lawrence.jones@eds.com>
7618
7619	* rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
7620
76212002-12-27  Derek Price  <derek@ximbiot.com>
7622
7623	* admin.c: s/LOCK_(NONE|WRITE|READ)/CVS_$&/g; since the definition of
7624	LOCK_WRITE clashes with a definition in objidl.h on Windoze platforms.
7625	* annotate.c: Ditto.
7626	* client.c: Ditto.
7627	* commit.c: Ditto.
7628	* cvs.h: Ditto.
7629	* diff.c: Ditto.
7630	* edit.c: Ditto.
7631	* lock.c: Ditto.
7632	* log.c: Ditto.
7633	* patch.c: Ditto.
7634	* recurse.c: Ditto.
7635	* remove.c: Ditto.
7636	* status.c: Ditto.
7637	* tag.c: Ditto.
7638	* update.c: Ditto.
7639	* watch.c: Ditto.
7640	* myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
7641	Windoze.
7642	(Thanks to Stephane Rouleau <s.rouleau@videotron.ca>,
7643	 Cristopher Seawood <cls@seawood.org>, and
7644	 Frederico Costa <frederico.costa@tiscali.no> for all their hints,
7645	 tips, and patches for this problem.)
7646
76472002-12-20  Derek Price  <derek@ximbiot.com>
7648
7649	* client.c (send_a_repository): Suppress a warning under Windoze.
7650
76512002-12-19  Derek Price  <derek@ximbiot.com>
7652
7653	* Makefile.am: Remove reference to options.h.
7654	* cvs.h: Ditto.
7655	* options.h: Remove this obsolete file.
7656	* sanity.sh: Remove comment about external diffs causing tests to fail
7657	since CVS hasn't used external diffs in years.
7658
7659	* Makefile.in: Regenerated.
7660
76612002-12-16  Derek Price  <derek@ximbiot.com>
7662
7663	* admin.c: Disable cvsadmin group checking on the client.
7664	(Reported by Dan Peterson <dbpete@aol.com>.)
7665
76662002-12-06  Derek Price  <derek@ximbiot.com>
7667
7668	* buffer.c: Replace calls to malloc with calls to xmalloc and calls to
7669	realloc with calls to xrealloc.
7670	* parseinfo.c: Ditto.
7671	* root.c: Ditto.
7672	* server.c: Ditto.
7673	* zlib.c: Ditto.
7674	* scramble.c: Change some comments to refer to xmalloc rather than
7675	malloc.
7676	(Reported by Dan Peterson <dbpete@aol.com>.)
7677
76782002-12-04  Derek Price  <derek@ximbiot.com>
7679
7680	* options.h: Remove CVS_ADMIN_GROUP.
7681
76822002-12-02  Larry Jones  <lawrence.jones@eds.com>
7683
7684	* commit.c (commit): Strip leading zeros from numeric revision
7685	in addition to trailing dots.
7686	(Reported by Peter Meszaros <pme@prolan.hu>.)
7687
76882002-11-22  Larry Jones  <lawrence.jones@eds.com>
7689
7690	* sanity.sh: Note that the tests run for a long time.
7691
7692	* checkout.c (safe_location): Use xstrdup, not strdup.
7693	(Reported by Terrence Enger <tenger@iSeries-guru.com>.)
7694
76952002-11-19  Larry Jones  <lawrence.jones@eds.com>
7696
7697	* log.c (log_expand_revlist): Fix cross-branch correction code.
7698
7699	* sanity.sh: Set $LANG for systems that ignore $LC_ALL.
7700	(rcs2-7): Change date offset from 100 months to 96 months to reduce
7701	periodic problems with invalid dates.
7702
77032002-11-12  Derek Price  <derek@ximbiot.com>
7704
7705	* sanity.sh (rcslib-symlink): Use rm -f rather than a simple rm when
7706	removing links because under some configurations of RH Linux 8.0 the
7707	script pauses to ask for removal approval.
7708
77092002-11-08  Derek Price  <derek@ximbiot.com>
7710
7711	* sanity.sh (importc): Update the use of the touch command to be
7712	compliant with POSIX 1003.1-2001, SUS2, and SUS3 now that GNU touch
7713	supports this.  If this breaks any test platforms we should test
7714	the behavior of touch like we do for other tools.
7715
77162002-11-03  Derek Price  <derek@ximbiot.com>
7717
7718	* sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
7719
77202002-11-03  Derek Price  <derek@ximbiot.com>
7721
7722	* sanity.sh (rcs2-7): Notate with three more failure dates.
7723
77242002-10-25  Derek Price  <derek@ximbiot.com>
7725
7726	* root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
7727	more appropriate calls to error_exit().
7728	* server.c: Ditto.
7729	* tag.c: Ditto.
7730
77312002-10-24  Derek Price  <derek@ximbiot.com>
7732
7733	* buffer.c (stdio_buffer_shutdown): Remove the getc() call used to
7734	detect spurious output from clients since getc() would sometimes
7735	block and hang indefinately if the client kept the conection open but
7736	sent no data.  Bug reports state that this hapened frequently with
7737	older clients connecting to 1.11.2 servers, especially when
7738	compression is enabled.
7739	(Original report from Mark D. Baushke <mdb@juniper.net>.
7740	 Original patch from Ralf S. Engelschall <rse@engelschall.com>
7741	 via Peter Wemm <peter@freebsd.org>.)
7742
77432002-10-05  Larry Jones  <lawrence.jones@eds.com>
7744
7745	* recurse.c (start_recursion, do_recursion): Allow write locking
7746	in addition to read locking.  Change all callers.
7747	* cvs.h: Change prototype to match, add lock types.
7748	* tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Have start_recursion
7749	use write locks rather than calling lock_dir_for_write to avoid deadly
7750	embrace.
7751
77522002-10-04  Larry Jones  <lawrence.jones@eds.com>
7753
7754	* client.c (get_responses_and_close, connect_to_pserver): Set
7755	to_server and from_server to NULL after freeing.
7756	* main.c (main): Clear server_active when finished.  Also neaten
7757	up the SERVER_SUPPORT ifdef's.
7758	* server.c (do_cvs_command): Set protocol_inbuf, stderrbuf, and
7759	stdoutbuf to NULL after freeing.
7760	(server_cleanup): Free buf_from_net and buf_to_set and set to NULL.
7761	Also reset error_use_protocol.
7762	(server): Don't SIG_register server_cleanup.  main_cleanup (which
7763	is already registered) outputs a fatal error which causes it to
7764	be called; registering it directly results in it being called twice.
7765	(cvs_output): Don't try to use buf_to_net or protocol if they're NULL.
7766
77672002-10-03  Larry Jones  <lawrence.jones@eds.com>
7768
7769	* lock.c (readers_exist): Ignore our own read lock, if any, to
7770	allow upgrading an existing read lock to a write lock.
7771	* tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Rather than
7772	locking the entire tree, have start_recursion establish read
7773	locks and then upgrade the read lock to a write lock (so only
7774	one directory is locked at a time).
7775
77762002-09-27  Larry Jones  <lawrence.jones@eds.com>
7777
7778	* add.c (add): Send "--" before file names.
7779	* admin.c (admin): Ditto.
7780	* annotate.c (annotate): Ditto.
7781	* commit.c (commit): Ditto.
7782	* diff.c (diff): Ditto.
7783	* edit.c (watch_onoff, editors): Ditto.
7784	* log.c (cvslog): Ditto.
7785	* remove.c (cvsremove): Ditto.
7786	* status.c (cvsstatus): Ditto.
7787	* tag.c (cvstag): Ditto.
7788	* update.c (update): Ditto.
7789	* watch.c (watch_addremove, watchers): Ditto.
7790
7791	* sanity.sh (client-9): Update to match.
7792
77932002-09-24  Derek Price  <derek@ximbiot.com>
7794
7795	* options.h: Remove prototype of STDC exit() function.  If this breaks
7796	a build, this should be detected in configure.in somehow rather than
7797	restoring the line to this file.
7798
77992002-09-24  Derek Price  <derek@ximbiot.com>
7800
7801	* options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
7802
78032002-09-24  Derek Price  <derek@ximbiot.com>
7804
7805	* options.h: Move definition of FORCE_USE_EDITOR into configure.in.
7806
78072002-09-24  Derek Price  <derek@ximbiot.com>
7808
7809	* options.h: Move definition of UMASK_DFLT into configure.in.
7810
78112002-09-24  Derek Price  <derek@ximbiot.com>
7812
7813	* Makefile.in: Regenerated using Automake 1.6.3.
7814
78152002-09-24  Larry Jones  <lawrence.jones@eds.com>
7816
7817	* filesubr.c, history.c, import.c, rcs.c, update.c: Use
7818	HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV instead of
7819	the obsolete HAVE_ST_BLKSIZE and HAVE_ST_RDEV.
7820
78212002-09-24  Derek Price  <derek@ximbiot.com>
7822
7823	* options.h: Move definition of TMPDIR_DFLT into configure.in.
7824
78252002-09-24  Derek Price  <derek@ximbiot.com>
7826
7827	* options.h: Move defininition of EDITOR_DFLT into configure.in.
7828
7829	* Makefile.in: Regenerated.
7830
78312002-09-23  Jim Meyering  <meyering@lucent.com>
7832
7833	If `cvs -d REPO commit ...' was used to override CVS/Root,
7834	then modified files in the directory from which cvs is invoked
7835	would not be committed.
7836	* client.c (arg_should_not_be_sent_to_server): The above would happen
7837	because this function would throw out a file name when CVS/Root
7838	did not match the current server.  Fix by allowing the command-line-
7839	specified repository to take precedence over the value returned
7840	by Name_Root.  Patch by Simon Walton <simonw@lucent.com>.
7841	* sanity.sh (commit-d): New tests for the above.
7842	Patch by Simon Walton <simonw@lucent.com>.
7843
78442002-09-20  Derek Price  <derek@ximbiot.com>
7845
7846	* options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
7847	and SERVER_LO_WATER into configure.in.
7848
78492002-09-20  Derek Price  <derek@ximbiot.com>
7850
7851	* options.h: Move definition of PATCH_PROGRAM to configure.in.
7852
78532002-09-18  Larry Jones  <lawrence.jones@eds.com>
7854
7855	* client.c (call_in_directory): Don't create admin directory when
7856	exporting into an existing directory.
7857	(Reported by Jens Engel <Jens.Engel@marconi.com>.)
7858	* sanity.sh (basic2): New tests for above.
7859
78602002-09-16  Jim Meyering  <meyering@lucent.com>
7861
7862	* server.c (do_cvs_command): Move declarations of locals, timeout and
7863	timeout_ptr, `up', out of enclosing `#ifdef SERVER_FLOWCONTROL' block.
7864	Otherwise, this file would not compile with SERVER_FLOWCONTROL
7865	turned off.  Patch by Ed Santiago <esm@ascend.com>.
7866
78672002-09-15  Larry Jones  <lawrence.jones@eds.com>
7868
7869	* myndbm.c (mydbm_open): Open the file read/write rather than read-
7870	only if that's what the user asked for to ensure that the later open
7871	for write will succeed.
7872	(Patch submitted by Josh Lehan <cvs@krellan.com>.)
7873
78742002-08-28  Larry Jones  <lawrence.jones@eds.com>
7875
7876	* logmsg.c (do_editor): Fix bug which prevented reusing log messages.
7877	(Reported by Eric Siegerman <erics@telepres.com>.)
7878
78792002-08-16  Derek Price  <derek@ximbiot.com>
7880
7881	* create_adm.c (Create_Admin): Assume RELATIVE_REPOS is set.
7882	* server.c (outside_root): Add comment.
7883	* options.h: Remove RELATIVE_REPOS & CVS_BADROOT.
7884	* sanity.sh: Remove a lot of !RELATIVE_REPOS cruft from tests.
7885
78862002-08-14  Derek Price  <oberon@umich.edu>
7887
7888	* server.c (server): Dispose of the correct pointer.  Tidy comment.
7889
78902002-08-13  Derek Price  <oberon@umich.edu>
7891
7892	* client.c (get_cvs_port_number): Fix typo in comment.  Add comments.
7893	* server.c (server): Fix a FIXME.  Remove an errant "const" directive.
7894	Remove some redundant memory allocation and error handling code.
7895
78962002-08-08  Derek Price  <oberon@umich.edu>
7897
7898	* import.c (import): Surrounded `server_active' with
7899	#ifdef SERVER_SUPPORT/#endif.
7900	* commit.c (commit_fileproc, commit_direntproc): Likewise.
7901	(Patch from John Tytgat  <John.Tytgat@aaug.net>.)
7902
79032002-07-31  Derek Price  <oberon@umich.edu>
7904
7905	* filesubr.c: Add a line so VIM can determine tab stops and shift widths.
7906	* root.c: Ditto.
7907	* (parse_cvsroot): Add comments and tidy slightly.
7908
79092002-07-31  Derek Price  <oberon@umich.edu>
7910
7911	* sanity.sh: Add another date to the comment about rcs2-7 failing.
7912
79132002-07-26  Jim Meyering  <meyering@lucent.com>
7914
7915	* commit.c (find_fileproc): When committing in client mode,
7916	arrange to fail if a `cvs add'ed file no longer exists in the
7917	working directory.
7918	* sanity.sh (commit-add-missing): New test for above.
7919
79202002-07-25  Larry Jones  <lawrence.jones@eds.com>
7921
7922	* sanity.sh: Set $TMPDIR if it's not already set and use it rather
7923	than /tmp for the expected server temp directory path.
7924
79252002-07-09  Larry Jones  <lawrence.jones@eds.com>
7926
7927	* vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
7928	struct_tm copying.
7929
7930	* lock.c (lock_wait, lock_obtained): Display time in UTC if possible
7931	to reduce confusion in client/server mode.
7932	(Original patch from Eduardo Perez Ureta <eperez@it.uc3m.es>.)
7933
79342002-06-26  Larry Jones  <lawrence.jones@eds.com>
7935
7936	* tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
7937	is also a valid status.
7938	(Reported by David Everly <David.Everly@wcom.com>.)
7939	* sanity.sh (tagc): New tests for above.
7940
79412002-06-18  Larry Jones  <lawrence.jones@eds.com>
7942
7943	* update.c (patch_file): Don't patch if diff bigger than file.
7944	Don't bother adjusting the permission on the diff output if
7945	we're not going to use it.
7946
7947
79482002-06-18  Derek Price  <oberon@umich.edu>
7949
7950	* server.c: Handle HPUX password expiration fields in the passwd
7951	string in case we are set up on a server with NIS passwords served
7952	from HPUX.
7953	(Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
7954
79552002-06-17  Larry Jones  <lawrence.jones@eds.com>
7956	    and Jonathan Kamens  <jik@kamens.brookline.ma.us>
7957
7958	* commit.c (commit_fileproc, commit_direntproc): Don't try to call
7959	an editor to get the log message if running as a server.  Instead,
7960	just use an empty log message.
7961	* import.c (import): Ditto.
7962
7963	* import.c (import): In client mode, always send a message to the
7964	server, even if it's empty (this parallels a change made by Larry
7965	Jones to commit.c on May 7).
7966
79672002-05-31  Larry Jones  <lawrence.jones@eds.com>
7968
7969	* rcs.c: Conditionally define MAP_FAILED for old systems that don't
7970	have it in <mman.h>.
7971	(Reported by jeremy brand <jeremy@earth.care2.com>.)
7972
79732002-05-24  Larry Jones  <lawrence.jones@eds.com>
7974
7975	* rcscmds.c (diff_exec): Add a -- before the first file name just
7976	in case it looks like an option.
7977	(Reported by Zooko <zooko@zooko.com>.)
7978
7979	* rcscmds.c (diff_execv): Remove -- same as diff_exec.  Change
7980	only caller.
7981	* cvs.h: Ditto.
7982
79832002-05-23  Larry Jones  <lawrence.jones@eds.com>
7984
7985	* cvs.h (strcat_filename_onto_homedir): Make arguments const.
7986	* filesubr.c (strcat_filename_onto_homedir): Make arguments const,
7987	move more code here from callers, change all callers.
7988
79892002-05-22  Derek Price  <oberon@umich.edu>
7990
7991	* cvs.h: Add prototype for this...
7992	* filesubr.c (strcat_filename_onto_homedir): new function.
7993	* login.c (): Use new function.
7994
7995	* cvsrc.c (read_cvsrc): Use new function due to problems on VMS.
7996	* ignore.c (ign_setup): Ditto.
7997	* wrapper.c (wrap_setup): Ditto.
7998	(Original patch from Karsten Spang <ksp@dannet.dk>.)
7999
80002002-05-21  Larry Jones  <lawrence.jones@eds.com>
8001
8002	* rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
8003	and add a similar assertion for ptrend.
8004	(Reported by Rebecca Young <raygirl@cvshome.org>.)
8005	(rcsbuf_fill): Remove redundant code.
8006
80072002-05-20  Derek Price  <oberon@umich.edu>
8008
8009	* buffer.h: New prototype for...
8010	* buffer.c (stdio_buffer_get_file): this new function to abstract
8011	access to a buffer's file descriptor.
8012	* client.c (auth_server): Use the new function.
8013	(Original patch from Jonathan Kamens <jik@kamens.brookline.ma.us>.)
8014
80152002-05-20  Derek Price  <oberon@umich.edu>
8016
8017	* main.c (main): Add 2002 to the copyright years output with the
8018	version string.
8019
80202002-05-15  Larry Jones  <lawrence.jones@eds.com>
8021
8022	* log.c (log_parse_list): Fix off-by-one error which caused
8023	incorrect handling of 'cvs log -wuser1,user2 foo.c' command.
8024	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>,
8025	reported by Alex Morozov <morozov@novosoft.ru>.)
8026
80272002-05-09  Larry Jones  <lawrence.jones@eds.com>
8028
8029	* login.c (password_entry_operation): Get cvsroot_canonical before
8030	trying to read the user's password file so we have it even if the
8031	file doesn't exist.
8032	(Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
8033
80342002-05-08  Derek Price  <oberon@umich.edu>
8035
8036	* Makefile.am (cvs_SOURCES): Add options.h explicitly - since we
8037	stopped generating it dynamically, Automake stopped noticing it and
8038	including it in dists.  See TODO item #214 for notes.
8039
80402002-05-08  Derek Price  <oberon@umich.edu>
8041
8042	* cvs.h: Use the HAVE_CONFIG_H define.
8043
80442002-05-07  Larry Jones  <lawrence.jones@eds.com>
8045
8046	* filesubr.c (isaccessible): Set errno before returning failure
8047	in the SETXID_SUPPORT code.
8048
8049	* logmsg (do_verify): Avoid even more work if there's no verifymsg
8050	script to run.
8051
8052	* logmsg: Use fputs/putc rather than fprintf where appropriate.
8053	(do_verify): Run the verifymsg script even if there's no log
8054	message.  (Reported by Andy Baker <Andy.Baker2@t-mobile.co.uk>.)
8055	Don't reread the log message unless a verifymsg script was run.
8056
8057	* commit.c (commit): Always send -m to the server, even if there's
8058	no message.
8059
8060	* create_adm.c (Create_Admin): Add dotemplate parameter to trace.
8061	Remove unreachable code.
8062
80632002-05-03  Larry Jones  <lawrence.jones@eds.com>
8064
8065	* server.c (serve_watch_on, serve_watch_off, serve_watch_add,
8066	 serve_watch_remove): Just pass "watch" as the command name
8067	 to do_cvs_command to avoid unknown command errors.
8068	 (Reported by Gary Hennigan <gary@ieee.org>.)
8069
8070	* rcs.c (RCS_checkin): Fix bad call to error () in buggy
8071	PRESERVE_PERMISSIONS code.
8072	(rcs_internal_unlockfile): Include current value of errno in error
8073	message even though it may well be irrelevant (it's still better
8074	than nothing).
8075
80762002-05-02  Derek Price  <oberon@umich.edu>
8077
8078	* .cvsignore: Remove lines for files obsoleted by new autotools.
8079
80802002-05-02  Derek Price  <oberon@umich.edu>
8081
8082	* stamp-h2.in: Remove this uneeded file.
8083
80842002-05-01  Derek Price  <oberon@umich.edu>
8085
8086	* options.h.in: Move to...
8087	* options.h: here.
8088
80892002-04-30  Derek Price  <oberon@umich.edu>
8090
8091	* version.h.in: Remove this file.
8092	* version.h: Ditto.
8093
8094	* Makefile.am: Remove references to version.h.
8095	* cvs.h: Use <> rather than "" around the config.h #include.  I didn't
8096	quite bother to understand why, but autoconf recommends it.
8097	* cvsbug.in: Use PACKAGE_BUGREPORT defined by configure for the bug
8098	report email address.
8099	* version.c (version): Use PACKAGE_STRING defined in config.h instead
8100	of the version_string that used to be defined in version.h.
8101
8102	* Makefile.in: Regenerated with automake 1.6.
8103
81042002-04-28  Derek Price  <oberon@umich.edu>
8105
8106	* cvs.h: Use `"'s around includes when we mean a local file.
8107
81082002-04-28  Derek Price  <oberon@umich.edu>
8109
8110	* cvs.h: #define new names for functions and variables when they
8111	might conflict with system definitions (namely on Mac OS X 10.1 with
8112	the most recent dev packages - This should be removable after the Mac
8113	dev packages are fixed.).
8114
81152002-04-26  Larry Jones  <larry.jones@sdrc.com>
8116
8117	* logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
8118	(Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
8119
81202002-04-19  Larry Jones  <larry.jones@sdrc.com>
8121
8122	* log.c (log_expand_revlist): First cut at code to allow logging
8123	between a revision and *any* ancestor, not just one explicitly on
8124	the same branch (e.g., from 1.1 to 4.1.2.3.6.1).
8125
8126	* subr.c (gca): Simplify and optimize.
8127
81282002-04-19  Jim Meyering  <meyering@lucent.com>
8129	and Ed Santiago <easm@lucent.com>
8130
8131	* classify.c (Classify_File): Fix it so that `cvs update -p -r...'
8132	works, even under some slightly unusual (though perfectly legitimate)
8133	circumstances.
8134	* sanity.sh (update-p): New tests for this.
8135
81362002-04-18  Derek Price  <oberon@umich.edu>
8137
8138	* sanity.sh: Move test for regex metacharacters in username until
8139	after we're sure we found the version of expr that we're going to use.
8140
81412002-04-18  Larry Jones  <larry.jones@sdrc.com>
8142
8143	* admin.c (admin_fileproc): Allow admin to be used on RCS files with
8144	no local version (e.g., removed files) like most other subcommands.
8145
8146	* wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
8147
81482002-04-18  Derek Price  <oberon@umich.edu>
8149
8150	* version.h: Regenerated for 1.11.2.1 version update.
8151
81522002-04-17  Derek Price  <oberon@umich.edu>
8153
8154	* version.h: Regenerated for 1.11.2.
8155
81562002-04-03  Derek Price  <oberon@umich.edu>
8157
8158	* stamp-h2.in: Regenerate with recent version of Autoconf.
8159
81602002-04-03  Derek Price  <oberon@umich.edu>
8161
8162	* sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
8163	to /dev/null to avoid spurious output on some operating systems
8164	(notably Mac OS X).
8165
81662002-03-22  Larry Jones  <larry.jones@sdrc.com>
8167
8168	* sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
8169	of cvs.
8170
81712002-03-21  Derek Price  <oberon@umich.edu>
8172
8173	* vers_ts.c (time_stamp): Return the timestamp for the newer of the
8174	link and the link's source when the file is a link.
8175	(Patch from RedHat cvs-1.11.1p1-7 SRPM.)
8176
8177	* sanity.sh (rcslib): Test for same.
8178
81792002-03-17  Larry Jones  <larry.jones@sdrc.com>
8180
8181	* log.c (cvslog, log_fileproc): Add -S option to suppress head or
8182	file name if no revisions selected.
8183	* sanity.sh (log): New tests for above.
8184
81852002-03-13  Derek Price  <oberon@umich.edu>
8186
8187	* main.c (usg): Correct a spelling mistake in a comment.
8188	(Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
8189
81902002-03-09  Larry Jones  <larry.jones@sdrc.com>
8191
8192	* import.c (import): Change the suggested merge message to use
8193	rev tags instead of the branch tag with a date.
8194	* sanity.sh (import, importb): Change to match.
8195
8196	* remove.c (remove_fileproc): Disallow removing files with sticky
8197	dates for the same reason we already disallow sticky numeric tags.
8198	* sanity.sh (sticky): New test for above.
8199
82002002-02-27  Larry Jones  <larry.jones@sdrc.com>
8201
8202	* diff.c (diff_fileproc): Treat dead revisions as nonexistent.
8203
82042002-02-26  Larry Jones  <larry.jones@sdrc.com>
8205
8206	* diff.c (diff): Remove -V and --paginate options: they aren't valid.
8207	(diff_usage): Document all the diff options.
8208
82092002-02-13  Larry Jones  <larry.jones@sdrc.com>
8210
8211	* rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
8212	else does and I don't see any documentation that says it should).
8213	(translate_symtag): Break out of loop at end of symbols to prevent
8214	looping forever when tag is "".
8215	(Reported by Alain ENOUT <aln00@udcast.com>
8216	via Eric Gillespie <epg@pretzelnet.org>.)
8217
82182002-02-11  Larry Jones  <larry.jones@sdrc.com>
8219
8220	* server.c (server_cleanup): Set buf_to_net back to blocking mode
8221	and flush it (in case there are any error messages pending) before
8222	shutting down buf_from_net and again right before shutting it down.
8223
82242002-02-08  Larry Jones  <larry.jones@sdrc.com>
8225
8226	* main.c (lookup_command_attribute): Throw a fatal error if the
8227	command is not found.
8228	* server.c (server_tag): Use the correct command name.
8229
82302002-01-30  Larry Jones  <larry.jones@sdrc.com>
8231
8232	* error.h (error_exit): Remove unintended prototype.
8233
8234	* server.c (serve_root): Remove check for impossible condition.
8235	(serve_init): Save and restore current_parsed_root.
8236
82372002-01-29  Larry Jones  <larry.jones@sdrc.com>
8238
8239	* error.h (error_exit): Declare __noreturn__ to avoid spurious
8240	warnings.
8241
8242	* server.c (serve_root): If the specified root doesn't match the
8243	pserver root, return before changing current_parsed_root to prevent
8244	subsequent commands from accessing an unchecked root directory.
8245	(server_init): Check specified root against the pserver root and
8246	complain if they don't match.  Also, if there are pending errors,
8247	print them and return before changing current_parsed_root to prevent
8248	subsequent commands from accessing an unchecked root directory.
8249	* sanity.sh (pserver): New tests for above.
8250
82512002-01-10  Larry Jones  <larry.jones@sdrc.com>
8252
8253	* log.c (log_version_requested): Change :: in revision spec to be
8254	exclusive just on the low end (so -r tag1::tag2 gives revisions
8255	after tag1 but up to and including tag2), which is much more useful
8256	than the previous (exclusive at both ends) behavior.
8257	(log_usage): Update to match.
8258	* sanity.sh (log): Update to match.
8259
82602002-01-02  Larry Jones  <larry.jones@sdrc.com>
8261
8262	* server.c (LOG_DAEMON): Define if needed.
8263	(Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
8264
8265	* server.c (pserver_authenticate_connection): Add a specific error
8266	message for EOF at protocol start and syslog if available.
8267	* sanity.sh (pserver-bufinit): Update to match.
8268
82692001-12-10  Larry Jones  <larry.jones@sdrc.com>
8270
8271	* log.c (log_usage): Note that -r and -d take lists, not just a
8272	single specification.
8273	(log_expand_revlist): Don't dereference null pointers when one end
8274	of a revision range is a non-existent tag.
8275
82762001-12-03  Larry Jones  <larry.jones@sdrc.com>
8277
8278	* annotate.c (annotate, annotate_fileproc): Don't annotate binary
8279	files unless new -F option given.
8280	* sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
8281	to match.
8282
82832001-11-30  Larry Jones  <larry.jones@sdrc.com>
8284
8285	* admin.c (admin): Allow unrestricted usage of -q in addition to -k.
8286
82872001-10-25  Larry Jones  <larry.jones@sdrc.com>
8288
8289	* log.c (log_expand_revlist): Make erroneous or inconsistent revision
8290	specs select no revisions rather than all revisions.
8291
82922001-10-23  Larry Jones  <larry.jones@sdrc.com>
8293
8294	* import.c (add_rcs_file): Don't put an expand entry into the file
8295	for the default expansion mode (kv).
8296	* wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
8297	with default expansion mode since they may be needed to avoid matching
8298	a more general entry later.
8299	(wrap_add): Set rcsOption to NULL for default (kv).
8300	(wrap_add_entry): Use structure assignment to copy entries rather
8301	that copying members by hand.
8302	* sanity.sh (binwrap3): Revise to test wrapper entries that don't
8303	specify any non-default options but just prevent matching later,
8304	more general entries.
8305
83062001-10-02  Larry Jones  <larry.jones@sdrc.com>
8307
8308	* rcs.c (RCS_fully_parse): Add revision number to more error messages.
8309
83102001-09-27  Larry Jones  <larry.jones@sdrc.com>
8311
8312	* rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
8313	number to the "mismatch" error message.
8314
8315	* sanity.sh (multiroot2-9a): Update to match changes to lock.c.
8316
83172001-09-26  Larry Jones  <larry.jones@sdrc.com>
8318
8319	* lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
8320
83212001-09-24  Derek Price  <dprice@collab.net>
8322
8323        * find_names.c (add_entries_proc): Leave closure specified as such in the
8324	function definition for clarity.
8325
8326        * find_names.c (Find_Names): Use 'closure' feature of walklist()
8327        to eliminate the static variable.
8328	(add_entries_proc): Expect closure to be the file list.
8329	(Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
8330
83312001-09-19  Derek Price  <dprice@collab.net>
8332
8333	* rcs.c (rcsbuf_valpolish_internal): Restore one of the
8334	"if ( ... ) abort();" sequences since it seems to check the validity of
8335	the RCS file rather than for a programming error.  Also added a FIXME
8336	comment to the effect that we should explain the RCS file error to the
8337	user as such if it is such.
8338	(Thanks to Larry Jones  <scjones@sdrc.com>.)
8339
83402001-09-19  Derek Price  <dprice@collab.net>
8341
8342	* rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
8343	of the form "if ( ... ) abort();" with equivalent calls to assert().
8344
83452001-09-17  Derek Price  <dprice@collab.net>
8346
8347	* myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
8348	messages more informative.
8349	* sanity.sh (modules6): New test.
8350	(Original report from Taska <taska@collab.net> and others.)
8351
83522001-09-14  Derek Price  <dprice@collab.net>
8353
8354	* logmsg.c (do_verify): Dispose memory when finished with it.
8355
83562001-09-07  Larry Jones  <larry.jones@sdrc.com>
8357
8358	* mkmodules.c (notify_contents): In the example, move the %s to
8359	the end since many, if not most, versions of mail insist on
8360	options coming before addresses.
8361
83622001-09-06  Derek Price  <dprice@collab.net>
8363
8364	* login.c (login): Deal with NULL return value from getpass.
8365
83662001-09-04  Derek Price  <dprice@collab.net>
8367
8368	* Makefile.in: Regenerated with automake 1.5.
8369	* stamp-h2.in: Ditto.
8370
83712001-09-04  Derek Price  <dprice@collab.net>
8372
8373	* main.c (main): Fix empty CVSROOT message to specify `valid' instead
8374	of `legal'.
8375
83762001-09-04  Derek Price  <dprice@collab.net>
8377
8378	* server.c (pserver_authenticate_connection): Back out changes from the
8379	30th and...
8380	* getline.c (getstr): init the buffer instead.
8381
83822001-08-31  Derek Price  <dprice@collab.net>
8383
8384	* Makefile.in: Backed out accidental commit from yesterday.
8385
83862001-08-30  Derek Price  <dprice@collab.net>
8387
8388	* server.c (pserver_authenticate_connection): Don't print from the
8389	NULL pointer in the error message string in the case where the client
8390	didn't send any data.
8391	* sanity.sh (pserver): Test for this case.
8392	(Report from Mark Welch <mark@collab.net>).
8393
83942001-08-24  Derek Price  <dprice@collab.net>
8395
8396	* logmsg.c (do_editor): Add comment and assertion.
8397	* import.c (import): Don't call do_editor with a repository argument
8398	in client mode.
8399	(Report and original patch from darkness <darkness@invado.com>.)
8400
84012001-08-24  Larry Jones  <larry.jones@sdrc.com>
8402
8403	* log.c (log_expand_revlist): Arrange for nil revision specs to
8404	select nothing instead of everything.
8405	* sanity.sh (log): New tests for above.
8406
84072001-08-24  Derek Price  <dprice@collab.net>
8408
8409	* parseinfo.c (Parse_Info): Change the function name in the trace
8410	and add the client/server string.
8411
84122001-08-24  Derek Price  <dprice@collab.net>
8413
8414	* Implement RereadLogAfterVerify CVSROOT/config option to control
8415	FreeBSD read-write of log messages in the verification script.
8416	* logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
8417	to preserve the status quo.
8418	* parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
8419	option. Possible values are: no | never | yes | always | stat
8420	* cvs.h: Add extern for RereadLogAfterVerify and new value macros
8421	LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
8422	its values.
8423	(Patch from Mark D. Baushke  <mdb@cvshome.org>.)
8424
8425	* Apply changes from FreeBSD cvs sources to implement a read-write
8426	user-defined verification script.
8427	* logmsg.c (do_verify): Update do_verify to expect a pointer
8428	to the saved message. The log file passed to the verifymsg_script
8429	should be re-read after the user-defined verification script has
8430	been run. The user-defined verification script is allowed to
8431	modify the message.  This allows the script to add extra
8432	information to the log message or to remove template lines that
8433	are not needed.
8434	* cvs.h: Update prototype for do_verify prototype to expect a
8435	pointer to the saved_message.
8436	* commit.c (commit, commit_fileproc, commit_direntproc): Update
8437	calls to do_verify as the saved_message arg is now read-write.
8438	* import.c (import):  Update calls to do_verify as the
8439	saved_message arg is now read-write.
8440	* sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
8441	and add a new info-v4 test case have the verification script
8442	modify the log message to test the above changes.
8443	(Patch from Mark D. Baushke  <mdb@cvshome.org>.)
8444
8445	* logmsg.c: Change RereadLogAfterVerify default to always.
8446	(do_verify): Reformat and make minor fixes to Mark's patch.
8447	* mkmodules.c (config_constants): Add comment about
8448	RereadLogAfterVerify.
8449	* sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
8450	reformat them a bit.
8451
84522001-08-23  Derek Price  <dprice@collab.net>
8453
8454	* sanity.sh (info): Demonstrate that the verifymsg scripts can
8455	sometimes, but not always, retreive information on which directory is
8456	being committed to.
8457
84582001-08-22  Derek Price  <dprice@collab.net>
8459
8460	* logmsg.c: Back out the last change - the repository which is passed
8461	in is actually the directory and changes with each call to do_verify.
8462	If a verifymsg script is using `pwd`, this could change the operation.
8463	* cvs.h: Ditto.
8464	* commit.c: Ditto.
8465	* import.c: Ditto.
8466
84672001-08-22  Derek Price  <dprice@collab.net>
8468
8469	* logmsg.c (do_editor): Return reused_message.
8470	(do_verify): Don't verify the same log message more than once.
8471	* cvs.h: Update prototypes for do_verify and do_editor.
8472	* commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
8473	* import.c (import): Ditto.
8474
84752001-08-22  Derek Price  <dprice@collab.net>
8476
8477	* logmsg.c (do_verify): Remove an unecessary "else" clause following an
8478	exit and unindent the former contents.
8479
84802001-08-22  Derek Price  <dprice@collab.net>
8481
8482	* commit.c (commit): Don't call do_verify in client mode since we know
8483	do_verify will just return anyhow.
8484
84852001-08-20  Derek Price  <dprice@collab.net>
8486
8487	* Makefile.am (cvs_SOURCES): Add version.c and version.h.
8488	(BUILT_SOURCES): Add version.h.
8489	(Maintainer Targets): Remove version.h.
8490	* version.c: Remove @VERSION@ dependant bits.
8491	* version.c.in: Removed.
8492	* version.h.in: New file.
8493	(Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
8494
8495	* Makefile.am: Various modifications to make Automake, make dist, and
8496	windows targets work like they are supposed to.
8497	* version.h: New (generated) file.
8498
8499	* Makefile.in: Regenerated.
8500
85012001-08-09  Derek Price  <dprice@collab.net>
8502
8503	* client.c (socket_buffer_shutdown): Use recv instead of read and
8504	return 0 on success.
8505	(Patch from "Manfred Klug" <manklu@web.de>.)
8506
85072001-08-09  Derek Price  <dprice@collab.net>
8508
8509	* buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
8510	when NO_SOCKET_TO_FD is defined.
8511	* client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
8512	call and reference to S_ISSOCK since these functions aren't available
8513	under Windows.
8514	(connect_to_forked_server, connect_to_pserver, start_tcp_server,
8515	start_server, start_rsh_server): Use new argument.
8516	(Patch from "Manfred Klug" <manklu@web.de>.)
8517
8518	* buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
8519	where rsh pipes weren't being closed.
8520
85212001-08-09  Derek Price  <dprice@collab.net>
8522
8523	* sanity.sh (rmadd, rm-update-message, join-two-branch,
8524	ignore-on-branch): Change a few references to `cvs' to `$PROG'.
8525
85262001-08-07  Derek Price  <dprice@collab.net>
8527
8528	* build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
8529	* patch.c: VMS time_t appears to be unsigned.   Add a cast when testing
8530	for (time_t)-1.
8531	* subr.c: #else,#endif for no symlinks should be moved.
8532	(Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
8533
85342001-08-06  Derek Price  <dprice@collab.net>
8535
8536	* Makefile.in: Regenerated.
8537
85382001-08-01  Derek Price  <dprice@collab.net>
8539
8540	* diff.c (diff): Send long option for side-by-side diffs to the server
8541	rather than '-y', for backwards compatibility with old servers.
8542	(Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
8543
85442001-07-19  Larry Jones  <larry.jones@sdrc.com>
8545
8546	* mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
8547	disabled in wrapper.c.
8548
8549	* checkout.c (checkout): Don't complain about checking out into the
8550	repository when piping output.
8551	(Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
8552	* sanity.sh (checkout_repository): New tests for above.
8553
85542001-07-10  Larry Jones  <larry.jones@sdrc.com>
8555
8556	* sanity.sh (importc-7): Now works correctly in local mode.
8557
8558	* commit.c (commit_dirleaveproc): We're still in the directory when
8559	this is called, so the first argument to Name_Repository needs to
8560	be NULL, not dir.
8561	* sanity.sh (rmadd): New tests for above.
8562
8563	* commit.c (commit): Reword error messages for committing as root.
8564
85652001-07-08  Larry Jones  <larry.jones@sdrc.com>
8566
8567	* rcs.c (RCS_checkout): Correct scanf format to allow for trailing
8568	NUL terminator.
8569	* update.c (special_file_mismatch): Ditto.
8570	(Reported by Pekka Savola <pekkas@netcore.fi>.)
8571
85722001-07-05  Larry Jones  <larry.jones@sdrc.com>
8573
8574	* client.c, root.c: Fix -Wall warnings.
8575
8576	* buffer.c: #include socket header to declare shutdown().
8577
8578	* rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
8579	portability.
8580	(RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
8581
85822001-07-04  Derek Price  <dprice@collab.net>
8583
8584	* Makefile.in: Regenerated with new Automake release candidate 1.4h.
8585
85862001-07-03  Derek Price  <dprice@collab.net>
8587
8588	* rcs.c (rcsbuf_open): Reduce memory consumption still further by not
8589	mmapping the entire file when pos is specified.
8590	(rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
8591	caching.
8592
85932001-07-03  Derek Price  <dprice@collab.net>
8594
8595	* rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
8596	consumption, especially with large (e.g. binary) files.
8597	(rcsbuf_close): Call munmap.
8598	(rcsbuf_getkey): Remove the buffer fill code when using mmap.
8599	(rcsbuf_getrevnum): Ditto.
8600	(rcsbuf_fill): Remove this function when using mmap.
8601	(rcsbuf_cache_open): Mostly don't use this function with mmap.
8602	(RCS_copydeltas): Don't depend on the file pointer with mmap.
8603
8604	* stamp-h2.in: Regenerated.
8605
86062001-07-03  Derek Price  <dprice@collab.net>
8607
8608	* update.c: Indent compiler directives.
8609
86102001-07-02  Larry Jones  <larry.jones@sdrc.com>
8611
8612	* import.c (update_rcs_file): Use -kb instead of -ko when comparing
8613	binary files.
8614	(Reported by Gyula Faller <gfaller@graphisoft.hu>.)
8615
86162001-06-28  Larry Jones  <larry.jones@sdrc.com>
8617
8618	* checkout.c (checkout): Explicitly initialize all the static options
8619	so that multiple calls work right.  Also fix potential memory leaks.
8620	(Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
8621
86222001-06-28  Derek Price  <dprice@collab.net>
8623
8624	* Makefile.in: Regenerated with new version of Automake.
8625
86262001-06-28  Larry Jones  <larry.jones@sdrc.com>
8627
8628	* checkout.c (checkout): Set history_name for export as well as
8629	checkout.
8630	(checkout_proc): Use it.
8631
8632	* checkout.c (safe_location): Add missing argument in error message.
8633
86342001-06-26  Larry Jones  <larry.jones@sdrc.com>
8635
8636	* recurse.c (start_recursion): Use strip_trailing_slashes instead
8637	of doing it by hand.
8638
8639	* server.c (pserver_authenticate_connection): Don't clear out
8640	descrambled_password until *after* it's (potentially) logged.
8641	(Reported by Eric Hanchrow <offby1@blarg.net>.)
8642
86432001-06-25  Larry Jones  <larry.jones@sdrc.com>
8644
8645	* recurse.c (start_recursion): Deal with at least some of the cases
8646	where trailing slashes cause confusion.
8647	(Reported by Malcolm Fernandes <fernande@redback.com>.)
8648	* sanity.sh (basica, basicb): Tweak existing tests to check this.
8649
86502001-06-22  Larry Jones  <larry.jones@sdrc.com>
8651
8652	* sanity.sh (modules5): New tests with -d on command line.
8653
86542001-06-21  Larry Jones  <larry.jones@sdrc.com>
8655
8656	* modules.c (do_module): Use run_module_prog and server_active to
8657	determine when to call server_prog instead of using server_expanding
8658	so that we get the right paths in the replies as long as we take
8659	mwhere into account in addition to where.
8660	(Reported by Pascal Bourguignon <pjb@informatimago.com>.)
8661	* server.c (server_prog): Use protocol pipe instead of buf_to_net.
8662	* sanity.sh (modules5): Remove FIXCVS comment and update to match.
8663	* server.c, server.h: Remove server_expanding since now unused.
8664
86652001-06-21  Larry Jones  <larry.jones@sdrc.com>
8666        for Stephen Rasku  <stephen@tgivan.com>
8667
8668	* admin.c: Corrected spelling mistakes in help.
8669
86702001-06-20  Derek Price  <dprice@collab.net>
8671
8672	* client.c (socket_buffer_shutdown): Fix untested typos.
8673	(Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
8674
8675	* buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
8676	the correct place.
8677
86782001-06-20  Derek Price  <dprice@collab.net>
8679
8680	* logmsg.c (do_editor): Abort in the case that the file has only
8681	comment lines.
8682	(Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
8683
8684	* logmsg.c (do_editor): Fix rare memory leak.
8685	* sanity.sh (editor): Add tests for aborted log messages.
8686
86872001-06-20  Larry Jones  <larry.jones@sdrc.com>
8688
8689	* server.c (switch_to_user): Only set $CVS_USER if
8690	AUTH_SERVER_SUPPORT is defined.
8691	(Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
8692
86932001-06-13  Derek Price  <dprice@collab.net>
8694
8695        * client.c: Fix incorrect fixed-size buffer usage in
8696        connect_to_gserver().
8697	(Minor changes to a patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
8698
86992001-06-11  Derek Price  <dprice@collab.net>
8700
8701	* main.c (main): Always print $CVSROOT when parse_cvsroot fails.
8702	* root.c (parse_cvsroot): Tidy error messages and provide more
8703	consistent behavior.
8704	* sanity.sh (crerepos): Adapt to new error messages.
8705	(Suggested by  Alexey Mahotkin <alexm@hsys.msk.ru>.)
8706
87072001-06-08  Derek Price  <dprice@collab.net>
8708
8709	* sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
8710
87112001-06-07  Larry Jones  <larry.jones@sdrc.com>
8712
8713	* rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
8714	should never break locks, you have to specify a specific revision
8715	to do that.  Also add an informative message for a bare -u when
8716	the user doesn't hold any locks.
8717	* commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
8718	* sanity.sh (rmadd-24): Update to match.
8719
8720	* sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
8721	dotest_fail.  Allow for "broken pipe" rather than "end of file".
8722
87232001-06-07  Derek Price  <dprice@collab.net>
8724
8725	* sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
8726	/tmp/cvs-sanity/cvsroot.
8727
87282001-06-06  Derek Price  <dprice@collab.net>
8729
8730	(Reformatting, bug fixes, tests, and comments to a
8731	patch from Stephen Cameron <steve.cameron@compaq.com>.)
8732
8733	* tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
8734	  Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
8735	  and "cvs rtag -d" so that they will not disturb existing
8736	  branch tags unless a new "-B" option is given.
8737	* sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
8738	  to "cvs tag" and "cvs rtag"
8739
87402001-06-06  Derek Price  <dprice@collab.net>
8741
8742	* sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
8743	test call at Larry's suggestion.  Also, test the error message since
8744	it's fixed now.
8745
87462001-06-05  Larry Jones  <larry.jones@sdrc.com>
8747
8748	* rcs.c (RCS_unlock): Note when breaking someone else's lock.
8749	(Reported by MURVAI-BUZOGANY Laszlo
8750	<Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
8751	* sanity.sh (reserved-14): Update to match.
8752
87532001-06-05  Derek Price  <dprice@collab.net>
8754
8755	* sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false...  this is a local
8756	mode only test anyhow.
8757	(Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
8758
87592001-05-31  Derek Price  <dprice@collab.net>
8760
8761	* sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
8762	in the hopes that the data will eventually prove useful to someone
8763	motivated enough to fix the problem.
8764
87652001-05-30  Derek Price  <dprice@collab.net>
8766
8767	* stamp-h2.in: Regenerated.
8768
87692001-05-30  Derek Price  <dprice@collab.net>
8770
8771	* *: Various bug fixes and comments for the following
8772	patch from Donald Sharp <sharpd@cisco.com>:
8773
8774	* checkout.c (safe_location): cvs co -d <directory> still had
8775	failure modes from the way the -d option works.
8776	* sanity.sh: Misc error message resynching.
8777
87782001-05-29  Derek Price  <dprice@collab.net>
8779
8780	* Makefile.am (cvs_SOURCES): Add root.h.
8781
8782	* Makefile.in: Regenerated.
8783	* stamp-h2.in: Regenerated.
8784
87852001-05-29  Derek Price  <dprice@collab.net>
8786
8787	* checkout.c (safe_location): Correct formatting.
8788
87892001-05-29  Derek Price  <dprice@collab.net>
8790
8791	* root.c (parse_cvsroot): Fix a comment.
8792
87932001-05-26  Larry Jones  <larry.jones@sdrc.com>
8794
8795	* checkout.c (safe_location): Use old-style definition to keep
8796	non-ANSI compilers happy.
8797
8798	* sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
8799	of /tmp/cvs-sanity/cvsroot.
8800
88012001-05-25  Larry Jones  <larry.jones@sdrc.com>
8802
8803	* sanity.sh (modules5): Add sleep to script to help avoid out of
8804	order messages.
8805
8806	* filesubr.c (mkdir_if_needed): Return 1 if the directory exists
8807	reguardless of what errno is set to.
8808	(Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
8809
88102001-05-25  Derek Price  <dprice@collab.net>
8811	for Donald Sharp  <sharpd@cisco.com>
8812
8813	* checkout.c:  Modified safe_location() to refuse checkout if
8814	the -d option to co specifies inside of the repository.
8815	* import.c:  New parameter to safe_location needed to be added.
8816	* cvs.h:  New parameter to safe_location needed to be added.
8817	* sanity.sh:  Test case to test for failure mode.
8818
88192001-05-23  Larry Jones  <larry.jones@sdrc.com>
8820
8821	* checkout.c (checkout_proc): Don't build top_level_admin directory
8822	when exporting.
8823	(Reported by Tony Byrne <tonyb@directski.com>.)
8824
88252001-05-21  Derek Price  <dprice@collab.net>
8826
8827	* client.c: Fix a mispelling in a comment.
8828	(Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
8829
88302001-05-05  Larry Jones  <larry.jones@sdrc.com>
8831
8832	* login.c (password_entry_operation): Only warn if unable to open
8833	.cvspass for reading: may be initial login and it doesn't exist yet.
8834
88352001-05-15  Derek Price  <dprice@collab.net>
8836
8837	* client.c (start_tcp_server): Use the struct sockaddr_in declared in
8838	the function.
8839	(Reported by Emil Isberg <isberg@dynarc.se>.)
8840
88412001-05-05  Larry Jones  <larry.jones@sdrc.com>
8842
8843	* annotate.c (annotate): Pass local to do_module and rannotate_proc
8844	so that -l actually works.
8845	* log.c (cvslog): Ditto.
8846	* patch.c (patch): Ditto; make local local instead of global.
8847	(patch_proc): Use local_specified parameter instead of global.
8848	* tag.c (cvstag, rtag_proc): Ditto.
8849
88502001-05-05  Larry Jones  <larry.jones@sdrc.com>
8851
8852	* client.h: Declare "struct buffer" outside prototype for __STDC__
8853	compilers.
8854
88552001-05-04  Derek Price  <dprice@collab.net>
8856
8857	* client.c:  General refactoring.  Removed several global variables in
8858	favor of passing locals and/or dynamic evaluation.
8859	(recv_line): Removed this function.
8860	(make_bufs_from_fds): New function with factored code.
8861	(connect_to_forked_server): New prototype.  Use new functions.
8862	(connect_to_pserver): New prototype.  Use new functions.
8863	(connect_to_gserver): New prototype.  Use new API.
8864	(auth_server): Factored this portion of the pserver code so it can be
8865	shared.  Rewrote to use buffers rather than depending on a socket.
8866	(start_rsh_server): New prototype.  Use new API.
8867	(start_tcp_server): New prototype.  Use new API.
8868	(start_server): Factor some code.  Use new API.
8869	* client.h: New prototypes.
8870	* cvs.h: Gratuitous reformatting.  Use new root.h.
8871	* login.c (login): Use new connect_to_pserver API.
8872	* root.h: New file.  Contains some code that used to be in cvs.h.
8873
88742001-05-04  Derek Price  <dprice@collab.net>
8875
8876	* client.c: Gratuitous reformatting.
8877	* client.h: Ditto.
8878
88792001-05-04  Derek Price  <dprice@collab.net>
8880
8881	* zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
8882	prototype.
8883	(compress_buffer_shutdown_output): Ditto.
8884	(Thanks to Pavel Roskin <proski@gnu.org>.)
8885
88862001-05-03  Derek Price  <dprice@collab.net>
8887
8888	* buffer.c (struct stdio_buffer_closure): New structure to hold a
8889	FILE * and the child's PID when necessary.
8890	(stdio_buffer_initialize): Change proto to accept PID.  Set up new
8891	closure.  Pass new stdio_buffer_shutdown to buf_initialize.
8892	(stdio_buffer_input): Use new closure.
8893	(stdio_buffer_output): Ditto.
8894	(stdio_buffer_flush): Ditto.
8895	(stdio_buffer_shutdown): New function.  Teach buffer to close itself.
8896	(packetizing_buffer_shutdown): Use new buffer shutdown proto.
8897	* buffer.h (struct buffer): New buffer shutdown proto.
8898	(stdio_buffer_initialize): New proto.
8899	* client.c (log_buffer_shutdown): Use new proto.
8900	(socket_buffer_initialize): Pass shutdown func.
8901	(socket_buffer_shutdown): New function.
8902	* server.c (get_responses_and_close): Remove most of the guts.  Rely
8903	on the buffer shutdown function from now on.
8904	(start_rsh_server): Return child PID.
8905
89062001-05-03  Larry Jones  <larry.jones@sdrc.com>
8907
8908	* history.c (history_write): Handle the case where the user's home
8909	directory doesn't exist gracefully instead of erroring out.
8910	(Reported by David Hoover <dhoover@cadence.com>.)
8911
89122001-05-03  Derek Price  <dprice@collab.net>
8913
8914	* cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
8915	I wrote in the ChangeLog, oh, so long ago.
8916	* diff.c (diff): Ditto.
8917	* subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
8918
89192001-05-02  Larry Jones  <larry.jones@sdrc.com>
8920
8921	* rcs.c (RCS_getdate): Handle the (unusual!) case where we
8922	can't find any revisions at all.
8923	(Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
8924
89252001-04-30  Larry Jones  <larry.jones@sdrc.com>
8926
8927	* sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
8928	duplicate names; fix to work without SERVER_SUPPORT defined.
8929	(Reported by Pavel Roskin <proski@gnu.org>.)
8930
89312001-04-29  Derek Price  <dprice@collab.net>
8932
8933	* Makefile.am (check-local): Make dependent on localcheck and
8934	remotecheck and move old check target...
8935	(localcheck): here.
8936
8937	* Makefile.in: Regenerated.
8938
89392001-04-27  Larry Jones  <larry.jones@sdrc.com>
8940
8941	* sanity.sh (pserver): Add tests for readers and writers.
8942
89432001-04-27  Derek Price  <dprice@collab.net>
8944
8945	* sanity.sh (version-2r): Update to handle patch releases in version
8946	numbers.
8947
89482001-04-27  Derek Price  <dprice@collab.net>
8949
8950	* version.c: Regenerated.
8951
89522001-04-27  Derek Price  <dprice@collab.net>
8953
8954	* version.c: Regenerated.
8955
89562001-04-27  Larry Jones  <larry.jones@sdrc.com>
8957
8958	* main.c (lookup_command_attribute): Lookup specified command, not
8959	whatever's in the global command_name.
8960
89612001-04-25  Derek Price  <dprice@collab.net>
8962
8963	* Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
8964	* version.c: Regenerated.
8965
89662001-04-22  Larry Jones  <larry.jones@sdrc.com>
8967
8968	* tag.c (tag_check_valid): Make an unwritable val-tags file a
8969	warning instead of a fatal error.
8970
89712001-04-20  Larry Jones  <larry.jones@sdrc.com>
8972
8973	* annotate.c (annotate_usage): -r and -D are not mutually exclusive.
8974	* main.c (cmd_usage): Add missing version subcommand.
8975	* update.c (update_usage): Add missing -C option.
8976
8977	* sanity.sh (death2): New tests for previous change.
8978
8979	* classify.c (Classify_File): Treat a dead revision like the RCS
8980	file doesn't exist.
8981	* sanity.sh: Update to match.
8982
89832001-04-16  Larry Jones  <larry.jones@sdrc.com>
8984
8985	* checkout.c, update.c: Fix usage messages: -r and -D are not
8986	mutually exclusive.
8987	(Suggested by David L. Martin <dlmart2@home.com>.)
8988
8989	* logmsg.c (do_editor): Don't add a blank line to the message.
8990	* sanity.sh (editor-log-file*): Update to match.
8991
8992	* checkout.c, update.c: Note in usage message that -k is sticky.
8993
8994	* server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
8995	(Suggested by Rob Saccoccio <robs@chelsea.net>.)
8996
89972001-04-04  Larry Jones  <larry.jones@sdrc.com>
8998
8999	* sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
9000	dotest_sort): Don't count on $? being set in then or else clauses.
9001
9002	* ignore.c (ignore_files): Collect unignored files into a list and
9003	sort it before calling PROC to avoid order dependencies.  Rewrite
9004	the while loop to allow normal continues instead of goto.
9005
90062001-04-04  Derek Price  <dprice@collab.net>
9007
9008	* sanity.sh (ignore-on-branch-3): Fix in the remote case.
9009
90102001-04-03  Larry Jones  <larry.jones@sdrc.com>
9011
9012	* update.c (update_fileproc): Remove unused variable (resurrecting).
9013
90142001-04-03  Derek Price  <dprice@collab.net>
9015	    Larry Jones  <larry.jones@sdrc.com>
9016	    reported by Jakob B�hm  <JB@Danware.dk>
9017
9018	* update.c (update_fileproc): Don't store a file with T_UNKNOWN status
9019	in ignlist if present in the sandbox.
9020	* sanity.sh (ignore-on-branch): New test.
9021	(ignore): Tidy this test.
9022
90232001-04-02  Derek Price  <dprice@collab.net>
9024
9025	* sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
9026	is used and the user is root.  Fix some quoting in error messages.
9027	(fork): Take `cvs' out of the PATH.
9028	(TODO): Add note about the test suite not working with user names over
9029	eight characters in length.
9030
90312001-04-02  Derek Price  <dprice@collab.net>
9032
9033	* sanity.sh (fork): New test for CVS_SERVER default.
9034	(TODO): Note about eventually removing most of the references to
9035	CVS_SERVER.
9036
90372001-04-02  Larry Jones  <larry.jones@sdrc.com>
9038
9039	* client.c (connect_to_forked_server): Use program_path as the default
9040	server instead of "cvs".
9041
90422001-04-02  Derek Price  <dprice@collab.net>
9043
9044	* sanity.sh: Use less obfuscated English in my comment about sanity
9045	checking sanity.sh.
9046
90472001-04-02  Derek Price  <dprice@collab.net>
9048
9049	* sanity.sh (rm-update-message): Create a test directory again but
9050	change back to the correct directory upon completion this time.
9051
90522001-04-02  Derek Price  <dprice@collab.net>
9053
9054	* sanity.sh: Change last two '[.*]'s to 'test's for
9055	consistency and remove...
9056	(TODO): the note from the TODO list.
9057
90582001-04-02  Derek Price  <dprice@collab.net>
9059
9060	* sanity.sh: Add test for PWD before successful exit.
9061
90622001-03-30  Larry Jones  <larry.jones@sdrc.com>
9063
9064	* sanity.sh (rm-update-message): Remove duplicate code.
9065
90662001-03-30  Derek Price  <dprice@collab.net>
9067
9068	* sanity.sh (rm-update-message): New test for local/client-server
9069	warning message discrepency.
9070
90712001-03-30  Larry Jones  <larry.jones@sdrc.com>
9072
9073	* annotate.c: Move annotate() here from rcs.c, support rannotate.
9074	* Makefile.am, Makefile.in: Add annotate.c.
9075	* main.c (cmds[], cmd_usage[]): Add rannotate.
9076	* rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
9077	* rcs.h:    ... here.
9078	* server.c (serve_rannotate): New.
9079	(requests[]): Add rannotate.
9080	* sanity.sh (ann): New tests for rannotate.
9081
9082	* log.c (rlog_proc): Remove dead code.
9083
90842001-03-30  Derek Price  <dprice@collab.net>
9085
9086	* sanity.sh (join-readonly-conflict): Run more of this through dotest.
9087
90882001-03-30  Larry Jones  <larry.jones@sdrc.com>
9089
9090	* log.c (log_fileproc): Don't output working file for rlog.
9091	* sanity.sh (log): New tests for rlog.
9092
9093	* cvs.h (mtype): Add MISC type.
9094	* log.c (cvslog): Support rlog as well as log.
9095	(rlog_proc): New.
9096	* main.c (cmds[], cmd_usage[]): Add rlog.
9097	(main): Remove old rlog warning message.
9098	* server.c (serve_rlog): New.
9099	(requests[]): Add rlog.
9100
91012001-03-29  Derek Price  <dprice@collab.net>
9102
9103	* sanity.sh: cd to $TESTDIR once after it is normalized.  Make TODO
9104	on history and symlinks more specific.  Tested properly this time.
9105
91062001-03-29  Larry Jones  <larry.jones@sdrc.com>
9107
9108	* main.c (cmds[], lookup_command_attribute, main): Include the
9109	command attributes in the global command table instead of inferring
9110	them from the command names.  Change the sense of the
9111	CVS_CMD_IGNORE_ADMROOT attribute to match its name.
9112
91132001-03-29  Derek Price  <dprice@collab.net>
9114
9115	* sanity.sh (*, basic2-64): Remove references to TMPPWD.  Fix FIXME
9116	at end of script now that $TESTDIR can't be relative.
9117
91182001-03-29  Derek Price  <dprice@collab.net>
9119
9120	* sanity.sh: Normalize TESTDIR even when the user set it.
9121
91222001-03-29  Larry Jones  <larry.jones@sdrc.com>
9123
9124	* client.c (connect_to_pserver, start_tcp_server): Add IP address
9125	to connect failed message.
9126	(connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
9127	trace messages ala start_rsh_server.
9128	(start_rsh_server): Include entire command in trace message for
9129	START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
9130
91312001-03-29  Derek Price  <dprice@collab.net>
9132
9133	* sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
9134	${CVSROOT_DIRNAME} for consistency.
9135
91362001-03-29  Derek Price  <dprice@collab.net>
9137
9138	* sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
9139	for a CVS bug since May 96/97.  Not sure when the bug went bye-bye, but
9140	the tests broke when $TESTDIR != $TMPPWD.
9141
91422001-03-26  Larry Jones  <larry.jones@sdrc.com>
9143
9144	* classify.c (Classify_File): Don't report a conflict for a removed
9145	file when piping.  Also simplify the code structure.
9146	(Reported by Milos Kleint <milos.kleint@netbeans.com>.)
9147	* sanity.sh (rmadd2-14[abc]): New tests for above.
9148
91492001-03-24  Noel Cragg  <noel@shave.cnet.com>
9150
9151	* diff.c: mods to allow `-T' and `-y' options to be passed through
9152	to the diff library.  This wasn't allowed earlier because of a
9153	similarly named options that got passed through to the old rcs
9154	programs.  We've long since stopped sending `-T' to any rcs
9155	utility and have never used `-y'.  Any users of moldly CVS
9156	versions which used to support `-T' have (hopefully) upgraded to
9157	one where that option isn't supported.  It seems reasonable to
9158	enable them again and pass them through.  (sanity.sh still works
9159	anyways...)
9160	(longopts): add short option equivalents for --initial-tab and
9161	--side-by-side.
9162	(diff): add new short options to getopt string and switch
9163	statement.
9164
91652001-03-22  Larry Jones  <larry.jones@sdrc.com>
9166
9167	* sanity.sh: Add check for ${DOTSTAR} with large matches.
9168
91692001-03-23  Derek Price  <dprice@collab.net>
9170
9171	* sanity.sh: Do the same as below for $keep.
9172
91732001-03-23  Derek Price  <dprice@collab.net>
9174
9175	* sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
9176	often 'false' and more often ':' are shell builtins.  This makes the
9177	succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
9178	Alter tests in the rest of the script to match the new usage.  Added
9179	a suffix of 'r' to remote test names when it was appropriate and I
9180	remembered.  Some reformatting.
9181
91822001-03-22  Larry Jones  <larry.jones@sdrc.com>
9183
9184	* sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
9185	output instead of using wildcards to avoid buffer overflows in some
9186	versions of expr.
9187
91882001-03-21  Derek Price  <dprice@collab.net>
9189
9190	* sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
9191	a value inside ${TESTDIR} by the script.
9192
91932001-03-20  Derek Price  <dprice@collab.net>
9194
9195	* sanity.sh (diffmerge1): Minor formatting and syntax changes.
9196
9197	    for Jacob Burckhardt  <bjacob@ca.metsci.com>
9198
9199	* sanity.sh (diffmerge1): More merging behavior tests.  Specifically,
9200	test some cases which broke before in Karl Tomlinson's diff fix was
9201	checked in today.
9202
92032001-03-20  Derek Price  <dprice@collab.net>
9204
9205	* sanity.sh: Don't use unescaped parens in sh outside of quotes.
9206
92072001-03-20  Derek Price  <dprice@collab.net>
9208
9209	* sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
9210
92112001-03-20  Derek Price  <dprice@collab.net>
9212
9213	* sanity.sh: Change usage to match the new getopts format and comment.
9214
92152001-03-16  Derek Price  <dprice@collab.net>
9216
9217	* sanity.sh (modules2-nestedrename): New test.  Verifies behavior of
9218	renames nested under an ampersand module.
9219	(modules2-ampertag): New test.  Verifies an error condition which
9220	prevents some ampersand modules from being checked out when a tag
9221	is specified.
9222
92232001-03-16  Derek Price  <dprice@collab.net>
9224
9225	* sanity.sh (modules2): Additional test for ampersand module behavior
9226	with '-d'.
9227
9228	    for Greg Klanderman  <greg@itasoftware.com>
9229
9230	* checkout.c (build_one_dir): Fix typo where clauses of two
9231	conditionals were reversed in call to Create_Admin.  This caused
9232	the CVS/Tag file to be removed in cases where it should have been
9233	set, and vice-versa.  It only surfaced in rare cases as this code
9234	is only invoked when using the -d option to build the path to
9235	check out in.  Further, the bug would only matter when checking
9236	out a module containing ampersand modules within it, via
9237	client/server CVS.
9238
92392001-03-16  Derek Price  <dprice@collab.net>
9240
9241	* sanity.sh (admin-28-5): Confirm that a missing tag during an
9242	'admin -n' operation is not a fatal error.
9243
92442001-03-16  Derek Price  <dprice@collab.net>
9245
9246	* admin.c (admin_data): Remove 'quiet' member.
9247	(admin_fileproc): Use global 'really_quiet' rather than
9248	admin_data->quiet.
9249
92502001-03-16  Derek Price  <dprice@collab.net>
9251
9252	* sanity.sh (admin): Replace hardcoded testdir path with the variable.
9253
92542001-03-15  Derek Price  <derek.price@openavenue.com>
9255
9256	* sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
9257	* admin.c (admin_fileproc): Only print messages when not in
9258	really_quiet mode.
9259
9260	    for Stephen Rasku  <stephen@tgivan.com>
9261
9262	* rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
9263
92642001-03-15  Larry Jones  <larry.jones@sdrc.com>
9265
9266	* subr.c (sleep_past): Fix various bugs that would result in a
9267	negative sleep time if it weren't unsigned; since it is, it would
9268	result in a very large sleep time.  Ensure that us is always less
9269	than 1000000.  Don't try to sleep for more 1 sec with usleep.
9270	Cast NULL select arguments to correct type just in case.
9271
92722001-03-14  Derek Price  <derek.price@openavenue.com>
9273
9274	* subr.c (sleep_past): New function.
9275	* client.c (get_responses_and_close): Use new function.
9276	* commit.c (commit): Ditto.
9277	* update.c (do_update): Ditto.
9278	* cvs.h: Prototype new function.
9279
9280	* stamp-h2.in: Regenerated.
9281
92822001-03-14  Derek Price  <derek.price@openavenue.com>
9283
9284	* Makefile.in: Regenerated.
9285	* stamp-h2.in: Ditto.
9286
92872001-03-14  Larry Jones  <larry.jones@sdrc.com>
9288
9289	* commit.c (check_fileproc): Allow adding on the trunk when there's
9290	an existing non-Attic RCS file as long as the head revision is dead.
9291	This can happen due to an aborted resurrection.
9292	(commit_fileproc): When resurrecting, consider the dead revision
9293	along with the other files' revisions.
9294	(findmaxrev): Avoid unnecessary work.
9295	(checkaddfile): Only warn if file isn't in Attic as expected.
9296	(Reported by Ross Burton <r.burton@180sw.com>.)
9297	* sanity.sh (basica-r*): New tests for above.
9298	(basica-o4): Update to match.
9299
93002001-03-09  Larry Jones  <larry.jones@sdrc.com>
9301
9302	* edit.c (edit_fileproc, unedit_fileproc): Some implementations of
9303	asctime/ctime apparently use a leading zero on the date instead
9304	of the space required by the C Standard.  Correct for this so that
9305	shared working directories work without hassle.
9306	(Reported by David L. Martin <dlmart2@home.com>.)
9307	* entries.c (fgetentent): Ditto.
9308	* vers_ts.c (time_stamp_server, time_stamp) Ditto.
9309
93102001-03-07  Larry Jones  <larry.jones@sdrc.com>
9311
9312	* sanity.sh (basica, binfiles2, head, admin): Update to match
9313	change to admin.c.
9314
93152001-03-06  Larry Jones  <larry.jones@sdrc.com>
9316
9317	* client.c (recv_bytes): Handle EOF as in recv_line().
9318	(Reported by Pavel Roskin <proski@gnu.org>.)
9319
9320	* admin.c (admin_fileproc): Change final error message to clarify
9321	that CVS refused to modify the RCS file rather than being unable to.
9322
93232001-02-28  Jim Meyering  <meyering@lucent.com>
9324
9325	* commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
9326	the description of that option, to be consistent with the `-F logfile'
9327	in the Usage: line.  Use spaces instead of TAB characters, and realign.
9328
93292001-03-02  Derek Price  <derek.price@openavenue.com>
9330
9331	* sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
9332	name of the command it actually used rather than 'rsh'.
9333
93342001-02-27  Derek Price  <derek.price@openavenue.com>
9335
9336	* sanity.sh (modules2-ampermod-*): Added these tests to make sure the
9337	top level directory is created in an ampermodule when '-n' is passed to
9338	checkout.
9339
9340	original bug report from
9341	    Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
9342
93432001-02-27  Derek Price  <derek.price@openavenue.com>
9344
9345	* sanity.sh (version-[12]): replace ' (client/server)' with .* in these
9346	two tests so that 'make check' works with whatever client/server
9347	options the executable was compiled with.
9348
93492001-02-23  Derek Price  <derek.price@openavenue.com>
9350
9351	* main.c (main): Only check a cvsroot_t's isremote member when client
9352	support is enabled.
9353	* server.c: Include GSSAPI headers with client support as well as
9354	server support.
9355
93562001-02-21  Larry Jones  <larry.jones@sdrc.com>
9357
9358	* modules.c, cvs.h (do_module): Add build_dirs argument and use it
9359	instead of run_module_prog.  Change all callers.
9360	* tag.c (cvstag): For rtag, don't build directories.
9361	* sanity.sh (modules3): Update to match.
9362
93632001-02-20  Derek Price  <derek.price@openavenue.com>
9364
9365	* client.c: Use xgssapi.h.
9366	* server.c: Ditto.
9367
93682001-02-15  Derek Price  <derek.price@openavenue.com>
9369
9370	* Makefile.am (cvs_SOURCES): Correct error from yesterday.
9371	* Makefile.in: Regenerated.
9372
93732001-02-14  Derek Price  <derek.price@openavenue.com>
9374
9375	* server.c: Include xselect.h.
9376	* update.c (do_update): Use best available sleep function.
9377
93782001-02-14  Derek Price  <derek.price@openavenue.com>
9379
9380	* Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
9381	(cvs_LDADD): Alphabetize and split to one/line.
9382	* Makefile.in: Regenerated.
9383
93842001-02-14  Larry Jones  <larry.jones@sdrc.com>
9385
9386	* build_src.com: Remove references to rtag.c & rtag.obj.
9387
93882001-02-13  Derek Price  <derek.price@openavenue.com>
9389
9390	* main.c (date_to_tm): New function to convert an RCS date string to a
9391	struct tm.
9392	(tm_to_internet): New function to convert a struct tm to a date string
9393	as specified by RFC822 and amended by RFC 1123.
9394	(date_to_internet): Use the above two functions and a struct tm
9395	intermediary for conversion.
9396	* patch.c (patch_fileproc): Answer somebody's comment and use the new
9397	diff_exec API.
9398	* rcs.c (RCS_checkin): Use new diff_exec API.
9399	(RCS_delete_revs): Use new diff_exec API.
9400	(make_file_label): If the file name is DEVNULL, date it the Epoch for
9401	compatibility with the POSIX.2 spec and Larry Wall's patch
9402	implementation.
9403	* rcscmds.c (diff_exec): Accept new label arguments.
9404	* sanity.sh (death2): Update some diff tests to accept the new format.
9405	* update.c (patch_file): Use new diff_exec API.
9406	* diff.c (diff_fileproc): Create header labels appropriate for
9407	compatibility with the Larry Wall version of patch.
9408	(diff): Rename calls to strcat_and_allocate.
9409	(strcat_and_allocate): Rename and move...
9410	* subr.c (xrealloc_and_strcat): here.
9411	* cvs.h: Update prototypes to match.
9412
94132001-02-13  Derek Price  <derek.price@openavenue.com>
9414
9415	* Makefile.am (cvs_SOURCES): Remove rtag.c.
9416
94172001-02-07  Larry Jones  <larry.jones@sdrc.com>
9418
9419	* sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
9420	(basic2): Rewrite using dotest.
9421
94222001-02-06  Larry Jones  <larry.jones@sdrc.com>
9423
9424	* tag.c, rtag.c: Merge with tag.c being the surviving file.
9425	* Makefile.in: Update to match.
9426	* main.c (cmds): rtag() => cvstag().
9427	* server.c (serve_rtag): Ditto, and set command name.
9428
94292001-02-06  Derek Price  <derek.price@openavenue.com>
9430	    Rex Jolliff  <Rex_Jolliff@notes.ymp.gov>
9431	    Shawn Smith  <Shawn_Smith@notes.ymp.gov>
9432
9433	* add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
9434	CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
9435	5.7 {open,read,close}dir problems.  Check today's entry in the vms
9436	subdir for more.
9437	* filesubr.c: ditto
9438	* find_names.c: ditto
9439	* ignore.c: ditto
9440	* import.c: ditto
9441	* lock.c: ditto
9442	* update.c: ditto
9443
94442001-02-02  Larry Jones  <larry.jones@sdrc.com>
9445
9446	* error.h: Changed include guard macro from _error_h_ to ERROR_H;
9447	names beginning with underscore are reserved.
9448	* login.c (password_entry_parseline, password_entry_operation,
9449	password_entry_operation_e, password_entry_operation_t): Removed
9450	leading underscore(s).
9451	(password_entry_parseline): Corrected error messages.
9452	(password_entry_operation): Fixed uninitialized variable (password).
9453	(login): Removed unused variable (found_password).
9454
9455	* rtag.c (rtag_proc): Call lock_tree_for_write() before calling
9456	start_recursion.  This fixes a serious problem where do_recursion
9457	was reading and caching RCS files without any locks in place and
9458	that information was subsequently being used to rewrite the file
9459	causing any intermediate changes to be lost.
9460	(rtag_filesdoneproc): Defunct.
9461	(Reported by Karl Tomlinson <k.tomlinson@auckland.ac.nz>.)
9462	* tag.c (cvstag, tag_filesdoneproc): Ditto.
9463	* lock.c (lock_tree_for_write): Add which argument, change all
9464	callers to pass W_LOCAL.
9465	* rcs.h: Ditto.
9466
94672001-01-29  Derek Price  <derek.price@openavenue.com>
9468
9469	* client.c (get_cvs_port_number): change the prototype to accept a
9470	const cvsroot_t * as input and add a FIXME comment
9471	* cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
9472	* login.c (_password_entry_operation): consolidate all the ~/.cvspass
9473	access into a single new function which reads ~/.cvspass in a backwards
9474	compatible manner
9475	(logout): use the new _password_entry_operation function
9476	(login): ditto
9477	(get_cvs_password): ditto
9478	* root.c (normalize_cvsroot): move knowledge of default port & username
9479	values inside
9480
94812001-01-29  Larry Jones  <larry.jones@sdrc.com>
9482
9483	* subr.c (shell_escape): New function.
9484	* cvs.h: Declare it.
9485	* logmsg.c (logfile_write): Use it to avoid problems with filenames
9486	containing "'".
9487	(Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
9488
9489	* server.c (outbuf_memory_error, pserver_authenticate_connection,
9490	kserver_authenticate_connection): If available, use syslog() to
9491	record some errors.
9492
94932001-01-25  Larry Jones  <larry.jones@sdrc.com>
9494
9495	* server.c (do_cvs_command): If there's a partial output line left
9496	over and the client doesn't support MT, go ahead and send it in an
9497	M response instead of just dropping it.
9498	(Reported by Milos Kleint <Milos.Kleint@netbeans.com>.)
9499
9500	* update.c (update_fileproc): Handle toss_local_changes in the
9501	T_NEEDS_MERGE case.
9502	(Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
9503	* sanity.sh (clean): New tests for above.
9504
95052001-01-23  Derek Price  <derek.price@openavenue.com>
9506
9507	* run.c (run_exec): flush, if used, stderr and stdout before exit
9508	* server.c (cvs_flusherr): flush stderr & send a stderr flush command
9509	on the protocol pipe
9510	(cvs_flushout): like above, for stdout
9511	(do_cvs_command): handle flushes properly
9512	* sanity.sh (reserved): make the commitinfo script echo errors to
9513	stderr rather than stdin
9514
95152001-01-18  Larry Jones  <larry.jones@sdrc.com>
9516
9517	* log.c (option_revlist, revlist, log_usage, cvslog,
9518	log_parse_revlist, log_expand_revlist, log_version_requested): Add
9519	support for :: for exclusive ranges.
9520	* admin.c (admin_usage): Reorder -o to be parallel to log -r.
9521	* sanity.sh (log): New tests for above.
9522
95232001-01-18  Derek Price  <derek.price@openavenue.com>
9524
9525	* main.c: Add '2001' to the range of copyright years listed by the
9526	--version option
9527	* version.c.in (version): check current_parsed_root before its isremote
9528	member to avoid a core dump
9529	* sanity.sh (version): add a test for the version command
9530
9531	* version.c: regenerated
9532
95332001-01-12  Larry Jones  <larry.jones@sdrc.com>
9534
9535	* rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
9536	correct revision so that symbolic tags work correctly.  (This
9537	requires removing the "const" from the rev parameter since it's
9538	passed to RCS_gettag which might modify it.)
9539	(Reported by irina sturm <irina.sturm@st.com>.)
9540
95412001-01-11  Larry Jones  <larry.jones@sdrc.com>
9542
9543	* run.c (close_on_exec): Remove check for FD_CLOEXEC.  As far as I
9544	can see, it's *never* been defined, which defeats the whole point.
9545	If F_SETFD is defined, it's probably safe to use it.
9546
9547	* server.c (do_cvs_command): Call close_on_exec on the protocol and
9548	flow control pipes in the child process so they don't get inherited
9549	by any subsidiary processes.
9550	(Reported by Tristan Gingold <tgi@netgem.com>.)
9551
9552	* cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
9553
95542001-01-10  Derek Price  <derek.price@openavenue.com>
9555	    Rex Jolliff  <Rex_Jolliff@notes.ymp.gov>
9556
9557	* build_src.com: VMS changes
9558	* filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
9559	* rcs.c: ditto
9560
95612001-01-10  Derek Price  <derek.price@openavenue.com>
9562
9563	* main.c (current_root): explicitly list this as a static global
9564
95652001-01-10  Derek Price  <derek.price@openavenue.com>
9566
9567	* cvs.h (get_cvs_port_number): change name & prototype from
9568	get_port_number
9569	* client.c (get_cvs_port_number): new function which returns a port
9570	number based on a cvsroot_t rather than requiring all possible sources
9571	passed in
9572	(connect_to_pserver): use new get_cvs_port_number function
9573	(connect_to_server): ditto
9574	* login.c (get_password): use new get_cvs_port_number function
9575	(login): ditto
9576	(logout): ditto
9577
95782001-01-10  Derek Price  <derek.price@openavenue.com>
9579
9580	* Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
9581	of the build since some systems don't allow mv's across partitions
9582	* Makefile.in: regenerated
9583
95842001-01-10  Derek Price  <derek.price@openavenue.com>
9585
9586	* Makefile.am (version.c): specify $(srcdir) explicitly in target rule
9587	so version.c gets built properly for all makes.
9588	(version.o): specify $(srcdir)/version.c explicitly so dependency is
9589	found and built properly
9590	* Makefile.in: regenerated
9591
95922001-01-09  Derek Price  <derek.price@openavenue.com>
9593
9594	* version.c: updated timestamp
9595
95962001-01-09  Larry Jones  <larry.jones@sdrc.com>
9597
9598	* server.c (server): Change to server_temp_dir immediately after
9599	creating it so that any stray files that happen to be created go
9600	there instead of in the server's initial directory, wherever that
9601	may be.
9602	* sanity.sh (modules5-15): Update to match.
9603
9604	* version.c.in: Update to match Derek's change to version.c.
9605
96062001-01-09  Derek Price  <derek.price@openavenue.com>
9607
9608	* cvs.h: Remove the various CVSroot_* bits and replace them with a
9609	single structure of type cvsroot_t (current_parsed_root)
9610
9611	* root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
9612	altering global variables
9613	(local_cvsroot): return a pointer to a new cvsroot_t rather than
9614	setting globals.  changed the name of this function from
9615	set_local_cvsroot to better explain new functionality
9616	(new_cvsroot_t): new initializer function
9617	(free_cvsroot_t): new function
9618	(others): use current_parsed_root rather than the old CVSroot_* globals
9619
9620	* add.c: use current_parsed_root rather than the old CVSroot_* globals
9621	* admin.c: ditto
9622	* checkout.c: ditto
9623	* client.c: ditto
9624	* commit.c: ditto
9625	* create_adm.c: ditto
9626	* diff.c: ditto
9627	* edit.c: ditto
9628	* expand_path.c: ditto
9629	* find_names.c: ditto
9630	* history.c: ditto
9631	* ignore.c: ditto
9632	* import.c: ditto
9633	* lock.c: ditto
9634	* log.c: ditto
9635	* login.c: ditto
9636	* logmsg.c: ditto
9637	* main.c: ditto
9638	* mkmodules.c: ditto
9639	* modules.c: ditto
9640	* parseinfo.c: ditto
9641	* patch.c: ditto
9642	* rcs.c: ditto
9643	* recurse.c: ditto
9644	* release.c: ditto
9645	* remove.c: ditto
9646	* repos.c: ditto
9647	* rtag.c: ditto
9648	* server.c: ditto
9649	* status.c: ditto
9650	* tag.c: ditto
9651	* update.c: ditto
9652	* version.c: ditto
9653	* watch.c: ditto
9654	* wrapper.c: ditto
9655
96562001-01-05  Derek Price  <derek.price@openavenue.com>
9657
9658	* cvs.h (enum CVSmethod): add null_method
9659	* root.c (method_names): correlate null_method & "undefined"
9660	(parse_cvsroot): make two error cases non fatal
9661	* sanity.sh (crerepos-6b): account for new error message, re above
9662
96632001-01-05  Derek Price  <derek.price@openavenue.com>
9664
9665	* src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
9666	target to configure.in - see ../ChangeLog for more
9667	* src/cvsbug.in: Rename from cvsbug.sh
9668	* src/cvsbug.sh: Rename to cvsbug.in
9669
96702001-01-04  Larry Jones  <larry.jones@sdrc.com>
9671
9672	* Makefile.am (cvsbug): Explicitly list input file ($< is only
9673	valid in inference rules).
9674	* Makefile.in: Ditto.
9675
96762001-01-04  Derek Price  <derek.price@openavenue.com>
9677
9678	* sanity.sh: use getopts rather than getopt for portability reasons
9679
96802001-01-03  Derek Price  <derek.price@openavenue.com>
9681
9682	* Makefile.am (remotecheck): depend on 'all'
9683	* Makefile.in: regenerated
9684
96852000-12-29  Derek Price  <derek.price@openavenue.com>
9686
9687	* sanity.sh: remove explicit "$@" from last checkin and move the 'do'
9688	to the line following the 'for'.  Apparently this is more portable.
9689
96902000-12-29  Derek Price  <derek.price@openavenue.com>
9691
9692	* sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
9693	implementation of Bourne shell doesn't seem to implement this default
9694	behavior.
9695
96962000-12-27  Derek Price  <derek.price@openavenue.com>
9697
9698	* sanity.sh: add a -f option for continuing from a particular test
9699	and shorten --keep to -k so we can use the getopt function.
9700
97012000-12-27  Derek Price  <derek.price@openavenue.com>
9702
9703	* Makefile.am (remotecheck): Make remotecheck dependant on all
9704	* Makefile.in: regenerated
9705
97062000-12-26  Derek Price  <derek.price@openavenue.com>
9707
9708	* Makefile.in: update timestamp
9709	* stamp-h2.in: ditto
9710	* version.c: ditto
9711
97122000-12-26  Derek Price  <derek.price@openavenue.com>
9713
9714	* Makefile.am: new target for version.c
9715	(EXTRA_DIST): add version.c.in & version.c so builds work when
9716	configure doesn't
9717	* Makefile.in: Regenerated
9718	* stamp-h2.in: update timestamp
9719	* version.c: ditto
9720
97212000-12-26  Derek Price  <derek.price@openavenue.com>
9722
9723	* Makefile.am (INCLUDES): add zlib
9724	* Makefile.in: Regenerated
9725
97262000-12-22  Derek Price  <derek.price@openavenue.com>
9727
9728	* Makefile.am (DISTCLEANFILES): added a few files
9729	(INCLUDES): commented
9730        * Makefile.in: Regenerated
9731
97322000-12-21  Derek Price  <derek.price@openavenue.com>
9733
9734	* .cvsignore: Added .deps directory and a new stamp file
9735	* Makefile.am: New file needed by Automake
9736	* Makefile.in: Regenerated
9737	* stamp-h2.in: New stamp file created by Automake
9738	* version.c.in: use configure to generate version.c
9739
97402000-12-16  Derek Price  <derek.price@openavenue.com>
9741
9742	* server.c (server_update): Keep the vers structure up to date after
9743	sending a Remove or Remove-entry command to the client
9744	* update.c (update): remove call to server_updated() after
9745	scratch_file()
9746	(scratch_file): in server mode, call server_updated(), otherwise keep
9747	the vers structure up to date
9748	(join_file): add a trace, save the revision to Register() on a remove
9749	before calling server_scratch & server_updated
9750	* sanity.sh (join): Add test for a remove/add caused by an update
9751	to a new branch and a join in the same step.
9752
97532000-12-15  Larry Jones  <larry.jones@sdrc.com>
9754
9755	* error.c (error): Add %ld and %lu.
9756
9757	* history.c: Change hrec.idx from int to long, reformat NEXT_BAR
9758	for readability, add hrec_idx.
9759	(fill_hrec): Change initialization to be portable and always set
9760	idx so it can be used as a line number in error messages; improve
9761	parsing and error checking.
9762	(read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
9763	no newline at end of file.
9764	(select_hrec): Add basic validity checking.
9765
97662000-12-07  Larry Jones  <larry.jones@sdrc.com>
9767
9768	* history.c (history): Allow multiple -m options as documented.
9769
97702000-11-29  Derek Price  <derek.price@openavenue.com>
9771
9772	* root.c (parse_cvsroot): back out yesterday's redundant changes
9773	* main.c (main): fix CVSROOT trace message to look like other trace
9774	messages
9775	* sanity.sh (multiroot2-9): expect new trace message
9776
97772000-11-28  Derek Price  <derek.price@openavenue.com>
9778
9779	* root.c (parse_cvsroot): add trace on this function
9780	* client.c (get_port_number): make trace print look like others
9781
97822000-11-16  Derek Price  <derek.price@openavenue.com>
9783
9784	* filesubr.c (cvs_temp_file): back out the previous change in the
9785	interests of portability, add an assertion, and fix the header comment
9786
97872000-11-16  Derek Price  <derek.price@openavenue.com>
9788
9789	* filesubr.c (cvs_temp_file): refine the exit behavior to notice if
9790	the out param was passed in NULL and, if so, avoid setting it and delete
9791	the temp file for later
9792
97932000-11-16  Derek Price  <derek.price@openavenue.com>
9794
9795	* filesubr.c (cvs_temp_file): fixed a garble or two, added some
9796	additional error checking, and added a comment
9797
97982000-11-15  Derek Price  <derek.price@openavenue.com>
9799
9800	* filesubr.c (cvs_temp_file): added cvs_temp_file
9801	function to use mkstemp rather than one of the other temp file
9802	generators as gcc keeps complaining I should.
9803	(cvs_temp_name): altered this function to simply wrap cvs_temp_file
9804	and deprecated it
9805	* cvs.h: added prototype for cvs_temp_file
9806	* commit.c (commit): use the new function instead of the old and plug
9807	an old (though related) memory leak.
9808	* import.c (import): use the new function
9809	* login.c (login): Ditto
9810	* logmsg.c (do_editor, do_verify): Ditto
9811	* patch.c (patch_fileproc): Ditto
9812
98132000-11-14  Larry Jones  <larry.jones@sdrc.com>
9814
9815	* update.c, update.h (do_update): Add xdotemplate parameter.
9816	Change all callers.
9817	(update_dirent_proc): Use dotemplate for Create_Admin, not 1.
9818	* checkout.c (checkout_proc): Don't create CVS/Template if
9819	exporting.
9820	(Reported by Andrey Podkolzin <mdh@zenon.net>.)
9821
98222000-11-08  Larry Jones  <larry.jones@sdrc.com>
9823
9824	* admin.c (admin): Use getgroups() to check for membership in
9825	CVS_ADMIN_GROUP if it exists.  In any event, check the user's
9826	primary group in addition to any additional groups.
9827	(Reported by Thomas Okken <TOkken@refco.com>.)
9828
98292000-11-06  Jim Meyering  <meyering@lucent.com>
9830
9831	Compile with gcc's -Wformat and fix the exposed problems.
9832	* root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
9833	for the %s error format spec.
9834	[! HAVE_GSSAPI]: Likewise.
9835	(normalize_cvsroot): Put comment delimiters around token after `#endif'.
9836
98372000-11-03  Larry Jones  <larry.jones@sdrc.com>
9838
9839	* sanity.sh: Some versions of sed require a space between -e and
9840	the value.
9841
98422000-10-27  Larry Jones  <larry.jones@sdrc.com>
9843
9844	* checkout.c (checkout): Don't check for a safe location if just
9845	cat'ing the module database.
9846	(Reported by Ilya Martynov <m_ilya@agava.com>.)
9847	Have -s set cat as well as status; it simplifies the code.
9848
98492000-10-26  Larry Jones  <larry.jones@sdrc.com>
9850
9851	* sanity.sh (join-admin-2): Check output from all commands instead
9852	of (mostly) discarding.  (Some of the tests used to produce stray
9853	output in remote mode.)
9854
9855	* sanity.sh (dotest_line_by_line): Handle empty lines in pattern
9856	(expr doesn't distingish between successfully matching nothing
9857	and failing to match anything).
9858
9859	* sanity.sh (dotest_internal): Rearrange and use elif to simplify.
9860
98612000-10-24  Jim Meyering  <meyering@lucent.com>
9862
9863	Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
9864	sometimes be ignored for some of the files involved in an update.
9865
9866	* update.c (join_file): Restore the original value of `options'
9867	right after calling checkout_file.
9868	* sanity.sh (join-admin-2): New test for this.
9869
98702000-10-23  Derek Price  <derek.price@openavenue.com>
9871            James Youngman  <jay@gnu.org>
9872
9873	* sanity.sh: it's /gnu/bin, not /gun/bin.  Thanks go to James Youngman
9874	<jay@gnu.org> for the bug report and patch.
9875
98762000-10-20  Jim Kingdon  <http://sourceforge.net/users/kingdon/>
9877
9878	* server.c (switch_to_user): Set CVS_USER.  Patch from Sudish
9879	Joseph and popularized by dozens (e.g. mozilla.org, also others).
9880
98812000-10-20  Derek Price  <derek.price@openavenue.com>
9882            KOIE Hidetaka  <hide@koie.org>
9883
9884	* root.c (normalize_cvsroot): plug a memory leak.  Thanks to
9885	KOIE Hidetaka <hide@koie.org>
9886
98872000-10-18  Derek Price  <derek.price@openavenue.com>
9888
9889	* client.c (connect_to_pserver): added a close brace the lack of which
9890	was preventing compilation when gssapi was enabled.  Removed a
9891	redundant check for HAVE_KERBEROS.
9892
98932000-10-18  Derek Price  <derek.price@openavenue.com>
9894
9895	* root.c (normalize_cvsroot): removed references to free_port_s and the
9896	now useless call to free now that port_s is on the stack.  Thanks to
9897	Jon Miner.
9898
98992000-10-18  Derek Price  <derek.price@openavenue.com>
9900
9901	* root.c (normalize_cvsroot): remove calls to snprintf for
9902	compatibility with M$ Windoze.
9903
99042000-10-18  Derek Price  <derek.price@openavenue.com>
9905
9906	* sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
9907	the output of a test to /dev/null since we don't know what error
9908	messages specific rsh implementations will output.
9909
99102000-10-17  Derek Price  <derek.price@openavenue.com>
9911
9912	* cvs.h: added CVSroot_password variable. Provided prototypes for
9913	get_port_number & normalize_cvsroot.
9914	* client.c (get_port_number): Fixed an ANSI prototype I had included
9915	for get_port_number.
9916	* login.c (login, logout): Removed two checks for a non-null
9917	CVSroot_username since parse_cvsroot now supplies a default in pserver
9918	mode. allow for a password in CVSROOT
9919	(get_cvs_passsword): return CVSroot_password if it was supplied
9920	in the CVSROOT.
9921	* root.c (parse_cvsroot): Changed CVSROOT spec from
9922	:method:user@host/port:/cvsroot to
9923	:method:[[user][:password]@]host[:[port]]/cvsroot
9924	Removed the xstrdup function since we'd rather have the error checking
9925	from the version in subr.c anyhow.  Moved some error messages which
9926	looked like they would print the wrong error message after a failed
9927	connect_to_gserver call.
9928	(normalize_cvsroot): return a normalized CVSROOT for use in the
9929	.cvspass file.
9930	* sanity.sh (crerepos-6): fix a test which was expecting an old error
9931	message.
9932
9933	* client.c (connect_to_pserver): Moved some error messages which looked like they
9934	would print the wrong error message after a failed connect_to_gserver
9935	call.
9936
9937	* login.c (login): Paranoiacly zero a password in memory.
9938
99392000-10-12  Derek Price  <derek.price@openavenue.com>
9940
9941	* client.c (auth_server_port_number -> get_port_number, start_pserver,
9942	start_tcp_server): use a port specified in CVSROOT instead of the
9943	default port.  Failing that, use the CVS_CLIENT_PORT environment
9944	variable.
9945	* cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
9946	* root.c (parse_cvsroot): Parse the new CVSROOT format properly.
9947	Incidentally reformated some error messages for uniformity and
9948	readability.
9949	* sanity.sh (crerepos): fix two tests which were now expecting the
9950	wrong error message.
9951
99522000-10-11  Larry Jones  <larry.jones@sdrc.com>
9953
9954	* server.c (pserver_authenticate_connection): Fix stupid mistake
9955	in previous change.
9956
99572000-10-11  Derek Price  <derek.price@openavenue.com>
9958
9959	* main.c (main): Dispose old CVSroot when parsing a '-d' option if
9960	free_CVSroot is set.
9961	* root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
9962	static boolean I expect hasn't been used since CVS learned to handle
9963	multiple CVSROOTs.
9964
99652000-10-10  Larry Jones  <larry.jones@sdrc.com>
9966
9967	* server.c (print_error): Make up a message if strerror fails.
9968
9969	* server.c (pserver_authenticate_connection): Give a real error
9970	message for an invalid repository.
9971
99722000-10-06  Derek Price  <derek.price@openavenue.com>
9973
9974	* add.c (add): Made quiet mode affect some warning messages as seemed
9975	appropriate.  Specifically, some of the messages which a user might
9976	want to ignore so they don't have to be quite so specific on the
9977	command line: files added twice, files already in the repository and
9978	check out properly (i.e. but picked up by 'cvs add *'), & files which
9979	are readded in place of a dead revision or onto a branch.  '-q' will
9980	not change the non-zero exit code for the cases where at least one
9981	passed in file name was already in the Entries file.  There seems to
9982	be a precedent in remove.c.
9983	* remove.c (cvsremove): switched the "use cvs ci to make these changes
9984	permanent message" to only print w/o '-Q' to match the new behavior of
9985	add.  This seems appropriate as '-Q' is defined to restrict messages
9986	to critical errors.
9987	* sanity.sh (adderrmsg): Added some tests for the above behavior.
9988
99892000-10-05  Larry Jones  <larry.jones@sdrc.com>
9990
9991	* client.c (call_in_directory): Create CVSADM directory if it doesn't
9992	exist in the directory.  This makes client/server work more like
9993	standalone when checking out into an existing (non-CVS) directory.
9994	* sanity.sh (dirs2, conflicts3, toplevel): Update to match.
9995
99962000-10-03  Larry Jones  <larry.jones@sdrc.com>
9997
9998	* filesubr.c (get_homedir): Ignore $HOME when running in server mode.
9999
100002000-10-02  Larry Jones  <larry.jones@sdrc.com>
10001
10002	* cvs.h: Define (and use) T_PATCH as a valid file classification
10003	even when SERVER_SUPPORT isn't defined -- it simplifies the code.
10004	* classify.c (Classify_File): Ditto.
10005	* commit.c (check_fileproc): Ditto.
10006	* status.c (status_fileproc): Ditto.
10007	* update.c (update_fileproc): Ditto.
10008	* tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
10009	* sanity.sh (tagc-10): Update to match.
10010
100112000-09-29  Larry Jones  <larry.jones@sdrc.com>
10012
10013	* client.c (get_responses_and_close): Reset server_fd to -1 after
10014	shutting down.
10015	(Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
10016
100172000-09-27  Larry Jones  <larry.jones@sdrc.com>
10018
10019	* commit.c (commit): Don't sleep before returning in server mode,
10020	just let the client do it.
10021	* update.c (do_update): Ditto.
10022
10023	* sanity.sh (find_tool): Correct method of checking for GNU tools.
10024
10025	* checkout.c (checkout_proc): Match up user directories with
10026	repository directories instead of using Emptydir.
10027	* sanity.sh (cvsadm, emptydir): Update to match.
10028
100292000-09-19  Larry Jones  <larry.jones@sdrc.com>
10030
10031	* version.c: Push version number to 1.11.0.1.
10032
10033	* version.c: Version 1.11.
10034
100352000-09-07  Larry Jones  <larry.jones@sdrc.com>
10036
10037	* Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
10038	from autoconf.
10039
100402000-08-23  Larry Jones  <larry.jones@sdrc.com>
10041
10042	* mkmodules.c (init): Create an empty val-tags file if it doesn't
10043	already exist to avoid problems with users not having sufficient
10044	permissions to create it later.
10045
100462000-09-06  Jim Kingdon  <jkingdon@dhcp-net200-89.su.valinux.com>
10047
10048	* main.c (lookup_command_attribute): Add "release" to commands
10049	which can be done by a read-only user.
10050
100512000-08-23  Larry Jones  <larry.jones@sdrc.com>
10052
10053	* repos.c (Name_Repository): Use pathname_levels to detect attempts
10054	to get above the repository instead of checking for leading ..
10055	which isn't reliable.
10056	* sanity.sh (multiroot3-12 to multiroot3-15): New tests for above.
10057
100582000-08-21  Larry Jones  <larry.jones@sdrc.com>
10059
10060	* rcs.c (expand_keywords): Handle the unusual case of log == NULL.
10061	(Reported by Craig Metz <cmetz@inner.net>.)
10062
100632000-08-01  Larry Jones  <larry.jones@sdrc.com>
10064
10065	* subr.c (pathname_levels): Fix bug that miscounts adjacent
10066	slashes.
10067	(Patch submitted by Tanaka Akira <akr@m17n.org>.)
10068
10069	* loginc.c (login): If available, use getpassphrase instead of
10070	getpass to support long passwords on Solaris.
10071
100722000-07-28  Larry Jones  <larry.jones@sdrc.com>
10073
10074	* server.c (server_noop): Avoid do_cvs_command() overhead.
10075	(requests): Make noop RQ_ROOTLESS.
10076
100772000-07-27  Noel Cragg  <noel@red-bean.com>
10078
10079	* root.c (parse_cvsroot): change fork method to behave like other
10080	remote methods -- let the server check that the repository
10081	directory is an absolute pathname.
10082
100832000-07-27  Larry Jones  <larry.jones@sdrc.com>
10084
10085	* lock.c (set_lock): Include actual lock directory in error message.
10086	* sanity.sh (multiroot3-10): Change to match.
10087
10088	* sanity.sh (client-3): Allow for a potential "broken pipe".
10089
100902000-07-26  Larry Jones  <larry.jones@sdrc.com>
10091
10092	* commit.c (commit_filesdoneproc): Flush stdout before running script.
10093	* modules.c (do_module): Ditto.
10094	* update.c (update_dirleave_proc): Ditto.
10095	* server.c (do_cvs_command): Give input from the protocol pipe
10096	precedence over input from stdout/stderr.  There's no particularly
10097	good justification for this other than helping to avoid out-of-order
10098	messages in sanity.sh.
10099
10100	* admin.c (admin_usage): Add the supported options.
10101
10102	* sanity.sh (info): Try to avoid out-of-order messages.
10103
10104	* sanity.sh (info): Fix problems when running twice in a row.
10105
101062000-07-17  Larry Jones  <larry.jones@sdrc.com>
10107
10108	* sanity.sh (modules5-7, cvsadm-1e, emptydir-2): Allow for a nil
10109	commit (can happen if the test is run twice in a row).
10110
101112000-07-19  Pavel Roskin  <proski@gnu.org>
10112	and Larry Jones  <larry.jones@sdrc.com>
10113
10114	* mkmodules.c (config_contents): Add a commented out example for
10115	LockDir. Don't suggest PreservePermissions unless it's enabled.
10116
101172000-07-17  Larry Jones  <larry.jones@sdrc.com>
10118
10119	* login.c (get_cvs_password): Handle malformed ~/.cvspass more
10120	gracefully.
10121
101222000-07-12  Larry Jones  <larry.jones@sdrc.com>
10123
10124	* sanity.sh (modules5): New tests for module programs.
10125
101262000-07-11  Larry Jones  <larry.jones@sdrc.com>
10127
10128	* filesubr.c (copy_file, xcmp): Handle systems (like Plan 9) that
10129	don't support mknod() and/or st_rdev.
10130	* import.c (add_rcs_file): Ditto.
10131	* rcs.c (RCS_checkout, RCS_checkin): Ditto.
10132	* update.c (special_file_mismatch): Ditto.
10133
101342000-07-10  Larry Jones  <larry.jones@sdrc.com>
10135
10136	* zlib.c (gunzip_and_write): Fix type clashes.
10137
10138	* main.c (main): Remove unused variables.
10139
101402000-07-10  Jim Meyering  <meyering@lucent.com>
10141
10142	When a command like `cvs update -kk -jT1 -jT2' creates a new file
10143	(because it had the T2 tag, but not T1), the subsequent commit of
10144	that just-added file would effectively set the admin `-kk' option
10145	for that file in the repository.
10146
10147	* update.c (join_file): Rename global-shadowing local `options'
10148	to `t_options'.
10149	Set file-scoped global `options' to NULL just before
10150	check-out.
10151	* sanity.sh (join-admin): New test for this.
10152
101532000-07-08  Larry Jones  <larry.jones@sdrc.com>
10154
10155	* version.c, cvs.h (version): New function.
10156	* main.c (cmds[]): Add version command to invoke it.
10157	(main): Also use it in -v.
10158	* server.c (serve_version): New function.
10159	(requests[]): Add version command to invoke it.
10160
101612000-07-06  Karl Fogel  <kfogel@red-bean.com>
10162
10163	* sanity.sh (pserver-14): remove this test for portability
10164	reasons (it was only recently added for the 2000-07-04 change).
10165
101662000-07-06  Larry Jones  <larry.jones@sdrc.com>
10167
10168	sanity.sh (modules-148): Don't test for specific revisions.
10169
10170	* main.c (main): Catch SIGABRT to try to clean up after assertion
10171	failures.  Don't bother SIG_register'ing Lock_Cleanup because
10172	main_cleanup calls it indirectly anyway.
10173	* patch.c (patch): Catch SIGABRT.
10174	* rcs.c (rcs_internal_lockfile): Ditto.
10175	* server.c (server): Ditto.
10176
10177	* fileattr.c (fileattr_write): Don't delete the unrecog_head list
10178	when writing...
10179	(fileattr_free): Delete it when freeing!
10180
101812000-07-05  Larry Jones  <larry.jones@sdrc.com>
10182
10183	* admin.c (admin): Handle -t in client so reading from files works
10184	correctly in client/server mode.
10185	* sanity.sh (log2): Update to match.
10186
101872000-07-04  Karl Fogel  <kfogel@red-bean.com>
10188
10189	* server.c (pserver_authenticate_connection): use new
10190	getline_safe() during authentication phase, to avoid a
10191	denial-of-service attack in which client sends arbitrary
10192	amounts of data with no newlines.
10193	(Reported by <jpmg@eng.cam.ac.uk>.)
10194
10195	* sanity.sh: new test pserver-14 for above.
10196
10197	* myndbm.c: #include getline.h.
10198	(mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
10199
102002000-07-03  Larry Jones  <larry.jones@sdrc.com>
10201
10202	* sanity.sh (modules): Rewrite using dotest.  Add "modules-"
10203	prefix to test names.
10204
102052000-06-28  Larry Jones  <larry.jones@sdrc.com>
10206
10207	* error.c (error_exit): Call rcs_cleanup () to release any rcs locks.
10208	* rcs.c, rcs.h (rcs_cleanup): Make public, close file before trying
10209	to remove (some systems won't remove open files).
10210	(RCS_putdtree): Don't worry about cleaning up before call error
10211	since it now does it for us.
10212	(rcs_internal_lockfile, rcs_internal_unlockfile): Keep track of
10213	lock file fd for rcs_cleanup ().
10214
10215	* client.c (handle_set_checkin_prog, handle_set_update_prog):
10216	Just ignore the request when exporting.
10217
102182000-06-27  Larry Jones  <larry.jones@sdrc.com>
10219
10220	* create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
10221	Change all callers.
10222	* checkout.c (checkout_proc): Don't create CVS/Template if
10223	exporting.
10224
102252000-06-26  Pavel Roskin <proski@gnu.org>
10226	and Larry Jones  <larry.jones@sdrc.com>
10227
10228	* server.c (switch_to_user): Only set CVS_Username if
10229	AUTH_SERVER_SUPPORT is defined.
10230
102312000-06-23  Larry Jones  <larry.jones@sdrc.com>
10232
10233	* client.c (send_dirent_proc): Don't allocate ignlist if you're
10234	going to skip the directory (plugs memory leak).
10235	(send_dirleave_proc): New function.
10236	(send_files): Use it (plugs memory leak).
10237	* root.c (root_allow_free): Plug memory leaks.
10238	* server.c (serve_directory, serve_notify, check_password,
10239	pserver_authenticate_connection): Ditto.
10240	* update.c (update): Ditto.
10241
10242	This completes the memory leak shoot-out -- the Purify'ed version
10243	of CVS now runs the entire test suite, both local and remote (except
10244	for remote crerepos, which causes Purify to choke) with *no* memory
10245	leaks.
10246
10247	* server.c (pserver_authenticate_connection): Don't free null pointer.
10248
102492000-06-21  Larry Jones  <larry.jones@sdrc.com>
10250
10251	* client.c (update_entries, get_responses_and_close): Plug memory leaks.
10252	* commit.c (find_fileproc, commit): Ditto.
10253	* import.c (import): Ditto.
10254	* log.c (cvslog): Ditto.
10255	* recurse.c (start_recursion): Ditto.
10256	* remove.c (cvsremove): Ditto.
10257	* server.c (fd_buffer_initialize, server_notify, do_cvs_command): Ditto.
10258	(fd_buffer_shutdown): New function.
10259
102602000-06-20  Larry Jones  <larry.jones@sdrc.com>
10261
10262	* root.c (parse_cvsroot): Put the terminating NUL byte into the
10263	string *before* copying it, not after. :-(
10264
102652000-06-19  Larry Jones  <larry.jones@sdrc.com>
10266
10267	* main.c (main): Plug memory leaks.
10268	* root.c (parse_cvsroot, set_local_cvsroot): Ditto.
10269	* server.c (serve_root): Ditto.
10270
102712000-06-16  Larry Jones  <larry.jones@sdrc.com>
10272
10273	* fileattr.c (fileattr_read): Plug memory leak.
10274	* rcs.c (RCS_whatbranch): Ditto.
10275	* update.c (update_dirleave_proc): Ditto.
10276
10277	* ignore.c (ign_dir_add): Duplicate string so caller can free.
10278
10279	* modules.c (do_module): Don't write into dbm's memory!
10280
102812000-06-15  Larry Jones  <larry.jones@sdrc.com>
10282
10283	* checkout.c (checkout_proc): Fix non-ANSI code in call to
10284	findslash(), minor cleanups.
10285
102862000-06-14  Larry Jones  <larry.jones@sdrc.com>
10287
10288	* tag.c (val_direntproc): Return R_PROCESS instead of 0.
10289
10290	* client.c (update_entries): Fix type clash calling gunzip_and_write().
10291	* server.c (receive_file): Fix type clash calling gunzip_and_write().
10292	(server_updated): Fix type clash calling buf_output().
10293	* error.c (error): Make buf char instead of unsigned char to avoid
10294	type clashes.
10295
10296	* modules.c (do_module): Change callback_proc to pass argc by
10297	value instead of by reference: callback procs shouldn't be
10298	messing with the callers argc/argv, it makes correct memory
10299	management impossible.  Plug memory leaks.
10300	* cvs.h: Change to match.
10301	* checkout.c (checkout_proc): Ditto; use a local argv array instead
10302	of messing with caller's.
10303	* modules.c (callback_proc): Ditto.
10304	* patch.c (patch_proc): Ditto; use a local argv array instead
10305	of messing with caller's.
10306	* rtag.c (rtag_proc): Ditto; use a local argv array instead
10307	of messing with caller's.
10308	* server.c (expand_proc): Ditto.
10309	* subr.c (line2argv): Change initial argv_allocated back to 1.
10310
10311	* checkout.c (findslash): Fix non-ANSI code.
10312
10313	* sanity.sh (modes3): Fix test names.
10314
103152000-06-13  Larry Jones  <larry.jones@sdrc.com>
10316
10317	* add.c (add): Plug memory leaks.
10318	* admin.c (admin_fileproc): Ditto.
10319	* checkout.c (build_dirs_and_chdir): Ditto.
10320	* edit.c (editors_fileproc): Ditto.
10321	* log.c (cvslog, log_parse_revlist, log_parse_date): Ditto.
10322	* rcs.c (RCS_addaccess): Ditto.
10323	* tag.c (check_fileproc): Ditto.
10324	* vers_ts.c (Version_TS): Ditto.
10325	* watch.c (watchers_fileproc): Ditto.
10326
103272000-06-12  Larry Jones  <larry.jones@sdrc.com>
10328
10329	* rcs.c (rcsbuf_valword): Set rcsbuf->vlen to keep rcsbuf_valcopy()
10330	from allocating more memory than needed for @ strings.  Don't declare
10331	unless PRESERVE_PERMISSIONS_SUPPORT (since not defined).
10332
10333	* rcs.c (RCS_abandon): New function to abandon changes.
10334	* rcs.h: Declare it.
10335	* admin.c (admin_fileproc): Use it instead of RCS_reparsercsfile.
10336
10337	* commit.c (commit_fileproc): Fix memory leaks.
10338	* patch.c (patch_fileproc): Ditto.
10339	* rcs.c (RCS_nodeisbranch, RCS_copydeltas): Ditto.
10340	* tag.c (tag_fileproc): Ditto.
10341	* update.c (update): Ditto.
10342
103432000-06-09  Larry Jones  <larry.jones@sdrc.com>
10344
10345	* rcs.c (RCS_reparsercsfile, RCS_fully_parse, getdelta,
10346	RCS_getdeltatext): Handle newphrases with composite values.
10347	(rcsbuf_getkey): Don't remove @s in composite values -- it makes
10348	it impossible to parse the value!  Set special flag to indicate
10349	a composite value.
10350	(rcsbuf_valcopy, rcsbuf_valpolish_internal): Handle composite values.
10351	(putrcsfield): Write composite values.
10352	(RCS_checkin): Set node types in other_delta list.
10353	* hash.h: Add RCSCMPFLD.
10354	* hash.c (nodetypestring): Ditto.
10355
10356	* rcs.c (getdelta): Never allocate space for value, just return
10357	pointer into rcsbuf (fixes memory leaks).  Use rcsbuf_getkey to
10358	read a key and value and then parse the value if needed rather
10359	than trying to read it in bits and pieces with rcsbuf_getid,
10360	rcsbuf_getstring, and rcsbuf_getword.
10361	(RCS_reparsercsfile): Change callers to compensate.
10362	(rcsbuf_valcmp, rcsbuf_valword): New functions.
10363	(rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): Deleted.
10364	* sanity.sh (rcs3-1): Now get slightly different error message.
10365
103662000-06-08  Larry Jones  <larry.jones@sdrc.com>
10367
10368	* main.c (usg): Update CVS home page URL.
10369
10370	* main.c (main): Provide an actual error message for an unknown
10371	command in addition to the usage message.
10372
103732000-06-07  Larry Jones  <larry.jones@sdrc.com>
10374
10375	* server.c (serve_root, dirswitch, serve_repository,
10376	serve_static_directory, serve_sticky, receive_partial_file,
10377	receive_file, serve_modified, server_write_entries, serve_notify,
10378	serve_checkin_prog, serve_update_prog, server): Don't set
10379	pending_error before calling alloc_pending, it makes it fail;
10380	use alloc_pending instead of malloc when reasonable; be sure to
10381	save errno before calling functions that might change it.
10382	(Patch submitted by Dietmar Petras <dietmar.petras@elsa.de>.)
10383
103842000-06-03  Larry Jones  <larry.jones@sdrc.com>
10385
10386	* commit.c (checkaddfile): Plug memory leak.
10387	* rcs.c (RCS_checkin): Plug memory leaks.
10388	* server.c (do_cvs_command): Plug file descriptor leaks.
10389	* tag.c (check_fileproc): Plug memory leak.
10390
103912000-05-26  Larry Jones  <larry.jones@sdrc.com>
10392
10393	* recurse.c (unroll_files_proc): Plug memory leak.
10394
10395	* recurse.c (addfile): Fix nonportable pointer cast.
10396
10397	* rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
10398	leaks.
10399
104002000-05-25  Larry Jones  <larry.jones@sdrc.com>
10401
10402	* checkout.c (checkout, build_one_dir, checkout_proc): Move m_type
10403	to file scope and use it instead of continually doing strcmp on
10404	command_name.
10405	(build_one_dir, checkout_proc): Don't allow export if CVSADM
10406	directory already exists.
10407
104082000-05-23  Larry Jones  <larry.jones@sdrc.com>
10409
10410	* rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks.  (Patch
10411	submitted by Chris G. Demetriou <cgd@sibyte.com>.)
10412
104132000-05-20  Ian Lance Taylor  <ian@zembu.com>
10414
10415	* client.c (connect_to_gserver): Handle server error messages
10416	reasonably.
10417
104182000-05-19  Larry Jones  <larry.jones@sdrc.com>
10419
10420	* server.c (requests): Make Global_option RQ_ROOTLESS so it can be
10421	used with init.
10422
104232000-05-18  Larry Jones  <larry.jones@sdrc.com>
10424
10425	* client.c (start_server): Don't do encryption, authentication,
10426	compression, or case insensitivity when doing init because init
10427	is ROOTLESS and they're not.
10428
10429	* client.c (connect_to_pserver): Include repository and username in
10430	authorization failed message -- if a directory tree crosses multiple
10431	repositories, it can be quite difficult for the user to figure out
10432	which one is the problem.
10433
104342000-05-17  Larry Jones  <larry.jones@sdrc.com>
10435
10436	* main.c (main): Use full set of options when looking for -f to
10437	avoid misparsing options that take values (previously, -sVAR=foo
10438	was incorrectly parsed as though it were -s -V -A -R -= -f -o -o
10439	because it didn't know that -s takes a value).
10440	* sanity.sh (info-6b): New test for above.
10441
10442	* sanity.sh (conflicts-status): Fix tests so they work remotely, too.
10443
104442000-05-17  Jim Meyering  <meyering@lucent.com>
10445
10446	* sanity.sh (TESTDIR): Fix braino in last change:
10447	cd to /tmp before invoking pwd.
10448
10449	* sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
10450	is a symlink.
10451	(join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
10452	(conflicts-132): Remove unnecessary `rm aa'.
10453
104542000-05-16  Jim Kingdon  <kingdon@redhat.com>
10455
10456	* cvs.h, checkout.c (safe_location): Make extern.
10457	* import.c (import): Call it rather than reimplementing
10458	(incompletely) the same check.
10459
104602000-05-16  Larry Jones  <larry.jones@sdrc.com>
10461
10462	* rcs.h, subr.c (file_has_markers): Check for any of the three
10463	conflict marker lines, not just one.
10464	* sanity.sh (conflicts-status): New tests for above.
10465	* sanity.sh: Revise to avoid tripping the above check when merging
10466	changes into sanity.sh itself.
10467
104682000-05-15  Larry Jones  <larry.jones@sdrc.com>
10469
10470	* update.c (join_file): When registering the result of the merge,
10471	make sure that the version number is valid (vers->vn_rcs may be
10472	null if the file doesn't exist on the branch yet).  (Patch submitted
10473	by Robert de Vries <rhdv@rhdv.cistron.nl>.)
10474	* update.c (join_file): Correct diagnostics (previous change was not
10475	correct -- the file *does* exist in the specified revision, it just
10476	doesn't exist in the sandbox).
10477	* sanity.sh (import-113, join): New tests and changes for above.
10478
104792000-05-04  Larry Jones  <larry.jones@sdrc.com>
10480
10481	* sanity.sh: Look for a useful id program.  Since we're getting
10482	the real username for some tests anyway, use it for all the
10483	tests instead of a generic regular expression that may or may
10484	not match the actual username.
10485
104862000-05-04  Larry Jones  <larry.jones@sdrc.com>
10487
10488	* server.c: More error messages.
10489
104902000-05-02  Donald Sharp <sharpd@cisco.com>
10491	and Larry Jones  <larry.jones@sdrc.com>
10492
10493	* history.c (report_hrecs): Added code to print out year instead of
10494	just month/day.
10495	* sanity.sh (basic2-64, history): Update to match.
10496
104972000-04-19  Larry Jones  <larry.jones@sdrc.com>
10498
10499	* server.c (dirswitch): Set pending_error_text in addition to
10500	pending_error to aid in problem determination.
10501
105022000-03-23  Larry Jones  <larry.jones@sdrc.com>
10503
10504	* mkmodules.c (mkmodules): Return without doing anything if noexec
10505	is set to avoid trashing existing files.
10506
105072000-03-23  Larry Jones  <larry.jones@sdrc.com>
10508
10509	* main.c: Alphabetize cmds[] and cmd_usage[] and add server
10510	commands to cmd_usage[].
10511
105122000-03-21  Larry Jones  <larry.jones@sdrc.com>
10513
10514	* sanity.sh (client-1): May get "Broken pipe" message from the
10515	"server" in addition to the expected output.
10516
105172000-03-17  Larry Jones  <larry.jones@sdrc.com>
10518
10519	* server.c (switch_to_user): Set CVS_Username if it hasn't already
10520	been set elsewhere.  (Patch submitted by Gordon Matzigkeit
10521	<gord@fig.org>).
10522
105232000-03-13  Larry Jones  <larry.jones@sdrc.com>
10524
10525	* parseinfo.c: Add extern to logHistory declaration.  (Reported by
10526	<John.Tytgat@aaug.net>.)
10527	(parse_config): Reformat logHistory code.
10528
105292000-03-10  Larry Jones  <larry.jones@sdrc.com>
10530
10531	* add.c (add): Don't try to set cvsroot_len until after checking
10532	for help only -- CVSroot_directory isn't set in that case.
10533
105342000-03-03  Larry Jones  <larry.jones@sdrc.com>
10535
10536	* mkmodules.c (init): Use mkdir_if_needed to create CVSROOT/Emptydir
10537	so we don't fail if run multiple times.  (Reported by KOIE Hidetaka
10538	<hide@koie.org>.)
10539	* sanity.sh (1a): New test for above.
10540
105412000-03-02  Larry Jones  <larry.jones@sdrc.com>
10542
10543	* main.c: Use identical #if's in the command table and the code
10544	for pserver and kserver to prevent "peculiar" configurations from
10545	having really perverse behavior because the command table entries
10546	are present but the related code isn't.
10547
105482000-03-01  Larry Jones  <larry.jones@sdrc.com>
10549
10550	* import.c (import): Don't allow importing the repository.
10551	* sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
10552
105532000-03-01  Larry Jones  <larry.jones@sdrc.com>
10554
10555	* main.c (main): Update year in copyright message.
10556
105572000-03-01  Larry Jones  <larry.jones@sdrc.com>
10558
10559	* logmsg.c (do_editor): Correct previous change.
10560
105612000-02-29  Larry Jones  <larry.jones@sdrc.com>
10562
10563	* logmsg.c (do_editor): When reading temp file, check that message
10564	buffer is large enough to hold the next line and expand if needed.
10565
105662000-02-28  Larry Jones  <larry.jones@sdrc.com>
10567
10568	* commit.c (commit): Use get_file() to read log file correctly
10569	and in text mode rather than binary mode.
10570
10571	* subr.c (get_file): Ignore bufsize if buf is NULL.  Include
10572	terminating NUL byte when estimating required buffer size.
10573
105742000-02-28  Larry Jones  <larry.jones@sdrc.com>
10575
10576	* sanity.sh (find_tool): New function to replace duplicated code.
10577
105782000-02-25  Larry Jones  <larry.jones@sdrc.com>
10579
10580	* import.c (add_rcs_file): Don't abort just because lstat fails.
10581
105822000-02-16  Jim Meyering  <meyering@lucent.com>
10583
10584	Avoid race condition whereby a catchable signal could
10585	end up corrupting the repository.
10586	* commit.c (checkaddfile): Put a critical section around the code
10587	that handles the first commit on the trunk of a file that's already
10588	been committed on a branch.
10589	* cvs.h (Sig_inCrSect): Declare new function.
10590
105912000-02-21  Karl Fogel  <kfogel@red-bean.com>
10592
10593	* main.c (main): still check for repository, but not history file
10594	(correction to 2000-02-18 change -- that's what I get for
10595	believing the comment rather than the code).
10596
105972000-02-21  K.J. Paradise <kj@sourcegear.com>
10598
10599	* history.c mkmodules.c parseinfo.c: control which actions
10600	get logged to the cvs history file via CVSROOT/config file
10601	and LogHistory keyword. (John P Cavanaugh <cavanaug@sr.hp.com>)
10602
106032000-02-18  Karl Fogel  <kfogel@red-bean.com>
10604
10605	* history.c (history_write): don't die if history file not
10606	writable, just warn (unless `really_quiet') and skip out.
10607
10608	* main.c (main): don't bother checking if history file is
10609	writable.
10610
10611	* server.c (serve_root): same.
10612
106132000-02-17  Larry Jones  <larry.jones@sdrc.com>
10614
10615	* sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
10616	default since PreservePermissions code is now disabled.
10617
106182000-02-17  Larry Jones  <larry.jones@sdrc.com>
10619
10620	* sanity.sh (import-113): Revise to match Jim Meyering's fix.
10621
106222000-02-16  Larry Jones  <larry.jones@sdrc.com>
10623
10624	* add.c (add): Don't allow adding files or directories to Emptydir.
10625	(Patch submitted by Chris Cameron <chris.cameron@ot.co.nz>.)
10626	* sanity.sh (emptydir): Revise (emptydir-7 and emptydir-8) for this.
10627
106282000-02-16  Jim Meyering  <meyering@lucent.com>
10629
10630	* update.c (join_file): Correct typo in diagnostic:
10631	change `file %s is present...' to `file %s is not present...'.
10632
106332000-02-10  Larry Jones  <larry.jones@sdrc.com>
10634
10635	* parseinfo.c (Parse_Info): Treat matching lines with bad expansions
10636	as errors rather than just ignoring.
10637
106382000-02-10  Larry Jones  <larry.jones@sdrc.com>
10639
10640	* edit.c (edit): Check for invalid characters in hostname and CurDir.
10641	(Reported by "Andrew S. Townley" <atownley@informix.com>.)
10642	* sanity.sh (devcom2): New tests for above.
10643
106442000-02-10  Larry Jones  <larry.jones@sdrc.com>
10645
10646	* cvs.h: Always #include "server.h" to prevent compile errors when
10647	neither CLIENT_SUPPORT nor SERVER_SUPPORT is defined.
10648	(Reported by "Crow, Ian" <ian.crow@linklaters.com>.)
10649	* log.c (send_one, send_arg_list): Only define when CLIENT_SUPPORT
10650	is defined to prevent link errors.
10651
10652	* server.c (server): Always create a new temporary directory, don't
10653	try to reuse an existing one since we might not have correct
10654	permissions.  Also, include directory name in error messages.
10655
106562000-01-29  Jim Kingdon  <http://developer.redhat.com/>
10657
10658	* ignore.c (ignore_files): Correctly set errno to 0 when we go
10659	back to the top of the loop.  Fixes spurious errors like "cvs
10660	update: error reading current directory: No such file or
10661	directory".
10662
106632000-01-26  Larry Jones  <larry.jones@sdrc.com>
10664
10665	* run.c (run_exec): Conditionalize K.J.'s change so that it only
10666	applies when SETXID_SUPPORT is defined since some platforms don't
10667	have setegid().
10668
106692000-01-26  Larry Jones  <larry.jones@sdrc.com>
10670
10671	* sanity.sh: Make TESTDIR earlier then use it to check for versions
10672	of expr that don't work right with long expressions.
10673
10674	* sanity.sh (dotest_line_by_line): Have wc read from stdin so it
10675	doesn't output the file name and confuse expr.  Make the output a
10676	bit less verbose and easier to read.
10677
106782000-01-24  K.J. Paradise <kj@sourcegear.com>
10679
10680	* run.c :> prevents a user from creating a privileged shell from the
10681	text editor when the SETXID_SUPPORT option is selected.  This came from
10682	Bob Colle <bcolle@ilx.com>, and is his completely.
10683
106842000-01-22  Jim Kingdon  <http://developer.redhat.com/>
10685
10686	* sanity.sh (emptydir): Add a case in which one might hope for a
10687	non-Emptydir result, but which result?
10688
106892000-01-18  Larry Jones  <larry.jones@sdrc.com>
10690
10691	* main.c (main): Allow -z0 to disable gzip compression.
10692
106932000-01-17  Larry Jones  <larry.jones@sdrc.com> for
10694	K.J. Paradise (kj@sourcegear.com)
10695
10696	* version.c: Push version number to 1.10.8.1.
10697
10698	* version.c: Version 1.10.8.
10699
107002000-01-17  Larry Jones  <larry.jones@sdrc.com>
10701
10702	* mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
10703	with users not having sufficient permissions to create it later.
10704
107052000-01-04  Larry Jones  <larry.jones@sdrc.com>
10706
10707	* client.c (get_responses_and_close): Simplify time-stamp race
10708	avoidance code.
10709	* commit.c (commit): Ditto.
10710	* update.c (do_update): Ditto.
10711	(Prompted by patch submitted by Pavel Roskin
10712	<pavel_roskin@geocities.com>.)
10713
10714	* hardlink.c: sizeof (char) is 1, by definition.
10715	* logmsg.c: Ditto.
10716	* rcs.c: Ditto.
10717
107182000-01-03  Karl Fogel  <kfogel@red-bean.com>
10719
10720	* filesubr.c, subr.c (backup_file): moved this function from
10721	filesubr.c to subr.c, at JimK's suggestion.
10722
107232000-01-03  Jim Kingdon  <http://developer.redhat.com/>
10724
10725	* sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
10726	file, not just its existence.
10727
107282000-01-03  Karl Fogel  <kfogel@red-bean.com>
10729
10730	* cvs.h, filesubr.c (backup_file): use `const' for suffix too;
10731	correct suffix length calculation and appending behavior; discard
10732	unnecessary `void' cast.  Thanks to Jim Meyering for noticing.
10733
107342000-01-03  Larry Jones <larry.jones@sdrc.com>
10735
10736	* sanity.sh (clean): Fix up expected output.
10737
107382000-01-02  John P Cavanaugh <cavanaug@sr.hp.com>
10739        and Karl Fogel <kfogel@red-bean.com>
10740
10741	New -C option to update: overwrites local changes with clean
10742	copies from the repository.  (This is an unreversion of the
10743	1999-12-10 change, further modified to work remotely.)
10744
10745	* client.h (BACKUP_MODIFIED_FILES): new #define.
10746
10747	* client.c (struct send_data): new element `backup_modified'.
10748	(send_files): set above element if BACKUP_MODIFIED_FILES flag is
10749	present.
10750
10751	* filesubr.c (backup_file): new function.
10752
10753	* cvs.h: prototype for new function `backup_file'.
10754
10755	* update.c (toss_local_changes): new file-scoped global.
10756	(update): set toss_local_changes if -C flag seen.  If
10757	client_active, send "-C" to server, and set SEND_NO_CONTENTS and
10758	BACKUP_MODIFIED_FILES flags before calling send_files().
10759
10760	(update_fileproc): if file is modified and toss_local_changes is
10761	set, then back the file up and then check out a fresh copy from
10762	the repository.  Also, fixed indentation and formatting for a
10763	particularly bad stretch of code near (but unrelated to) these
10764	changes.
10765
10766	* sanity.sh: new test `clean', for update -C option.
10767
107681999-12-29  Jim Kingdon  <http://developer.redhat.com/>
10769
10770	* history.c (read_hrecs): st_blksize is unsigned long, not int.
10771	This isn't just cosmetic - getting it wrong will cause coredumps
10772	and such on 64 bit machines.
10773
10774	* import.c (import_descend), ignore.c (ignore_files): Placate gcc
10775	-Wall by parenthesizing foo || (bar && baz).
10776
107771999-12-24  Larry Jones <larry.jones@sdrc.com>
10778
10779	* release.c (release): Use fputs to echo lines from update instead
10780	of printf to avoid problems with lines containing "%".  (Reported
10781	by Jean-Luc Simard <Jean-Luc.Simard@matrox.com>.)
10782
10783	* history.c (read_hrecs): Allocate a single 2-block buffer instead
10784	of allocating and freeing a buffer for each block.
10785	(fill_hrec): Remove redundant code.
10786	(select_hrec): Plug memory leak.
10787
107881999-12-22  Larry Jones <larry.jones@sdrc.com>
10789
10790	* history.c (history): For "modified" or "checkout", sort on
10791	file if user specified -l, even if user also specified a date-
10792	oriented flag.
10793	* sanity.sh (history): Update to match; add new tests.
10794
107951999-12-15  Pavel Roskin <pavel_roskin@geocities.com>
10796	and Larry Jones <larry.jones@sdrc.com>
10797
10798	* lock.c (lock_name): fixed assertion failure for the
10799	top-level CVS directory when LockDir is used
10800	* sanity.sh (lockfiles-9): new test for this case
10801
108021999-12-11  Karl Fogel  <kfogel@red-bean.com>
10803
10804	* Revert previous change -- it doesn't work remotely yet.
10805
108061999-12-10  John P Cavanaugh <cavanaug@sr.hp.com>
10807        and Karl Fogel <kfogel@red-bean.com>
10808
10809	* update.c: new -C option to update, overwrites local changes with
10810	clean copies from the repository.
10811	Also, fixed indentation and formatting for a particularly bad
10812	stretch of code near these changes in update_fileproc().
10813
10814	* sanity.sh: test new update -C option.
10815
108161999-12-10  Larry Jones <larry.jones@sdrc.com>
10817
10818	* commit.c (remove_file): Call history_write with update_dir NULL
10819	like Checkin() does for add and modify.
10820	* sanity.sh (basic2-64): Update to match, add "R" records to expected
10821	remote output.
10822
108231999-12-09  K.J. Paradise (kj@sourcegear.com)
10824
10825	* history.c, commit.c, sanity.sh: found (I think) final
10826	cause of seg fault in history command.  Also, added the "R"
10827	history functionality.  Fixed basic2-64 so it looks correct for
10828	the change.
10829
108301999-11-30  K.J. Paradise (kj@sourcegear.com)
10831
10832	* history.c: fixed seg fault caused by 11-03 changes.
10833	off by one in block memory allocations.
10834
108351999-11-29  Karl Fogel  <kfogel@red-bean.com>
10836
10837	* login.c (logout): free `tmp_name' when done.
10838	Correct a comment.
10839
108401999-11-29  Larry Jones <larry.jones@sdrc.com>
10841
10842	* cvs.h, error.c, import.c: Rename fperror to avoid name clash
10843	on LynxOS.  (Reported by Markus Braun <MarkusBraun@gmx.de>.)
10844
108451999-11-23  Larry Jones <larry.jones@sdrc.com>
10846
10847	* checkout.c (checkout_proc): Split declaration and initialization
10848	of rp to placate neurotic compilers that gripe about jumping past
10849	an initialization, even when the variable is not subsequently used.
10850
108511999-11-19  Larry Jones <larry.jones@sdrc.com>
10852
10853	* server.c (switch_to_user): Correct setgid error messages.
10854
108551999-11-19  Karl Fogel  <kfogel@red-bean.com>
10856
10857	* edit.c (unedit_usage, unedit): new struct, use it.  Now "cvs
10858	unedit" prints an accurate usage message (formerly it printed the
10859	message for "cvs edit", even though the two commands do not have
10860	identical usages).
10861
108621999-11-19  Larry Jones <larry.jones@sdrc.com>
10863
10864	* history.c: Move -e documentation from Flags to Reports.
10865	(history): Add -e to list of report types in error message.
10866
10867	* history.c (history): Process file arguments before client/server
10868	processing so they get sent to the server.
10869	* sanity.sh (history): New tests for above.  (Also remove comments
10870	about variable spacing -- history output is in variable-width
10871	columns with exactly one space between.)
10872
108731999-11-19  Larry Jones <larry.jones@sdrc.com>
10874
10875	* sanity.sh: Reestablish check for running as root (using ``id -u''
10876	instead of ``whoami'').
10877
10878	* sanity.sh(dotest, dotest_lit, dotest_fail, dotest_status,
10879	dotest_sort): Eval the command so quoting and pipes work right.
10880	(spacefiles, dirs, rcslib, modules, unedit-without-baserev,
10881	ignore, rcs, rcs2, history, tagdate, pserver, server, server2)
10882	Simplify various tests based on above.
10883
108841999-11-19  Karl Fogel  <kfogel@red-bean.com>
10885
10886	* mkmodules.c (init): make history file world-writeable after
10887	creating it, since it needs to be writeable for virtually any
10888	CVS operation.
10889
108901999-11-10  Jim Kingdon  <http://developer.redhat.com/>
10891
10892	* admin.c: Revert change to add -H command option.  The help
10893	invocation is "cvs -H admin" not "cvs admin -H" (see cvs.texinfo,
10894	basicb-21 in sanity.sh; fix to cvs.1)
10895
108961999-11-08  Jim Kingdon  <http://developer.redhat.com/>
10897
10898	* log.c (cvslog): If client_active, send options to the server
10899	based on our parsed options rather than trying to send the exact
10900	strings specified (using canonical forms, like RFC822/1123
10901	dates, in the protocol is just cleaner).
10902	(send_one, send_arg_list): New functions, helpers for above.
10903	* sanity.sh (logopt-6a): New test, for this fix.
10904
109051999-11-09  K.J. Paradise <kj@sourcegear.com>
10906
10907	* admin.c: made the -H option do what it is documented to
10908	do.  a
10909
109101999-11-08  Tom Tromey  <tromey@cygnus.com>
10911
10912	* client.c (connect_to_gserver): Print more error text if gssapi
10913	initialization fails.  From Assar Westerlund <assar@sics.se>.
10914
109151999-11-06  Larry Jones <larry.jones@sdrc.com>
10916
10917	*sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
10918	more general pattern to match the assertion failure.
10919
109201999-11-05  K.J. Paradise (kj@sourcegear.com)
10921
10922	* history.c: Added a trap to verify that if a
10923	read(file, buffer,blocksize) returns less than blocksize,
10924	that we really are at the end of the file.  I can't easily
10925	come up with a test case where this code gets touched, so
10926	it may cause problems.  All sanity tests still pass though.
10927
109281999-11-05  Jim Kingdon  <http://developer.redhat.com/>
10929
10930	* sanity.sh (logopt): New test, for Larry's fix.
10931	* sanity.sh (log-18a, rcs-15 to rcs-19): New tests, to test -d
10932	and -r more thoroughly.
10933
109341999-11-05  Larry Jones <larry.jones@sdrc.com>
10935
10936	* log.c (cvslog): Fix -s and -d with spaces on client side.
10937	(log_usage): Revert Karl's change once again.
10938	sanity.sh(rcs3-5): No longer get different results from local
10939	and client/server.
10940
109411999-11-04  Karl Fogel  <kfogel@red-bean.com>
10942
10943	* log.c (log_usage): Revert Jim Kingdon's reversion of my change
10944	of 1999-11-03.  Allowing a space between option and argument
10945	results in lossage; here is a reproduction recipe: run this from
10946	the top of a remote copy of the cvs source tree
10947
10948	   cvs log -d '>1999-03-01' > log-out.with-space
10949
10950	and then run this (note there's no space after -d now):
10951
10952	   cvs log -d'>1999-03-01' > log-out.no-space
10953
10954	The resulting files differ; furthermore, a glance at the output of
10955	cvs shows that the first command failed to recurse into
10956	subdirectories.  Until this misbehavior can be fixed in the source
10957	code, the documentation should reflect the true state of affairs:
10958	if one simply omits the space, everything works fine.
10959
109601999-11-04  Jim Kingdon  <http://developer.redhat.com/>
10961
10962	* log.c (log_usage): Revert Karl's change regarding -d and
10963	-s.  A space is allowed (see sanity.sh for example).
10964
109651999-11-03  K.J. Paradise (kj@sourcegear.com>
10966
10967	* history.c: cleaned up my prior change a bit, per Larry Jones'
10968	comments, and John O'Conner's additional comments about bits of
10969	non MS-Visual C++ compliancy of my code.
10970
109711999-11-04  Larry Jones <larry.jones@sdrc.com>
10972
10973	* sanity.sh: Check that tr that correctly handles NULs; if not, try
10974	to find a version that does; if none can be found, warn user.
10975	Also fix warnings for defective expr.
10976
109771999-11-04  Karl Fogel  <kfogel@red-bean.com>
10978
10979	Changes for empty/random passwords in anon pserver access:
10980
10981	* server.c (check_repository_password): if password empty, grant
10982	access no matter what password is received; this is so anon CVS no
10983	longer requires a password but remains backwards-compatible with
10984	all those clients out there.
10985
10986	* client.c (connect_to_pserver): proceed with login even if
10987	password not found in .cvspass file -- just use empty string as
10988	password.  And if such a login fails, print a descriptive error.
10989
10990	* login.c (get_cvs_password): don't complain if file or password
10991	not found.  That condition is no longer a showstopper, now that
10992	empty passwords are permissible.
10993	Cleaned up conditional chaining a bit, too.
10994
10995	* sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
10996	pserver-13): new tests, about empty-password pserver access.
10997
109981999-11-03  K.J. Paradise (kj@sourcegear.com>
10999
11000	* history.c:  modify parsing routines to parse the history
11001	file a block at a time, rather than all at once.  This allows
11002	people with large history files and small amount of memory
11003	to still get some functionality out of the history file.
11004
110051999-11-03  Karl Fogel  <kfogel@red-bean.com>
11006
11007	* log.c (log_usage): correct usage message for -d and -s options.
11008	Because the space between the option letter and its argument has
11009	been eliminated, I capitalized the argument portion to distinguish
11010	it from the option letter.  This makes it slightly inconsistent
11011	with other such usage summaries, but at least it is now both
11012	correct and readable.
11013
110141999-10-22  Larry Jones  <larry.jones@sdrc.com>
11015
11016	* sanity.sh (dotest_sort): Old versions of tr don't understand \t
11017	so use a literal tab instead.
11018
110191999-10-21  Larry Jones  <larry.jones@sdrc.com>
11020
11021	* sanity.sh (dotest_sort): Convert any tabs in the output into spaces
11022	before sorting to avoid POSIX.2 sort weirdness.
11023	(import-106, importb-2): Change expected output per above.
11024
110251999-10-18  K.J. Paradise <kj@sourcegear.com>
11026
11027	Bug: users 'stan' and 'cartman' both have full read/write access
11028	to the cvs repository.  'cartman' does a 'cvs admin -l foo.c'.
11029	'stan' then does a 'cvs admin -u foo.c'.  The lock wouldn't be
11030	removed, and no warning/error would be given.  This is now fixed.
11031	* rcs.c:(c.6157) remove caller/user check on the multiple lock
11032        detection routines.  Sanity.sh runs with no errors after this fix.
11033
110341999-10-14  Larry Jones  <larry.jones@sdrc.com>
11035
11036	Make "cvs admin -e" (with no list of users) work:
11037	* admin.c (admin): Remove error message.
11038	(admin_fileproc): If no args for -e, call RCS_delaccess with NULL user.
11039	* rcs.c (RCS_delaccess): Interpret NULL user as request to delete
11040	entire access list.
11041	* sanity.sh (admin-19a-*): Test.
11042
110431999-09-29  Larry Jones  <larry.jones@sdrc.com>
11044
11045	* entries.c (Subdirs_Known): Use entfilename when opening CVSADM_ENTLOG
11046	like everywhere else.  Although this isn't strictly necessary (since
11047	we immediately close it again), it keeps the code consistent and fixes
11048	a bug where an open error reported the wrong file name.
11049
110501999-09-16  Larry Jones  <larry.jones@sdrc.com>
11051
11052	* log.c (log_parse_revlist): Handle peculiar revision specs like
11053	"-r.", "-r:", and "-r," correctly.  (Thanks to Pavel Roskin
11054	<pavel_roskin@geocities.com> for submitting a patch, this fix is
11055	somewhat different.)
11056	* sanity.sh (log): New tests for above.
11057
110581999-09-15  Larry Jones  <larry.jones@sdrc.com>
11059
11060	* sanity.sh (basica-8b1): New test to check fix for bad diff options
11061	causing cvs to crash.
11062
110631999-09-02  Larry Jones  <larry.jones@sdrc.com>
11064
11065	* modules.c (do_module): Handle case where module definition has
11066	options and special options but no directory; fix potential problems
11067	running off beginning of string while stripping trailing blanks.
11068	* sanity.sh (modules2): New tests for above.
11069
110701999-08-26  Larry Jones  <larry.jones@sdrc.com>
11071
11072	* lock.c (lock_name): Remove side-effects from assert() expression
11073	since they won't occur if NDEBUG is defined (not that that's a good
11074	thing to do).  (Reported by KOIE Hidetaka <hide@koie.org>.)
11075
110761999-08-25  Larry Jones  <larry.jones@sdrc.com>
11077
11078	* sanity.sh: Use "${AWK}" instead of "awk" to make it easier for
11079	people to use nawk/gawk/etc.; use an explicit "-print" with find
11080	since some older version don't assume it; rename tests to avoid
11081	duplicate importc-8.  (Changes along these lines suggested by
11082	Chris Cameron <chris.cameron@ot.co.nz>.)
11083
110841999-08-24  Larry Jones  <larry.jones@sdrc.com>
11085
11086	* commit.c (check_fileproc): Don't crash when a file has no
11087	repository, just treat it as unknown.  (Reported by Stefaan
11088	Diericx <stefaan.diericx@argenta.be>.)
11089	* sanity.sh (errmsg2): New tests, for this fix.
11090
110911999-08-18  Larry Jones  <larry.jones@sdrc.com>
11092
11093	* update.c (special_file_mismatch): Initialize *_hardlinks to
11094	avoid trying to free garbage later on.  (Reported by Jan
11095	Scheffczyk <herta@Xterminator.StudFB.UniBw-Muenchen.de>.)
11096
110971999-08-17  Larry Jones  <larry.jones@sdrc.com>
11098
11099	* sanity.sh (basicc-11): Older versions of sh don't understand
11100	``if ! test...''.  (Patch submitted by David J N Begley
11101	<david@avarice.nepean.uws.edu.au>.)
11102
111031999-08-17  Larry Jones  <larry.jones@sdrc.com>
11104
11105	* client.c, hardlink.c, hash.c, hash.h, main.c, recurse.c: Change
11106	enum constant UNKNOWN to avoid conflicts on HPUX 11.0.  (Reported
11107	by Laurent Duperval <laurent.duperval@cgi.ca>.)
11108
111091999-08-16  Larry Jones  <larry.jones@sdrc.com>
11110
11111	client.c: Eliminate redundant #if.  (Patch submitted by Assar
11112	Westerlund <assar@sics.se>.)
11113
111141999-07-30  Larry Jones  <larry.jones@sdrc.com>
11115
11116	* rcs.c (RCS_checkin): Terminate cleanly if RCS_addbranch fails
11117	rather than blithely continuing on and crashing.
11118	* sanity.sh (basica): New tests, for this fix.
11119
111201999-07-29  Larry Jones  <larry.jones@sdrc.com>
11121
11122	* import.c (add_rcs_file): change "cannot lstat" message to include
11123	userfile (the actual file causing the problem) instead of user
11124	(which may or may not be the same).
11125
111261999-07-29  Eric Sink   <eric@sourcegear.com>
11127
11128	* version.c: Push version number to 1.10.7.1.
11129
11130	* version.c: Version 1.10.7.
11131
111321999-07-28  Eric Sink   <eric@sourcegear.com>
11133
11134	* sanity.sh: before running basicc-11, we need to see if
11135	the cwd has been deleted (by basicc-8).  If so, we
11136	recreate it to allow basicc-11 to proceed.  This may be
11137	something that only happens under the Linux 2.2 kernel.
11138
111391999-07-18  Karl Fogel  <kfogel@floss.red-bean.com>
11140
11141	* edit.c (notify_do): chop newline, if any, from the value
11142	obtained from CVSROOT/users.  Otherwise it just gets passed along
11143	in the argument to the notification program (usually mail), which
11144	will misinterpret it as signifying the end of the command.
11145
111461999-07-19  Larry Jones  <larry.jones@sdrc.com>
11147
11148	* rcs.c (RCS_delete_revs): In the WIN32 kludge, be sure that the result
11149	of RCS_getexpand is not NULL before trying to use what it points to.
11150	(Patch submitted by Timothy L. Taylor <ttaylor@mitre.org>.)
11151
111521999-07-16  Tom Tromey  <tromey@cygnus.com>
11153
11154	* admin.c (admin): Allow `-k' options to be used unrestricted.
11155
111561999-06-23  Jim Kingdon  <http://www.cyclic.com>
11157
11158	* sanity.sh (symlinks2): New test, for symlinks in working
11159	directory without PreservePermissions.  This test (modulo a few
11160	details not relevant to testing whether we are following symlinks)
11161	worked remote as of now, or either remote or local for CVS 1.9.
11162	* subr.c (get_file): Revert 1998-02-15 change to special-case
11163	symlinks.  This makes the above test work local too.
11164	* rcs.c (RCS_checkin): Move the logic to handle special-case
11165	symlinks (and other files other than regular files) here, and make
11166	it only happen if PreservePermissions is on.
11167
111681999-06-18  Larry Jones  <larry.jones@sdrc.com>
11169
11170	* sanity.sh (devcom3-9a): Be less specific about the expected
11171	error message (BSD/OS 4.0 has a bug that can cause exec* to fail
11172	with EACCES instead of ENOENT).
11173
111741999-06-08  Larry Jones  <larry.jones@sdrc.com>
11175
11176	* sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
11177	Use ${PROG} instead of "cvs".
11178
111791999-06-05  Jim Kingdon  <http://www.cyclic.com>
11180
11181	* recurse.c (do_recursion, do_dir_proc): Make the SERVER_ACTIVE
11182	#ifdef be only around the check for server_active.  Modulo a few
11183	cosmetic tweaks, same as a patch submitted by Johannes Stezenbach
11184	of propack-data.de.
11185
111861999-06-01  Jim Kingdon  <http://www.cyclic.com>
11187
11188	* sanity.sh: Add comment about rcs2-7 failures on certain days.
11189
11190	Make "cvs status -v" on a removed file work:
11191	* status.c (cvsstatus): Reindent the client code.
11192	(status_fileproc): Don't need a CVS/Entries listing to show the
11193	tags.
11194	* sanity.sh (rmadd2): New test rmadd2-16 tests the existing
11195	behavior with "cvs log"; new test rmadd2-17 tests the new behavior
11196	with "cvs status".
11197
11198	* sanity.sh (basicc): To match no output in dotest, put the empty
11199	regexp first.  Remove tests which check that first-dir exists,
11200	since that isn't true in the case where the OS let us delete it.
11201	(dotest_internal): Fix so that things work with two regexps, with
11202	an empty one first.
11203
112041999-05-28  Larry Jones  <larry.jones@sdrc.com>
11205
11206	* sanity.sh (server-4): Replace bogus directory with real one since
11207	the server now checks it.
11208
112091999-05-27  Jim Kingdon  <http://www.cyclic.com>
11210
11211	* sanity.sh (spacefiles): Clean up -c, top, and -b at end.
11212	(spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
11213
11214	Fix two problems pointed out by Olaf Kirch of swb.de/caldera.de:
11215	* server.c (outside_root): New function, contains expanded version
11216	of code from serve_directory.
11217	(serve_directory): Call outside_root.
11218	(outside_dir): New function
11219	(serve_modified, serve_is_modified, serve_notify,
11220	serve_questionable, serve_unchanged): Call outside_dir.
11221	* sanity.sh (server2): New tests, for these fixes.
11222
112231999-05-26  Jim Kingdon  <http://www.cyclic.com>
11224
11225	* cvs.h, subr.c (xmalloc): Return void* not char*, like xrealloc
11226	has done for some time.
11227	* modules.c (do_module): If we find the module as a directory/file
11228	(rather than in the modules file), skip a bunch of processing
11229	which was unnecessary and also broken in most of the cases
11230	now tested for by the spacefiles sanity.sh test.
11231	* sanity.sh (spacefiles): New test, for specifying filenames
11232	(containing spaces, or starting with '-', or starting with '/') to
11233	"cvs co".
11234
112351999-05-25  Jim Kingdon  <http://www.cyclic.com>
11236
11237	* client.c (update_entries): Make the old DONT_USE_PATCH code the
11238	only code.  This means that if people are still on CVS 1.9
11239	servers, then CVS will fall back to transferring entire files.
11240	This is better than looking for an external "patch" program which
11241	causes no end of troubles (especially on Windows, but someone just
11242	posted to info-cvs about a problem with the Solaris patch).  (This
11243	change was run by devel-cvs and feedback was positive).
11244
11245	* subr.c (xmalloc, xrealloc): The new error.c does not support
11246	%lu; use sprintf instead.
11247
112481999-05-25 Derek Price
11249	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11250
11251	* sanity.sh (server): Escaped a few more newlines in
11252	another awk script.  Solaris awk still don't like 'em.
11253
112541999-05-25 Derek Price
11255	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11256	and Jim Kingdon
11257
11258	* log.c: Remove comment which said "you can delete [this line]"
11259	and which stuck around for over 3 years.
11260	* sanity.sh (errmsg2 & tagdate): Added tests to prove the
11261	current functionality with respect to combining -r and -D.
11262
112631999-05-20  Larry Jones  <larry.jones@sdrc.com>
11264
11265	* server.c (pserver_authenticate_connection): Previous changes
11266	broke verify_and_exit (reported by Robert Fitzsimons, thanks).
11267	* sanity.sh (pserver): New tests pserver-7 and pserver-8 for this.
11268
112691999-05-18 Derek Price
11270	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11271
11272	* sanity.sh (keyword2): Escaped a newline in an awk script.
11273	Apparently Solaris awk don't like 'em.
11274
112751999-05-18  Jim Kingdon  <http://www.cyclic.com>
11276
11277	* sanity.sh (basicc): Allow the behavior whereby unlink(".")
11278	succeeds.  Reported by Jeremy Buhler and Pavel Roskin.
11279
112801999-05-17  Steve Cameron of Compaq
11281
11282	* sanity.sh: Modified to no longer use "test -e" for existence
11283	test as it has turned out to be not portable enough.  Instead use
11284	"test -f", "test -d", etc.
11285	[SCO Unixware 7 apparently doesn't always support it -kingdon]
11286
112871999-05-17  Jim Kingdon  <http://www.cyclic.com>
11288
11289	* version.c: Push version number to 1.10.6.1.
11290
11291	* version.c: Version 1.10.6.
11292
112931999-05-16  Jim Kingdon  <http://www.cyclic.com>
11294
11295	* update.c (patch_file): When we are passing vn_rcs to
11296	RCS_checkout, pass vn_tag as well.
11297	* sanity.sh (keyword): In test keyword-22, test for the fixed
11298	behavior rather than the buggy behavior.  Adjust keyword-23.  Add
11299	test keyword-24, to see whether keyword-23 really worked.
11300
113011999-05-12  Larry Jones  <larry.jones@sdrc.com>
11302
11303	* sanity.sh (pserver-4, pserver-5): Bogus error messages from
11304	non-root initgroups on some 4.4BSD derived systems now show up
11305	in different places in the output.
11306
113071999-05-12  Jim Kingdon  <http://www.cyclic.com>
11308
11309	* import.c (import): Don't allow the user to supply a repository
11310	directory which takes us out of the cvsroot.
11311	* sanity.sh (importc): New tests importc-10 to importc-12, for this.
11312
113131999-05-11  Larry Jones  <larry.jones@sdrc.com>
11314
11315	* server.c (serve_notify): Allocate enough memory to hold the
11316	"misformed Notify request" message in pending_error_text.
11317
113181999-05-11  Jim Kingdon  <http://www.cyclic.com>
11319
11320	* server.c (switch_to_user): Ignore EPERM from initgroups.  Fixes
11321	pserver-4 in testsuite.
11322	(pserver_authenticate_connection): Only print "I LOVE YOU" after
11323	switch_to_user has come back successfully.
11324
11325	* server.c (pserver_authenticate_connection): Call error_exit
11326	rather than reinventing the wheel ourselves.
11327	(switch_to_user): Check for errors from setuid, setgid, and
11328	initgroups.  Fix the #ifdef's (the previous code would skip the
11329	setuid call if SETXID_SUPPORT).
11330
113311999-05-10  Jim Kingdon  <http://www.cyclic.com>
11332
11333	* server.c (serve_notify), edit.c (notify_do): Check for
11334	and reject characters which will get confused with delimiters.
11335	* sanity.sh (server): New tests server-7 through server-15 test
11336	for this and for other notify behaviors.
11337
11338	* rcs.c (RCS_tag2rev): Also look for a physical branch with
11339	RCS_getversion.
11340	* sanity.sh (tagf): Adjust tagf-12 and following tests to test for
11341	the fixed behavior rather than the broken behavior.
11342
113431999-05-07  Jim Kingdon  <http://www.cyclic.com>
11344
11345	* server.c (server_notify): Also set last_node to NULL.
11346	* sanity.sh (server): New tests server-6 and server-7, for this.
11347
113481999-05-05  Jim Kingdon  <http://www.cyclic.com>
11349
11350	* rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
11351
11352	* add.c (add): Look for directories with the same name in a
11353	different case where appropriate (analogous to fopen_case).
11354	In client code, add comment about how this doesn't do quite
11355	everything.
11356
113571999-05-03  Jim Meyering  <meyering@ascend.com>
11358
11359	Remove rcs-style ,file, lock files upon signal.
11360	* rcs.c (rcs_lockfile): New file-scoped global.
11361	(rcs_cleanup): New function (similar to patch_cleanup).
11362	(rcs_internal_lockfile): Register rcs_cleanup the first time this
11363	function is called.  Rename uses of local `lockfile' to refer to new
11364	global, `rcs_lockfile'.  Don't free the lock file name string, now
11365	that it's global.
11366	(rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
11367	free and NULL-out the global, rcs_lockfile.
11368
113691999-04-30  Jim Kingdon  <http://www.cyclic.com>
11370
11371	* rcs.c (annotate_fileproc): Don't cast NULL in passing it to
11372	RCS_deltas.  Because there is a prototype in scope the cast is
11373	unnecessary (per HACKING's ANSI C or SunOS4 rule), and in fact it
11374	was causing failures on UNICOS because it cast to size_t instead
11375	of size_t*.  (Thanks to Dean Kopesky for reporting this).
11376
113771999-04-29  Jim Kingdon  <http://www.cyclic.com>
11378
11379	* sanity.sh: If invoked without any arguments, print a usage
11380	message (thanks to Pavel Roskin for a report/patch).
11381
11382	* run.c (piped_child): Make the error messages more verbose.
11383	(close_on_exec): Reindent.
11384	* sanity.sh (devcom3): Several errors are possible in devcom3-9a.
11385	Adjust for change to piped_child error message.
11386
113871999-04-28  Jim Kingdon  <http://www.cyclic.com>
11388
11389	* sanity.sh (devcom3): Add some tests of the CVS/Notify file and
11390	disconnected "cvs edit".
11391
11392	* main.c (opt_usage): Remove -b.
11393
113941999-04-20 Derek Price
11395	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11396
11397	* rcs.c (RCS_delete_revs):  RCS_delete_revs uses an
11398	RCS_checkout call to get a new copy of a revision to be
11399	used internally after old revisions were deleted and it was
11400	performing keyword substitutions.  This munged all the
11401	the revisions of the file on the branch containing the
11402	deleted revisions and its sub-branches, as the original they
11403	were being patched from was incorrect.  Corrected this by
11404	passing in "-ko" as an option to RCS_checkout.
11405	* sanity.sh (keywordlog):  modified this test to verify the
11406	correct behavior of 'cvs admin -o'.
11407	[Fixed use of \$ in keywordlog test; added code in RCS_delete_revs
11408	to abort on binary file on Windows -kingdon]
11409
114101999-04-21  Derek Price
11411	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11412	and Jim Kingdon
11413
11414	* tag.c (tag_check_valid): A bug was causing CVS to spin
11415	indefinately when -j:<date> was specified.  CVS now returns
11416	an error.
11417	* sanity.sh: Added a test (tagdate-12) to test this.
11418
114191999-04-19  Jim Kingdon  <http://www.cyclic.com>
11420
11421	* sanity.sh (backuprecover): Clean up the repository at the end.
11422
114231999-04-18  Derek Price
11424	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11425
11426	* sanity.sh added a test (backuprecover) to test cvs behavior
11427	with a repository that is out of date relative to the
11428	developer's workspaces.
11429	[Fix --keep code; move test to "Repository Storage" section since
11430	it doesn't really exercise the diff/diff3 library. -kingdon]
11431
114321999-04-13  Derek Price
11433	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11434
11435	* sanity.sh (diff):  Tests to verify correct operation of
11436	the --ifdef parameter to cvs diff.
11437	[indentation fixed -kingdon].
11438
114391999-04-13  Derek Price
11440	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11441	for Noah Friedman  <friedman@splode.com>
11442
11443        * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
11444        latter is confused by pserver for a date spec.
11445
114461999-04-14  Jim Kingdon  <http://www.cyclic.com>
11447
11448	* fileattr.h: Adjust comments to reflect the official version of
11449	the fileattr format now being in cvs.texinfo.
11450
114511999-04-05  Jim Kingdon
11452
11453	* sanity.sh (watch5): Remove nonstandard --keep code.  Don't pass
11454	-f to rm when cleaning up (that tends to mask bugs).  Add watch5
11455	to list of tests at start.  Add comment explaining why we consider
11456	the behavior we test for the right one.  Rename a few tests which
11457	had been erroneously named watch6* instead of watch5*.
11458	* client.c (update_entries): Add comment with brief discussion of
11459	whether there is a better way.
11460
114611999-04-05  Derek Price
11462	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11463
11464	* client.c (update_entries):  Only call mark_up_to_date
11465	(which deletes the CVS/Base/<filename> file for watched
11466	and edited files) on commit.
11467	* sanity.sh:  Make sure the CVS/Base/<filename> file for
11468	a watched and edited file is not removed on a status or
11469	update of a touched/unmodfied file.
11470
114711999-03-30  Larry Jones  <larry.jones@sdrc.com>
11472
11473	* client.c (get_responses_and_close), commit.c (commit),
11474	update.c (do_update): If the sleep(1) call returns prematurely
11475	(due to the way wakeup is scheduled or receiving a signal), do
11476	it again.
11477
114781999-03-26  Jim Kingdon  <http://www.cyclic.com>
11479
11480	* server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
11481
11482	* sanity.sh (modules3-11b): Adjust exact text of error message to
11483	reflect 1999-03-24 change to dirswitch.
11484
114851999-03-25  Jim Kingdon  <http://www.cyclic.com>
11486
11487	* admin.c (admin): Make argument to -e optional, to match the
11488	documentation.
11489	* sanity.sh (admin-19a-2): Test for this.
11490
11491	* server.c (serve_root): Update comment about checking for missing
11492	Root request.
11493
114941999-03-24  Jim Kingdon  <http://www.cyclic.com>
11495
11496	* server.c (dirswitch): Also check dir here, similar to
11497	what server_pathname_check does for other cases.
11498	* sanity.sh (files): Adjust files-14 to test for this.
11499
115001999-03-24  Derek Price
11501	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11502	and Jim Kingdon
11503
11504	* sanity.sh: added a test (files-13) to test .. indirection
11505	in a path and another (files-14) to make sure we still fail
11506	out when the '..' indirection takes us into the $CVSROOT
11507	directory or beyond.
11508
115091999-03-24  Larry Jones  <larry.jones@sdrc.com>
11510
11511	* rcs.c: Change enum constants ADD and DELETE to something less
11512	likely to run into conflicts.
11513
115141999-03-21  Jim Kingdon  <http://www.cyclic.com>
11515
11516	* sanity.sh (tagf): New test, tests for moving a branch tag to a
11517	non-branch tag and trying to recover.
11518
115191999-03-12  Jim Kingdon  <http://www.cyclic.com>
11520
11521	* sanity.sh (branches): Tweak test branches-5 to test the case in
11522	which one modifies a file and then branches it.
11523
115241999-03-09  John Bley of duke.edu
11525
11526	* mkmodules.c (filelist): Missed a NULL in this struct (should
11527	have 3 members, only had 2).
11528
115291999-03-07  Jim Kingdon  <http://www.cyclic.com>
11530
11531	* sanity.sh (Index): Rename new test from rm_CVS/Root to rmroot
11532	(we don't have a formal rule about funky punctuation in test names
11533	but both underscore and a slash is too funky for me :-)).
11534	Reindent a few tests which were off.
11535
11536	* root.c: Remove the sentence which had the improper English;
11537	there isn't really a need for that sentence and it isn't
11538	particularly accurate any more.
11539
115401999-02-27  Derek Price
11541	<http://www-personal.engin.umich.edu/~oberon/resume.html>
11542
11543	* sanity.sh:  Added rm_CVS/Root test to test that CVS uses
11544	$CVSROOT rather than dumping core when running remotely and
11545	the admin file CVS/Root is deleted from the workspace.
11546
11547	Also, altered a few 'cvs commit' 's in regular expressions to
11548	fit the .${PROG} commit. portability syntax.
11549
11550	* recurse.c:  Stopped CVS from dumping core in the case tested
11551	above.
11552
11553	* root.c:  Fixed somebody's improper english.
11554
115551999-02-25  Larry Jones  <larry.jones@sdrc.com>
11556
11557	* sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
11558	expected result.
11559
115601999-02-24  Jim Kingdon  <http://www.cyclic.com>
11561
11562	* sanity.sh (keyword2): Restore the original \\\$ instead of $.
11563	The latter ends up working due to various kludgy semantics in the
11564	shell and regular expressions, but the former is cleaner.
11565
11566	* sanity.sh (keyword2): Protect keywords against accidental
11567	expansion in sanity.sh itself (most occurrences had this, but not
11568	all).
11569
115701999-02-23  Derek Price  <http://www.cyclic.com>
11571	and Jim Kingdon.
11572
11573	* sanity.sh (keyword2): New test, tests for merging with -kk.
11574
115751999-02-22  Jim Kingdon  <http://www.cyclic.com>
11576
11577	* version.c: Ease version number to 1.10.5.1.
11578
11579	* version.c: Version 1.10.5.
11580
115811999-02-18  Jim Kingdon  <http://www.cyclic.com>
11582
11583	* sanity.sh (files): New test, for a relatively obscure spurious
11584	"Up-to-date check failed" in client/server.
11585
11586	* main.c (lookup_command_attribute): Don't check for "history"
11587	twice.
11588
115891999-02-17  Jim Kingdon  <http://www.cyclic.com>
11590	    and Hallvard B Furuseth
11591
11592	* root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
11593	warnings about statement not reached.
11594
115951999-02-16  Jim Kingdon  <http://www.cyclic.com>
11596
11597	* recurse.c (start_recursion): If we are skipping the current
11598	directory (due to it being from the wrong repository), also adjust
11599	the arguments we send to the server accordingly (like we already
11600	do for the case in which there is no CVS directory).
11601	* sanity.sh (multiroot4): New test, for this.  All these tests had
11602	passed locally, but remote multiroot4-12 tests for this fix.
11603	(multiroot): Adjust multiroot-diff-1, multiroot-update-2,
11604	multiroot-tag-1, multiroot-status-1, multiroot-update-3, and
11605	multiroot-log-1 to reflect the cosmetic change this produces (one
11606	less "Diffing ." message).
11607	(multiroot2): multiroot2-8 likewise.
11608
116091999-02-10  Jim Kingdon  <http://www.cyclic.com>
11610
11611	* tag.c (cvstag): Don't pass SEND_NO_CONTENTS if -c specified.
11612	* sanity.sh (tagc): New test, for various tag -c behaviors.
11613	Test tagc-6 tests for this fix.
11614
116151999-02-09  Jim Kingdon  <http://www.cyclic.com>
11616
11617	* error.c (error): Rewrite to no longer use vasprintf (see
11618	../lib/ChangeLog for rationale).  Note the slight change in
11619	interface - callers which want %8.8s or similar formats need to
11620	call sprintf.
11621	* lock.c (lock_wait, lock_obtained): Use sprintf.
11622
116231999-02-08  Jim Kingdon  <http://www.cyclic.com>
11624
11625	* rcs.c (RCS_delete_revs): Pass -a to diff_exec.
11626	* sanity.sh (binfiles3): New tests binfiles3-9 through
11627	binfiles3-13 test for this fix.
11628	* sanity.sh (binfiles): New tests binfiles-o4 and binfiles-o5
11629	(which don't test this bug, just on general principles).
11630
116311999-02-04  Jim Kingdon  <http://www.cyclic.com>
11632
11633	* lock.c (lock_name): Permissions of directories in LockDir
11634	shouldn't depend on the umask.
11635	* sanity.sh (lockfiles): Set umask and CVSUMASK, to test for this.
11636
116371999-02-01  Jim Kingdon  <http://www.cyclic.com>
11638
11639	* sanity.sh (keywordlog): New tests keywordlog-22 and
11640	keywordlog-23 test keyword expansion and $Log.  Adjust other tests
11641	so that revisions differ more from each other, so this is a
11642	better test.
11643
116441999-01-29  Jim Kingdon  <http://www.cyclic.com>
11645
11646	* commit.c (checkaddfile): If options is "", treat it the same as
11647	NULL.  Centralize this check, and the one for it starting with
11648	"-k", at the start of the function.
11649
11650	* rcs.c, rcs.h (RCS_setexpand): New function.
11651	* admin.c (admin_fileproc): Access keyword expansion field via
11652	RCS_getexpand and RCS_setexpand, rather than directly.
11653	* commit.c (checkaddfile): When resurrecting, set the keyword
11654	expansion mode.
11655	* sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
11656	for the new behavior.
11657
116581999-01-27  Jim Kingdon  <http://www.cyclic.com>
11659
11660	* sanity.sh (multiroot3): Add new variant of multiroot3-10 test
11661	for RELATIVE_REPOS.  Move multiroot3-11 test out of the
11662	conditionals; it works the same for remote or local,
11663	RELATIVE_REPOS or no.
11664
11665	* options.h.in: Make RELATIVE_REPOS the default, as has been
11666	announced as a future direction since 1997-10-11.
11667	* sanity.sh (multiroot): Tweak multiroot-update-1a and
11668	multiroot-update-1b tests to work with either RELATIVE_REPOS or
11669	non-RELATIVE_REPOS.
11670
11671	* sanity.sh (client-9): Don't assume the time zone.
11672
116731999-01-26  Jim Kingdon  <http://www.cyclic.com>
11674
11675	Fix one facet of the "cvs add -kb" re-adding problem (the other
11676	known facet is tested for by binfiles3-8).
11677	* add.c (add): When re-adding a file, set the keyword expansion
11678	as we normally would.
11679	* sanity.sh (binfiles3): New test binfiles3-6a tests for this.
11680
116811999-01-22  Jim Kingdon  <http://www.cyclic.com>
11682
11683	* sanity.sh (rmadd2): New tests, for undoing a commit.
11684
116851999-01-21  Eric Mumpower  <nocturne@cygnus.com>
11686
11687	* sanity.sh (reposmv): Actually modify CVSROOT in current
11688	environment when calling functions, rather than trying to achieve
11689	the same effect with "CVSROOT=foo functionname". (Many common
11690	bourne shells, including those in SunOS and Solaris 2.4-2.7,
11691	do not properly handle "ENVVAR=foo command" when "command" is
11692	a user-defined shell function rather than an actual executable.)
11693
116941999-01-15  Jim Kingdon  <http://www.cyclic.com>
11695
11696	* sanity.sh (rcs3): Redirect awk's stdin to /dev/null like all the
11697	other awk invocations.  GNU awk seems not to read stdin in this
11698	case, but that behavior is hard to reconcile with the Single Unix
11699	Spec and some awks don't do it.
11700
11701	* sanity.sh (binfiles, binfiles2, binfiles3, server): Use the same
11702	tr trick as in rcs3.  People don't seem to have been complaining,
11703	and this should fix server-4 for HPUX.
11704
117051999-01-14  Jim Kingdon  <http://www.cyclic.com>
11706
11707	* client.c (recv_line): If the line we are reading contains a
11708	character which would sign-extend to EOF, don't treat it as end of
11709	file.  recv() doesn't report end of file this way and this might
11710	fix bugs with 0xff characters.
11711
117121999-01-14  Larry Jones  <larry.jones@sdrc.com>
11713
11714	* client.c (recv_line): Handle EOF from server.
11715
11716	* sanity.sh (importc-8, importc-9): Accept anything in the seconds
11717	fields of the timestamps since touch doesn't set it reliably.
11718	(This isn't great, but it's better than nothing.)
11719
117201999-01-14  Jim Kingdon  <http://www.cyclic.com>
11721
11722	* run.c (run_exec): Adjust comment about vfork; this isn't the place
11723	to get into a treatise about fork performance vs. vfork
11724	performance but it isn't quite as simple as whether one has
11725	copy-on-write.
11726
117271999-01-13  Larry Jones  <larry.jones@sdrc.com>
11728
11729	* sanity.sh (dotest_fail): Handle spurrious output from assert better.
11730
11731	* sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
11732	assertion failure message.
11733
117341999-01-12  Larry Jones  <larry.jones@sdrc.com>
11735
11736	* sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
11737        just use echo instead.
11738
117391999-01-11  Jim Meyering  <meyering@ascend.com>
11740
11741	* sanity.sh (mkmodules-temp-file-removal): New test, for this.
11742	* mkmodules.c (mkmodules): Remove each `CVSROOT/.#[0-9]*' temporary
11743	file that's used to check out files listed in CVSROOT/checkoutlist.
11744	Remove extra semicolon at end of line.
11745
117461999-01-11  Larry Jones  <larry.jones@sdrc.com>
11747
11748	* sanity.sh (rcs3-5a): Allow for multiple lines of output before the
11749	assertion failure message.
11750
11751	* sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
11752	(doesn't allow anything to follow omitted permissions).
11753
117541999-01-09  Jim Kingdon  <http://www.cyclic.com>
11755
11756	* client.c (set_sticky): Nonfatal error if we can't write it.
11757	* sanity.sh (dirs2-8 through dirs2-14): New tests, for this.
11758
11759	* sanity.sh (rcs3): Write NUL character with tr not awk, in
11760	accordance with Single Unix Specification.  Hopefully will fix
11761	rcs3-7 for HPUX.  Will not work on SunOS4, but then again neither
11762	did the old syntax.
11763
117641999-01-05  Jim Kingdon  <http://www.cyclic.com>
11765
11766	* client.c, update.c: Rename MD5* functions to cvs_MD5* per
11767	corresponding change to ../lib/md5.h.
11768
117691999-01-03  Jim Kingdon  <http://www.cyclic.com>
11770
11771	* sanity.sh (client): Give file1 a predictable mode so that the
11772	output in client-9 will not depend on the umask of the user
11773	running the tests.
11774
117751998-12-29  Jim Kingdon  <http://www.cyclic.com>
11776
11777	* client.c (client_senddate): Use date_to_internet rather than
11778	using our own "5/26/1997 13:01:40 GMT" date format.
11779	* main.c (date_to_internet): Check for errors from sscanf.  Always
11780	send a four digit year.  Send hours, minutes, and seconds as two
11781	digits per RFC822.
11782	* sanity.sh (client): New tests client-8 and client-9 test for this.
11783
11784	* sanity.sh (rcs2): New tests rcs2-6 through rcs2-8 test for fix
11785	to lib/getdate.y (before the fix, "100 months" or "8 years" would
11786	tend to mean the year 1969, thus the tests would give "cvs update:
11787	file1 is no longer in the repository").
11788
117891998-12-28  Larry Jones  <larry.jones@sdrc.com>
11790
11791	* entries.c (Register): Return if unable to open log file to avoid
11792	referencing the invalid file pointer.
11793	* sanity.sh (dirs2-7): With above change, no longer fails.
11794	* sanity.sh (rcs3-5a): Another assertion failure message.
11795	* sanity.sh (pserver-4, pserver-5): Some 4.4BSD derived systems spit
11796	out bogus error messages when initgroups is called as non-root.
11797
117981998-12-23  Larry Jones  <larry.jones@sdrc.com>
11799
11800	* sanity.sh (rcs3, dotest_fail): The assertion failure message varies
11801	wildly between different systems and the resulting abort call can
11802	even result in spurrious output.  Fix the regexp to accept nearly
11803	anything containing some kind of assertion failure and ensure that
11804	any spurrious output ends up in the output file instead of on the
11805	terminal.
11806
118071998-12-23  Jim Kingdon  <http://www.cyclic.com>
11808
11809	* admin.c, checkout.c, commit.c, cvsrc.c, expand_path.c,
11810	history.c, ignore.c, import.c, log.c, mkmodules.c, modules.c,
11811	myndbm.c, parseinfo.c, rcs.c, remove.c, rtag.c, status.c, subr.c,
11812	tag.c, wrapper.c: Cast all char's to unsigned char before passing
11813	them to ctype.h functions (isalpha, isgraph, isalnum, isspace,
11814	isdigit, isprint, isupper).  Whether using ctype.h is the right
11815	thing at all is unclear to me (having the server depend on locale
11816	seems wrong, as we don't necessarily have any good way to set the
11817	right locale, if there even is such a concept as 'right' locale in
11818	this context), but as long as we use ctype.h we might as use it
11819	according to the standards (this affects systems where plain char
11820	is signed but users supply characters with the 8th bit set).
11821	Thanks to Paul Eggert for suggesting this.
11822
118231998-12-22  Jim Kingdon  <http://www.cyclic.com>
11824
11825	* sanity.sh (rcs3): Oops, the earlier fix for srcdir only fixed
11826	the non-remote case, not the remote case.  Fix the other occurrence.
11827
118281998-12-22  Jim Kingdon
11829
11830	* sanity.sh (rcs3): The assertion failure message varies slightly
11831	depending on whether CVS was built with srcdir != ".".  Fix regexp.
11832
118331998-12-21  Jim Kingdon
11834
11835	* rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
11836	unused variable x_vers.
11837
11838	* rcs.c: When printing an unexpected character we found in the RCS
11839	file, print it in hex rather than as a character (see comment for
11840	rationale).
11841	* sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
11842
11843	* sanity.sh (rcs3): New test, for some error handling cases
11844	involving parsing RCS files.
11845
118461998-12-16  Jim Meyering  <meyering@ascend.com>
11847
11848	* rcs.c (RCS_getdate): Handle the case in which a file is first
11849	imported after its initial version has been created.
11850	* sanity.sh (import-after-initial): New test for that.
11851
118521998-12-17  Jim Kingdon
11853
11854	* server.c (serve_root): Pserver_Repos only exists if
11855	AUTH_SERVER_SUPPORT is defined.
11856
118571998-12-12  Jim Kingdon, and Derek R. Price of Stortek.
11858
11859	* sanity.sh (multiroot): Change + to ${PLUS}.
11860
118611998-12-12  Jim Kingdon, and Gary Young of Motorola
11862
11863	* sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
11864	allow 4 digit year in addition to 2 digit year.
11865
118661998-12-12  Jim Kingdon
11867
11868	* sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
11869	and for HEAD as (nonexistent) file name.
11870
118711998-12-02  Jim Kingdon
11872
11873	* version.c: Squish version number to 1.10.4.1.
11874
11875	* version.c: Version 1.10.4.
11876
118771998-11-24  Jim Kingdon
11878
11879	* recurse.c (do_file_proc): Check for errors from RCS_parse.
11880	* sanity.sh (rcslib-symlink-7 through rcslib-symlink-10): New
11881	tests, test for this.
11882
11883	* sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
11884
11885	* entries.c (Register): If we can't write Entries.Log, make it a
11886	nonfatal error.
11887	* sanity.sh (dirs2): Test for this fix.
11888
11889	* sanity.sh (dirs2): Clean up working directory at end of test.
11890
118911998-11-23  Jim Kingdon
11892
11893	* sanity.sh (dirs2): New test, for some more cases involving
11894	deleting directories and such.
11895
11896	* sanity.sh (dirs): Update for yesterday's change in Find_Names
11897	error handling.  The error in dirs-4 is fairly different now; in
11898	dirs-3 and dirs-3a it is the obvious change.
11899
119001998-11-22  Jim Kingdon
11901
11902	* sanity.sh (release): Move the commments listing "cvs release"
11903	tests from modules2-6 to here.
11904	* release.c (release): Update comment to reflect "? foo" case.
11905
11906	* find_names.c (Find_Names): If we can't read the repository, make
11907	it a nonfatal error.  Tell the caller whether this happened.
11908	(find_rcs): Add comment regarding this behavior.
11909	* recurse.c (do_recursion): If Find_Names gives an error, skip
11910	the directory and print a message saying so.
11911	* sanity.sh (modes3): New test, for this.
11912
119131998-11-18  Jim Kingdon
11914
11915	* rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
11916	consistently.
11917
11918	* sanity.sh (conflicts3): Tests conflicts3-24 through
11919	conflicts3-28 test for another case similar to conflicts3-22.
11920
119211998-11-14  Jim Kingdon
11922
11923	* sanity.sh (diff): New test, for now just tests for the "I know
11924	nothing" message.
11925
11926	* sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
11927	tests; resurrecting doesn't work from one level up.
11928
11929	* sanity.sh (mwrap-7): Remote prints the messages in a different
11930	order.
11931
119321998-11-13  Jim Kingdon
11933
11934	* tag.c (check_fileproc): Log tag deletions.
11935	* rtag.c (check_fileproc): Likewise.
11936	* sanity.sh (taginfo-14 through taginfo-18): New tests, for
11937	these behaviors.
11938
119391998-11-12  Jim Kingdon
11940
11941	* sanity.sh (mwrap-7): Update for the noexec fix.
11942
11943	* server.c (server_copy_file): Add comment about noexec.
11944
11945	* update.c (checkout_file): Handle noexec case involving revbuf
11946	and modes.
11947	(update_fileproc): In case T_NEEDS_MERGE, let merge_file take care
11948	of noexec, so it can tell the user if there would be conflicts.
11949	(merge_file): Print "conflicts found in FILE" message
11950	regardless of noexec.  Add comment about checking for whether the
11951	file already contained the changes, and noexec.
11952	* sanity.sh (conflicts-192a): New test, for this.
11953
119541998-10-20  Jim Kingdon
11955
11956	Use the gzip library on the server.  Probably doesn't speed things
11957	up as currently implemented, but does avoid hassles in terms of
11958	finding an external gzip program.
11959	* zlib.c, server.h (gunzip_and_write, read_and_gzip): Now returns
11960	whether a fatal error occurred, rather than expecting error (1,
11961	...) to work.
11962	* client.c (update_entries, send_modified): Change callers.
11963	* server.c (receive_file): Rewrite gzip code to use
11964	gunzip_and_write rather than filter_through_gunzip.
11965	(server_updated): Likewise, use read_and_gzip rather than
11966	filter_through_gzip.
11967	* client.c, client.h (filter_through_gzip, filter_through_gunzip),
11968	run.c, cvs.h (filter_stream_through_program): Removed; no longer used.
11969	* sanity.sh (server): New tests server-4 and server-5 test
11970	this feature (note that CVS 1.10 also passes these tests; the
11971	behavior is supposed to be unchanged).
11972
119731998-10-19  Jim Kingdon
11974
11975	* sanity.sh (multiroot3): New test, tests for a few more
11976	multiroot cases.
11977
11978	* lock.c (lock_name): Set the permissions on each directory we
11979	create to that of the parent directory.
11980	* sanity.sh (lockfiles): New chmod and tests lockfiles-7a and
11981	lockfiles-7b test for this.  Adjust lockfiles-5 for new text of
11982	error message.
11983
119841998-10-15  Jim Kingdon
11985
11986	* server.c (requests): Set RQ_ROOTLESS for "Set".
11987	* sanity.sh (info): Also clean up $HOME/.cvsrc.
11988	(server): Test that we can send Set before Root (had been tested
11989	by crerepos-6b, but only if you ran the info test first).  Tests
11990	for this fix.
11991
119921998-10-14  Jim Kingdon
11993
11994	* subr.c (expand_string): Tweak the algorithm so that the size
11995	that it allocates is generally a power of two.
11996
119971998-10-14  Eivind Eklund and Jim Kingdon
11998
11999	* commit.c (commit): For the client, don't worry about whether we
12000	are root.
12001
120021998-10-13  Jim Kingdon
12003
12004	* server.h (struct request): Change status field to flags and add
12005	RQ_ROOTLESS.
12006	* client.c (handle_valid_requests, supported_request): Change
12007	status to flags.
12008	* server.c (requests): Change status to flags.  Add RQ_ROOTLESS.
12009	* server.c (server): If not RQ_ROOTLESS, and we haven't gotten a
12010	Root request, give an error.
12011
120121998-10-12  Jim Kingdon
12013
12014	* version.c: Slide version number to 1.10.3.1.
12015
12016	* Version 1.10.3.
12017
12018	* sanity.sh (modules2-17): Update for 9 Oct 1998 change to
12019	update_dirent_proc.
12020
120211998-10-11  Jim Kingdon
12022
12023	* commit.c (checkaddfile, commit_fileproc): A numeric value for
12024	'tag' does not mean that we are adding on a branch.
12025	* sanity.sh (keywordlog): Adjust this test, to test for this
12026	(replaces comment saying we should be doing it).
12027	(rmadd): Likewise.
12028
12029	* sanity.sh (rmadd): New test, tests for various existing
12030	behaviors with "cvs ci -r".
12031
120321998-10-09  Jim Kingdon
12033
12034	* update.c (update_dirent_proc): For local CVS, if the directory
12035	does not exist in the working directory nor in the repository,
12036	just skip it.
12037	* sanity.sh (dirs): New tests dirs-3a, dirs-7 and dirs-8 test for
12038	this and related behaviors.  Note that the new behavior was also
12039	the previous behavior for remote; we are only changing it for local.
12040
12041	* wrapper.c, cvsrc.c, ignore.c: Add comments about ignoring .cvsrc
12042	and friends if we can't find a home directory.
12043	* expand_path.c (expand_path): If we can't find the home
12044	directory, give an error rather than a coredump (or worse).
12045	* login.c (construct_cvspass_filename): Don't use errno in error
12046	message; get_homedir doesn't set it.  Add comment about this
12047	message.
12048
120491998-10-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
12050
12051	* diff.c (diff): Set variables to NULL at the start, and free
12052	memory at the end.
12053	* sanity.sh (multiroot2): Add tests for this (before the fix,
12054	multiroot2-12 would abort with "no more than two revisions/dates
12055	can be specified").
12056
120571998-10-06  Jim Kingdon  <kingdon@harvey.cyclic.com>
12058
12059	* Makefile.in (installcheck check): Remove references to RCSBIN;
12060	they don't do anything now that RCSBIN is ignored.
12061
12062	* client.c: Clean up horrible confusion about whether stored_mode
12063	or stored_mode_valid (or nothing :-)) indicates whether
12064	stored_mode is allocated.  Should fix crashes (for example, on NT
12065	when the server has renamed multiple files from uppercase to
12066	lowercase).
12067
12068	* sanity.sh (dirs): New tests, tests for some cases involving
12069	admins who do surgery on the repository.
12070
120711998-10-03  Johannes Stezenbach <johannes.stezenbach@propack-data.de>
12072
12073	* vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
12074	necessary change the file to be writable temporarily to set its
12075	modification time.
12076
120771998-10-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
12078
12079	* client.c (handle_error): Add comment about indicating which
12080	errors are from the server.
12081
120821998-10-01  Jim Kingdon  <kingdon@harvey.cyclic.com>
12083
12084	* sanity.sh (devcom-180): Allow one digit day.
12085
120861998-09-30  Jim Kingdon  <kingdon@harvey.cyclic.com>
12087
12088	* main.c (main): Don't call Name_Root if -d specified.
12089	* recurse.c (do_recursion, do_dir_proc): Don't check CVS/Root
12090	if -d was specified.
12091	* import.c (import): Indentation fix.
12092	* sanity.sh (multiroot): Update for this change.
12093	(reposmv): New test, tests for this.
12094
120951998-09-28  Jim Kingdon  <kingdon@harvey.cyclic.com>
12096
12097	* sanity.sh (multiroot2): New test, tests some nested directory
12098	cases.
12099
121001998-09-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
12101
12102	* sanity.sh (multiroot): Change a few comments which said modules
12103	when they meant directories.
12104
121051998-09-25  Jim Meyering  <meyering@ascend.com>
12106
12107	* sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
12108	in hostname regexp.
12109
121101998-09-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
12111
12112	* sanity.sh (log2): New test log2-7a tests for one error handling
12113	case.  Add a comment about another.
12114
121151998-09-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
12116
12117	* sanity.sh: Change crerepos test back to :ext: (for several
12118	reasons; see comments).
12119
121201998-09-24  Noel Cragg  <noel@swish.red-bean.com>
12121
12122	* sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
12123	check the operation of "tag" when there are symlinks in the
12124	repository.
12125
12126	* rcs.c (RCS_checkin): remove old code that resolved the symlink
12127	and call resolve_symlink instead.
12128	(RCS_rewrite): call resolve_symlink before doing anything else to
12129	make sure we're operating on the file and not the symlink.
12130
12131	* subr.c (resolve_symlink): new routine -- resolves a symbolic
12132	link chain to its destination.
12133	* cvs.h: add prototype.
12134
12135	* sanity.sh (basica-6.2, basica-6.3): changed match expressions to
12136	reflect new diff output.
12137
12138	* rcs.c (make_file_label): generate labels for files that include
12139	the pathname so that output from "cvs diff" is useable by patch.
12140	Looks like I came up with the mods as Andy Piper
12141	<andyp@parallax.co.uk>; his patch was on the Cyclic unofficial
12142	patches page.
12143
12144	* sanity.sh: change remote access method from ext to fork.  This
12145	results in a significant speed improvement when running the
12146	testsuite.  The ext method on my machine (i586 120MHz Linux 2.0.35
12147	with TCP wrappers installed) runs in 450% of the time of the local
12148	method while the fork method runs in only 150% of the time of the
12149	local method!  Yow!  Am I SWAPPING yet?!
12150	(crerepos-6a, crerepos-6b): change to reflect different error
12151	messages for fork method.
12152	(modes-15): same.
12153
12154	* client.c (connect_to_forked_server): new routine.
12155	(start_server): call the above when method is fork_method.
12156
12157	* root.c: add a new method named "fork".  This method uses the
12158	remote protocol, but does so by forking a "cvs server" process
12159	directly rather than doing "rsh host cvs server" (for example).
12160	This new method has few advantages for day-to-day use, but has
12161	three important benefits for debugging:
12162
12163	  1) Most secure installations these days don't allow rsh access.
12164	  With this new method, we can still test the remote protocol on
12165	  these machines because we don't need to be able to make a local
12166	  TCP connection.
12167
12168	  2) Even if installations allow rsh access, they almost always
12169	  have TCP wrappers to check permissions by IP/hostname.  This
12170	  causes a short delay for every connection.  For invocations from
12171	  the command line, this doesn't matter much, but it adds up to a
12172	  significant amount of time when running the testsuite.
12173
12174	  3) On machines that can't (or do not usually) provide rshd
12175	  access (I'm thinking of WNT/W95 in particular), we can now run
12176	  tests of the remote protocol using this method.  Indeed, we can
12177	  run remote protocol tests on any machine that has an
12178	  implementation of piped_child().
12179
12180	(parse_cvsroot): handle new method.
12181	(error_exit, xstrdup, isabsolute): new stub functions to use when
12182	compiling root.c with the DEBUG option.
12183	(main): fix a few typos.
12184	* cvs.h (CVSmethod): add fork_method.
12185
12186	* server.c (create_adm_p): use Emptydir as the placeholder
12187	directory instead of "." to avoid problems with "cvs update -d" et
12188	al.
12189
121901998-09-22  Noel Cragg  <noel@swish.red-bean.com>
12191
12192	* sanity.sh (devcom-180): fixed typo in regexp.
12193
12194	* main.c (main): remove need_to_create_root and related code
12195	(including CVS_IGNORE_REMOTE_ROOT environment variable).  The
12196	current implementation (just removed) of rewriting the contents of
12197	the CVS/Root file isn't desirable for a number of reasons:
12198
12199	  1) Only the top-level CVS/Root directory is updated.  If we're
12200	  really interested in pointing our WD at another CVSROOT, we
12201	  should have a separate command.
12202
12203	  2) With the new multiroot mods, we don't ever want to rewrite
12204	  CVS/Root files in the way the removed code did.  Consider:
12205
12206	    cvs -d repository1 co a
12207	    cd a
12208	    cvs -d repository2 co b
12209            cvs -d repository2 update b
12210
12211	  The update command would rewrite the contents of a/CVS/Root to
12212	  the incorrect value.  Bad.  We then wouldn't be talking to the
12213	  correct repository for files in a.
12214
12215	  3) The removed code seems to be a quick hack to support working
12216	  directories checked out from multiple repositories.  With the
12217	  CVS_IGNORE_REMOTE_ROOT variable set, one could perform commands
12218	  as in example 2, above, without worring about updating CVS/Root
12219	  files.  While in pre-1.10.1 recursive commands wouldn't handle
12220	  that working directory hierarchy, one could use commands like
12221	  "cvs foo -l" instead.  While not great, this allows you (with a
12222	  lot of manual interaction) to have a multiroot WD.  Since we now
12223	  have multiroot mods checked in, we don't need this code.
12224
12225	(lookup_command_attribute): while we don't need the
12226	CVS_CMD_USES_WORK_DIR flag anymore (since it only was supporting
12227	the need_to_create_root code), I'm leaving it in.  It may come in
12228	handy at some later date.
12229
122301998-09-18  Jim Kingdon  <kingdon@pennington.cyclic.com>
12231
12232	* version.c: Advance version number to 1.10.2.1.
12233
12234	* Version 1.10.2.
12235
122361998-09-13  Jim Kingdon  <kingdon@harvey.cyclic.com>
12237
12238	* client.c: Refuse to Copy-file to another directory
12239	* sanity.sh (client): New test, tests for this.
12240
12241	* edit.c (editors_fileproc), watch.c (watchers_fileproc): Use
12242	cvs_output rather than writing to stdout.
12243	* sanity.sh (devcom): Use dotest for tests 178, 180, and 183
12244	(tests that we preserve existing behavior on "cvs editors").
12245
12246	* commit.c (check_fileproc): Don't allow commits in Emptydir.
12247	* sanity.sh (emptydir-8): Test for this change in behavior.
12248
12249	* sanity.sh: Add some compatibility tests to TODO comments at end.
12250
122511998-09-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
12252
12253	* wrapper.c (wrap_add): Remove obsolete comment about -m.
12254
12255	* server.c (server_updated): Check for error from CVS_UNLINK.
12256
122571998-09-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
12258
12259	* server.c (serve_root): Allocate with malloc, not xmalloc.
12260
12261	* root.c (set_local_cvsroot): Move memory allocation from here...
12262	* server.c (serve_root): ...to here.  Fixes error handling.
12263
12264	* root.c (parse_cvsroot): Don't call check_root_consistent;
12265	parse_cvsroot is only used for local and client.
12266	* root.c (set_local_cvsroot): Move check_root_consistent
12267	functionality from here...
12268	* server.c (serve_root): ...to here.  Fixes error handling.  Also
12269	made the error more explicit, while I am at it.
12270	* server.c (Pserver_Repos): Now static.
12271	* cvs.h: Don't declare it.
12272	* root.c (check_root_consistent): Removed; no longer needed.
12273	* sanity.sh (pserver): New test, tests for this behavior and some
12274	other basic pserver stuff.
12275
12276	* update.c (merge_file): Use cvs_output for "already contains the
12277	differences" message.  Found this one when I actually observed the
12278	out-of-order bug in Real Life(TM).
12279
122801998-09-09  Jim Kingdon
12281
12282	* find_names.c (find_dirs): Make sure to zero errno before
12283	going around the loop again.
12284	* find_names.c (find_rcs): Make sure to set save_errno.
12285	(thanks to Alexandre Parenteau for reporting both problems).
12286
122871998-09-09  Jim Kingdon  <kingdon@harvey.cyclic.com> and Michael Pakovic
12288
12289	* edit.c (notify_do): Only free line if it is not NULL.
12290
122911998-09-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
12292
12293	* cvs.h: dirs_sent_to_server should not be inside
12294	AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
12295	Bishop, thanks).
12296
12297	* lock.c, cvs.h: New variable lock_dir.
12298	* parseinfo.c (parse_config): New option LockDir.
12299	* lock.c (lock_name): New function, abstracts out lock file naming
12300	and also supports LockDir.
12301	* lock.c (lock_simple_remove, Reader_Lock, write_lock, set_lock):
12302	Call it (6 places, to create/remove read/write/master locks).
12303	(Lock_Cleanup): Refuse to reenter this function.
12304	* sanity.sh (lockfiles): New test, tests for this feature.
12305
123061998-09-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
12307
12308	* sanity.sh (multiroot): Expect ${TESTDIR} in output instead of
12309	assuming it is /tmp/cvs-sanity (thanks to Mark D. Baushke of Cisco).
12310	Clean up working directory when done (fixes apparent thinko).
12311
12312	* server.c (create_adm_p): Fix one "return" which didn't return a
12313	value.
12314	(dirswitch): Check for errors from create_adm_p.
12315
12316	* sanity.sh: Set LC_ALL rather than just LC_COLLATE.
12317
12318Wed Sep  2 02:30:22 1998  Jim Kingdon  <kingdon@pennington.cyclic.com>
12319
12320	* version.c: Bump version number to 1.10.1.1.
12321
12322	* Version 1.10.1.
12323
123241998-09-01  Jim Kingdon  <kingdon@harvey.cyclic.com>
12325
12326	Administrative note regarding Noel's changes to allow one to
12327	switch from one CVS root to another in a single command: The
12328	ChangeLog entries for the changes which Noel just checked in
12329	appear for 1998-09-01, 1998-08-28, 1998-08-25, 1998-08-19, and
12330	1998-08-18, rather than being all together.
12331
12332	* main.c (set_root_directory): Fix whitespace.
12333	(main): Nuke new -m option and just have that message controlled
12334	by -t.
12335	* server.c (server): Revert the CVS_SERVER_SLEEP code back the way
12336	it was in CVS 1.10.  Attaching to the parent process is relatively
12337	boring (you can just run "cvs server" under a debugger instead),
12338	but connecting to the child process is what the old code was for.
12339	* recurse.c, server.c: Remove DEBUG_NJC code.
12340
123411998-09-01  Noel Cragg  <noel@swish.red-bean.com>
12342
12343	* server.c (do_cvs_command): add another environment variable,
12344	CVS_SERVER_SLEEP2, after forking to pause the program so one can
12345	attach a debugger.
12346
12347	* sanity.sh (crerepos): clean up crerepos-18 now that multiroot
12348	works in this case.
12349	(multiroot): finalize tests for local vs. remote operation.
12350
12351	* recurse.c (start_recursion): near the beginning, save the list
12352	of directories to spoof as command-line arguments, if necessary.
12353	Use that list near the end and call send_file_names to send those
12354	arguments to the server.
12355	(do_argument_proc): removed, since we call send_file_names now.
12356
12357	* main.c (main): re-initialize dirs_sent_to_server on each pass
12358	through the loop for each CVSROOT.
12359
12360	* cvs.h: add proto for global variable which keeps track of which
12361	directories have been sent to the server when in client mode.
12362
12363	* client.c (is_arg_a_parent_or_listed_dir): new function.
12364	(arg_should_not_be_sent_to_server): new function.  Tries to decide
12365	whether the given argument should be sent to the server, based on
12366	the current CVSROOT and the list of directories sent to the
12367	server.
12368	(send_repository): add the directory name to the list of
12369	directories sent to the server.
12370	(send_file_names): call arg_should_not_be_sent_to_server.
12371
12372	* add.c (add): switch the order of send_files and send_file_names
12373	to make multiple repository support possible.  send_files needs to
12374	create a list of directories being requested so that
12375	send_file_names can decide which command-line arguments to send to
12376	the server for the given current CVSROOT.
12377	* admin.c (admin): same.
12378	* commit.c (commit): same.
12379	* diff.c (diff): same.
12380	* edit.c (editors): same.
12381	* log.c (cvslog): same.
12382	* rcs.c (annotate): same.
12383	* remove.c (cvsremove): same.
12384	* status.c (cvsstatus): same.
12385	* tag.c (cvstag): same.
12386	* update.c (update): same.
12387	* watch.c (watch_addremove): same.
12388	(watchers): same.
12389
123901998-08-31  Jim Kingdon  <kingdon@harvey.cyclic.com>
12391
12392	* sanity.sh: Remove "debug" function; it was apparently checked
12393	in accidentally by Norbert Kiesel's change.
12394
123951998-08-31  Norbert Kiesel  <nk@iname.com>
12396
12397	* release.c (release): modify last patch to release so that
12398	save_cwd is called only once and restore_cwd is always called when
12399	neccessary.  Also fixed a tiny memory leak.
12400
12401	* sanity.sh (release): added some more tests for "cvs release"
12402	including a test with two dirs and a "no" for the first one (which
12403	fails without the above patch).
12404
124051998-08-28  Noel Cragg  <noel@swish.red-bean.com>
12406
12407	* sanity.sh (crerepos-18): add new comment and change test
12408	slightly to support multiroot.
12409	(multiroot): add more tests.
12410
12411	* server.c (create_adm_p): new function.
12412	(dirswitch): call create_adm_p.  Modify the code to always write a
12413	new CVSADM_REP file, since create_adm_p might have put a
12414	placeholder there and our value is guaranteed to be correct.
12415	(server): move the CVS_SERVER_SLEEP check here so we can debug
12416	things at an earlier stage.
12417
12418	* recurse.c (start_recursion): add large comment about the ideal
12419	solution to the "Argument xxx" problem.
12420
12421	* main.c (main): move position of debugging comment for -m flag.
12422
12423	* diff.c (diff): clear a static variable.
12424
12425	* client.c (send_file_names): check to see if we should send this
12426	argument to the server based on the contents of the appropriate
12427	CVSADM directory.  This avoids "nothing known about foo" messages
12428	and problems with duplicate modules names in multiple
12429	repositories.
12430	(send_a_repository): change method of calculating toplevel_repos
12431	to support multiple CVSROOTs.
12432	(start_server): clear some static variables.
12433
124341998-08-28  Jim Meyering  <meyering@ascend.com>
12435
12436	* sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
12437	`Operation not permitted'.  Solaris2.5.1 gets a different error:
12438	`Invalid argument'.
12439
124401998-08-26  Eric M. Hopper
12441
12442	* sanity.sh: Set LC_COLLATE to "C".
12443
124441998-08-25  Noel Cragg  <noel@swish.red-bean.com>
12445
12446	* sanity.sh (multiroot): new set of tests to check the behavior of
12447	multiroot.
12448
12449	* diff.c (diff): set options value to NULL after freeing to reset
12450	the state for the next time around.
12451
124521998-08-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
12453
12454	Fix problems with trying to rename an open file:
12455	* rcs.c, rcs.h (RCS_setattic): New function.
12456	* commit.c (remove_file, checkaddfile): Call it.
12457
124581998-08-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
12459
12460	* release.c (release): Use save_cwd and restore_cwd to get back to
12461	where we started, rather than hoping that CVS_CHDIR ("..") will do
12462	something useful.  This removes the need for most of
12463	release_delete, so remove that function and inline what is left.
12464	* sanity.sh (basicc): Adjust tests for this fix, also some tests
12465	with multiple arguments to "cvs release" (in the non-"-d"-case, it
12466	would seem like the old code would CVS_CHDIR into directories and not
12467	CVS_CHDIR back, but I'm not going to investigate this and it
12468	should be a moot point with this fix.).
12469
12470	* sanity.sh (basicc): Add tests for a serious bug in "cvs release
12471	-d .".
12472
12473	More error handling fixes:
12474	* ignore.c (ignore_files): Check for errors from opendir and
12475	readdir.
12476	* find_names.c (Find_Names): Check for errors from find_rcs.
12477	(find_rcs, find_dirs): Comment error handling better; also return
12478	an error if we got one from readdir.
12479	* filesubr.c (deep_remove_dir): Also check for errors from readdir.
12480	* import.c (import_descend): Print message on error from opendir
12481	or readdir.
12482	* commit.c (remove_file): Check for errors from CVS_MKDIR and
12483	CVS_RENAME.
12484	(remove_file): No need to remove the file in the temporary
12485	directory; server.c now informs time_stamp_server of what is going
12486	on via CVS/Entries rather than a file with a kludged up timestamp.
12487	* client.c, entries.c, login.c, logmsg.c, mkmodules.c, patch.c,
12488	remove.c, update.c: Check for errors from unlink_file.
12489	* mkmodules.c (write_dbmfile, rename_dbfile, rename_rcsfile):
12490	Check for errors from fclose, CVS_RENAME, and CVS_STAT.
12491	* mkmodules.c (checkout_file): Clarify error handling convention.
12492	* mkmodules.c (mkmodules): Call checkout_file accordingly.
12493	* entries.c (Entries_Open): Check for errors from fclose.
12494
124951998-08-21  Ian Lance Taylor  <ian@cygnus.com>
12496
12497	* import.c (import): Output suggested merge command using
12498	cvs_output_tagged rather than just cvs_output.  Don't put
12499	CVSroot_cmdline in the log file.
12500	* client.c (importmergecmd): New static struct.
12501	(handle_mt): Handle +importmergecmd tag.
12502	* sanity.sh (import): Use an explicit -d in importb-2, to test
12503	whether it is reported in the suggested merge command.
12504
125051998-08-20  Ian Lance Taylor  <ian@cygnus.com>
12506
12507	* sanity.sh (import): Rewrite tests to use dotest.
12508
125091998-08-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
12510
12511	* sanity.sh: Add comments about binary files and cvs import.
12512
125131998-08-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
12514
12515	* sanity.sh (importc): Use ${username} in one place where I had
12516	missed it.
12517
12518	Make import -d work client/server:
12519	* client.c, client.h (client_process_import_file): Take new
12520	argument, for whether -d is specified, and send Checkin-time
12521	request if it is set.
12522	* import.c (import_descend): Pass it.
12523	* main.c, cvs.h (date_to_internet): New function.
12524	* server.c (server_modtime): Call date_to_internet.
12525	* server.c (serve_checkin_time): New function.
12526	(requests): Add "Checkin-time" request.
12527	(serve_modified): If it was sent, set the timestamp in the
12528	temporary directory.
12529	* import.c (import): If the client sends a -d option, complain.
12530	(import): For the server, always use the timestamps from the temp
12531	directory.
12532	(import): Don't send a -d option to the server.
12533	* sanity.sh (importc): Add tests for import -d.
12534
12535Wed Aug 19 15:19:13 1998  Larry Jones  <larry.jones@sdrc.com>
12536
12537	* sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
12538	of .* since we expect to match multiple lines.
12539
125401998-08-19  Ian Lance Taylor  <ian@cygnus.com>
12541
12542	* cvs.h (CVSroot_cmdline): Declare.
12543	* root.c (CVSroot_cmdline): Define.
12544	* main.c (main): Set CVSroot_cmdline if the -d option is used.
12545	* import.c (import): If CVSroot_cmdline is not NULL, then mention
12546	an explicit -d option in the suggested merge command line.
12547
12548Wed Aug 19 00:28:50 1998  Noel Cragg  <noel@swish.red-bean.com>
12549
12550	* recurse.c (do_dir_proc): don't muck with CVS/Root directories
12551 	when running in server mode.
12552	(do_recursion): same.
12553
12554	* main.c (main): add the command-line option `m' to help debug the
12555 	multiroot environment; it prints out the value of CVSROOT for each
12556 	iteration through the main loop.  Also, changed the main loop so
12557 	that it gets executed only once when running in server mode (the
12558 	server will only deal with a single CVSROOT).
12559
12560	* recurse.c (do_recursion): change default for
12561 	PROCESS_THIS_DIRECTORY to true; we should always process a
12562 	directory's contents unless there's an existing CVS/Root file with
12563 	a different root than the current root to tell us otherwise.
12564	(do_dir_proc): same.
12565
12566Tue Aug 18 14:30:59 1998  Noel Cragg  <noel@swish.red-bean.com>
12567
12568	* recurse.c (do_recursion): check the current value of CVS/Root
12569 	and add it to our list of CVSROOTs if it doesn't exist.  Decide
12570 	whether or not to process files in this directory based based on
12571 	the value of CURRENT_ROOT.
12572	(do_dir_proc): same.
12573
12574	* main.c: add two new globals -- root_directories and current_root
12575 	-- which keep track of the values of CVSROOT we've seen and which
12576 	value of CVSROOT we're currently processing.
12577	(main): put the main loop for stepping through cvsroot values
12578 	here, since we might need to send command-specific arguments for
12579 	every unique non-local cvsroot.  Moved blocks of code around so
12580 	that one-time initializations happen first (outside the loop) and
12581 	the other stuff happens inside the loop.
12582	(set_root_directory): helper function.
12583
12584	* cvs.h: add prototypes for root_directories and current_root, two
12585 	new globals for keeping track of multiple CVSROOT information.
12586
125871998-08-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
12588
12589	* sanity.sh: Don't assume that the shell leaves $^ unexpanded in
12590	an unquoted here-document (suggested by Bart Schaefer to help when
12591	zsh is the shell).
12592
125931998-08-17  Ian Lance Taylor  <ian@cygnus.com>
12594
12595	* commit.c (checkaddfile): Don't call fix_rcs_modes.
12596	(fix_rcs_modes): Remove.
12597
125981998-08-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
12599
12600	* create_adm.c (Create_Admin): Don't condition traces on
12601	SERVER_SUPPORT; SERVER_SUPPORT shouldn't do (much of) anything
12602	independent of server_active.
12603
12604	* sanity.sh (binfiles3): New test, for yet another binary file
12605	bug (sigh).  Thanks to Jason Aten for reporting this one.
12606
126071998-08-15  Jim Kingdon  <kingdon@harvey.cyclic.com>
12608
12609	* rcscmds.c (call_diff_write_output): Update to reflect new
12610	calling convention for the write_output callback.
12611
126121998-08-15  Jim Meyering  <meyering@ascend.com>
12613
12614	* update.c (merge_file): Warn about failed unlink when not due
12615	to ENOENT.
12616
12617	* server.h (CLIENT_SERVER_STR): New macro
12618	* create_adm.c (Create_Admin): Use it.
12619	* entries.c (Scratch_Entry, Register): Use it.
12620	* filesubr.c (copy_file, xchmod, rename_file, unlink_file): Use it.
12621	* history.c (history_write): Use it.
12622	* modules.c (do_module): Use it.
12623	* no_diff.c (No_Difference): Use it.
12624	* run.c (run_popen): Use it.
12625	* server.c (server_register): Use it.
12626
126271998-08-14  Jim Meyering  <meyering@ascend.com>
12628
12629	* hardlink.c (lookup_file_by_inode): Use existence_error rather than
12630	comparing errno to ENOENT directly.
12631
12632	* client.c (copy_a_file): Unlink destination before doing copy.
12633	* sanity.sh (join-readonly-conflict): New test for this -- it would
12634	fail only in client/server mode.
12635
12636	* sanity.sh (rcsmerge-symlink-4): Don't use `test -L', it's not
12637	portable.  Instead, match against the output of `ls -l'.
12638	(dotest tag8k-16): Simplify tag-construction code and at the same
12639	time, avoid using expr's `length' and `substr' operators.  Not
12640	all versions of expr support those.
12641
126421998-08-14  Jim Kingdon  <kingdon@harvey.cyclic.com>
12643
12644	* version.c: Bump version number to 1.10.0.1.
12645
12646Thu Aug 13 11:15:24 1998  Noel Cragg  <noel@swish.red-bean.com>
12647
12648	* version.c: Change version number to 1.10 and name to `Halibut'.
12649
12650	* sanity.sh (rcslib): new tests to check behavior of symlinks in
12651 	the repository.
12652
12653Wed Aug 12 15:39:38 1998  Noel Cragg  <noel@swish.red-bean.com>
12654
12655	* main.c (lookup_command_attribute): the `annotate' command
12656 	shouldn't require access to the repository.  Add comment about
12657 	commands that do not use the working directory.
12658
12659Mon Aug 10 10:26:38 1998  Noel Cragg  <noel@swish.red-bean.com>
12660
12661	* version.c: Change version number to 1.9.30.
12662
12663Thu Aug  6 17:44:50 1998  Noel Cragg  <noel@swish.red-bean.com>
12664
12665	* server.c (serve_rdiff): change the name of the command (for
12666 	error reporting, etc.) from "patch" to "rdiff."
12667	(serve_remove): rename from "cvsremove" to "remove."
12668
12669	* main.c (lookup_command_attribute): the `rdiff' command shouldn't
12670 	require write access to the repository.
12671
126721998-08-06  David Masterson of kla-tencor.com
12673	and Jim Kingdon
12674
12675	* commit.c (commit_filesdoneproc): Don't call strlen ("CVSROOT")
12676	from within the assert statement.  Apparently HP's cc compiler on
12677	HPUX 10.20 has trouble with that.
12678
126791998-08-06  Jim Kingdon  <kingdon@harvey.cyclic.com>
12680
12681	* rcs.c (RCS_checkin): When adding branch, if there is a lock on
12682	the branchpoint owned by someone else, leave it alone.  This
12683	restores CVS 1.9 (RCS 5.7) behavior, fixing a core dump.
12684	* sanity.sh (reserved): New tests reserved-16 through reserved-19
12685	test for this fix.
12686
126871998-08-05  Jim Kingdon  <kingdon@harvey.cyclic.com>
12688
12689	* sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
12690	This makes it work with GNU expr 1.12 as well as 1.16.
12691
12692Sun Aug  2 20:27:44 1998  Noel Cragg  <noel@swish.red-bean.com>
12693
12694	* mkmodules.c: add comment about TopLevelAdmin for the initial
12695 	contents of CVSROOT/config.
12696
126971998-07-29  Jim Kingdon  <kingdon@harvey.cyclic.com>
12698
12699	* rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
12700	is defined.
12701
12702Tue Jul 28 19:33:08 1998  Noel Cragg  <noel@swish.red-bean.com>
12703
12704	* version.c: Change version number to 1.9.29.
12705
12706	* rcs.c (RCS_checkin): add code to follow symbolic links in the
12707 	repository.
12708
12709Sun Jul 26 05:14:41 1998  Noel Cragg  <noel@swish.red-bean.com>
12710
12711	* This set of changes reverts the code to pre-1.9.2 behavior and
12712 	does not create CVS directories at top-level (except for the
12713 	obvious "cvs co .").  Added a new configuration option to switch
12714 	between 1.9 and 1.9.2 behavior.
12715
12716	* recurse.c (do_argument_proc): new function.
12717	(start_recursion): in the case that we've done a command from
12718 	top-level but have no CVS directory there, the behavior should be
12719 	the same as "cvs <cmd> dir1 dir2 dir3...".  Make sure that the
12720 	appropriate "Argument" commands are sent to the server by calling
12721 	walklist with do_argument_proc.
12722
12723	* client.c (call_in_directory): only create the top-level CVS
12724 	directory when we're checking out "." explicitly.  The server will
12725 	force creation of this directory in all other cases.
12726
12727	* checkout.c (checkout_proc): only generate the top-level
12728 	directory when the TopLevelAdmin=yes.  Also send a message to the
12729 	client to do the same.
12730
12731	* parseinfo.c (parse_config): handle TopLevelAdmin option.  Set
12732 	top_level_admin.
12733
12734	* main.c: add new variable top_level_admin.
12735	* cvs.h: add extern definition for above.
12736
12737	* sanity.sh: since we're reverting to pre 1.9.2 behavior for
12738 	top-level CVS directories, I needed to make changes to a bunch of
12739 	tests that made assumptions about said directories.
12740	(preamble): make sure to add read and execute access to everything
12741 	in TMPDIR before removing, since some tests make things read-only.
12742	(basicb-1a, basicb-1b, basicb-9a, basicb-9b): use dotest_fail
12743 	because these tests check for the non-existant top-level CVS
12744 	directory.
12745	(basicc-3, emptydir-6, emptydir-7, crerepos-6): use "rm -rf" so it
12746 	won't complain when trying to remove the non-existant top-level
12747 	CVS directory.
12748	(106.5): remove imported-f2-orig.tmp.
12749	(modules2-10, emptydir-4, abspath-1ba, abspath-1bb): cd into the
12750 	directory where files exist before using the "add" command so cvs
12751 	can find CVSROOT in CVS/Root.
12752	(cvsadm-2): look at a different CVS/Repository file, since the
12753 	top-level one doesn't exist.
12754	(taginfo-3): create the directory in the repository directly
12755 	rather than relying on the fact that the top-level CVS directory
12756 	was created in a previous test.
12757	(serverpatch-6): update first-dir explicity, rather than relying
12758 	on the non-existant top-level CVS/Entries file.
12759	(crerepos-18): look at CVS/Repository in a subdirectory rather
12760 	than in the non-existant top-level CVS directory.
12761	(toplevel): add code to set TopLevelAdmin=yes.
12762	(toplevel2): new tests -- same as toplevel, but TopLevelAdmin=no.
12763
127641998-07-21  Jim Meyering  <meyering@ascend.com>
12765
12766	* rcs.c (RCS_checkout): Hoist frees of rev and value.
12767	Warn and return 1 in several cases rather than exiting via
12768	`error (1, ...'.  The latter could abort a multi-file commit
12769	in mid-stream, leaving stale locks in the repository.
12770
127711998-07-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
12772
12773	* build_src.com (rcscmds.c): Also look for include files in
12774	[-.diff], just like Ian's 1998-06-18 change to Makefile.in
12775
127761998-07-14  Jim Kingdon  <kingdon@harvey.cyclic.com>
12777
12778	* tag.c (pretag_proc), rtag.c (pretag_proc): Don't pass RUN_REALLY
12779	to run_exec.  This means that taginfo does not get executed if the
12780	global -n option is specified.  Which makes it like loginfo, -i,
12781	-e, -o, -t, -u in modules, editinfo, and verifymsg and unlike
12782	commitinfo.  The old behavior was pretty bad in the sense that it
12783	doesn't provide any way to log only the tags which actually
12784	happen.
12785	* sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
12786
127871998-07-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
12788
12789	* sanity.sh (ann-id): Write the test so that it tests for the
12790	current (buggy) behavior.
12791
12792	* sanity.sh (taginfo): Also clean up cvsroot/first-dir.
12793
127941998-07-12  Jim Meyering  <meyering@ascend.com>
12795
12796	* sanity.sh (ann-id): New (currently failing) test for bug in how
12797	rcs keywords are expanded in the output of `cvs annotate'.
12798
127991998-07-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
12800
12801	* sanity.sh (taginfo): Write the TESTDIR into the script rather
12802	than having the script look at the environment.  This means that
12803	it will work if TESTDIR is set by sanity.sh as well as if
12804	sanity.sh finds TESTDIR in the environment.
12805
128061998-07-11  Jim Kingdon  <kingdon@harvey.cyclic.com>
12807
12808	* tag.c (check_fileproc): Calculate the revision to be tagged the
12809	same way that tag_fileproc does.
12810	* sanity.sh (taginfo): New tests, test for this (before this fix,
12811	brtag had said 1.1 not 1.1.2.1).
12812
128131998-07-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
12814
12815	* sanity.sh (unedit-without-baserev): Also clean up "2" directory.
12816
128171998-07-08  Jim Kingdon  <kingdon@harvey.cyclic.com>
12818
12819	* edit.c (unedit_fileproc): If the Baserev file is missing, don't
12820	get the working file from CVS/Base.  The previous code could get
12821	you version 1.1 of the working file and put 1.2 in CVS/Entries.
12822	* sanity.sh (unedit-without-baserev): New tests test for this.
12823
128241998-07-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
12825
12826	* sanity.sh (unedit-without-baserev): Move the test itself to be
12827	in the same order as in the "tests" variable.
12828
128291998-07-02  Ian Lance Taylor  <ian@cygnus.com>
12830
12831	* rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>.  Don't
12832	declare vasprintf.
12833	(call_diff_printf_output): Remove.
12834	(call_diff_stdout_callbacks): Don't initialize printf_output
12835	field--it has been removed from the interface.
12836	(call_diff_file_callbacks): Likewise.
12837
128381998-07-01  Jim Meyering  <meyering@ascend.com>
12839
12840	* edit.c (unedit_fileproc): Handle the case in which base_get
12841	returns a NULL baserev.  That happens when a file being `unedit'ed
12842	exists in the CVS/Base directory, but isn't listed in the CVS/Baserev
12843	file.  The one case I've seen had no Baserev file at all.  The symptom
12844	(if you're lucky) is a segmentation fault upon unedit.  If you use
12845	SunOS4.1.4 for which printf prints NULL pointers as `(null)', your
12846	unedit command will complete normally, but it will have corrupted
12847	your CVS/Entries file and a subsequent update may result in an
12848	assertion failure, a core dump, and a stale lock in the repository.
12849	* sanity.sh (unedit-without-baserev): New test for this.
12850
128511998-07-01  Andy Mortimer of aeat.co.uk
12852	and Jim Kingdon  <kingdon@harvey.cyclic.com>
12853
12854	* server.c (server_updated): Use a prototype if we are using them
12855	for declarations.
12856
128571998-06-29  Jim Kingdon  <kingdon@harvey.cyclic.com>
12858
12859	* sanity.sh (commit-readonly): Protect keyword against expansion
12860	in sanity.sh itself.  Keep the keyword in the file which we check
12861	in (or else this fails to test for the RCS_checkout change).
12862
128631998-06-27  Jim Meyering  <meyering@ascend.com>
12864
12865	* rcs.c (RCS_checkout): If opening the local workfile fails due to
12866	lack of write access, try to chmod the file and retry the open.
12867	Before, a commit could fail part way through merely because the
12868	open to rewrite with newly expanded rcs keywords would fail.  It's
12869	easy to make this happen if you use `cvs -r' or CVSREAD and you
12870	apply a patch to one of your read-only source files -- patch
12871	preserves the read-only setting for the file and your next commit
12872	will fail after committing that file, but before rewriting
12873	(checking out) your working copy.
12874	* sanity.sh (commit-readonly): New test for this.
12875
128761998-06-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
12877
12878	* update.c (patch_file): Update comments regarding context diffs
12879	to reflect diff library.
12880
128811998-06-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
12882
12883	* sanity.sh (modules4): Add tests for reversing the order of the
12884	"!first-dir/sdir" and "first-dir".
12885
128861998-06-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
12887	and Dave Wolfe@Motorola.
12888
12889	* sanity.sh (modes2): Touch the file before chmod'ing it.
12890
128911998-06-21  Ian Lance Taylor  <ian@cygnus.com>
12892
12893	* update.c (merge_files): Revert changes of 1998-06-19.  Instead,
12894	register a merged file with a dummy time stamp.  Only set
12895	last_register_time if we need to.
12896	(join_file): Likewise.  Always register a merged file, not just
12897	when the merge fails.
12898
128991998-06-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
12900
12901	* call_diff_write_output, call_diff_printf_output,
12902	call_diff_flush_output, call_diff_write_stdout, call_diff_error,
12903	call_diff_stdout_callbacks, call_diff_file_callbacks): Re-indent.
12904
129051998-06-19  Ian Lance Taylor  <ian@cygnus.com>
12906
12907	* update.c (merge_file): Make sure the time stamp of the file is
12908	different from the time stamp we register in the Entries file.
12909	(join_file): Likewise.
12910
129111998-06-18  Ian Lance Taylor  <ian@cygnus.com>
12912
12913	* rcscmds.c: Include <stdio.h>.  Include either <stdarg.h> or
12914	<varargs.h>.  Declare vasprintf.
12915	(call_diff_write_output): New static function.
12916	(call_diff_printf_output): New static function.
12917	(call_diff_flush_output): New static function.
12918	(call_diff_write_stdout): New static function.
12919	(call_diff_error): New static function.
12920	(call_diff_stdout_callbacks): New static variable.
12921	(call_diff_file_callbacks): New static variable.
12922	(call_diff): Don't sleep.  Use a callback structure when calling
12923	the diff library.
12924	(call_diff3): Likewise.
12925
12926	* rcscmds.c: Include diffrun.h.
12927	(call_diff, call_diff3): Pass NULL callback parameter.
12928	(diff_run, diff3_run): Don't declare.
12929	* Makefile.in (rcscmds.o): New target, to use -I for diff
12930	directory.
12931	(zlib.o): Depend upon zlib.h.
12932
129331998-06-09  Mike Sutton@SAIC
12934
12935	Make it compile with Sun's bundled K&R C compiler:
12936	* rcs.c (count_delta_actions): Change to static to match
12937	declaration.
12938	* client.c (handle_wrapper_rcs_option): Rename error label to
12939	handle_error to avoid clash with function name.
12940
129411998-06-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
12942
12943	* rcs.c (RCS_delete_revs): If we are trying to delete all
12944	revisions, give an error rather than assertion failed.
12945	* sanity.sh (basicb): New tests basicb-o* test for this.
12946
129471998-06-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
12948
12949	* add.c (add): Only send "Directory" requests if we need to.
12950
129511998-06-02  Assar Westerlund  <assar@sics.se>
12952
12953	* client.c: Check for HAVE_GSS_C_NT_HOSTBASED_SERVICE rather than
12954	assuming that GSS_C_NT_HOSTBASED_SERVICE is a macro.
12955	* server.c: Likewise.
12956
129571998-06-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
12958
12959	* fileattr.c (fileattr_read): Check for NULL return from strchr.
12960	* sanity.sh (devcom3): New test devcom3-10 checks for this.
12961
129621998-06-01  Assar Westerlund  <assar@sics.se>
12963	and Ian Lance Taylor  <ian@cygnus.com>
12964
12965	* client.c: If HAVE_GSSAPI_H, include <gssapi.h>.  Only include
12966	<gssapi/gssapi.h> if HAVE_GSSAPI_GSSAPI_H.  Only include
12967	<gssapi/gssapi_generic.h> if HAVE_GSSAPI_GSSAPI_GENERIC_H.
12968	(GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
12969	(connect_to_gserver): Use GSS_C_NT_HOSTBASED_SERVICE instead of
12970	gss_nt_service_name.
12971	* server.c: Same header file changes.
12972	(GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
12973	(gserver_authenticate_connection): Use GSS_C_NT_HOSTBASED_SERVICE
12974	instead of gss_nt_service_name.
12975
129761998-06-01  Jim Meyering  <meyering@ascend.com>
12977
12978	* sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
12979
129801998-05-26  Jim Kingdon  <kingdon@harvey.cyclic.com>
12981
12982	* rcs.c (annotate): Call tag_check_valid like the other functions
12983	which have a -r option.
12984	* sanity.sh (ann): New test ann-14 tests for this.
12985
129861998-05-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
12987
12988	* sanity.sh (importc): New tests importc-5 through importc-8 test
12989	for a (fairly obscure) regression from CVS 1.9.
12990
129911998-05-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
12992
12993	* sanity.sh (modules2): Add comment listing cvs release tests.
12994	(info): New test info-cleanup-0 tests "cvs -n release".
12995
12996	* rcs.c (rcsbuf_getid): Remove semicolon at end of #undef.  I'm
12997	kind of surprised that compilers accepted this at all, but
12998	removing it squelches a warning for some compilers.
12999
13000	* version.c: Change version number to 1.9.28.1.
13001
13002	* Version 1.9.28.
13003
130041998-05-22  Jim Kingdon  <kingdon@harvey.cyclic.com>
13005
13006	* rcs.c (RCS_cmp_file): Check for errors from CVS_FOPEN.  This
13007	restores the CVS 1.9 behavior (fatal error if we can't open the
13008	file), and corrects an apparent oversight in Ian's 13 Apr 1997
13009	change.
13010	* sanity.sh (modes2): New test, tests for this.
13011
130121998-05-22  Ian Lance Taylor  <ian@cygnus.com>
13013
13014        * server.c (server_updated): Correct test for whether to unlink
13015        the file.
13016
130171998-05-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
13018
13019	* wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
13020	serious bug can be fixed.
13021
130221998-05-15  Jim Kingdon  <kingdon@harvey.cyclic.com>
13023
13024	* checkout.c (checkout): Call server_pathname_check on the
13025	argument to "cvs co -d".
13026	* server.c (server_pathname_check): Add comment about how we could
13027	be handling absolute pathnames.
13028	* sanity.sh (abspath): Rewrite the tests which run "cvs co -d /foo"
13029	for remote, to reflect this.
13030
13031	* sanity.sh (abspath): Also do the "cannot rename" work-around for
13032	abspath-7d.
13033
130341998-05-13  Jim Kingdon  <kingdon@harvey.cyclic.com>
13035
13036	* commit.c (commit_filesdoneproc): Free admin_dir when done with it.
13037
130381998-05-13  Jim Meyering  <meyering@ascend.com>
13039
13040	* sanity.sh (editor): Change bogus sed command, `s/^/x&/g', to `s/^/x/'.
13041	The former exercised a bug in GNU sed-3.01-beta3.
13042	(emptydir-8): Add `Rebuilding administrative file database' message,
13043	since now it does that.
13044	* commit.c (commit_filesdoneproc): Pass only the admin directory
13045	pathname to mkmodules.
13046	Remove #if 0, now that it's fixed.
13047
13048	* status.c (cvsstatus): Rename from `status' to avoid shadowing
13049	lots of locals and parameters by the same name.
13050	* server.c (serve_status): Update caller.
13051	* main.c (cmds[]): Update table entry.
13052	* cvs.h: Update prototype.
13053
13054	* commit.c (commit_filesdoneproc): Remove trailing blanks.
13055	(commit) [CLIENT_SUPPORT]: Remove unnecessary (and local-shadowing)
13056	declaration of `err'.
13057	Rename global `tag' to `saved_tag' to avoid overshadowing `tag'
13058	parameters of three functions.
13059	Rename global `message' to `saved_message' to avoid overshadowing
13060	`message' parameter of a function.
13061	Rename global `ulist' to `saved_ulist' and move dcl up with others.
13062
130631998-05-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
13064
13065	* commit.c (commit_filesdoneproc): #if 0 the new code until it can
13066	be fixed.
13067
13068	* commit.c (commit_filesdoneproc): Add comment explaining last
13069	change.
13070
130711998-05-12  Jim Meyering  <meyering@ascend.com>
13072
13073	* commit.c (commit_filesdoneproc): Call mkmodules not just when
13074	committing a file directly under CVSROOT, but also when committing
13075	files in subdirectories of CVSROOT.
13076
130771998-05-08  Jim Meyering  <meyering@ascend.com>
13078
13079	* filesubr.c (xreadlink):  NUL-terminate the symbolic link name.
13080	Use a much smaller initial buffer length.
13081	Test errno only if readlink fails.
13082	Use xstrdup then free the original link name so we don't waste space.
13083
130841998-05-02  Jim Meyering  <meyering@ascend.com>
13085
13086	* rcs.c (rcsbuf_getword): Fix off-by-one error that would result in
13087	an abort (the first one in rcsbuf_getkey) when operating on on some
13088	,v files with over 8192 bytes of tag and branch info.
13089
130901998-05-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
13091
13092	* sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
13093	a numeric branch.
13094
130951998-05-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
13096
13097	* rcs.c: Add comments about getting rid of rcsbuf_getid,
13098	rcsbuf_getword, and rcsbuf_getstring.
13099
13100	* sanity.sh (abspath): Revise the workarounds to deal with exit
13101	status.
13102
131031998-04-30  Jim Kingdon  <kingdon@harvey.cyclic.com>
13104
13105	* sanity.sh (abspath): Work around the "cannot rename" bug.
13106
131071998-04-27  Jim Kingdon  <kingdon@harvey.cyclic.com>
13108
13109	* classify.c (Classify_File): Add comments about checking whether
13110	command name is "update".
13111
131121998-04-22  Jim Kingdon  <kingdon@harvey.cyclic.com>
13113
13114	* version.c: Change version number to 1.9.27.1.
13115
13116	* Version 1.9.27.
13117
131181998-04-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
13119
13120	(This diff was run by devel-cvs and everyone seemed to like it).
13121	* diff.c (diff_file_nodiff): Make HEAD mean the head of the branch
13122	which contains the sticky tag, not the sticky tag itself.
13123	* rcs.c, rcs.h (RCS_branch_head): New function.
13124	* sanity.sh (head): Update for this changed behavior.
13125
131261998-04-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
13127
13128	* sanity.sh: Move emptydir tests from basicb to new test emptydir.
13129	This is because we now need a module definition to create Emptydir;
13130	"co -d" doesn't cut it anymore.
13131
131321998-04-17  Petri Virkkula
13133
13134	* server.c (mkdir_p): Ignore EROFS error (like for EACCES).
13135
131361998-04-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
13137
13138	* checkout.c (checkout_proc): Don't create directories above the
13139	last one specified in "co -d".
13140	(build_dirs_and_chdir): Revert Noel's change of 17 Feb 1998.
13141	(struct dir_to_build): New field just_chdir.
13142	(build_dirs_and_chdir): Test it.
13143	* sanity.sh (abspath): New tests abspath-7* test for a bug which
13144	we fix, in which CVS would create bogus "D/////" entries in
13145	CVS/Entries.
13146	(abspath): Revise abspath-3* tests to test for the fact that we no
13147	longer create directories above the last one specified in "co -d".
13148	I checked that CVS 1.9 gives an error on this, so changing this
13149	behavior back should be OK.
13150	(cvsadm-2d3): Likewise (also checked CVS 1.9 for this case).
13151	(cvsadm-2d3d): Likewise (also checked CVS 1.9 for this case).
13152	(cvsadm-2d{4,5,6,7,8}, cvsadm-N2d{3,4,5,6,7,8}): Adjust for new
13153	behavior (same case as cvsadm-2d3).
13154	(cvsadm-2d{4,5,6,7,8}d, cvsadm-N2d{3,4,5,6,7,8}d): Remove test
13155	(same case as cvsadm-2d3d).
13156	(cvsadm): For remote, skip most these tests.
13157	(abspath): When cleaning up, delete mod1 and mod2 rather than mod1
13158	twice (longstanding bug, apparently only becomes visible if you
13159	run the tests in a certain order).
13160
131611998-04-14  Wilfredo Sanchez  <wsanchez@apple.com>
13162
13163	* rcs.c: variable "lockfile" was being referenced after being
13164	free'd.  Bad.  Moved the free() call down.
13165
131661998-04-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
13167
13168	* sanity.sh (rcs): Add test for annotate and the year 2000.
13169
13170	* server.c (do_cvs_command): If there are partial lines left when
13171	the child process is done, send them along.
13172	* sanity.sh (rcs, rcs2): Enable all tests for remote; tests for
13173	this fix.
13174
131751998-04-11  Jim Kingdon  <kingdon@harvey.cyclic.com>
13176
13177	* client.c (client_senddate): Pass SDATEFORM not DATEFORM to
13178	sscanf.  This fixes a Y2K bug.
13179
13180	* history.c (history, select_hrec): Change since_date from time_t
13181	to RCS format.  Use the usual machinery (in particular, Make_Date
13182	and client_senddate) so that it will work on VMS too.
13183	* main.c, cvs.h (date_from_time_t): New function.
13184	* sanity.sh (history): New test, to test that this didn't break
13185	anything (also tests client_senddate fix).
13186
131871998-04-11  Norbert Kiesel  <nk@iname.com>
13188
13189	* server.c (cvs_output_binary): Shut up "gcc -Wall" by removing
13190	unnecessary else if test.
13191	* server.c (check_password): Fix uninitialized memory read if
13192 	shadow passwords are used.  Also added some comments.
13193	* rcs.c (RCS_checkout): Make sure to call chown with -1 for uid or
13194	gid if they should not be changed
13195
131961998-04-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
13197
13198	* sanity.sh (rcs2): New test, tests for various Y2K cases.
13199	* rcs.c (getdelta): Value for "state" keyword is optional (bug
13200	discovered incidentally in writing rcs2 test).
13201
132021998-04-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
13203
13204	* filesubr.c, cvs.h (link_file): Remove; no longer used.
13205
132061998-04-08  Jim Kingdon  <kingdon@harvey.cyclic.com>
13207
13208	* recurse.c (do_dir_proc): Restore update_dir rather than a
13209	computation which appears to, but does not necessarily, restore it
13210	(reported by various people; this fix is from Greg Hudson).
13211	* sanity.sh (importc): New test, tests for this fix.
13212
132131998-03-27  Jim Kingdon  <kingdon@harvey.cyclic.com>
13214
13215	* rcs.c (RCS_lock): If the revision is already locked, give an
13216	error rather than dumping core.
13217	* sanity.sh (reserved): New test reserved-13c tests for this.
13218
132191998-03-25  Loren J. Rittle
13220
13221	* import.c (add_rev): Rewrite to use RCS_FLAGS_KEEPFILE option
13222	of RCS_checkin() to avoid damage to imported files instead of
13223	externally undoing damage after the fact.  The side effect is
13224	that callers of add_rev() may now incrementally walk the
13225	entries of the current directory without seeing gratuitous
13226	changes to the directory structure (under at least one file
13227	system under at least one OS).
13228
132291998-03-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
13230
13231	* error.c (error): Save and restore errno.  Should fix test case
13232	conflicts3-23 on SCO 5.0.2.  Reported by Steve Cameron.
13233
13234	* sanity.sh (admin): Rename admin-26-o* to admin-26-*; the "o"
13235	stands for "cvs admin -o".  Add comment about length of tests.
13236	Use ${PLUS}.
13237
132381998-03-05  Dan Wilder <dan@gasboy.com>
13239
13240 	* Fix problem with cvs admin in which -ntag:branch
13241 	option associated tag with the branch's head revision.
13242 	Should have used branch number.  Entailed in this fix,
13243 	the following.
13244
13245 	* Add new functions "RCS_exist_rev", "RCS_exist_tag",
13246 	"RCS_tag2rev", and "RCS_valid_rev" to rcs.c.  RCS_tag2rev
13247 	is similar to RCS_gettag, but does less interpretation.
13248
13249 	* Plug a small memory leak.
13250
13251 	* Add tests admin-26 through admin-29 to sanity.sh,
13252 	to test "cvs admin -n".
13253
132541998-03-17  Samuel Tardieu  <sam@inf.enst.fr>
13255
13256	* server.c (server_register): protect dereferencing timestamp in
13257	the trace message when it is null, to avoid a segmentation fault.
13258
132591998-03-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
13260
13261	* options.h.in (MY_NDBM): Rewrite the comment explaining this
13262	option.  It was not clear to everyone who "my" referred to, for
13263	example.
13264
13265	* hardlink.c (list_linked_files_on_disk): Remove unused variables
13266	err and p.
13267	(list_linked_files_on_disk): Add comment about memory allocation
13268	of return value.
13269	* rcs.c (rcsbuf_getword): Shut up gcc -Wall with a "return 0".
13270	(RCS_checkin): Remove unused variable fullpath.
13271	* sanity.sh (hardlinks): Remove comment about spurious warnings;
13272	the warnings are gone.
13273
132741998-03-12  Tim Pierce  <twp@skepsis.com>
13275
13276	New functions for parsing and writing hardlink fields.
13277	* rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
13278	function.
13279	(putdelta) [PRESERVE_PERMISSIONS_SUPPORT]: Use it.
13280	(rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): New functions.
13281	(getdelta): Call them, storing `hardlinks' field in vnode->hardlinks.
13282	(RCS_reparsercsfile): When setting rdata->desc, xstrdup value
13283	rather than rcsbuf_valcopying it (due to changes in how getdelta
13284	handles keys and values in newphrases).
13285
13286	* sanity.sh (hardlinks): Use uglier filenames.  Checking out
13287	hardlinked files no longer produces the same spurious diagnostics,
13288	so fix that test.
13289	(hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
13290
13291	New infrastructure for managing hardlink lists internally...
13292	* hardlink.c, hardlink.h (list_linked_files_on_disk,
13293	compare_linkage_lists, find_checkedout_proc): New functions.
13294	* rcs.h (struct rcsversnode) [PRESERVE_PERMISSIONS_SUPPORT]: New
13295	member `hardlinks'.
13296	* update.c (special_file_mismatch): Get hardlinks from
13297	vp->hardlinks instead of from vp->other_delta.
13298	* rcs.c (free_rcsvers_contents): Comment about freeing hardlinks
13299	member.
13300	(RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
13301	vers->hardlinks list instead of vers->other_delta.
13302
13303	... and removed obsolete code from earlier revs.
13304	* hardlink.c, hardlink.h (list_files_linked_to,
13305	cache_hardlinks_proc, list_files_proc, set_hardlink_field_proc):
13306	Removed.
13307	* hardlink.h: Removed `links' member from hardlink_info struct.
13308	* commit.c (commit): Remove the call to cache_hardlinks_proc.
13309	(check_fileproc) [PRESERVE_PERMISSIONS_SUPPORT]: Removed reference
13310	to hlinfo->links.
13311	* hardlink.c (update_hardlink_info): Same.
13312	* update.c (get_linkinfo_proc): Same.
13313
13314	* rcs.c (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Use
13315	vp->hardlinks and find_checkedout_proc to find recently-updated
13316	files that may be hardlinked.
13317	* update.c (special_file_mismatch): Use List * structures and
13318	compare_linkage_lists for rev1_hardlinks and rev2_hardlinks.
13319
133201998-03-16  Larry Jones  <larry.jones@sdrc.com>
13321
13322	* server.c (check_password): If shadow passwords are supported but no
13323	entry is found in the shadow file, check the regular password file.
13324
133251998-03-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
13326
13327	* sanity.sh: Rename permissions test to perms since that is what
13328	each of its individual tests are named.
13329	* sanity.sh (perms symlinks hardlinks): Change CVSROOT to
13330	CVSROOT_DIRNAME where appropriate.
13331	(perms symlinks hardlinks): Disable/adjust the meat of the tests for
13332	remote.
13333	(symlinks): Link to ${TESTDIR}/fumble rather than
13334	/fumble/mumble/grumble.  We shouldn't be making assumptions about
13335	what might exist in random directories outside ${TESTDIR}.
13336	* hardlink.c (cache_hardlinks_proc): Add comment about trimming
13337	whitespace.
13338
133391998-03-07  Tim Pierce  <twp@skepsis.com>
13340
13341	* rcs.c (RCS_checkout): Negation bug when checking out symlinks:
13342	existence_error should be !existence_error.
13343	* sanity.sh (permissions symlinks hardlinks): New tests, for
13344	PreservePermissions.
13345
133461998-03-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
13347
13348	* version.c: Change version number to 1.9.26.1.
13349
13350	* Version 1.9.26.
13351
13352	* entries.c, cvs.h (Entries_Open): New argument update_dir; use it
13353	in error message.
13354	* add.c, checkout.c, client.c, find_names.c, import.c, recurse.c,
13355	update.c: Pass it (as NULL except in call_in_directory).
13356	* entries.c (Subdirs_Known): Just return if there is no CVSADM
13357	directory (as in subdir_record).
13358	* sanity.sh (conflicts3): New tests conflicts3-20a and
13359	conflicts3-23 test for these fixes.
13360
13361	* commit.c (commit): Only set up hardlist if preserve_perms.
13362
13363	* commit.c, import.c, no_diff.c, parseinfo.c, rcs.c, rcscmds.c,
13364	update.c: Omit the preserve_perms code if
13365	PRESERVE_PERMISSIONS_SUPPORT is not defined.  Much of that code
13366	won't even compile on non-unix systems.
13367
13368	* hardlink.c, hardlink.h: Use the 'standard' copyright (as found
13369	in server.c).
13370	* commit.c, rcs.c: Minor whitespace changes to Tim's submission.
13371	* commit.c (check_fileproc), update.c (get_linkinfo_proc): Remove
13372	unused variable delta.
13373	* hardlink.c (set_hardlink_field_proc), update.c
13374	(get_linkinfo_proc): Return a value rather than falling off the
13375	end of the function.
13376
133771998-03-02  Tim Pierce  <twp@skepsis.com>
13378
13379	* update.c (special_file_mismatch): Compare the hard links of the
13380	two revisions.
13381
13382	* rcs.c (RCS_checkout):
13383
13384	* hardlink.c, hardlink.h: New files.
13385	(hardlink_info): New struct.
13386	(hardlist, working_dir): New variables.
13387	(list_files_proc, cache_hardlinks_proc, set_hardlink_field_proc,
13388	lookup_file_by_inode, update_hardlink_info, list_files_linked_to):
13389	New functions.
13390
13391	* Makefile.in (SOURCES): Add hardlink.c.
13392	(OBJECTS): Add hardlink.o.
13393	(HEADERS): Add hardlink.h.
13394	* commit.c: Include hardlink.h.
13395	(commit): Save the working directory before recursing.  Walk the
13396	hardlink list, calling set_hardlink_field_proc on each node.
13397	(check_fileproc): Add each file's link information to hardlist.
13398	* rcs.c: Include hardlink.h.
13399	(RCS_checkin): Save list of hardlinks in delta node.
13400	(RCS_checkout): Look up the file's `hardlinks' delta field, and
13401	see if any of the files linked to it have been checked out
13402	already.  Link to one of those files if so.
13403	* update.c: Include hardlink.h.
13404	(get_linkinfo_proc): New function.
13405	(do_update): Extra recursion to collect hardlink info.
13406	(special_file_mismatch): Reparse the RCS file if necessary.
13407
13408	fsortcmp is now used by several files, so let's make it extern.
13409	* hash.c, hash.h (fsortcmp): New function.
13410	* find_names.c (fsortcmp): Removed.
13411	* lock.c (fsortcmp): Removed.
13412
134131998-03-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
13414
13415	* sanity.sh (conflicts3): New tests conflicts3-14a,
13416	conflicts3-14b, and conflicts3-21, conflicts3-22 test that we can
13417	skip over a working directory with a CVSADM directory missing.
13418
134191998-02-26  Jim Kingdon  <kingdon@harvey.cyclic.com>
13420
13421	* sanity.sh (conflicts3): Tests conflicts3-16 and conflicts3-20
13422	test that we include update_dir in messages.  Rename test
13423	conflicts3-14 to fix typo.
13424
13425Sun Feb 22 23:14:25 1998  Steve Cameron  <steve.cameron@compaq.com>
13426	and Ian Lance Taylor  <ian@cygnus.com>
13427
13428	* update.c (tag_update_dir): New static variable.
13429	(update_dirent_proc): If no tag or date were specified when
13430	creating a subdirectory, use the tag and/or date of the parent
13431	directory.
13432	(update_dirleave_proc): If we set the tag and/or date in
13433	update_dirent_proc, reset them when we leave the directory.
13434	* sanity.sh (branches2): New set of tests for above patch, and
13435	related behaviour.
13436
13437Sun Feb 22 13:31:51 1998  Ian Lance Taylor  <ian@cygnus.com>
13438
13439	* commit.c (lock_RCS): Don't call RCS_rewrite.
13440
13441	* update.c (patch_file): If the revision is dead, let
13442	checkout_file handle it.
13443	* sanity.sh (death2): Add test for above patch: add
13444	death2-10a, death2-10b, death2-13a, and adjust
13445	death2-{2,4,5,11,14,diff-11,diff-12,19}.
13446
13447	* cvs.h (RCS_FLAGS_KEEPFILE): Define.
13448	* rcs.c (RCS_checkin): If RCS_FLAGS_KEEPFILE is set in the flags
13449	parameter, don't unlink the working file.
13450	* checkin.c (Checkin): Don't copy the file.  Instead pass
13451 	RCS_FLAGS_KEEPFILE to RCS_checkin, and only check the file out
13452	again if it has changed.
13453
134541998-02-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
13455
13456	* rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
13457	means anything just because ferror is set.
13458
13459Sat Feb 21 20:02:24 1998  Ian Lance Taylor  <ian@cygnus.com>
13460
13461	* Makefile.in (clean): Change "/bin/rm" to "rm".
13462
13463	* buffer.c (buf_append_buffer): Correct typo in comment.
13464	* rcs.c (RCS_putadmin): Likewise.
13465
13466Fri Feb 20 17:53:06 1998  Ian Lance Taylor  <ian@cygnus.com>
13467
13468	* rcs.c (rcs_internal_unlockfile): Pass errno when calling error
13469 	because ferror is true.
13470
134711998-02-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
13472
13473	* sanity.sh (abspath): Don't assume that we can't write to /; this
13474	is the kind of thing that is sure to break sooner or later
13475	(especially on Windows).
13476
13477	* sanity.sh: Add summary of which modules tests are which (at
13478	"modules").  Move cvsadm, abspath, and toplevel next to modules.
13479	Add comments to clarify the structure (such as it is).
13480
13481Fri Feb 20 12:47:14 1998  Larry Jones  <larry.jones@sdrc.com>
13482
13483	* admin.c (admin_fileproc): Better fix for -b.
13484
13485	* rcs.c (RCS_whatbranch): Back out previous change.
13486	(RCS_getversion): Ditto.
13487	(RCS_setbranch): Treat an empty revision string like a null pointer.
13488
134891998-02-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
13490
13491	* rcs.c (RCS_whatbranch): Fix indentation.
13492
13493	* patch.c (patch_fileproc): Check for errors from fclose; check
13494	for errors from fopen properly.
13495
13496Wed Feb 18 16:03:37 1998  Larry Jones  <larry.jones@sdrc.com>
13497
13498	* admin.c (admin_fileproc): Convert -b argument from symbolic name
13499	to revision number before storing in the RCS file.
13500	* rcs.c (RCS_whatbranch): Allow numeric as well as symbolic revision.
13501	(RCS_getversion): Take advantage of above.
13502	* sanity.sh (admin): Add/revise/renumber admin-10c, admin-11a,
13503	admin-12, and admin-12a to check above.
13504
13505	* commmit.c (lock_RCS): Minor clean-up.
13506
13507	* sanity.sh (abspath-6a): Don't depend on the sepcific contents of
13508	CVSROOT, it depends on which other tests have been run.
13509
13510Wed Feb 18 01:56:04 1998  Ian Lance Taylor  <ian@cygnus.com>
13511
13512	* rcs.c (putsymbol_proc): Use putc and fputs rather than fprintf.
13513	(RCS_putadmin): Don't call RCS_symbols if the symbols have not yet
13514	been converted to a list.
13515
13516	* rcs.c (rcsbuf_cache, rcsbuf_cache_open, rcsbuf_cache_close): New
13517	static functions to avoid closing and reopening the RCS file.
13518	(cached_rcs, cached_rcsbuf): New static variables.
13519 	(RCS_parse): Call rcsbuf_cache_close.  Don't call fclose.
13520	(RCS_parsercsfile): Likewise.
13521	(RCS_parsercsfile_i): Call rcsbuf_cache rather than
13522	rcsbuf_close.  Call fclose on error.  Remove comment about
13523	inefficiency of opening file twice.
13524	(RCS_reparsercsfile): Call rcsbuf_cache_open rather than fopen and
13525	rcsbuf_open.  Call rcsbuf_cache rather than rcsbuf_close and
13526	fclose.
13527	(RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
13528	(RCS_rewrite): Likewise.
13529	(RCS_checkin): Call rcsbuf_cache_close.
13530
13531	* rcs.c (RCS_copydeltas): Fix code which checks for an extra
13532	newline in buffered data.
13533
13534	* rcs.c (rcsbuf_getkey): Save an indirection by using start rather
13535	than *valp when trimming trailing whitespace from value.
13536
13537	* rcs.c (rcsbuf_get_buffered): New static function.
13538	(RCS_copydeltas): After we have done all the required special
13539 	actions, and inserted any new revision, just copy the file bytes
13540 	directly, rather than interpreting all the data.
13541	(count_delta_actions): New static function.
13542	* sanity.sh (rcs): Add rcs-6a and rcs-6b to commit a new branch
13543	revision, to force CVS to interpret all the data, rather than just
13544	copying it.  Adjust rcs-5 to add a branch tag.  Adjust rcs-8a and
13545	rcs-14 for the changes created by rcs-6b.
13546
13547Tue Feb 17 18:34:01 1998  Ian Lance Taylor  <ian@cygnus.com>
13548
13549	* sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
13550	the test.
13551
13552	* import.c (expand_at_signs): Rewrite to use memchr and fwrite
13553	rather than putc.
13554
13555	Rewrite RCS file reading routines for speed:
13556	* rcs.c (struct rcsbuffer): Define.
13557	(rcsbuf_open, rcsbuf_close, rcsbuf_getkey, rcsbuf_getrevnum,
13558	rcsbuf_fill, rcsbuf_valcopy, rcsbuf_valpolish,
13559	rcsbuf_valpolish_internal, rcsbuf_ftell): New static functions.
13560	(getrcskey, getrcsrev, getrevnum): Remove.
13561	(many functions): Change to use new rcsbuf functions instead of
13562	old getrcskey/getrcsrev/getrevnum functions.
13563	(RCS_reparsercsfile): Add rcsbufp parameter.  Change all callers.
13564	(RCS_deltas): Add rcsbuf parameter.  Change all callers.
13565	(getdelta): Change fp parameter to rcsbuf parameter.  Change all
13566	callers.
13567	(RCS_getdeltatext): Add rcsbuf parameter.  Change all callers.
13568	(RCS_copydeltas): Add rcsbufin parameter.  Change all callers.
13569	* rcs.h (RCS_reparsercsfile): Update declaration.
13570	* admin.c (admin_fileproc): Update calls to RCS_reparsercsfile for
13571	new parameters.
13572
135731998-02-17  Jim Kingdon  <kingdon@harvey.cyclic.com>
13574
13575	* sanity.sh (toplevel): Also clean up second-dir (not a new
13576	bug, but triggered by running tests as "toplevel abspath").
13577
13578	* create_adm.c (Create_Admin): Just print update_dir to tell the
13579	user where we are; not the whole xgetwd.  Cleaner than
13580	Noel's change (which also had problems in errno handling).
13581	* sanity.sh (toplevel-12): Update accordingly.
13582
13583Tue Feb 17 02:32:21 1998  Noel Cragg  <noel@swish.red-bean.com>
13584
13585	[These mods make "checkout" work with "-d /absolute/pathname"
13586	once again.]
13587
13588	* checkout.c (checkout_proc): the -d flag on the command line
13589 	should override the -d flag in the modules file if the latter is
13590 	an absolute path.  The loop that assembles the list of directories
13591 	to build has been reorganized slightly to prepare for rewriting
13592 	with last_component rather than assuming '/' as a path separator.
13593  	Also added to that loop was some code to handle absolute
13594 	pathnames.
13595	(build_dirs_and_chdir): add a new argument that tells this routine
13596 	whether or not to check before it creates and populates
13597 	directories or not.
13598
13599	* filesubr.c (last_component): return the top-level directory when
13600 	asked about the top-level directory.
13601
13602	* sanity.sh (toplevel-12): change test to reflect the new style of
13603 	this error message.
13604
13605	* create_adm.c (Create_Admin): include the directory in the error
13606 	message.
13607
136081998-02-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
13609
13610	* diff.c (diff_fileproc), import.c (import, add_rcs_file), rcs.c
13611	(RCS_cmp_file): Don't ignore errors from CVS_UNLINK and fclose.
13612
13613	* patch.c (patch_fileproc): Check for errors from fclose; if we
13614	get -1 from getline check for end of file vs. error.
13615
13616	* rcs.c (RCS_checkout): Comment return value (0/1, not -1).
13617	* commit.c, diff.c, mkmodules.c, patch.c, rcs.c, update.c: Update
13618	to match this convention.  Don't suppress errors based on
13619	quiet or really_quiet variables.
13620
13621	Fix a longstanding bug which also makes stamps-8kw in make
13622	remotecheck work again (it stopped working with Ian's 8 Feb 98
13623	checkin):
13624	* client.c, client.h (change_mode): If new argument respect_umask
13625	is set, then honor the umask.
13626	* client.c, server.c: Update callers.
13627
13628	Cleanups to Tim's checkin:
13629	* rcs.c (RCS_checkout): Use existence_error not ENOENT.
13630	* commit.c (checkaddfile): Remove comment about whether we want to
13631	check for errors from fclose; there is no reason not to.
13632	* rcs.c (RCS_checkout), update.c (special_file_mismatch): sscanf
13633	on %ld requires an unsigned long, not a dev_t.
13634	* update.c (special_file_mismatch): Remove unused variable
13635	check_devnums.
13636	* mkmodules.c (config_contents): Between two settings, use a blank
13637	line not a "#" line.
13638
136391998-02-15  Tim Pierce  <twp@skepsis.com>
13640
13641	[This is the code as submitted.  I'll be checking in my cleanups
13642	shortly.  This work sponsored by Abbott Labs.  -kingdon]
13643
13644	Support for device special files, symbolic links, user and group
13645	ownerships, and file permissions.
13646
13647	* parseinfo.c: (parse_config): Handle new config variable
13648	`PreservePermissions'.
13649	* mkmodules.c (config_contents): Add new PreservePermissions var.
13650
13651	* rcs.c, rcs.h (preserve_perms): New variable.
13652	(RCS_checkout, RCS_checkin): Support for newphrases `owner',
13653	`group', `permissions', `special', `symlink'.
13654	(RCS_checkout): If `workfile' and `sout' are symlinks, remove them
13655	before attempting to open them for writing.
13656	* import.c (add_rcs_file): Support for newphrases.  Do not attempt
13657	to read data from special files or symlinks.  Error message
13658	`cannot fstat' is now `cannot lstat'.
13659
13660	New metrics for deciding when two files are different:
13661
13662	* update.c, cvs.h (special_file_mismatch): New function.
13663	(merge_file, join_file): Call it.
13664	* no_diff.c (No_Difference): Call it.
13665
13666	* filesubr.c (xcmp): Consider files to be different if they are of
13667	different types; if they are symlinks which link to different
13668	pathnames; or if they are devices with different device numbers.
13669	Error message is now `cannot lstat'.
13670	* rcs.c (RCS_cmp_file): Use `xcmp' to compare files, simplifying
13671	the special handling for nonregular files.
13672
13673	* rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
13674	special files, report no differences.
13675
13676	Miscellaneous changes to make special file support possible:
13677
13678	* commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
13679	a symlink.
13680
13681	* import.c (add_rcs_file): Don't try to close fpuser if it was
13682	never opened (e.g. when operating on a symlink).
13683
13684	* filesubr.c, cvs.h (isdevice, xreadlink): New functions.
13685	* filesubr.c (copy_file): Handle special files and symlinks.
13686	(xchmod): Do nothing if `preserve_perms' is set.
13687
13688	* commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
13689	fopen/fclose calls.  Copy_file no longer attempts to read data
13690	from device files.
13691
13692	* filesubr.c (islink): Use CVS_LSTAT, not lstat.
13693	* vers_ts.c (time_stamp, time_stamp_server): Use CVS_LSTAT, not stat,
13694	to get symlinks right.
13695	* subr.c (get_file): Same.  Don't attempt to read from special
13696	files or symlinks.
13697
13698	* classify.c (Classify_File): Doc fix.
13699
13700Fri Feb 13 17:07:32 1998  Eric Mumpower  <nocturne@cygnus.com>
13701	and Ian Lance Taylor  <ian@cygnus.com>
13702
13703	Fix some file system ordering problems found on Irix 6.4:
13704	* sanity.sh (basic2): Use dotest_sort for test 56.
13705	(importb): Use dotest_sort for tests importb-1 and importb-2.
13706	(head): Use dotest_sort for test head-1.
13707
13708Thu Feb 12 15:15:33 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13709
13710	* import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
13711
1371211 Feb 1998  Andy Piper
13713
13714	* server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
13715
13716Mon Feb  9 18:34:39 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13717
13718	Tweaks to Ian's checkin:
13719	* update.c (merge_file): Remove comment about sending file to
13720	client before the message.  It doesn't apply to this code any more
13721	(it does apply to checkout_file, but I'm not sure it is important
13722	to have such a comment anyway).
13723	* buffer.c (buf_default_memory_error, buf_length): Reindent.
13724	* server.h: Declare struct buffer before use.
13725
13726Mon Feb  9 21:05:28 1998  Ian Lance Taylor  <ian@cygnus.com>
13727
13728	* rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
13729	Don't bother with ungetc.
13730
13731	* rcs.c (getrcsrev): Rewrite to simply call getrevnum.
13732
13733Sun Feb  8 15:49:39 1998  Ian Lance Taylor  <ian@cygnus.com>
13734
13735	Don't have the server check out a revision into a file and then
13736	immediately read the file; just read into a buffer instead.
13737	* update.c: Include buffer.h.
13738	(update_fileproc): Let checkout_file call server_updated.
13739	(checkout_file): Add merging and update_server parameters.  Change
13740	all callers.  If server_active, don't mess with backup files.  If
13741	server_active, copy the revision into a buffer rather than a file
13742	when possible.  If update_server, call server_updated.  Fix
13743	handling of error status.
13744	(checkout_to_buffer): New static function used by checkout_file.
13745	(merge_file): Let checkout_file call server_updated.
13746	(join_file): Likewise.
13747	* server.c (server_updated): Change file_info parameter to mode
13748	parameter.  Add filebuf parameter.  Change all callers.  If
13749	filebuf is not NULL, don't read the file.
13750	* server.h (server_updated): Update declaration.
13751	* buffer.c (buf_free): New function.
13752	(buf_append_buffer): New function.
13753	(buf_length): New function.
13754	* buffer.h (buf_free, buf_append_buffer, buf_length): Declare.
13755
13756	* buffer.c: (buf_initialize): If the memory parameter is NULL, use
13757	buf_default_memory_error.
13758	(buf_default_memory_error): New static function.
13759	* buffer.h (BUFMEMERRPROC): Define typedef.
13760	* client.c (buf_memory_error): Remove.
13761	(start_server): Pass NULL rather than buf_memory_error as buffer
13762	memory error function.
13763
13764Sat Feb  7 16:27:30 1998  Ian Lance Taylor  <ian@cygnus.com>
13765
13766	* rcs.c (RCS_parsercsfile_i): Read the expand keyword from the RCS
13767	file.  We do this because Version_TS calls RCS_getexpand in many
13768	common cases, and we don't want to reopen the file just for that.
13769	(RCS_reparsercsfile): Skip the expand keyword.
13770	(RCS_getexpand): Don't call RCS_reparsercsfile.
13771
13772	* rcs.c (STREQ): New macro.  In all string equality tests in the
13773	file, replace strcmp with STREQ.
13774
13775Fri Feb  6 16:14:49 1998  Ian Lance Taylor  <ian@cygnus.com>
13776
13777	* update.c (checkout_file): If we've already removed the backup
13778	file once, don't try to remove it again.
13779
13780	* filesubr.c (unlink_file_dir): Call stat rather than isdir, and
13781	don't call unlink if the file does not exist.
13782
13783	* myndbm.c (mydbm_load_file): Rename line_len to line_size.  Call
13784	getstr rather than getline, to avoid any confusion between \n and
13785	\012.  Use the line length returned by getstr rather than calling
13786	strlen.  Remove local variable len.
13787
13788Fri Feb  6 13:23:46 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13789
13790	* rcs.c (RCS_parsercsfile_i): Don't suppress errors on
13791	really_quiet.
13792	(RCS_parsercsfile_i, RCS_reparsercsfile, RCS_fully_parse,
13793	RCS_deltas, getdelta, getrcskey, RCS_getdeltatext):
13794	Check for errors.  Include errno in error messages.  Include
13795	filename in error messages.  Pass new argument to getrcskey.
13796	(getrcskey): New argument NAME, so we can report errors ourself.
13797
13798Fri Feb  6 12:10:18 1998  Ian Lance Taylor  <ian@cygnus.com>
13799
13800	* rcs.c (RCS_reparsercsfile): Don't use ftell/fseek; just keep
13801	track of whether we've already read a key/value pair.  Use sizeof
13802	rather than strlen for a constant string.  Pass the current key
13803	and value to getdelta, and get them back as well.
13804	(getdelta): Add keyp and valp parameters.  Don't use ftell/fseek;
13805	just return the key/value pair to the caller.  Don't allocate
13806	vnode before we know we need it.  Check one getrcskey return
13807	value.  Use sizeof rather than strlen for a constant string.
13808
13809	* rcs.c (getrcskey): Correct comment describing return value.
13810
13811Thu Feb  5 22:51:13 1998  Ian Lance Taylor  <ian@cygnus.com>
13812
13813	* subr.c (getcaller): Cache the result, so that we don't keep
13814	searching the password file.
13815
13816Wed Feb  4 23:31:08 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13817
13818	* rcs.c (max_rev): Don't prototype.  Interesting that noone
13819	complained about this until now.
13820
138214 Feb 1998  Jim Kingdon
13822
13823	* rcs.c (RCS_checkin): When adding a new file, read it
13824	with "rb" if binary.
13825
13826Fri Jan 30 11:32:41 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13827
13828	* sanity.sh: Also test "first-dir" as the regexp in loginfo in
13829	addition to ALL.
13830
13831	* main.c (main): Update year in copyright notice to 1998.
13832
13833Thu Jan 29 00:01:05 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13834
13835	* version.c: Change version number to 1.9.25.
13836
13837	* Version 1.9.24.
13838
13839	* sanity.sh (multibranch2): File file2 and tests multibranch2-13
13840	through multibranch2-15 test a slightly different case than the
13841	rest of multibranch2.
13842
13843	* mkmodules.c (cvswrappers_contents): Rewrite.  The text didn't
13844	describe -k and had various other problems.
13845
1384628 Jan 1998  Karl Fogel and Jim Kingdon
13847
13848	New feature to let server tell client about wrappers.
13849	* client.h (struct response): Add comment about args being
13850	'\0' terminated when passed to handle_* functions.
13851	* client.c (start_server): send "wrapper-sendme-rcsOptions" to
13852	server iff supported.
13853	(responses): new response "Wrapper-rcsOption"; allows the server
13854	to send certain lines from its cvswrappers file.
13855	(handle_wrapper_rcs_option): new func, handles "Wrapper-rcsOption"
13856	response from server.
13857	* server.c (serve_wrapper_sendme_rcs_options): new func, sends
13858	server side CVSROOT/cvswrappers rcs option lines to client.
13859	(requests): new request "wrapper-sendme-rcsOptions"; if received,
13860	we know we can send "Wrapper-rcsOption..." to the client.
13861	* wrapper.c (wrap_unparse_rcs_options): new func; repeated calls
13862	step down the wrapper list returning rcs option entries, but
13863	repackaged as cvswrappers lines.
13864	(wrap_setup): new guard variable `wrap_setup_already_done'; if
13865	this function has run already, just return having done nothing.
13866	Add comment concerning environment variable.
13867	* cvs.h: declare wrap_unparse_rcs_options().
13868
13869Tue Jan 27 18:27:19 1998  Ian Lance Taylor  <ian@cygnus.com>
13870
13871	* rtag.c (rtag_dirproc): Call ignore_directory, and skip the
13872	directory if it returns true.
13873	* sanity.sh (modules4): New set of tests to test some aspects of
13874	excluding directories in the modules file, including the above
13875	patch.
13876
13877Thu Jan 22 10:05:55 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13878
13879	* server.c (serve_kopt): Check for length of arg.  Based on
13880	inspection of the code, plugs a buffer overrun security hole which
13881	was introduced Monday.
13882
13883	* server.c (serve_is_modified): Don't call xmalloc; we aren't
13884	allowed to call error() here.  Remove duplicate (and potentially
13885	confusing) variable 'p'.
13886
13887	* log.c (log_fileproc): Look for first character of version
13888	'0' AND second character '\0', rather than OR.  I didn't try to
13889	come up with a test case but this looks like a simple thinko
13890	(albeit one which would show up in obscure cases if at all).
13891
13892Tue Jan 20 19:37:53 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13893
13894	* client.c (send_dirent_proc): Don't send nonexistent directories
13895	unless noexec.
13896	* sanity.sh (modules2): New tests modules2-13 through modules2-18
13897	test for this fix.
13898
13899Mon Jan 19 11:17:51 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13900
13901	* server.c (serve_kopt): New function.
13902	(requests): Add "Kopt" request.
13903	(kopt): New variable.
13904	(serve_is_modified): Write kopts from there into entries.
13905	(serve_modified): Call serve_is_modified so we do the same.
13906	Declare serve_modified and serve_is_modified.
13907	* vers_ts.c (Version_TS): Set ->options even for a dummy ("D"
13908	timestamp) entry.
13909	* import.c (process_import_file): Check for -k options.
13910	* client.c (client_process_import_file): Send Kopt request.
13911	(send_fileproc): Likewise, for "cvs add".
13912	* sanity.sh: Enable test binwrap3-sub2-add1 for remote.
13913	Add -I .cvswrappers to binwrap3-2a; adjust binwrap3-2d
13914	accordingly.  Tests for this fix.
13915
13916Mon Jan 19 08:48:59 1998  Larry Jones  <larry.jones@sdrc.com>
13917
13918	* sanity.sh (errmsg1): Append test 168 output to log file.
13919
13920Sat Jan 17 08:01:51 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13921
13922	* sanity.sh (ann-10, ann-11): Don't make assumptions about the
13923	number of characters in the username.
13924
13925Fri Jan 16 15:34:02 1998  Larry Jones  <larry.jones@sdrc.com>
13926
13927	* diff.c (diff_fileproc): Free label1 and label2 when finished.
13928
13929	* edit.c (editor_set): Don't free edlist until after we're
13930	done using it.
13931
13932	* rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
13933
13934	* subr.c (make_message_rcslegal): Don't access uninitialized or
13935	unallocated memory; only strip trailing blank lines.
13936	* sanity.sh (log-3): Enhance to test this fix.
13937
13938Fri Jan 16 12:41:03 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13939
13940	* sanity.sh: Add keywordlog to list of tests run by default.
13941
13942	* rcs.c (RCS_deltas): Don't call cvs_output if length is zero;
13943	passing zero length to cvs_output does not mean output zero
13944	bytes.  The 27 Dec 1997 change to no longer '\0'-terminate the
13945	->text field turned this from a time bomb to a user-visible bug.
13946	* sanity.sh (ann): New tests, test for this fix and other annotate
13947	behaviors.
13948
13949Thu Jan 15 23:52:00 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13950
13951	* root.c (root_allow_ok): If inetd.conf didn't specify an
13952	--allow-root options at all, we know we are in trouble.  Give a
13953	specific error message.
13954
13955Thu Jan 15 21:24:59 1998  Ian Lance Taylor  <ian@cygnus.com>
13956
13957	* sanity.sh (dotest_sort): New variant of dotest which sorts the
13958	output, for use when the output depends upon details of the file
13959	system, typically when doing an import.
13960	(rdiff): Use dotest_sort for rdiff-1.
13961	(ignore): Use dotest_sort for 188a, 188b, 189d, 190, and 191.
13962
13963	* sanity.sh: (TESTSHELL): New variable.
13964	(editor, info, reserved): Use TESTSHELL in temporary script.
13965
13966	* sanity.sh (ignore): Do all tests in subdirectory, to avoid
13967	conflict between cvsroot and CVSROOT on Windows.
13968	(binwrap3, mwrap, info, config): Likewise.
13969
13970	* sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
13971	binfiles2-7-brmod.
13972
13973	* release.c (release_delete): If __CYGWIN32__ is defined, don't
13974 	worry about mismatched inodes.  This is a hack, but then I think
13975 	the test is rather peculiar anyhow.
13976
13977Thu Jan 15 16:07:36 1998  Larry Jones  <larry.jones@sdrc.com>
13978
13979	* sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
13980
13981Wed Jan 14 15:43:13 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13982
13983	* Split ChangeLog into ChangeLog-97 and ChangeLog.
13984	* Makefile.in (DISTFILES): Add ChangeLog-97.
13985
1398613 Jan 1998  Jim Kingdon
13987
13988	* client.c: Declare handle_mt.
13989
13990Tue Jan 13 22:21:30 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
13991
13992	* sanity.sh: Add comment about how pwd and /bin/pwd often differ
13993	in behavior (but are not guaranteed to).
13994
13995Tue Jan 13 13:49:53 1998  Ian Lance Taylor  <ian@cygnus.com>
13996
13997	* sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
13998
13999	* update.c (checkout_file): Don't pass set_time as true to
14000	Version_TS if the file is dead.
14001	* sanity.sh (modules): Add tests modules-155c6 through
14002 	modules-155c8 to test for above patch (without the above patch,
14003 	modules-155c8 will fail when remote).
14004
14005Tue Jan 13 10:37:02 1998  Larry Jones  <larry.jones@sdrc.com>
14006
14007	* client.c (send_modified): Change bufsize and newsize from int
14008	to size_t to avoid type clashes in call to read_and_gzip.
14009
14010Tue Jan 13 10:33:02 1998  Larry Jones  <larry.jones@sdrc.com>
14011
14012	* zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
14013
14014Tue Jan 13 10:26:43 1998  Larry Jones  <larry.jones@sdrc.com>
14015
14016	* add.c, rcs.c: Plug memory leaks.
14017
14018Mon Jan 12 10:45:27 1998  Larry Jones  <larry.jones@sdrc.com>
14019
14020	* server.c (mkdir_p): Don't try to create nameless directories
14021	(i.e., given "/foo//bar", don't try to create "/foo/",
14022	just "/foo" and "/foo//bar") since it isn't necessary and
14023	it fails on some systems in unexpected ways.
14024
140251998-01-11  enami tsugutomo  <enami@but-b.or.jp>
14026
14027	* rcs.c (linevector_copy): Delete lines before overwriting them.
14028
14029Sat Jan 10 11:05:40 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
14030
14031	* cvsrc.c, entries.c, login.c, logmsg.c, myndbm.c, patch.c,
14032	release.c, server.c: Check for errors from getline, CVS_FOPEN,
14033	fprintf, CVS_UNLINK and fclose.  Note that the new errors are
14034	nonfatal.  This is because of conservatism more than because
14035	it is always the best thing.
14036	* login.c (get_cvs_password): Close the file when done with it.
14037	* client.c (notified_a_file): If -1 return from getline, check
14038	feof rather than assuming errno is set.
14039
14040Fri Jan  9 14:38:54 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
14041
14042	* server.c (expand_proc): Also output server_dir in
14043	"Module-expansion", not just in output_dir ("Created", &c).
14044	* sanity.sh (modules2): New tests modules2-9 through modules2-12
14045	test for this.
14046
14047Thu Jan  8 12:56:55 1998  Yasutoshi Hiroe  <hiroe@rgk.ricoh.co.jp>
14048
14049	* import.c (import): Don't strcat on uninitialized memory.  Fixes
14050	possible SIGSEGV with zero-length message.
14051
14052Tue Jan  6 22:56:29 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
14053
14054	* sanity.sh (crerepos): Fix mistaken variable name which caused us
14055	not to clean up at the end of the test.
14056
14057Mon Dec 22 01:40:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
14058
14059	* add.c (add): Also look for .cvswrappers files.
14060	* sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
14061	test for this.
14062
14063Tue Jan  6 11:50:38 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
14064
14065	* sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
14066	test behaviors when mixing repositories.
14067
14068Sun Jan  4 17:40:22 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
14069
14070	* version.c: Change version number to 1.9.23.
14071
14072	* Version 1.9.22.
14073
14074
14075For older changes see ChangeLog-97.
14076