]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/cvs/src/ChangeLog
This commit was generated by cvs2svn to compensate for changes in r165538,
[FreeBSD/FreeBSD.git] / contrib / cvs / src / ChangeLog
1 2004-06-09  Derek Price  <derek@ximbiot.com>
2
3         * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
4         security fixes.
5         (Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
6         Krahmer <krahmer@suse.de>.)
7
8         * cvs.h: Include xsize.h.
9
10 2004-06-09  Derek Price  <derek@ximbiot.com>
11
12         * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
13         against malformed entries.
14         * sanity.sh (server): Tests for same.
15
16 2004-06-07  Larry Jones  <lawrence.jones@ugsplm.com>
17
18         * sanity.sh (basica): More tests for string-based revision inc.
19
20 2004-06-04  Larry Jones  <lawrence.jones@ugsplm.com>
21
22         * subr.c (increment_revnum): Rewrite ala RCS to work directly on
23         the string rather than converting to int to avoid overflow.
24         * sanity.sh (basica): New tests for above, update others to match.
25
26 2004-05-19  Derek Price  <derek@ximbiot.com>
27
28         * server.c (serve_unchanged, serve_is_modified): Overwrite existing
29         data in timefields.  Fixes CAN-2004-0396.
30
31 2004-05-14  Derek Price  <derek@ximbiot.com>
32
33         * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Don't
34         require '=' to be the only character here, as this is potentially
35         destabilizing.
36
37 2004-05-14  Mark D. Baushke  <mdb@cvshome.org>
38
39         * sanity.sh (trailingslashes): During cleanup remove topfile,v to
40         avoid problems in later tests (editor-1).
41
42 2004-05-13  Derek Price  <derek@ximbiot.com>
43
44         * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
45
46 2004-05-13  Derek Price  <derek@ximbiot.com>
47
48         * sanity.sh (trailingslashes): New tests to expose a bug in CVS when
49         paths are specified with trailing slashes.  This relates to TODO #205.
50
51 2004-05-12  Derek Price  <derek@ximbiot.com>
52
53         * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Only
54         special case "=" when it is the only character in a timestamp field.
55         Gratuitous reformatting.
56         * vers_ts.c (time_stamp_server): Check for NULL in a consistent manner.
57         Gratuitous reformatting.
58
59 2004-05-10  Derek Price  <derek@ximbiot.com>
60
61         * sanity.sh (top-level): Rename to...
62         (rstar-toplevel): ...this for clarity.
63
64 2004-05-10  Derek Price  <derek@ximbiot.com>
65
66         * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
67
68 2004-05-02  Larry Jones  <lawrence.jones@ugsplm.com>
69
70         * log.c (log_expand_revlist): Suppress warnings if really_quiet.
71
72 2004-05-07  Derek Price  <derek@ximbiot.com>
73
74         * sanity.sh (basica): Remove unnecessary empty arguments.
75
76 2004-05-07  Derek Price  <derek@ximbiot.com>
77
78         * cvs.h (fopen_case): Remove obsolescent prototype.
79
80 2004-05-05  Derek Price  <derek@ximbiot.com>
81
82         * sanity.sh: Wait a second and retry if cvs-serv* directories are
83         discovered to avoid race conditions on some systems.
84         (Patch from Pavel Roskin <proski@gnu.org>.)
85
86 2004-05-05  Derek Price  <derek@ximbiot.com>
87
88         * commit.c: Some gratuitous reformatting.
89
90 2004-05-04  Derek Price  <derek@ximbiot.com>
91
92         * update.c: Some gratuitous reformatting.
93
94 2004-05-04  Derek Price  <derek@ximbiot.com>
95
96         * add.c (add): Remove obsolete FIXME comment.
97         (*): Some gratuitous reformatting.
98
99 2004-04-26  Derek Price  <derek@ximbiot.com>
100
101         * client.c (start_rsh_server): Don't rely on GNU argument processing
102         capabilities in the RSH command.
103         (Report from Mark Andrews <Mark_Andrews@isc.org>.)
104
105 2004-04-19  Derek Price  <derek@ximbiot.com>
106
107         * ignore.c: Gratuitous reformatting.
108
109 2004-04-11  Derek Price  <derek@ximbiot.com>
110
111         * client.c (call_in_directory): Check paths the server sends us to make
112         sure they are within a sandbox the user requested be updated.
113         (is_valid_client_path, path_list_prefixed): New functions.
114
115 2004-04-11  Derek Price  <derek@ximbiot.com>
116
117         * modules.c (do_module): Don't allow up-level references in paths to
118         step out of the repository.
119         * sanity.sh (multiroot3): Update tests and add a few more.
120
121 2004-04-07  Derek Price  <derek@ximbiot.com>
122
123         * sanity.sh (parseroot): Replace hard path with $HOME.
124
125 2004-04-07  Derek Price  <derek@ximbiot.com>
126
127         * sanity.sh (parseroot): s/oberon/$username/.
128
129 2004-04-07  Derek Price  <derek@ximbiot.com>
130
131         * client.c (start_tcp_server): Use xstrdup rather than
132         xmalloc(strlen)/strcpy.
133
134 2004-04-07  Derek Price  <derek@ximbiot.com>
135
136         * root.c (parse_cvsroot): Ignore method options.
137         * sanity.sh (parseroot): Verify that method options are ignored.
138
139 2004-04-06  Derek Price  <derek@ximbiot.com>
140
141         * root.h (cvsroot_t): Move username, password, hostname, port inside
142         CLIENT_SUPPORT ifdefs.
143         * buffer.c, root.c, server.c: Add #ifdefs as necessary so that this
144         will compile without client support and the root.h change.  Some
145         gratuitous restyling.
146
147 2004-04-06  Derek Price  <derek@ximbiot.com>
148
149         * log.c, tag.c: Gratuitous restyling.
150
151 2004-04-04  Derek Price  <derek@ximbiot.com>
152
153         * filesubr.c (isabsolute): Move...
154         * subr.c: ...here and use new ISABSOLUTE macro.
155
156 2004-04-04  Derek Price  <derek@ximbiot.com>
157
158         * client.c (send_file_names): Cast out an unneeded const to avoid a
159         warning.
160
161 2004-04-03  Larry Jones  <lawrence.jones@ugsplm.com>
162
163         * client.c (send_file_names): Remove unused variables.
164
165 2004-04-02  Derek Price  <derek@ximbiot.com>
166
167         * sanity.sh (client): Honor $keep.
168
169 2004-04-02  Derek Price  <derek@ximbiot.com>
170
171         * log.c, patch.c, rcs.c: Gratuitous restyling.
172
173 2004-04-02  Derek Price  <derek@ximbiot.com>
174
175         * import.c (import): Use ISDIRSEP rather than testing paths against `/'
176         directly.  Some gratuitos reformatting.
177
178 2004-04-02  Derek Price  <derek@ximbiot.com>
179
180         * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
181         running status.
182
183 2004-04-02  Derek Price  <derek@ximbiot.com>
184
185         * client.c (send_file_names): Move code which calculates and sends
186         Max-dotdot...
187         (send_max_dotdot): ...to this new function.
188         (send_files): Call send_max_dotdot.
189         * sanity.sh (files-14): Expect .. in paths to work now.
190         (status): Add a few new tests using `..'.
191
192 2004-04-01  Derek Price  <derek@ximbiot.com>
193
194         * lock.c: Gratuitous restyling.
195
196 2004-04-01  Derek Price  <derek@ximbiot.com>
197
198         * cvs.h, server.c: Gratuitous restyling.
199         * run.c (run_exec): Ditto, plus call cvs_flush{out,err}() instead of
200         flushing stderr & stdout directly.
201
202 2004-03-29  Derek Price  <derek@ximbiot.com>
203
204         * server.c: Gratuitous restyling.
205
206 2004-03-29  Derek Price  <derek@ximbiot.com>
207
208         * login.c: Gratuitous restyling.
209
210 2004-03-22  Derek Price  <derek@ximbiot.com>
211
212         * sanity.sh (toplevel): Remove FIXME type comment and unneeded
213         Emtptydir removal.
214
215 2004-03-22  Derek Price  <derek@ximbiot.com>
216
217         * update.c: Some minor style cleanup.
218
219 2004-03-22  Derek Price  <derek@ximbiot.com>
220
221         * sanity.sh (top-level): Don't match most of the assertion since this
222         string is often system dependent.
223         (Thanks to Larry Jones <lawrence.jones@ugsplm.com>.)
224
225 2004-03-22  Derek Price  <derek@ximbiot.com>
226
227         * sanity.sh (top-level): Don't match the assertion's line number.
228
229 2004-03-22  Derek Price  <derek@ximbiot.com>
230
231         * sanity.sh (top-level): New test to confirm assertion failure.
232
233 2004-03-22  Derek Price  <derek@ximbiot.com>
234
235         * sanity.sh: Only verify argument to -f when -f was passed.  Check for
236         $TMPDIR/cvsXXXXXX temp files after each test.
237
238 2004-03-22  Derek Price  <derek@ximbiot.com>
239
240         * sanity.sh: Verify that the argument to -f is really a test.
241
242 2004-03-20  Larry Jones  <lawrence.jones@ugsplm.com>
243
244         * cvs.h: Change command_name to cvs_command_name to avoid conflict
245         on HP-UX (incredibly, it declares a global command_name in prot.h,
246         which is included from shadow.h, which we include in server.c).
247         Change all references.
248
249         * subr.c (previous_rev): Fix == vs = typo.
250
251         * buffer.h: Add prototype for buf_empty.
252
253         * add.c (add): Remove unused variable.
254
255 2004-03-20  Derek Price  <derek@ximbiot.com>
256
257         * add.c (add, add_directory, build_entry), admin.c (admin_dirproc),
258         checkin.c (Checkin), checkout.c (safe_location, build_dirs_and_chdir),
259         client.c (add_prune_candidate, send_repository, send_a_repository,
260         send_to_server, start_rsh_server, send_arg, send_modified,
261         send_ignproc, send_filesdone_proc, send_dirent_proc,
262         send_dirleave_proc, client_notify), commit.c (check_direntproc,
263         check_filesdoneproc, checkaddfile, commit_direntproc,
264         commit_dirleaveproc, lock_RCS, precommit_proc, find_data,
265         find_dirent_proc, find_ignproc, find_filesdoneproc), create_adm.c
266         (Create_Admin), cvsrc.c (read_cvsrc), diff.c (diff_dirproc,
267         diff_filesdoneproc, diff_dirleaveproc), edit.c (onoff_filesdoneproc,
268         mark_up_to_date, editor_set, notify_proc_args, notify_proc, notify_do,
269         notify_check), entries.c (Scratch_Entry, Register, WriteTag),
270         expand_path.c (expand_variable, expand_path), fileattr.c
271         (fileattr_startdir), filesubr.c (mkdir_if_needed, xchmod,
272         last_component), history.c (history_write), ignore.c (ignore_directory,
273         ignore_files), import.c (get_comment, add_rcs_file, expand_at_signs),xi
274         lock.c (lock_filesdoneproc), log.c (log_dirproc), logmsg.c
275         (logfile_write, rcsinfo_proc, update_logfile_proc, editinfo_proc,
276         verifymsg_proc, do_editor, do_verify, Update_Logfile), main.c (main
277         program_name, program_path, command_name), parseinfo.c (Parse_Info),
278         patch.c (patch_dirproc), rcs.c (RCS_getdatebranch, rcs_lockfilename,
279         RCS_parse, RCS_setattic, RCS_getversion, RCS_gettag, RCS_getbranch,
280         RCS_getdate, RCS_datecmp, RCS_getrevtime, RCS_setexpand,
281         expand_keywords, RCS_checkout, RCS_addbranch, RCS_checkin, RCS_lock,
282         RCS_cmp_file, RCS_deltas, rcs_lockfilename, make_file_label),
283         rcscmds.c (RCS_output_diff_options, call_diff, RCS_merge,
284         RCS_exec_rcsdiff, diff_exec), recurse.c (start_recursion, do_recursion,
285         do_file_proc), remove.c (remove_dirproc), repos.c (Name_Repository,
286         Short_Repository), root.c (Name_Root, Create_Root), run.c
287         (piped_child), server.c (output_dir, server_register,
288         server_checked_in, server_update_entries, server_copy_file,
289         server_set_entstat, server_clear_entstat, server_set_sticky,
290         server_template, cvs_output_tagged), status.c (status_dirproc), subr.c
291         (make_message_rcslegal), tag.c (pretag_proc, tag_dirproc,
292         check_fileproc, check_filesdoneproc, tag_fileproc, val_direntproc),
293         update.c (update_dirent_proc, update_dirleave_proc, update_ignproc,
294         update_filesdone_proc, isemptydir), vers_ts.c (time_stamp_server,
295         time_stamp), watch.c (watch_modify_watchers, addremove_filesdoneproc),
296         zlib.c (read_and_gzip): Make most string args const, mainly in the
297         interest of preserving repository & updatedir but including some
298         collateral damage.  Update a few functions to comply with new
299         requirement.  Some style fixes.
300         * client.h, cvs.h, edit.h, fileattr.h, rcs.h, server.h, update.h,
301         watch.h: Update prototypes to match.
302
303 2004-03-20  Derek Price  <derek@ximbiot.com>
304
305         * sanity.sh (conflicts2): s/cvs/$testcvs/.
306
307 2004-03-20  Derek Price  <derek@ximbiot.com>
308
309         * add.c (add): Correct longstanding resurrection bugs.  Remove FIXME
310         comment to this effect.  Set mode and Entries timestamps of resurrected
311         files correctly.
312         * sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
313         update-p): Update tests to compensate.  Remove FIXCVS comments.
314
315 2004-03-19  Mark D. Baushke  <mdb@cvshome.org>
316
317         * server.c (gserver_authenticate_connection): Handle large
318         GSSAPI packets dynamically.
319         (Bug report from Douglas Engert <DEEngert@anl.gov>)
320
321 2004-03-19  Derek Price  <derek@ximbiot.com>
322
323         * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
324         prototype arguments to avoid potential conflicts with implementations.
325
326 2004-03-18  Derek Price  <derek@ximbiot.com>
327
328         * cvs.h (pathname_levels): Make string argument const.
329         * subr.c (pathname_levels): Simplify function.
330
331 2004-03-17  Derek Price  <derek@ximbiot.com>
332
333         * subr.c (pathname_levels): Get it right this time.
334
335 2004-03-17  Derek Price  <derek@ximbiot.com>
336
337         * subr.c (pathname_levels): Remove incorrect assertion and just
338         return 0 when pathname is NULL.
339
340 2004-03-17  Derek Price  <derek@ximbiot.com>
341
342         * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
343         and remove FIXME comment to that effect.
344
345 2004-03-16  Derek Price  <derek@ximbiot.com>
346
347         * main.c (main): Update the --version Copyright (c) string to
348         include 2004.
349
350 2004-03-15  Mark D. Baushke  <mdb@cvshome.org>
351
352         * release.c (release): Add missing xmalloc of update_cmd.
353
354 2004-03-15  Derek Price  <derek@ximbiot.com>
355
356         * release.c (release): Enable authentication and encryption for a child
357         update process when necessary.
358         (Original patch from Dan Russell <russelld@aol.net> via Hal Mahaffey
359         <HMahaffey@aol.com>.)
360
361 2004-03-14  Derek Price  <derek@ximbiot.com>
362
363         * add.c (add): Only call server_updated() when we actual have a new
364         resurrected file for the client.
365
366 2004-03-14  Derek Price  <derek@ximbiot.com>
367
368         * cvs.h (previous_rev, write_letter): New prototypes.
369         (struct file_info): Move to before the write_letter prototype.
370         * add.c (add): Allow resurrection of files which used to exist on a
371         branch.
372         * subr.c (previous_rev): New function.
373         * update.c: Consolidate like pragmas.
374          (write_letter): Remove prototype.  Remove static declaration.
375         * sanity.sh (resurrection): New tests.
376
377 2004-03-14  Derek Price  <derek@ximbiot.com>
378
379         * commit.c (remove_file): Print the actual previous revision instead of
380         a branch number.
381         * sanity.sh: Update to match.
382
383 2004-03-14  Derek Price  <derek@ximbiot.com>
384
385         * rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
386         open in the error message.
387
388 2004-03-14  Derek Price  <derek@ximbiot.com>
389
390         * diff.c (diff_fileproc): Allow diffing of new files against arbitrary
391         revisions instead of assuming that there is no RCS archive file.
392
393 2004-03-03  Derek Price  <derek@ximbiot.com>
394
395         * import.c (import): Check that the module name specified by the user
396         does not contain `CVS' as a directory name.
397         * ignore.c (ign_add): Never cease ignoring "CVS" - it is a reserved
398         name.
399         (Original patch from Dan Peterson <dbpete@aol.com>.)
400
401         * sanity.sh (import-CVS): New tests for the above.
402
403 2004-02-29  Larry Jones  <lawrence.jones@ugsplm.com>
404
405         * import.c (expand_at_signs): Change type of len to size_t.
406         * subr.c (resolve_symlink): Move declaration of newname inside
407         #ifdef, clean up coding style.
408         * zlib.c (gunzip_and_write): Fix up potential overlow problems.
409         (read_and_gzip): Add explicit casts to placate paranoid compilers.
410
411 2004-02-28  Larry Jones  <lawrence.jones@ugsplm.com>
412
413         * sanity.sh (join6): New tests for previous fix.
414
415         * update.c (join_file): One more fix to avoid dereferencing NULL.
416         (Reported by Steve McIntyre <steve@einval.com>.)
417         * sanity.sh (join6): New tests for above.
418
419 2004-02-25  Larry Jones  <lawrence.jones@ugsplm.com>
420
421         * update.c (join_file): Fix optimization to avoid dereferencing NULL.
422         (Reported by Steve McIntyre <steve@einval.com>.)
423
424 2004-02-25  Derek Price  <derek@ximbiot.com>
425
426         * buffer.c (buf_empty): New function.
427         * server.c (server): Check for unread data in buffer before closing.
428
429 2004-02-25  Derek Price  <derek@ximbiot.com>
430
431         * release.c (release): Restore the initial directory before and after
432         calling various sections of code that expect it to prevent corruption
433         of CVS/Entries files on release of a subdir and tell unedit() what to
434         release.
435         * sanity.sh: Add test case for release.c fix.
436         (Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
437
438         * client.c (last_entries): Move global variable...
439         (call_in_directory): ...here (now a local variable).  Remove test that
440         always evaluates to true.
441         (last_dir_name): Remove unused global variable.
442
443 2004-02-24  Larry Jones  <lawrence.jones@ugsplm.com>
444
445         * filesubr.c (xresolvepath): Fix crash in error case.
446         (Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
447
448 2004-02-24  Derek Price  <derek@ximbiot.com>
449
450         * sanity.sh (crerepos): Minor stylistic changes to previous change.
451
452 2004-02-24  Derek Price  <derek@ximbiot.com>
453
454         * sanity.sh (crerepos): Fix it so that it ignores the user's
455         .cvsrc file (.cvsrc "checkout -r" used to cause the "rm -r 1"
456         command to print warnings and wait for input).
457         (Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
458
459         * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
460         s/_SAVED\>/_save/ for consistency.
461
462 2004-02-20  Derek Price  <derek@ximbiot.com>
463
464         * subr.c (set_nonblock_fd): Move back to...
465         * server.c: ...here.
466         * cvs.h: Remove protos for the above two functions.
467         * buffer.c (stdio_buffer_shutdown): Remove unexessary and possibly
468         dangerous check for unread data on a pipe with a nonblock read.
469
470 2004-02-20  Derek Price  <derek@ximbiot.com>
471
472         * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
473         update.c: Remove VIM editor commands.
474
475 2004-02-20  Larry Jones  <lawrence.jones@ugsplm.com>
476
477         * hash.h (struct node): Change data from char * to void *, change
478         all callers.
479
480 2004-02-19  Larry Jones  <lawrence.jones@ugsplm.com>
481
482         * login.c (password_entry_operation): Initialize line.
483
484 2004-02-19  Derek Price  <derek@ximbiot.com>
485
486         * sanity.sh (crerepos): Correct comment.
487
488 2004-02-19  Derek Price  <derek@ximbiot.com>
489
490         * sanity.sh (crerepos): Don't create directories named `tmp' in
491         $TESTDIR to avoid conflicts with the default value of $TMPDIR.
492
493 2004-02-19  Derek Price  <derek@ximbiot.com>
494
495         * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
496         dotest functions.
497
498 2004-02-19  Derek Price  <derek@ximbiot.com>
499
500         * sanity.sh: No longer allow user override of $tmp.  Set $TMPDIR to a
501         directory under $TESTDIR, as for $HOME, but still allowing for user
502         override.  Check for cvs-serv* directories under $TMPDIR rather than
503         $tmp at the end of the script.
504
505 2004-02-17  Derek Price  <derek@ximbiot.com>
506
507         * sanity.sh: Check for $PWD != $TESTDIR after each set of tests rather
508         than once at the end.  Check that there are no cvs-serv* directories in
509         $tmp after each set of remote tests.
510
511 2004-02-17  Derek Price  <derek@ximbiot.com>
512
513         * sanity.sh: Don't check for an empty $TESTDIR - if $TESTDIR was empty
514         then the preceding call to mkdir would have failed anyhow.
515
516 2004-02-17  Larry Jones  <lawrence.jones@ugsplm.com>
517
518         * log.c (rlog_proc): Fix (harmless) uninitialized variable.
519
520         * sanity.sh (basicc): Add tests pointing out defective handling
521         of the Entries file.
522
523 2004-02-17  Derek Price  <derek@ximbiot.com>
524
525         * checkout.c (build_dir_and_chdir): Expand header comment.
526
527 2004-02-15  Mark D. Baushke  <mdb@cvshome.org>
528
529         * annotate.c (rannotate_proc): Plug a memory leak.
530         * log.c (log_fileproc): Ditto.
531         * tag.c (tag_fileproc): Ditto.
532         * update.c (checkout_file): Ditto.
533         * server.c (server_updated): Do not buf_free (filebuf) here.
534         
535 2004-02-13  Larry Jones  <lawrence.jones@ugsplm.com>
536
537         * rcs.c (locate_rcs): Remove unused variables.
538
539 2004-02-12  Mark D. Baushke  <mdb@cvshome.org>
540
541         * lock.c (readers_exist): Plug a memory leak.
542
543 2004-02-12  Mark D. Baushke  <mdb@cvshome.org>
544
545         * server.c (do_cvs_command): Plug a memory leak.
546
547 2004-02-12  Derek Price  <derek@ximbiot.com>
548
549         * modules.c: Reformat comment and line to fit in 80 chars.
550
551 2004-02-12  Larry Jones  <lawrence.jones@ugsplm.com>
552
553         * modules.c (_do_module): Rename to my_module to avoid reserved name.
554         * stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
555
556 2004-02-11  Larry Jones  <lawrence.jones@ugsplm.com>
557
558         * root.c (parse_cvsroot): Set hostname in fork mode for error messages.
559         * buffer.c (stdio_buffer_shutdown): Undo previous change.
560
561 2004-02-11  Mark D. Baushke  <mdb@cvshome.org>
562
563         * buffer.c (buf_free): Plug a memory leak.
564         * commit.c (checkaddfile): Ditto.
565
566         * server.c (fd_buffer_shutdown): Avoid a double free().
567
568         * parseinfo.c (parse_config): Fix comments.
569
570 2004-02-11  Derek Price  <derek@ximbiot.com>
571
572         * buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
573         print current_parsed_root->hostname when using the fork method.
574
575 2004-02-11  Derek Price  <derek@ximbiot.com>
576
577         * server.c (do_cvs_command): Simplify stream & pipe closing.
578         (Suggestion from Eric Siegerman <erics@telepres.com>.)
579
580         * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
581
582 2004-02-11  Derek Price  <derek@ximbiot.com>
583
584         * checkout.c (checkout_proc): s/is_absolute/isabsolute/.
585
586 2004-02-11  Derek Price  <derek@ximbiot.com>
587
588         * checkout.c (checkout_proc): Remove unneeded variable and enclosing
589         block.
590         * modules.c (_do_modules): Minor whitespace change.
591
592 2004-02-10  Derek Price  <derek@ximbiot.com>
593
594         * server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
595         (set_block_fd, set_nonblock_fd): Move to...
596         * subr.c: ...here.
597         * cvs.h: Add protos for the above two functions.
598         * buffer.c (stdio_buffer_shutdown): Replace fgetc() which checked for
599         unread data on a pipe with a nonblock read.
600
601 2004-02-10  Derek Price  <derek@ximbiot.com>
602
603         * server.c (do_cvs_command): Have the server child close all the pipes
604         but the flow control pipe and wait on an EOF on the flow control pipe
605         from the parent when done to avoid a race condition that could
606         otherwise generate a SIGPIPE for the parent before the SIGCHILD when
607         the other pipes were so full after a child exited that the parent
608         attempted to write a stop byte to the flow control pipe.
609         (Original report from <jesse_off@stchome.com>.)
610
611 2004-02-10  Derek Price  <derek@ximbiot.com>
612
613         * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
614
615 2004-02-09  Derek Price  <derek@ximbiot.com>
616
617         * sanity.sh (co-d): Update comments and tests to reflect the current
618         state of my side of my discussion with Larry Jones on how these
619         commands should behave.
620
621 2004-02-09  Derek Price  <derek@ximbiot.com>
622
623         * sanity.sh (emptydir): Add two new tests for how modules -d behaves
624         when a directory already exists in the user's workspace.
625         (emptydir): Add --keep functionality.
626
627 2004-02-09  Derek Price  <derek@ximbiot.com>
628
629         * sanity.sh (co-d): New test to prove `co -d' failure case.
630
631 2004-02-05  Derek Price  <derek@ximbiot.com>
632
633         * sanity.sh (recase): Fix typo that creeped in somehow between my last
634         test run and my commit.
635
636 2004-02-04  Derek Price  <derek@ximbiot.com>
637
638         * stack.c (shift, shift_string): Make sure these functions return their
639         result.
640
641 2004-02-04  Derek Price  <derek@ximbiot.com>
642
643         * modules.c (do_modules): Move content to and make this function a
644         wrapper for...
645         (_do_modules): ...this new function which can watch for infinite loops
646         in alias modules.
647         * stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
648         unshift_string, shift_string): New
649         functions.
650         * stack.h (push_string, pop_string, unshift_string, shift_string: New
651         prototypes.
652         * sanity.sh (modules): Add check for nested alias loops.
653
654 2004-02-04  Derek Price  <derek@ximbiot.com>
655
656         * sanity.sh (recase): Update test names and comments for clarity and
657         consistency.
658
659 2004-02-03  Derek Price  <derek@ximbiot.com>
660
661         Preserve the case of checked out directories in a path as well as file
662         names for client communication with the server.
663
664         * Makefile.am (cvs_SOURCES): Add stack.c & stack.h.
665         * stack.c, stack.h: New files.
666         * cvs.h: Include stack.h.
667         * client.c (send_file_names): Preserve the case of directories in a
668         path as well as file names for communication with the server.
669
670         * Makefile.in: Regenerated.
671
672 2004-02-02  Derek Price  <derek@ximbiot.com>
673
674         * sanity.sh (join-rm): New test for issue #104 & #159.
675
676 2004-02-02  Derek Price  <derek@ximbiot.com>
677
678         Continue removal from server of handling of case insensitive clients.
679
680         * cvs.h: Remove extern declaration of ign_case.
681         * ignore.c (ign_case): Remove declaration.
682         (ign_name): Remove support for ign_case.
683         * server.c (serve_case): Ditto.
684         (requests): No longer support the "Case" request.
685         * rcs.c (locate_rcs): Remove reference to GLOBAL in function header
686         comment.
687
688 2004-02-02  Derek Price  <derek@ximbiot.com>
689
690         * add.c, client.c, cvs.h, rcs.c, subr.c: Remove server support for case
691         insensitivity.
692
693 2004-01-25  Derek Price  <derek@ximbiot.com>
694
695         * server.c (kserver_authenticate_connection): Fix call to
696         switch_to_user().
697         (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
698
699 2004-01-22  Derek Price  <derek@ximbiot.com>
700
701         * modules.c (do_module): Strip trailing slashes before checking for
702         infinite alias loops.
703         * sanity.sh (modules): Tests for response to infinite alias loops.
704
705 2004-01-17  Mark D. Baushke  <mdb@cvshome.org>
706
707         * logmsg.c (do_verify): Eliminate double-free bug.
708         (Original patch from Gerald Combs.)
709
710 2004-01-07  Larry Jones  <lawrence.jones@ugsplm.com>
711
712         * checkout.c (safe_location): Remove unused variable(s).
713         * lock.c (lock_tree_for_write): Ditto.
714         * rcs.c (RCS_checkin): Ditto.
715         * subr.c (compare_revnums): Ditto.
716         * tag.c (tag_check_valid): Ditto.
717         * mkmodules.c (init): Initialize err and return it rather than 0.
718         * server.c (do_cvs_command): Only define and set max_command_fd if
719         we're actually going to use it.
720
721 2004-01-01  Larry Jones  <lawrence.jones@ugsplm.com>
722
723         * zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
724         overruns, use names for magic numbers.
725         (Original patch from Jeff Downs <heydowns@borg.com>.)
726
727 2003-12-18  Derek Price  <derek@ximbiot.com>
728
729         * server.c (switch_to_user): SysLog attempts to root from pserver.
730
731 2003-12-18  Derek Price  <derek@ximbiot.com>
732
733         * server.c (switch_to_user): Don't allow CVS to run as root in pserver
734         mode.
735         (Original patch from Wichert Akkerman via Bradley M Kuhn
736          <bkuhn@fsf.org>.)
737         * sanity.sh (pserver): Check for bad root error message.
738
739 2003-12-17  Larry Jones  <lawrence.jones@eds.com>
740
741         * run.c (close_on_exec): fcntl is not documented to return 0 for
742         success (and QNX doesn't), only -1 for error.
743         (Patch from George Refseth <george.refseth@arxi.no>.)
744
745 2003-12-09  Mark D. Baushke  <mdb@cvshome.org>
746
747         * server.c (template_proc): Fix broken Template protocol code.
748         Must call send buf_send_counted() for Template files to avoid
749         "Protocol error: uncounted data discarded" messages in some
750         circumstances.
751         (Problem reported by "Jim.Hyslop" <Jim.Hyslop@Leitch.com>.)
752         
753 2003-12-03  Derek Price  <derek@ximbiot.com>
754
755         * sanity.sh (recase-8csss): rename to...
756         (recase-8sscs): ...this to match the convention.
757
758 2003-12-03  Derek Price  <derek@ximbiot.com>
759
760         * sanity.sh (recase): Add some clarifying comments.
761
762 2003-12-03  Larry Jones  <lawrence.jones@eds.com>
763
764         * expand_path.c (expand_variable): Expand ${CVSROOT} to just the
765         directory like it's supposed to be.
766         (Reported by Michael S. Tsirkin <cvs1@misha.eml.cc>.)
767
768 2003-11-26  Derek Price  <derek@ximbiot.com>
769
770         * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
771         intermittent conniptions.
772
773 2003-11-25  Mark D. Baushke  <mdb@cvshome.org>
774
775         * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
776
777 2003-11-25  Derek Price  <derek@ximbiot.com>
778
779         * sanity.sh (release): Perform forgotten cleanup.
780
781 2003-11-25  Derek Price  <derek@ximbiot.com>
782
783         * commit.c (commit_fileproc): Reword comment.
784
785 2003-11-25  Derek Price  <derek@ximbiot.com>
786
787         * add.c (add): Disable ign_case for the purposes of adding a file so
788         that recasing the name of a file is possible from a case insensitive
789         client.
790         * sanity.sh (recase): New tests for behavior which varies when the
791         client and/or the server are case insensitive.
792
793 2003-11-25  Derek Price  <derek@ximbiot.com>
794
795         * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
796         considerably between platforms.
797
798 2003-11-24  Larry Jones  <lawrence.jones@eds.com>
799
800         * diff.c (diff_file_nodiff): use_rev1 does *not* imply that diff_rev1
801         is not null, diff_date1 could be set instead (ditto for use_rev2).
802         (Reported by <jnelson-cvsbug@jamponi.net>.)
803
804 2003-11-24  Derek Price  <derek@ximbiot.com>
805
806         * sanity.sh (modes3): Skip modes3-5 entirely under Cygwin since
807         permisions are broken there.  This change removes most of the earlier
808         Cygwin differentiation in this test ($cygwin_hack & $cygwin_hack2) in
809         favor of skipping the test entirely.
810
811 2003-11-21  Larry Jones  <lawrence.jones@eds.com>
812
813         * hash.c (printnode, printlist): Cast %p arguments to void * as
814         required by the C standard.
815
816 2003-11-21  Derek Price  <derek@ximbiot.com>
817
818         * sanity.sh: Add `-h <hostname>' option to enable testing across a
819         :ext: connection to another host.  Warn when `-h' is specified without
820         $TESTDIR.  Leave $TESTDIR intact when it looks absolute since it may
821         contain symlinks.  Allow $CVS_SERVER to be overridden via the
822         environment for `-h'.  Default $CVS_RSH to `rsh'.
823         (*): Use $CVS_RSH to perform certain commands on the remote host (esp.
824         `ln -s' and `chmod') when `-h' is specified to work around
825         incompatibilities with CygWin & Samba.  Add a few other minor
826         workarounds for Cygwin bugs.
827
828         (newroot): New function.
829         (*): Use newroot when appropriate.
830
831 2003-11-19  Larry Jones  <lawrence.jones@eds.com>
832
833         * rcs.c (RCS_getrevtime): Add error checking; cleanup.
834
835 2003-11-18  Derek Price  <derek@ximbiot.com>
836
837         * modules.c (do_module): Reject absolute paths.
838         (Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
839
840         * sanity.sh (abspath2): Check for the above.
841         (spacefiles): Remove tests that expect absolute paths to files in the
842         top level repository directory to work.
843         (tests): Add abspath2.
844
845 2003-11-13  Derek Price  <derek@ximbiot.com>
846
847         * rcs.c (RCS_delete_revs): It's `&&', not `and'.
848
849 2003-11-13  Derek Price  <derek@ximbiot.com>
850
851         * sanity.sh: Create the empty log to make it easier to tail immediately
852         after the script is started.
853
854 2003-11-13  Derek Price  <derek@ximbiot.com>
855
856         * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
857         the help option.
858
859 2003-11-13  Derek Price  <derek@ximbiot.com>
860
861         * rcs.c (RCS_delete_revs): Don't use the WOE32 kludge which refuses to
862         delete revisions from bvinary files on Cygwin.  I'm not sure what the
863         kludge was trying to avoid, but commenting it out causes the test suite
864         to pass.
865
866 2003-11-10  Derek Price  <derek@ximbiot.com>
867
868         * commit.c (check_fileproc, find_fileproc): Don't leak memory.
869
870 2003-11-10  Derek Price  <derek@ximbiot.com>
871
872         * commit.c (find_fileproc, check_fileproc):  Refuse to remove files
873         when the file exists in the sandbox.  This used to cause data loss.
874         (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
875
876         * sanity.sh (rmadd3): Update to match.  Expand comments.
877
878 2003-11-10  Derek Price  <derek@ximbiot.com>
879
880         * sanity.sh (rmadd3): Test the behavior of commit after the
881         add/replace.
882         (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
883
884 2003-11-10  Mark D. Baushke  <mdb@cvshome.org>
885
886         * Backport symlink bugfix from cvs 1.12.1.1 feature release
887         as written by Derek Price <derek@ximbiot.com>. (This fixes
888         the Issue 142 bug.)
889
890         * recurse.c (start_recursion): Accept new repository argument so
891         that the working directory may be tracked by do_recursion without
892         using xgetwd(), which returned a value different from the one the
893         user requested when symlinks were in use. Pass repository_in to
894         do_recursion() as part of the recursion frame.
895
896         * cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
897         (xresolvepath): New proto.
898         (start_recursion): Add repository to proto.
899
900         * checkout.c (safe_location): Add more complete header comment.
901         Add trace.  Use new xresolvepath() function.  Always return true
902         in client mode since checking our destination path against the
903         CVSROOT path is usually meaningless in client/server mode.
904         (checkout_proc): Pass repository to do_update() for later use with
905         start_recursion().
906
907         * admin.c (admin): Use new definition of start_recursion().
908         * annotate.c (rannotate_proc): Ditto.
909         * client.c (send_files): Ditto.
910         * commit.c (commit): Ditto.
911         * diff.c (diff): Ditto.
912         * edit.c (watch_onoff, send_notifications, edit, unedit, editors):
913         Ditto.
914         * lock.c (lock_tree_for_write): Ditto.
915         * log.c (rlog_proc): Ditto.
916         * patch.c (patch_proc): Ditto.
917         * remove.c (cvsremove): Ditto.
918         * tag.c (rtag_proc): Ditto.
919         * update.c (do_update): Ditto.
920         * watch.c (watch_addremove, watchers): Ditto.
921
922         * patch.c (patch_proc): Call tag_check_valid with repository
923         instead of NULL.
924
925         * filesubr.c (xreadlink): #ifdef HAVE_READLINK this function.  Add
926         more complete header comment.
927         (xresolvepath): New function.
928
929         * recurse.c (do_recursion): Call Lock_Cleanup() only repository
930         was set.
931
932         * update.c (do_update): Accept new repository argument so that the
933         working directory may be tracked.
934         (update): Pass NULL repository to do_update().
935         * update.c (do_update): Add repository to proto.
936
937         * checkout.c (checkout_proc): Use new definition of do_update().
938         * update.c (update): Ditto.
939
940         * sanity.sh: Add new -l option to test symlinked roots.
941         (checkout_repository-1): Add server error messages about absolute
942         paths since the client now skips destination validity checks.
943         (check_repository-2): Test renamed to checkout_repository-2.
944         (checkout_repository-2): Process client error messages about
945         CVSROOT files being in the way since the client skips destination
946         validity checks since it should be rare that a client is running
947         in client/server mode on the server and CVS has no current way to
948         check if it is running on the server. 
949         (check_repository-3): Test renamed to checkout_repository-3.
950         (dottedroot): New test to check that a CVSROOT with a "." in the
951         name will work.
952
953 2003-11-10  Derek Price  <derek@ximbiot.com>
954
955         * sanity.sh (rmadd3): Add whitespace after end of test for readability.
956
957 2003-11-10  Derek Price  <derek@ximbiot.com>
958
959         * sanity.sh (rmadd3): New tests that confirms that CVS refuses to
960         delete a file it thinks was already removed.
961         (Report and test from Andreas Reifschneider
962         <andyreif@studcs.uni-sb.de>.)
963
964 2003-11-03  Derek Price  <derek@ximbiot.com>
965
966         * sanity.sh (server): Test that the global `-l' option is ignored
967         nonfatally.
968
969 2003-11-01  Larry Jones  <lawrence.jones@eds.com>
970
971         * ignore.c (ignore_files): Use CVS_LSTAT() instead of lstat().
972         * filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
973         (Reported by Paul Edwards <kerravon@nosppaam.w3.to>.)
974
975 2003-10-31  Derek Price  <derek@ximbiot.com>
976
977         * sanity.sh (checkout_repository): Name tests consistently.
978
979 2003-10-31  Derek Price  <derek@ximbiot.com>
980
981         * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
982
983 2003-10-28  Derek Price  <derek@ximbiot.com>
984
985         * sanity.sh (devcom): s/cvs/$PROG/.
986
987 2003-10-28  Derek Price  <derek@ximbiot.com>
988
989         * sanity.sh (devcom): Renumber tests and use dotest function.
990
991 2003-10-28  Derek Price  <derek@ximbiot.com>
992
993         * sever.h: Add the standard copyright notice.
994
995 2003-10-28  Derek Price  <derek@ximbiot.com>
996
997         * lock.c: Remove some suggestions which have already been implemented
998         or which have become obsolete from the header comment.
999
1000 2003-10-26  Derek Price  <derek@ximbiot.com>
1001
1002         * sanity.sh (join6): Fix a few typos in the last test and remove a
1003         misplaced test.
1004
1005 2003-10-25  Mark D. Baushke  <mdb@cvshome.org>
1006
1007         * sanity.sh (parseroot): Perform this test in a subdirectory.
1008         It should avoid problems on case-insensitive systems where 
1009         CVSROOT and cvsroot are the same directory (eg, MacOS X).
1010
1011 2003-10-24  Derek Price  <derek@ximbiot.com>
1012
1013         * update.c (join_file): Restore the optimization Mark recently removed,
1014         but fix it.  Move one other optimization up since it needs to be
1015         checked for first.  Add bew status messages like merge_file produces
1016         when the requested diff has already been applied to the destination.
1017         Expand header comment.
1018         * sanity.sh (join6): Add tests for the new error messages.
1019         (import-113, join-admin-2, diffmerge1): Fix collateral damage.
1020
1021 2003-10-23  Mark D. Baushke  <mdb@cvshome.org>
1022
1023         * update.c (join_file): Do the -jrev1 -jrev2 merge even when
1024         the file is already at rev2.
1025         * sanity.sh (join6): New testcase for above.
1026         (Suggested by Paul Edwards, from somewhere in Australia.)
1027         (import): Fix collateral damage.
1028         
1029 2003-10-23  Derek Price  <derek@ximbiot.com>
1030
1031         * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
1032         on failure.
1033
1034 2003-10-19  Mark D. Baushke  <mdb@cvshome.org>
1035
1036         * sanity.sh (admin-31): Fix more typos.
1037
1038 2003-10-18  Mark D. Baushke  <mdb@cvshome.org>
1039
1040         * sanity.sh (admin): Fix a typo.
1041
1042         * admin.c (admin_fileproc): Restore the ':' character in the
1043         -mtag:message admin argument even if the tag does not exist so
1044         that other files with the tag will be found. Also, be more
1045         paranoid that a symbolic tag actually points to a version that
1046         exists.
1047         (Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
1048         * sanity.sh (admin): Test these changes.
1049         
1050 2003-10-17  Mark D. Baushke  <mdb@cvshome.org>
1051
1052         * admin.c (admin_fileproc): Force tag match on admin
1053         -mversion:message rather than altering the wrong log message.
1054         (Patch from "Rodolfo Schulz de Lima" <rodsoft@uol.com.br>.)
1055         * sanity.sh (admin): Test case for it.
1056
1057 2003-10-15  Larry Jones  <lawrence.jones@eds.com>
1058
1059         * commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
1060         if the RCS file didn't get created at all.
1061         (Reported by David Wood <David.Wood@thestreet.com>.)
1062
1063 2003-10-14  Derek Price  <derek@ximbiot.com>
1064
1065         Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
1066         testing with _POSIX2_VERSION=200112 in the environment.
1067
1068         * sanity.sh: Use 'sed 1q', not 'head -1'.
1069         (Patch from Paul Eggert <eggert@twinsun.com>.)
1070
1071 2003-10-10  Derek Price  <derek@ximbiot.com>
1072
1073         * lock.c (set_lock): Clarify comment.
1074
1075 2003-10-08  Derek Price  <derek@ximbiot.com>
1076
1077         * Makefile.am (cvs_SOURCES): Add history.h.
1078         * history.c: Include history.h.  Add the `P' record types to more
1079         comments. s/ALL_REC_TYPES/ALL_HISTORY_REC_TYPES/.
1080         (usage): Reference ALL_HISTORY_REC_TYPES rather than using a separate
1081         string literal.
1082         (report_hrecs): Handle `P' record type.
1083         (ALL_REC_TYPES): Rename and move...
1084         * history.h (ALL_HISTORY_REC_TYPES): ...here.
1085         * mkmodules.c: Include history.h.
1086         (config_contents): Update contents of and references to LogHistory
1087         records to use ALL_HISTORY_REC_TYPES.
1088         * sanity.sh (basic2-64): Update to include history records of type `P'.
1089
1090         * Makefile.in: Regenerated.
1091
1092 2003-10-08  Derek Price  <derek@ximbiot.com>
1093
1094         * update.c (patch_file): Correct spelling and punctuation in comment.
1095         Update some lines to fit in 80 characters.
1096
1097 2003-10-08  Larry Jones  <lawrence.jones@eds.com>
1098
1099         * history.c (history): Don't conflate -e with -x since the client's
1100         idea of what -e means may not match the server's.
1101         (Reported by Frank Hemer <frank@hemer.org>.)
1102
1103 2003-10-07  Larry Jones  <lawrence.jones@eds.com>
1104
1105         * sanity.sh: Use dotest_fail instead of dotest_status for diff tests
1106         since CVS only returns success/fail rather than 0/1/2 like diff does.
1107
1108 2003-10-07  Derek Price  <derek@ximbiot.com>
1109
1110         Fix a client/server bug introduced via the data loss fix of 2003-03-17.
1111         Basically, the server was reporting ambiguous filename requests when it
1112         should have been trusting the user to type the intended case or using
1113         the case the client preserved in CVS/Entries before it tried to look
1114         anything up in case insensitive mode.
1115
1116         * rcs.c (locate_rcs): Use the filename exactly as cased before
1117         investigating a case insensitive lookup, per the client/server protocol
1118         specification.  Expand comments.
1119         * subr.c (locate_file_in_dir): This function only needs to locate files
1120         case insensitively.  Expand comments.
1121         * cvs.h (locate_file_in_dir): Only prototype when servers which need to
1122         handle case insensitivity are being compiled.
1123
1124 2003-10-07  Derek Price  <derek@ximbiot.com>
1125
1126         * rcs.c (locate_rcs): Declare static.  Move to an earlier location in
1127         file to avoid prototyping.
1128         * rcs.h (locate_rcs): Remove proto.
1129
1130 2003-10-03  Derek Price  <derek@ximbiot.com>
1131
1132         * server.c (serve_global_option): Warn that -l is being ignored rather
1133         than exiting fatally due to backwards compatibility complaints from
1134         administrators.
1135
1136 2003-09-29  Derek Price  <derek@ximbiot.com>
1137
1138         * rcs.c (make_file_label): Make a failure to stat a file a fatal error
1139         since it signals that a later read will also fail.
1140
1141 2003-09-26  Derek Price  <derek@ximbiot.com>
1142
1143         * diff.c (diff): Add a FIXME re spaces in diff arguments.
1144
1145 2003-09-25  Mark D. Baushke  <mdb@cvshome.org>
1146
1147         * rcs.c (make_file_label): Do not return an uninitialized label.
1148         (Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
1149
1150 2003-09-12  Derek Price  <derek@ximbiot.com>
1151
1152         * sanity.sh (mkmodules): Correct comments.
1153
1154 2003-09-12  Derek Price  <derek@ximbiot.com>
1155
1156         * mkmodules.c (mkmodules): Do not pass a string which came from the
1157         checkoutlist file directly to error as a format string since we don't
1158         want to trust any user with access to checkoutlist with creating printf
1159         format strings.  I already claimed I did this in the NEWS file.
1160         (Thanks to Larry Jones for spotting my mistake.)
1161         * sanity.sh (mkmodules): Test for the above.
1162
1163 2003-09-12  Derek Price  <derek@ximbiot.com>
1164
1165         * mkmodules.c (checkoutlist_contents): Document the optional portions
1166         of this file format more accurately.
1167         (mkmodules): Ditto, in comments.  Fix bug that always failed to ignore
1168         whitespace before error messages.
1169         * sanity.sh (mkmodules-temp-file-removal): Rename to...
1170         (mkmodules): ...this and add a test of the checkoutlist error message.
1171         Add cleanup step to restore checkoutlist.
1172
1173 2003-08-27  Larry Jones  <lawrence.jones@eds.com>
1174
1175         * history.c: 'P' is a valid record type and has been for a long time.
1176         Add it to the comments, usage message, and, most important,
1177         ALL_REC_TYPES so it gets recorded by default.
1178         * server.c (do_cvs_command): Set global command_name to the real
1179         command name rather than leaving it set to "server".
1180         * sanity.sh: Update to match.
1181         (Reported by Dmitry Ryzhkov <rdim_outside@softhome.net>.)
1182
1183 2003-08-13  Larry Jones  <lawrence.jones@eds.com>
1184
1185         * server.c (server_cleanup): Don't shutdown buf_from_net if it's
1186         null.
1187         (Reported by Scott Mitchell <scott@fishballoon.org>.)
1188
1189 2003-08-01  Derek Price  <derek@ximbiot.com>
1190
1191         * sanity.sh (join5): Use $PROG consistently and escape a `.'.
1192
1193 2003-08-01  Derek Price  <derek@ximbiot.com>
1194
1195         * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
1196
1197 2003-07-31  Derek Price  <derek@ximbiot.com>
1198
1199         * add.c (add_directory): Restore a malloc I shouldn't have altered on
1200         the stable branch.
1201
1202 2003-07-31  Derek Price  <derek@ximbiot.com>
1203
1204         * rcscmds.c (RCS_merge): Pass `--' before the filename arguments to
1205         diff so that filenames starting with `-' can be merged.
1206         * sanity.sh (join5): New test for same.
1207
1208 2003-07-31  Derek Price  <derek@ximbiot.com>
1209
1210         * add.c (add_directory): Don't print status information in really_quiet
1211         mode.
1212
1213 2003-07-29  Derek Price  <derek@ximbiot.com>
1214
1215         * commit.c (checkaddfile): Simplify the logic here, using assumptions
1216         already made later in the function to remove calls to locate_rcs and
1217         some conditionals.  Use same assumptions to remove some variables.
1218
1219 2003-07-29  Derek Price  <derek@ximbiot.com>
1220
1221         * login.c: Remove GETPASS & HAVE_GETPASSPHRASE cruft in favor of always
1222         using the GNULIB getpass since the system getpass was removed from the
1223         POSIX.2 specification.
1224
1225 2003-07-28  Derek Price  <derek@ximbiot.com>
1226
1227         * subr.c (strip_trailiing_newlines): Use size_t rather than int to
1228         count string length.
1229         (Suggestion from Paul Edwards, who provides a broken return email
1230         address in Tonga.  I believe he is actually from Australia.)
1231
1232 2003-07-28  Derek Price  <derek@ximbiot.com>
1233
1234         * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
1235         and Update.prog.
1236
1237 2003-07-25  Derek Price  <derek@ximbiot.com>
1238
1239         * rcs.c (RCS_parsercsfile): Declare rcsfile argument as const.
1240         * rcs.h (RCS_parsercsfile): Update prototype to match.
1241         * commit.c (fixaddfile): Accept a single path to an rcs file as an
1242         argument rather than trying to look it up again when it is not
1243         necessary.
1244
1245 2003-07-25  Derek Price  <derek@ximbiot.com>
1246
1247         * commit.c (finaladd): But don't free variables we no longer allocate.
1248
1249 2003-07-25  Derek Price  <derek@ximbiot.com>
1250
1251         * checkin.c (Checkin): The rcs argument is unecessary since we know
1252         that the parsed RCS data always exists as part of finfo by the time
1253         this function gets called.
1254         * commit.c (commit_fileproc, finaladd):  Use new Checkin() API.
1255         * cvs.h (Checkin): Update prototype.
1256
1257 2003-07-25  Derek Price  <derek@ximbiot.com>
1258
1259         * subr.c (strip_trailing_newlines): Check len b4 str[len] to avoid
1260         exceeding the array bounds when the string length == 0.
1261         (Report from John Tytgat <JoTy@esko-graphics.com>.)
1262
1263 2003-07-25  Derek Price  <derek@ximbiot.com>
1264
1265         * subr.c (strip_trailing_newlines): Generalize this function to watch
1266         len so that it cannot walk past the beginning of the string passed in.
1267         (Report from John Tytgat <JoTy@esko-graphics.com>.)
1268
1269 2003-07-25  Derek Price  <derek@ximbiot.com>
1270
1271         * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
1272         branch.
1273
1274 2003-07-25  Derek Price  <derek@ximbiot.com>
1275
1276         * cvs.h (strip_trailing_newlines): Update prototype.
1277         * subr.c (strip_trailing_newlines): Return true when newlines are
1278         removed.
1279         * server.c (pserver_authenticate_connection): Don't give a DOS attack a
1280         chance to authenticate accidentally because I like to be paranoid.
1281         * sanity.sh (pserver): New test for same.
1282
1283 2003-07-20  Derek Price  <derek@ximbiot.com>
1284
1285         * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
1286         a comment.
1287
1288 2003-07-12  Larry Jones  <lawrence.jones@eds.com>
1289
1290         * sanity.sh (diffnl): New tests for diff on files with no newline
1291         at end.
1292         (Patch from Andrew Moise <chops@demiurgestudios.com>.)
1293
1294 2003-07-09  Larry Jones  <lawrence.jones@eds.com>
1295
1296         * add.c (add): Update "re-adding" message to have quotes around
1297         the file name like all the other similar messages.
1298         * sanity.sh: Update to match.
1299
1300         * update.c (join_file): Handle locally removed but not yet committed
1301         files.
1302         (Reported by Larry Lords <LordsLL@ldschurch.org>.)
1303         * sanity.sh (join, join4): New tests for above.
1304
1305 2003-06-28  Larry Jones  <lawrence.jones@eds.com>
1306
1307         * commit.c (fixaddfile): Bail out if locate_rcs() fails.  Make
1308         parameters const.
1309
1310         * add.c (add): Fix -Wall complaints.
1311         * diff.c (diff_file_nodiff): Ditto.
1312         * filesubr.c (cvs_casecmp): Ditto.
1313         * patch.c (patch_fileproc): Ditto.
1314         * rcs.c (RCS_cmp_file): Ditto.
1315         * root.c (parse_cvsroot): Ditto.
1316         * subr.c (locate_file_in_dir): Ditto.
1317         * cvs.h (cvs_casecmp, locate_file_in_dir): Update prototypes.
1318
1319 2003-06-27  Larry Jones  <lawrence.jones@eds.com>
1320
1321         * lock.c (readers_exist): Use LockDir rather than always looking
1322         in the repository.
1323         (Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
1324         Remove vestigial lock promotion code.
1325
1326 2003-06-26  Larry Jones  <lawrence.jones@eds.com>
1327
1328         * hash.c (sortlist): Avoid crash when list is null.
1329
1330 2003-06-23  Derek Price  <derek@ximbiot.com>
1331
1332         * patch.c (patch_fileproc): Output revision number of the original
1333         revision in the removed case.
1334         (Idea from Paul Edwards <kerravon@w3.to>.)
1335
1336         * sanity.sh (rdiff-add-remove-nodiff): Rename to...
1337         (rdiff-short): ...this.  Test for the above changes.  Add some tests
1338         for when rev2 defaults to the trunk.  Expand comments.
1339
1340 2003-06-23  Derek Price  <derek@ximbiot.com>
1341
1342         * add.c (add): Fix xmalloc's strlen() of wrong variable.
1343         * checkout.c (safe_location): leak: reused where_location without free.
1344         * log.c (rlog_proc): leak: free where before exit.
1345         * logmsg.c (do_verify): leak: free verifymsg_script before exit.
1346         (Original patch from Kenneth Lorber <keni@his.com>.)
1347
1348 2003-06-20  Derek Price  <derek@ximbiot.com>
1349
1350         * client.c: Remove silly comment.
1351         (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
1352
1353 2003-06-13  Derek Price  <derek@ximbiot.com>
1354
1355         * subr.c (file_has_conflict): Fix comment.
1356         (Patch from Paul Edwards <kerravon@w3.to>.)
1357
1358 2003-06-13  Derek Price  <derek@ximbiot.com>
1359
1360         * subr.c (xrealloc): Trivial comment fix.
1361         (Patch from Kenneth Lorber <keni@his.com>.)
1362
1363 2003-06-13  Derek Price  <derek@ximbiot.com>
1364
1365         * diff.c (diff_fileproc): Fix memory leak.
1366         (Patch from Kenneth Lorber <keni@his.com>.)
1367
1368 2003-06-12  Derek Price  <derek@ximbiot.com>
1369
1370         * root.c (parse_cvsroot, local_cvsroot): Parse trailing '/'s off the
1371         end of cvsroots.  Make arguments const.
1372         * cvs.h: Update prototypes to match.
1373         (Idea from Miles Zarathustra <shiva@aranyaka.org>.)
1374
1375 2003-06-11  Larry Jones  <lawrence.jones@eds.com>
1376
1377         * sanity.sh: Change warning messages to note that defective tools
1378         can result in defective results, both pass and fail.  Also change
1379         "which" to "that" for errant grammar pedants.
1380
1381 2003-06-09  Derek Price  <derek@ximbiot.com>
1382
1383         * rcs.c (RCS_delete_revs): Reference WOE32 rather than WIN32 in
1384         accordance with the GNU convention to avoid implying that we consider
1385         the Microsoft Windows Operating Environment any sort of "win".
1386
1387 2003-06-09  Derek Price  <derek@ximbiot.com>
1388
1389         * filesubr.c (cvs_temp_file): Tidy a comment.
1390
1391 2003-06-09  Derek Price  <derek@ximbiot.com>
1392
1393         * patch.c (patch_fileproc): Don't assume the content of files is
1394         different just because the revision number is different.
1395         * sanity.sh (rdiff-add-remove-nodiff): New tests for the above.
1396         (Report & original patches from Paul Edwards <kerravon@w3.to>.)
1397
1398 2003-06-04  Derek Price  <derek@ximbiot.com>
1399
1400         * cvs.h (locate_file_in_dir): New proto.
1401         (locate_rcs): Move proto...
1402         * rcs.h: ...here.
1403         * filesubr.c (locate_rcs): Move function...
1404         * rcs.c: ...here for Windows.
1405         * filesubr.c (locate_file_in_dir): Move function...
1406         * subr.c: ...here for Windows.
1407
1408 2003-06-02  Derek Price  <derek@ximbiot.com>
1409
1410         * diff.c (diff_file_nodiff): Don't assume that because two specified
1411         revision numbers are different, the contents are different.
1412         (Original report & patch from Paul Edwards <kerravon@w3.to>.)
1413
1414         * diff.c (diff_file_nodiff): Pass through rev1_cache to be filled in
1415         by RCS_cmp_file when it needs to check out revision 1 into a file.  Add
1416         some more informative error messages.  Cleanup for efficiency &
1417         readability.
1418         (diff_fileproc): Pass the cached revision to RCS_exec_diff().  Clean up
1419         the error exit code.  Remove code killed by the changes to
1420         diff_file_nodiff().
1421         * rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
1422         if present.
1423         * rcs.c (RCS_cmp_file): Accept a second revision number and cache the
1424         first revision if it needs to be checked out.
1425
1426         * checkin.c (Checkin): Use new RCS_cmp_file().
1427         * import.c (update_rcs_file): Ditto.
1428         * no_diff.c (No_Difference): Ditto.
1429
1430         * cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
1431         * rcs.h (RCS_cmp_file): Ditto.
1432
1433         * sanity.sh: Minor corrections to handle the above changes.
1434
1435 2003-05-29  Derek Price  <derek@ximbiot.com>
1436
1437         * client.c (start_server): Don't send -l to server.
1438         * history.c (history_write): Fix comment.
1439         * main.c (main): Don't process -l.
1440         * server.c (serve_global_option): Ditto.
1441         (Suggestion from Rob Lanphier <robla@real.com>.)
1442
1443 2003-05-23  Larry Jones  <lawrence.jones@eds.com>
1444
1445         * sanity.sh (info-cleanup-verifymsg): Avoid race in output.
1446
1447 2003-05-22  Larry Jones  <lawrence.jones@eds.com>
1448
1449         * commit.c (commit): Fix leading zero stripping code to not strip
1450         unless there's a following digit.
1451
1452         * parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
1453         * sanity.sh (info): New test for above.
1454
1455 2003-05-21  Derek Price  <derek@ximbiot.com>
1456
1457         * Makefile.in: Regenerate with Automake version 1.7.5.
1458
1459 2003-05-20  Larry Jones  <lawrence.jones@eds.com>
1460
1461         * parseinfo.c (Parse_Info): Fix stupid memory management error.
1462
1463         * logmsg.c (do_verify): Treate Parse_Info errors as failure.
1464         * parseinfo.c (Parse_Info): Don't call expand_path until executing
1465         the command so that errors in unexecuted commands aren't reported.
1466         * sanity.sh (info): New tests for above.
1467
1468 2003-05-18  Mark D. Baushke  <mdb@gnu.org>
1469
1470         * Makefile.am (localcheck,remotecheck): Use cvs$(EXEEXT) not cvs.
1471         * Makefile.in: Regenerated.
1472         * sanity.sh (status-init-7): Use ${PROG} not cvs in tests.
1473         (branch-after-import-5): Ditto.
1474         (keywordname-update-11): Ditto.
1475
1476 2003-05-18  Larry Jones  <lawrence.jones@eds.com>
1477
1478         * server.h (kserver_authenticate_connection,
1479         pserver_authenticate_connection): Add prototypes.
1480
1481         * client.c (update_entries): Set file's access time to the current
1482         time rather than the same as the modification time.
1483         * vers_ts.c (Version_TS): Ditto.
1484
1485 2003-05-01  Derek Price  <derek@ximbiot.com>
1486
1487         * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
1488         (Report from Jim Salter <jsalterjim@earthlink.net>.)
1489
1490 2003-05-01  Derek Price  <derek@ximbiot.com>
1491
1492         * repos.c (Sanitize_Repository_Name): Remove some old comments about
1493         the defunct RELATIVE_REPOS macro.
1494         * server.c (outside_root): Ditto.
1495
1496 2003-04-30  Derek Price  <derek@ximbiot.com>
1497
1498         * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
1499
1500 2003-04-28  Derek Price  <derek@ximbiot.com>
1501
1502         * client.c (save_prog): Remove unneeded struct.
1503         (checkin_progs, update_progs): Remove these unneeded globals.
1504         (handle_set_checkin_prog, handle_set_update_prog, do_deferred_progs):
1505         Remove these functions.
1506         (send_repository): Remove checkin and update prog support.
1507         (responses): Remove Set-checkin-prog and Set-update-prog.
1508         (get_responses_and_close): Don't call do_deferred_prog().
1509         * commit.c (commit_usage): Remove reference to -n.
1510         (commit): Don't set and send run_module_prog via -n.  Don't run
1511         Checkin.prog or Checkout.prog in local mode.
1512         * modules.c (CVSMODULE_OPTS): Remove -i and -u.
1513         (do_module): Don't process -i and -u options to set checkin and update
1514         progs, respectively.
1515         * server.c (server_prog, serve_checkin_prog, server_update_prog):
1516         Remove unused functions.
1517         (requests): Remove Checkin-prog and Update-prog.
1518         * update.c (update_dirleave_proc): Remove update prog functionality.
1519
1520         * cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
1521         * server.h (server_prog): Remove proto.
1522         (progs): Remove enum.
1523
1524         * sanity.sh (modules5): Remove tests for checkin and update programs.
1525
1526 2003-04-10  Larry Jones  <lawrence.jones@eds.com>
1527
1528         * Makefile.in: Regenerated.
1529
1530 2003-03-27  Mark D. Baushke  <mdb@cvshome.org>
1531
1532         * sanity.sh (rdiff2): Add new test case for SEGV problem reported
1533         against cvs 1.11.5.
1534         (Report from James Cribb)
1535
1536 2003-03-26  Derek Price  <derek@ximbiot.com>
1537
1538         * client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
1539         and HAVE_GSSAPI.
1540         * client.h: Ditto.  Remove some unecessary server function prototypes.
1541
1542 2003-03-26  Derek Price  <derek@ximbiot.com>
1543
1544         * client.c: Include the net headers for HAVE_GSSAPI.
1545         (Report from Jim Salter <jsalterjim@earthlink.net>.)
1546
1547 2003-03-26  Derek Price  <derek@ximbiot.com>
1548
1549         * main.c (main): Verify the argument to -z when running without
1550         CLIENT_SUPPORT since Eric Siegerman complained about being bit
1551         by a run of `cvs -z -n up' which parsed the -n as the argument to
1552         -z.
1553         * sanity.sh (opterrmsg): New tests for -z argument checking.
1554
1555 2003-03-26  Larry Jones  <lawrence.jones@eds.com>
1556
1557         * main.c (main): Use strtol() instead of atoi() when parsing -z
1558         to detect errors.
1559         (Reported by Eric Siegerman <erics@telepres.com>.)
1560
1561 2003-03-24  Derek Price  <derek@ximbiot.com>
1562
1563         * Makefile.am: Update copyright notice.
1564
1565         * Makefile.in: Regenerated.
1566
1567 2003-03-19  Larry Jones  <lawrence.jones@eds.com>
1568
1569         * filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
1570         (Patch from Brian Poole <raj@cerias.purdue.edu>.)
1571         * sanity.sh (abspath-4): Update to match.
1572
1573         * filesubr.c (locate_rcs): Fix gcc warning.
1574
1575 2003-03-17  Derek Price  <derek@ximbiot.com>
1576
1577         * add.c: Correct comment.
1578         * client.c: Ditto.
1579         * checkin.c (Checkin): Pass work file name to RCS_checkin so that this
1580         function works properly in the case insensitive mode.
1581         * commit.c (checkaddfile): Fix and factor add logic so that the
1582         correct files and directories are created in the case insensitive mode.
1583         Reuse code in RCS_parse() below.  This avoids a problem that could
1584         cause corrupted RCS files to be created on an add from a case
1585         insensitive system.  Corrupted RCS files could cause later assertion
1586         failures for everyone.
1587         (locate_rcs): Move this function...
1588         * filesubr.c (locate_rcs): ...here and rewrite it.
1589         (fopen_case): Remove this function.
1590         (locate_file_in_dir): New function.
1591         * cvs.h (locate_rcs): Prototype new function.
1592         * rcs.c (RCS_parse): Factor out file location into locate_rcs.
1593
1594 2003-03-17  Larry Jones  <lawrence.jones@eds.com>
1595
1596         * server.c (switch_to_user): Add syslog calls for setgid/setuid
1597         failure.
1598
1599 2003-03-07  Derek Price  <derek@ximbiot.com>
1600
1601         * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
1602         consistency.
1603
1604 2003-03-07  Derek Price  <derek@ximbiot.com>
1605
1606         * sanity.sh (usage): Show users long --help rather than less
1607         informative -h.
1608
1609 2003-03-07  Derek Price  <derek@ximbiot.com>
1610
1611         * sanity.sh: Add support for long options.
1612         (exit_usage): Move the actual generation of usage text to...
1613         (usage): ...this new function and improve the usage message.
1614         (exit_help): New function.
1615
1616 2003-03-07  Larry Jones  <lawrence.jones@eds.com>
1617
1618         * commit.c (check_fileproc): Remove unused variables.
1619
1620         * patch.c (patch): Pass local to do_module so that -l actually works.
1621         (Reported by John Coers <coers@intrinsity.com>.)
1622         (patch_fileproc): Fix uninitialized variables.
1623         * sanity.sh: Define a DATE pattern for rdiff and use it.
1624         (basic2-24a): New test for above.
1625
1626 2003-03-06  Derek Price  <derek@ximbiot.com>
1627
1628         * subr.c (file_has_conflict): New file.
1629         * commit.c (check_fileproc): Factor code into new file_has_conflict()
1630         function.
1631         * update.c (update_fileproc): Ditto.
1632         * status.c (status_fileproc): Use new file_has_conflict() function.
1633         (Report from Bernd Kuemmerlen <bkuemmer@mevis.de>.)
1634
1635         * sanity.sh (status): New test for same.
1636
1637 2003-03-05  Mark D. Baushke  <mdb@cvshome.org>
1638
1639         * rcs.c (RCS_magicrev): Backout CVS_LOCAL_BRANCH_NUM feature.
1640
1641         * rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
1642         Port of the FreeBSD hack for setting the next magic branch number
1643         to be used. The original patch was written by Peter Wemm
1644         <peter@FreeBSD.org> and may be found by visiting the URL:
1645         http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
1646         Implement a horrible (but simple) hack to allow some control over the
1647         branch number that is assigned. This is specifically to support the
1648         local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
1649         (say) 1000 then branches the local repository, the revision numbers
1650         will look like 1.66.1000.xx. This is almost a dead-set certainty that
1651         there will be no conflicts with version numbers.
1652         (This needs to be something more than an option to 'cvs tag' or 'cvs
1653         rtag' as various parts of cvs "know" how to automatically branch files
1654         (eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
1655         * sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
1656         
1657 2003-03-04  Derek Price  <derek@ximbiot.com>
1658
1659         * history.c (history_write): Remove unneeded O_CREAT in the call to
1660         open() since we abort a few lines earlier if the file doesn't exist.
1661         Add a comment to the effect that this is not the optimal method of
1662         doing things and needs fixed.
1663
1664 2003-02-28  Derek Price  <derek@ximbiot.com>
1665
1666         * root.c (parse_cvsroot): s/no_passwd/no_password/ in comments.
1667
1668 2003-02-28  Derek Price  <derek@ximbiot.com>
1669
1670         * root.c (parse_cvsroot): Set no_password for :gserver: and :kserver:
1671         as tokens should already be obtained via external sources.
1672         * update.c (update_fileproc): Remove redundant code.
1673
1674 2003-02-28  Larry Jones  <lawrence.jones@eds.com>
1675
1676         * lock.c (set_lock): If possible, try a short wait with no message
1677         before calling lock_wait() to optimize master lock contention.
1678
1679 2003-02-26  Larry Jones  <lawrence.jones@eds.com>
1680
1681         * checkout.c (checkout): Send "--" before file names.
1682         * sanity.sh (spacefiles): Remote now works just like local.
1683
1684 2003-02-25  Derek Price  <derek@ximbiot.com>
1685
1686         * sanity.sh (rcs4): Use UTC to work across timezones.
1687
1688 2003-02-25  Derek Price  <derek@ximbiot.com>
1689
1690         * rcs.c (RCS_getdate): Fix a bug that shows up when checking out
1691         files by date with the "-D date" command line option. There is
1692         code in the original to handle a special case. If the date search
1693         finds revision 1.1 it is supposed to check whether revision
1694         1.1.1.1 has the same date stamp, which would indicate that the
1695         file was originally brought in with "cvs import". In that case it
1696         is supposed to return the vendor branch version 1.1.1.1.
1697
1698         However, there was a bug in the code. It actually compares the date
1699         of revision 1.1 for equality with the date given on the command
1700         line -- clearly wrong. This commit fixes the coding bug.
1701
1702         Note: There is an additional bug which is _not_ fixed in this
1703         commit. The date comparison should not be a strict equality test.
1704         It should allow a fudge factor of, say, 2-3 seconds. Old versions
1705         of CVS created the two revisions with two separate invocations of
1706         the RCS "ci" command. We have many old files in the tree in which
1707         the dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
1708
1709         This bug was discovered and fixed for FreeBSD cvs. See v 1.21 of
1710         <http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff>
1711         for more information. 
1712
1713         * sanity.sh (rcs4): Tests for same.
1714         (Patch from Mark D. Baushke <mdb@cvshome.org>.)
1715
1716 2003-02-25  Derek Price  <derek@ximbiot.com>
1717
1718         * logmsg.c (logfile_write): Do not pass a NULL pointer to
1719         fprintf() when we have an empty log message.
1720         * sanity.sh (editor): Add new tests to verify correct behavior of
1721         empty log messages.
1722         (Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
1723         Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
1724
1725 2003-02-25  Derek Price  <derek@ximbiot.com>
1726
1727         * cvsbug.in: Import use of mktemp function from RedHat 8.0's
1728         CVS 1.11.2 RPM.  Use new MKTEMP configure variable.  Use new
1729         SENDMAIL from configure.
1730
1731         * Makefile.in: Regenerated.
1732
1733 2003-02-25  Derek Price  <derek@ximbiot.com>
1734
1735         * watch.c (watch_usage): Use {} rather than () for literals.
1736
1737 2003-02-14  Derek Price  <derek@ximbiot.com>
1738
1739         * watch.c (watch_usage): Make the repeatability of -a part of the
1740         usage spec.
1741
1742 2003-02-14  Derek Price  <derek@ximbiot.com>
1743
1744         * watch.c (watch_usage): Mention default for -a.  Mention multiple
1745         invocations of -a.  Mention -R as default.  Use required () rather than
1746         optional [] around watch subcommand list in invocation spec.  Use
1747         `path' instead of `file'.  Put variable <> around `action' and `path'.
1748
1749 2003-02-07  Derek Price  <derek@ximbiot.com>
1750
1751         * commit.c (checkaddfile): Do not lose the vendor branch when
1752         adding files to a new branch. Avoids extranious conflicts for
1753         future vendor imports. This was found and fixed in FreeBSD cvs.
1754         See http://www.freebsd.org/cgi/query-pr.cgi?pr=4033 for details.
1755         * sanity.sh (branch-after-import): New test.
1756         (Thanks to Mark D Baushke <mdb@cvshome.org> for forwarding the
1757         patch and writing the test cases!)
1758
1759         * sanity.sh (branch-after-import): Misc portablility and standard
1760         changes.
1761
1762 2003-02-12  Derek Price  <derek@ximbiot.com>
1763
1764         * main.c (main): Update copyright message to 2003.
1765
1766 2003-02-21  Larry Jones  <lawrence.jones@eds.com>
1767
1768         * server.c (switch_to_user): Update comment, change error message
1769         so it's not an exact duplicate of the one in check_password.
1770         (check_repository_password): Add syslog call for password mismatches.
1771         (check_password): Add syslog call for password mismatches, rearrange
1772         code to simplify and eliminate redundancy.
1773         (pserver_authenticate_connection): Remove syslog call, now done by
1774         lower-level routines.
1775
1776 2003-02-19  Larry Jones  <lawrence.jones@eds.com>
1777
1778         * sanity.sh (admin-10): Add test for repository files not in
1779         working directory.
1780
1781         * admin.c (admin_fileproc): Fix crash when no rcs file, return
1782         failure status for bogus files.
1783         * sanity.sh (admin-4a): Test for above.
1784         (Original patch submitted by Mark D. Baushke <mdb@cvshome.org>).
1785
1786 2003-02-14  Larry Jones  <lawrence.jones@eds.com>
1787
1788         * log.c (log_expand_revlist): Fix crashes in error cases.
1789         (Reported by Bart Santy <Bart.Santy@switch.be>.)
1790         * sanity.sh (log): New tests for above.
1791
1792 2003-02-01  Larry Jones  <lawrence.jones@eds.com>
1793
1794         * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
1795         (Patch from Johannes Grødem <johs+n@ifi.uio.no>.)
1796
1797 2003-02-08  Derek Price  <derek@ximbiot.com>
1798
1799         * rcs.c (RCS_checkout): Supply the full function name in the trace
1800         output.
1801         * update.c (checkout_file, join_file): Supply tag properly to
1802         RCS_checkout more often.
1803         (patch_file): Ditto.  Fill out comments.
1804         * sanity.sh (keyword, keywordname): Some changes to accomodate the fact
1805         that the above changes cause patches generated by patch_file to fail
1806         occassionally.
1807
1808 2003-02-06  Derek Price  <derek@ximbiot.com>
1809
1810         * client.c: Use the complete path to the CVSADM_TEMPLATE file in
1811         error messages.  Remove related FIXME.
1812
1813 2003-01-31  Derek Price  <derek@ximbiot.com>
1814
1815         * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
1816
1817 2003-01-30  Derek Price  <derek@ximbiot.com>
1818
1819         * sanity.sh (keywordname): New test.
1820
1821 2003-01-23  Larry Jones  <lawrence.jones@eds.com>
1822
1823         * diff.c (diff_fileproc): Restructure code to simplify and eliminate
1824         redundant tests.
1825
1826         * server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
1827         coding test for core file.
1828
1829 2003-01-21  Larry Jones  <lawrence.jones@eds.com>
1830
1831         * root.c (method_name): Redefine as a 2D array.
1832         * root.h (method_name): Ditto.
1833
1834 2003-01-21  Jim Meyering  <jim@meyering.net>
1835
1836         * add.c (add): Rename local-shadowing `i' to `j'.
1837
1838         * root.c (method_names): Declare to be a const array of const strings.
1839         (Name_Root): Save errno so it doesn't get clobbered
1840         by the intervening error call.
1841         Use getline's return value, mainly to save a call to strrchr.
1842
1843 2003-01-20  Larry Jones  <lawrence.jones@eds.com>
1844
1845         * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
1846         it parses correctly.
1847         (Reported by Andres Bertens <abertens@entelchile.net>.)
1848
1849 2003-01-15  Karl Fogel  <kfogel@collab.net>
1850
1851         * server.c (dirswitch): Don't free dir_name until right before
1852         allocating it again.  This removes a potential double-free
1853         problem, whereby this function could free dir_name and then
1854         immediately return due to invalid directory syntax (without ever
1855         reassigning dir_name), then reenter and free dir_name again.
1856
1857         Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
1858
1859 2003-01-08  Larry Jones  <lawrence.jones@eds.com>
1860
1861         * client.c (update_entries): Only "0" is a special version number;
1862         other numbers starting with 0 (like 0.1) are normal version numbers.
1863         * commit.c (find_fileproc): Ditto.  Also reorganize the code to
1864         simplify the conditions.
1865         (Reported by Michele Zamparelli <michele.zamparelli@eso.org>.)
1866
1867 2003-01-02  Larry Jones  <lawrence.jones@eds.com>
1868
1869         * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
1870
1871 2002-12-27  Derek Price  <derek@ximbiot.com>
1872
1873         * admin.c: s/LOCK_(NONE|WRITE|READ)/CVS_$&/g; since the definition of
1874         LOCK_WRITE clashes with a definition in objidl.h on Windoze platforms.
1875         * annotate.c: Ditto.
1876         * client.c: Ditto.
1877         * commit.c: Ditto.
1878         * cvs.h: Ditto.
1879         * diff.c: Ditto.
1880         * edit.c: Ditto.
1881         * lock.c: Ditto.
1882         * log.c: Ditto.
1883         * patch.c: Ditto.
1884         * recurse.c: Ditto.
1885         * remove.c: Ditto.
1886         * status.c: Ditto.
1887         * tag.c: Ditto.
1888         * update.c: Ditto.
1889         * watch.c: Ditto.
1890         * myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
1891         Windoze.
1892         (Thanks to Stephane Rouleau <s.rouleau@videotron.ca>,
1893          Cristopher Seawood <cls@seawood.org>, and
1894          Frederico Costa <frederico.costa@tiscali.no> for all their hints,
1895          tips, and patches for this problem.)
1896
1897 2002-12-20  Derek Price  <derek@ximbiot.com>
1898
1899         * client.c (send_a_repository): Suppress a warning under Windoze.
1900
1901 2002-12-19  Derek Price  <derek@ximbiot.com>
1902
1903         * Makefile.am: Remove reference to options.h.
1904         * cvs.h: Ditto.
1905         * options.h: Remove this obsolete file.
1906         * sanity.sh: Remove comment about external diffs causing tests to fail
1907         since CVS hasn't used external diffs in years.
1908
1909         * Makefile.in: Regenerated.
1910
1911 2002-12-16  Derek Price  <derek@ximbiot.com>
1912
1913         * admin.c: Disable cvsadmin group checking on the client.
1914         (Reported by Dan Peterson <dbpete@aol.com>.)
1915
1916 2002-12-06  Derek Price  <derek@ximbiot.com>
1917
1918         * buffer.c: Replace calls to malloc with calls to xmalloc and calls to
1919         realloc with calls to xrealloc.
1920         * parseinfo.c: Ditto.
1921         * root.c: Ditto.
1922         * server.c: Ditto.
1923         * zlib.c: Ditto.
1924         * scramble.c: Change some comments to refer to xmalloc rather than
1925         malloc.
1926         (Reported by Dan Peterson <dbpete@aol.com>.)
1927
1928 2002-12-04  Derek Price  <derek@ximbiot.com>
1929
1930         * options.h: Remove CVS_ADMIN_GROUP.
1931
1932 2002-12-02  Larry Jones  <lawrence.jones@eds.com>
1933
1934         * commit.c (commit): Strip leading zeros from numeric revision
1935         in addition to trailing dots.
1936         (Reported by Peter Meszaros <pme@prolan.hu>.)
1937
1938 2002-11-22  Larry Jones  <lawrence.jones@eds.com>
1939
1940         * sanity.sh: Note that the tests run for a long time.
1941
1942         * checkout.c (safe_location): Use xstrdup, not strdup.
1943         (Reported by Terrence Enger <tenger@iSeries-guru.com>.)
1944
1945 2002-11-19  Larry Jones  <lawrence.jones@eds.com>
1946
1947         * log.c (log_expand_revlist): Fix cross-branch correction code.
1948
1949         * sanity.sh: Set $LANG for systems that ignore $LC_ALL.
1950         (rcs2-7): Change date offset from 100 months to 96 months to reduce
1951         periodic problems with invalid dates.
1952
1953 2002-11-12  Derek Price  <derek@ximbiot.com>
1954
1955         * sanity.sh (rcslib-symlink): Use rm -f rather than a simple rm when
1956         removing links because under some configurations of RH Linux 8.0 the
1957         script pauses to ask for removal approval.
1958
1959 2002-11-08  Derek Price  <derek@ximbiot.com>
1960
1961         * sanity.sh (importc): Update the use of the touch command to be
1962         compliant with POSIX 1003.1-2001, SUS2, and SUS3 now that GNU touch
1963         supports this.  If this breaks any test platforms we should test
1964         the behavior of touch like we do for other tools.
1965
1966 2002-11-03  Derek Price  <derek@ximbiot.com>
1967
1968         * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
1969
1970 2002-11-03  Derek Price  <derek@ximbiot.com>
1971
1972         * sanity.sh (rcs2-7): Notate with three more failure dates.
1973
1974 2002-10-25  Derek Price  <derek@ximbiot.com>
1975
1976         * root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
1977         more appropriate calls to error_exit().
1978         * server.c: Ditto.
1979         * tag.c: Ditto.
1980
1981 2002-10-24  Derek Price  <derek@ximbiot.com>
1982
1983         * buffer.c (stdio_buffer_shutdown): Remove the getc() call used to
1984         detect spurious output from clients since getc() would sometimes
1985         block and hang indefinately if the client kept the conection open but
1986         sent no data.  Bug reports state that this hapened frequently with
1987         older clients connecting to 1.11.2 servers, especially when
1988         compression is enabled.
1989         (Original report from Mark D. Baushke <mdb@juniper.net>.
1990          Original patch from Ralf S. Engelschall <rse@engelschall.com>
1991          via Peter Wemm <peter@freebsd.org>.)
1992
1993 2002-10-05  Larry Jones  <lawrence.jones@eds.com>
1994
1995         * recurse.c (start_recursion, do_recursion): Allow write locking
1996         in addition to read locking.  Change all callers.
1997         * cvs.h: Change prototype to match, add lock types.
1998         * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Have start_recursion
1999         use write locks rather than calling lock_dir_for_write to avoid deadly
2000         embrace.
2001
2002 2002-10-04  Larry Jones  <lawrence.jones@eds.com>
2003
2004         * client.c (get_responses_and_close, connect_to_pserver): Set
2005         to_server and from_server to NULL after freeing.
2006         * main.c (main): Clear server_active when finished.  Also neaten
2007         up the SERVER_SUPPORT ifdef's.
2008         * server.c (do_cvs_command): Set protocol_inbuf, stderrbuf, and
2009         stdoutbuf to NULL after freeing.
2010         (server_cleanup): Free buf_from_net and buf_to_set and set to NULL.
2011         Also reset error_use_protocol.
2012         (server): Don't SIG_register server_cleanup.  main_cleanup (which
2013         is already registered) outputs a fatal error which causes it to
2014         be called; registering it directly results in it being called twice.
2015         (cvs_output): Don't try to use buf_to_net or protocol if they're NULL.
2016
2017 2002-10-03  Larry Jones  <lawrence.jones@eds.com>
2018
2019         * lock.c (readers_exist): Ignore our own read lock, if any, to
2020         allow upgrading an existing read lock to a write lock.
2021         * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Rather than
2022         locking the entire tree, have start_recursion establish read
2023         locks and then upgrade the read lock to a write lock (so only
2024         one directory is locked at a time).
2025
2026 2002-09-27  Larry Jones  <lawrence.jones@eds.com>
2027
2028         * add.c (add): Send "--" before file names.
2029         * admin.c (admin): Ditto.
2030         * annotate.c (annotate): Ditto.
2031         * commit.c (commit): Ditto.
2032         * diff.c (diff): Ditto.
2033         * edit.c (watch_onoff, editors): Ditto.
2034         * log.c (cvslog): Ditto.
2035         * remove.c (cvsremove): Ditto.
2036         * status.c (cvsstatus): Ditto.
2037         * tag.c (cvstag): Ditto.
2038         * update.c (update): Ditto.
2039         * watch.c (watch_addremove, watchers): Ditto.
2040
2041         * sanity.sh (client-9): Update to match.
2042
2043 2002-09-24  Derek Price  <derek@ximbiot.com>
2044
2045         * options.h: Remove prototype of STDC exit() function.  If this breaks
2046         a build, this should be detected in configure.in somehow rather than
2047         restoring the line to this file.
2048
2049 2002-09-24  Derek Price  <derek@ximbiot.com>
2050
2051         * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
2052
2053 2002-09-24  Derek Price  <derek@ximbiot.com>
2054
2055         * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
2056
2057 2002-09-24  Derek Price  <derek@ximbiot.com>
2058
2059         * options.h: Move definition of UMASK_DFLT into configure.in.
2060
2061 2002-09-24  Derek Price  <derek@ximbiot.com>
2062
2063         * Makefile.in: Regenerated using Automake 1.6.3.
2064
2065 2002-09-24  Larry Jones  <lawrence.jones@eds.com>
2066
2067         * filesubr.c, history.c, import.c, rcs.c, update.c: Use
2068         HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV instead of
2069         the obsolete HAVE_ST_BLKSIZE and HAVE_ST_RDEV.
2070
2071 2002-09-24  Derek Price  <derek@ximbiot.com>
2072
2073         * options.h: Move definition of TMPDIR_DFLT into configure.in.
2074
2075 2002-09-24  Derek Price  <derek@ximbiot.com>
2076
2077         * options.h: Move defininition of EDITOR_DFLT into configure.in.
2078
2079         * Makefile.in: Regenerated.
2080
2081 2002-09-23  Jim Meyering  <meyering@lucent.com>
2082
2083         If `cvs -d REPO commit ...' was used to override CVS/Root,
2084         then modified files in the directory from which cvs is invoked
2085         would not be committed.
2086         * client.c (arg_should_not_be_sent_to_server): The above would happen
2087         because this function would throw out a file name when CVS/Root
2088         did not match the current server.  Fix by allowing the command-line-
2089         specified repository to take precedence over the value returned
2090         by Name_Root.  Patch by Simon Walton <simonw@lucent.com>.
2091         * sanity.sh (commit-d): New tests for the above.
2092         Patch by Simon Walton <simonw@lucent.com>.
2093
2094 2002-09-20  Derek Price  <derek@ximbiot.com>
2095
2096         * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
2097         and SERVER_LO_WATER into configure.in.
2098
2099 2002-09-20  Derek Price  <derek@ximbiot.com>
2100
2101         * options.h: Move definition of PATCH_PROGRAM to configure.in.
2102
2103 2002-09-18  Larry Jones  <lawrence.jones@eds.com>
2104
2105         * client.c (call_in_directory): Don't create admin directory when
2106         exporting into an existing directory.
2107         (Reported by Jens Engel <Jens.Engel@marconi.com>.)
2108         * sanity.sh (basic2): New tests for above.
2109
2110 2002-09-16  Jim Meyering  <meyering@lucent.com>
2111
2112         * server.c (do_cvs_command): Move declarations of locals, timeout and
2113         timeout_ptr, `up', out of enclosing `#ifdef SERVER_FLOWCONTROL' block.
2114         Otherwise, this file would not compile with SERVER_FLOWCONTROL
2115         turned off.  Patch by Ed Santiago <esm@ascend.com>.
2116
2117 2002-09-15  Larry Jones  <lawrence.jones@eds.com>
2118
2119         * myndbm.c (mydbm_open): Open the file read/write rather than read-
2120         only if that's what the user asked for to ensure that the later open
2121         for write will succeed.
2122         (Patch submitted by Josh Lehan <cvs@krellan.com>.)
2123
2124 2002-08-28  Larry Jones  <lawrence.jones@eds.com>
2125
2126         * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
2127         (Reported by Eric Siegerman <erics@telepres.com>.)
2128
2129 2002-08-16  Derek Price  <derek@ximbiot.com>
2130
2131         * create_adm.c (Create_Admin): Assume RELATIVE_REPOS is set.
2132         * server.c (outside_root): Add comment.
2133         * options.h: Remove RELATIVE_REPOS & CVS_BADROOT.
2134         * sanity.sh: Remove a lot of !RELATIVE_REPOS cruft from tests.
2135
2136 2002-08-14  Derek Price  <oberon@umich.edu>
2137
2138         * server.c (server): Dispose of the correct pointer.  Tidy comment.
2139
2140 2002-08-13  Derek Price  <oberon@umich.edu>
2141
2142         * client.c (get_cvs_port_number): Fix typo in comment.  Add comments.
2143         * server.c (server): Fix a FIXME.  Remove an errant "const" directive.
2144         Remove some redundant memory allocation and error handling code.
2145
2146 2002-08-08  Derek Price  <oberon@umich.edu>
2147
2148         * import.c (import): Surrounded `server_active' with
2149         #ifdef SERVER_SUPPORT/#endif.
2150         * commit.c (commit_fileproc, commit_direntproc): Likewise.
2151         (Patch from John Tytgat  <John.Tytgat@aaug.net>.)
2152
2153 2002-07-31  Derek Price  <oberon@umich.edu>
2154
2155         * filesubr.c: Add a line so VIM can determine tab stops and shift widths.
2156         * root.c: Ditto.
2157         * (parse_cvsroot): Add comments and tidy slightly.
2158
2159 2002-07-31  Derek Price  <oberon@umich.edu>
2160
2161         * sanity.sh: Add another date to the comment about rcs2-7 failing.
2162
2163 2002-07-26  Jim Meyering  <meyering@lucent.com>
2164
2165         * commit.c (find_fileproc): When committing in client mode,
2166         arrange to fail if a `cvs add'ed file no longer exists in the
2167         working directory.
2168         * sanity.sh (commit-add-missing): New test for above.
2169
2170 2002-07-25  Larry Jones  <lawrence.jones@eds.com>
2171
2172         * sanity.sh: Set $TMPDIR if it's not already set and use it rather
2173         than /tmp for the expected server temp directory path.
2174
2175 2002-07-09  Larry Jones  <lawrence.jones@eds.com>
2176
2177         * vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
2178         struct_tm copying.
2179
2180         * lock.c (lock_wait, lock_obtained): Display time in UTC if possible
2181         to reduce confusion in client/server mode.
2182         (Original patch from Eduardo Perez Ureta <eperez@it.uc3m.es>.)
2183
2184 2002-06-26  Larry Jones  <lawrence.jones@eds.com>
2185
2186         * tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
2187         is also a valid status.
2188         (Reported by David Everly <David.Everly@wcom.com>.)
2189         * sanity.sh (tagc): New tests for above.
2190
2191 2002-06-18  Larry Jones  <lawrence.jones@eds.com>
2192
2193         * update.c (patch_file): Don't patch if diff bigger than file.
2194         Don't bother adjusting the permission on the diff output if
2195         we're not going to use it.
2196
2197
2198 2002-06-18  Derek Price  <oberon@umich.edu>
2199
2200         * server.c: Handle HPUX password expiration fields in the passwd
2201         string in case we are set up on a server with NIS passwords served
2202         from HPUX.
2203         (Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
2204
2205 2002-06-17  Larry Jones  <lawrence.jones@eds.com>
2206             and Jonathan Kamens  <jik@kamens.brookline.ma.us>
2207
2208         * commit.c (commit_fileproc, commit_direntproc): Don't try to call
2209         an editor to get the log message if running as a server.  Instead,
2210         just use an empty log message.
2211         * import.c (import): Ditto.
2212
2213         * import.c (import): In client mode, always send a message to the
2214         server, even if it's empty (this parallels a change made by Larry
2215         Jones to commit.c on May 7).
2216
2217 2002-05-31  Larry Jones  <lawrence.jones@eds.com>
2218
2219         * rcs.c: Conditionally define MAP_FAILED for old systems that don't
2220         have it in <mman.h>.
2221         (Reported by jeremy brand <jeremy@earth.care2.com>.)
2222
2223 2002-05-24  Larry Jones  <lawrence.jones@eds.com>
2224
2225         * rcscmds.c (diff_exec): Add a -- before the first file name just
2226         in case it looks like an option.
2227         (Reported by Zooko <zooko@zooko.com>.)
2228
2229         * rcscmds.c (diff_execv): Remove -- same as diff_exec.  Change
2230         only caller.
2231         * cvs.h: Ditto.
2232
2233 2002-05-23  Larry Jones  <lawrence.jones@eds.com>
2234
2235         * cvs.h (strcat_filename_onto_homedir): Make arguments const.
2236         * filesubr.c (strcat_filename_onto_homedir): Make arguments const,
2237         move more code here from callers, change all callers.
2238
2239 2002-05-22  Derek Price  <oberon@umich.edu>
2240
2241         * cvs.h: Add prototype for this...
2242         * filesubr.c (strcat_filename_onto_homedir): new function.
2243         * login.c (): Use new function.
2244
2245         * cvsrc.c (read_cvsrc): Use new function due to problems on VMS.
2246         * ignore.c (ign_setup): Ditto.
2247         * wrapper.c (wrap_setup): Ditto.
2248         (Original patch from Karsten Spang <ksp@dannet.dk>.)
2249
2250 2002-05-21  Larry Jones  <lawrence.jones@eds.com>
2251
2252         * rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
2253         and add a similar assertion for ptrend.
2254         (Reported by Rebecca Young <raygirl@cvshome.org>.)
2255         (rcsbuf_fill): Remove redundant code.
2256
2257 2002-05-20  Derek Price  <oberon@umich.edu>
2258
2259         * buffer.h: New prototype for...
2260         * buffer.c (stdio_buffer_get_file): this new function to abstract
2261         access to a buffer's file descriptor.
2262         * client.c (auth_server): Use the new function.
2263         (Original patch from Jonathan Kamens <jik@kamens.brookline.ma.us>.)
2264
2265 2002-05-20  Derek Price  <oberon@umich.edu>
2266
2267         * main.c (main): Add 2002 to the copyright years output with the
2268         version string.
2269
2270 2002-05-15  Larry Jones  <lawrence.jones@eds.com>
2271
2272         * log.c (log_parse_list): Fix off-by-one error which caused
2273         incorrect handling of 'cvs log -wuser1,user2 foo.c' command.
2274         (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>,
2275         reported by Alex Morozov <morozov@novosoft.ru>.)
2276
2277 2002-05-09  Larry Jones  <lawrence.jones@eds.com>
2278
2279         * login.c (password_entry_operation): Get cvsroot_canonical before
2280         trying to read the user's password file so we have it even if the
2281         file doesn't exist.
2282         (Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
2283
2284 2002-05-08  Derek Price  <oberon@umich.edu>
2285
2286         * Makefile.am (cvs_SOURCES): Add options.h explicitly - since we
2287         stopped generating it dynamically, Automake stopped noticing it and
2288         including it in dists.  See TODO item #214 for notes.
2289
2290 2002-05-08  Derek Price  <oberon@umich.edu>
2291
2292         * cvs.h: Use the HAVE_CONFIG_H define.
2293
2294 2002-05-07  Larry Jones  <lawrence.jones@eds.com>
2295
2296         * filesubr.c (isaccessible): Set errno before returning failure
2297         in the SETXID_SUPPORT code.
2298
2299         * logmsg (do_verify): Avoid even more work if there's no verifymsg
2300         script to run.
2301
2302         * logmsg: Use fputs/putc rather than fprintf where appropriate.
2303         (do_verify): Run the verifymsg script even if there's no log
2304         message.  (Reported by Andy Baker <Andy.Baker2@t-mobile.co.uk>.)
2305         Don't reread the log message unless a verifymsg script was run.
2306
2307         * commit.c (commit): Always send -m to the server, even if there's
2308         no message.
2309
2310         * create_adm.c (Create_Admin): Add dotemplate parameter to trace.
2311         Remove unreachable code.
2312
2313 2002-05-03  Larry Jones  <lawrence.jones@eds.com>
2314
2315         * server.c (serve_watch_on, serve_watch_off, serve_watch_add,
2316          serve_watch_remove): Just pass "watch" as the command name
2317          to do_cvs_command to avoid unknown command errors.
2318          (Reported by Gary Hennigan <gary@ieee.org>.)
2319
2320         * rcs.c (RCS_checkin): Fix bad call to error () in buggy
2321         PRESERVE_PERMISSIONS code.
2322         (rcs_internal_unlockfile): Include current value of errno in error
2323         message even though it may well be irrelevant (it's still better
2324         than nothing).
2325
2326 2002-05-02  Derek Price  <oberon@umich.edu>
2327
2328         * .cvsignore: Remove lines for files obsoleted by new autotools.
2329
2330 2002-05-02  Derek Price  <oberon@umich.edu>
2331
2332         * stamp-h2.in: Remove this uneeded file.
2333
2334 2002-05-01  Derek Price  <oberon@umich.edu>
2335
2336         * options.h.in: Move to...
2337         * options.h: here.
2338
2339 2002-04-30  Derek Price  <oberon@umich.edu>
2340
2341         * version.h.in: Remove this file.
2342         * version.h: Ditto.
2343
2344         * Makefile.am: Remove references to version.h.
2345         * cvs.h: Use <> rather than "" around the config.h #include.  I didn't
2346         quite bother to understand why, but autoconf recommends it.
2347         * cvsbug.in: Use PACKAGE_BUGREPORT defined by configure for the bug
2348         report email address.
2349         * version.c (version): Use PACKAGE_STRING defined in config.h instead
2350         of the version_string that used to be defined in version.h.
2351
2352         * Makefile.in: Regenerated with automake 1.6.
2353
2354 2002-04-28  Derek Price  <oberon@umich.edu>
2355
2356         * cvs.h: Use `"'s around includes when we mean a local file.
2357
2358 2002-04-28  Derek Price  <oberon@umich.edu>
2359
2360         * cvs.h: #define new names for functions and variables when they
2361         might conflict with system definitions (namely on Mac OS X 10.1 with
2362         the most recent dev packages - This should be removable after the Mac
2363         dev packages are fixed.).
2364
2365 2002-04-26  Larry Jones  <larry.jones@sdrc.com>
2366
2367         * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
2368         (Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
2369
2370 2002-04-19  Larry Jones  <larry.jones@sdrc.com>
2371
2372         * log.c (log_expand_revlist): First cut at code to allow logging
2373         between a revision and *any* ancestor, not just one explicitly on
2374         the same branch (e.g., from 1.1 to 4.1.2.3.6.1).
2375
2376         * subr.c (gca): Simplify and optimize.
2377
2378 2002-04-19  Jim Meyering  <meyering@lucent.com>
2379         and Ed Santiago <easm@lucent.com>
2380
2381         * classify.c (Classify_File): Fix it so that `cvs update -p -r...'
2382         works, even under some slightly unusual (though perfectly legitimate)
2383         circumstances.
2384         * sanity.sh (update-p): New tests for this.
2385
2386 2002-04-18  Derek Price  <oberon@umich.edu>
2387
2388         * sanity.sh: Move test for regex metacharacters in username until
2389         after we're sure we found the version of expr that we're going to use.
2390
2391 2002-04-18  Larry Jones  <larry.jones@sdrc.com>
2392
2393         * admin.c (admin_fileproc): Allow admin to be used on RCS files with
2394         no local version (e.g., removed files) like most other subcommands.
2395
2396         * wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
2397
2398 2002-04-18  Derek Price  <oberon@umich.edu>
2399
2400         * version.h: Regenerated for 1.11.2.1 version update.
2401
2402 2002-04-17  Derek Price  <oberon@umich.edu>
2403
2404         * version.h: Regenerated for 1.11.2.
2405
2406 2002-04-03  Derek Price  <oberon@umich.edu>
2407
2408         * stamp-h2.in: Regenerate with recent version of Autoconf.
2409
2410 2002-04-03  Derek Price  <oberon@umich.edu>
2411
2412         * sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
2413         to /dev/null to avoid spurious output on some operating systems
2414         (notably Mac OS X).
2415
2416 2002-03-22  Larry Jones  <larry.jones@sdrc.com>
2417
2418         * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
2419         of cvs.
2420
2421 2002-03-21  Derek Price  <oberon@umich.edu>
2422
2423         * vers_ts.c (time_stamp): Return the timestamp for the newer of the
2424         link and the link's source when the file is a link.
2425         (Patch from RedHat cvs-1.11.1p1-7 SRPM.)
2426
2427         * sanity.sh (rcslib): Test for same.
2428
2429 2002-03-17  Larry Jones  <larry.jones@sdrc.com>
2430
2431         * log.c (cvslog, log_fileproc): Add -S option to suppress head or
2432         file name if no revisions selected.
2433         * sanity.sh (log): New tests for above.
2434
2435 2002-03-13  Derek Price  <oberon@umich.edu>
2436
2437         * main.c (usg): Correct a spelling mistake in a comment.
2438         (Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
2439
2440 2002-03-09  Larry Jones  <larry.jones@sdrc.com>
2441
2442         * import.c (import): Change the suggested merge message to use
2443         rev tags instead of the branch tag with a date.
2444         * sanity.sh (import, importb): Change to match.
2445
2446         * remove.c (remove_fileproc): Disallow removing files with sticky
2447         dates for the same reason we already disallow sticky numeric tags.
2448         * sanity.sh (sticky): New test for above.
2449
2450 2002-02-27  Larry Jones  <larry.jones@sdrc.com>
2451
2452         * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
2453
2454 2002-02-26  Larry Jones  <larry.jones@sdrc.com>
2455
2456         * diff.c (diff): Remove -V and --paginate options: they aren't valid.
2457         (diff_usage): Document all the diff options.
2458
2459 2002-02-13  Larry Jones  <larry.jones@sdrc.com>
2460
2461         * rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
2462         else does and I don't see any documentation that says it should).
2463         (translate_symtag): Break out of loop at end of symbols to prevent
2464         looping forever when tag is "".
2465         (Reported by Alain ENOUT <aln00@udcast.com>
2466         via Eric Gillespie <epg@pretzelnet.org>.)
2467
2468 2002-02-11  Larry Jones  <larry.jones@sdrc.com>
2469
2470         * server.c (server_cleanup): Set buf_to_net back to blocking mode
2471         and flush it (in case there are any error messages pending) before
2472         shutting down buf_from_net and again right before shutting it down.
2473
2474 2002-02-08  Larry Jones  <larry.jones@sdrc.com>
2475
2476         * main.c (lookup_command_attribute): Throw a fatal error if the
2477         command is not found.
2478         * server.c (server_tag): Use the correct command name.
2479
2480 2002-01-30  Larry Jones  <larry.jones@sdrc.com>
2481
2482         * error.h (error_exit): Remove unintended prototype.
2483
2484         * server.c (serve_root): Remove check for impossible condition.
2485         (serve_init): Save and restore current_parsed_root.
2486
2487 2002-01-29  Larry Jones  <larry.jones@sdrc.com>
2488
2489         * error.h (error_exit): Declare __noreturn__ to avoid spurious
2490         warnings.
2491
2492         * server.c (serve_root): If the specified root doesn't match the
2493         pserver root, return before changing current_parsed_root to prevent
2494         subsequent commands from accessing an unchecked root directory.
2495         (server_init): Check specified root against the pserver root and
2496         complain if they don't match.  Also, if there are pending errors,
2497         print them and return before changing current_parsed_root to prevent
2498         subsequent commands from accessing an unchecked root directory.
2499         * sanity.sh (pserver): New tests for above.
2500
2501 2002-01-10  Larry Jones  <larry.jones@sdrc.com>
2502
2503         * log.c (log_version_requested): Change :: in revision spec to be
2504         exclusive just on the low end (so -r tag1::tag2 gives revisions
2505         after tag1 but up to and including tag2), which is much more useful
2506         than the previous (exclusive at both ends) behavior.
2507         (log_usage): Update to match.
2508         * sanity.sh (log): Update to match.
2509
2510 2002-01-02  Larry Jones  <larry.jones@sdrc.com>
2511
2512         * server.c (LOG_DAEMON): Define if needed.
2513         (Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
2514
2515         * server.c (pserver_authenticate_connection): Add a specific error
2516         message for EOF at protocol start and syslog if available.
2517         * sanity.sh (pserver-bufinit): Update to match.
2518
2519 2001-12-10  Larry Jones  <larry.jones@sdrc.com>
2520
2521         * log.c (log_usage): Note that -r and -d take lists, not just a
2522         single specification.
2523         (log_expand_revlist): Don't dereference null pointers when one end
2524         of a revision range is a non-existent tag.
2525
2526 2001-12-03  Larry Jones  <larry.jones@sdrc.com>
2527
2528         * annotate.c (annotate, annotate_fileproc): Don't annotate binary
2529         files unless new -F option given.
2530         * sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
2531         to match.
2532
2533 2001-11-30  Larry Jones  <larry.jones@sdrc.com>
2534
2535         * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
2536
2537 2001-10-25  Larry Jones  <larry.jones@sdrc.com>
2538
2539         * log.c (log_expand_revlist): Make erroneous or inconsistent revision
2540         specs select no revisions rather than all revisions.
2541
2542 2001-10-23  Larry Jones  <larry.jones@sdrc.com>
2543
2544         * import.c (add_rcs_file): Don't put an expand entry into the file
2545         for the default expansion mode (kv).
2546         * wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
2547         with default expansion mode since they may be needed to avoid matching
2548         a more general entry later.
2549         (wrap_add): Set rcsOption to NULL for default (kv).
2550         (wrap_add_entry): Use structure assignment to copy entries rather
2551         that copying members by hand.
2552         * sanity.sh (binwrap3): Revise to test wrapper entries that don't
2553         specify any non-default options but just prevent matching later,
2554         more general entries.
2555
2556 2001-10-02  Larry Jones  <larry.jones@sdrc.com>
2557
2558         * rcs.c (RCS_fully_parse): Add revision number to more error messages.
2559
2560 2001-09-27  Larry Jones  <larry.jones@sdrc.com>
2561
2562         * rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
2563         number to the "mismatch" error message.
2564
2565         * sanity.sh (multiroot2-9a): Update to match changes to lock.c.
2566
2567 2001-09-26  Larry Jones  <larry.jones@sdrc.com>
2568
2569         * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
2570
2571 2001-09-24  Derek Price  <dprice@collab.net>
2572
2573         * find_names.c (add_entries_proc): Leave closure specified as such in the
2574         function definition for clarity.
2575
2576         * find_names.c (Find_Names): Use 'closure' feature of walklist()
2577         to eliminate the static variable.
2578         (add_entries_proc): Expect closure to be the file list.
2579         (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
2580
2581 2001-09-19  Derek Price  <dprice@collab.net>
2582
2583         * rcs.c (rcsbuf_valpolish_internal): Restore one of the
2584         "if ( ... ) abort();" sequences since it seems to check the validity of
2585         the RCS file rather than for a programming error.  Also added a FIXME
2586         comment to the effect that we should explain the RCS file error to the
2587         user as such if it is such.
2588         (Thanks to Larry Jones  <scjones@sdrc.com>.)
2589
2590 2001-09-19  Derek Price  <dprice@collab.net>
2591
2592         * rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
2593         of the form "if ( ... ) abort();" with equivalent calls to assert().
2594
2595 2001-09-17  Derek Price  <dprice@collab.net>
2596
2597         * myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
2598         messages more informative.
2599         * sanity.sh (modules6): New test.
2600         (Original report from Taska <taska@collab.net> and others.)
2601
2602 2001-09-14  Derek Price  <dprice@collab.net>
2603
2604         * logmsg.c (do_verify): Dispose memory when finished with it.
2605
2606 2001-09-07  Larry Jones  <larry.jones@sdrc.com>
2607
2608         * mkmodules.c (notify_contents): In the example, move the %s to
2609         the end since many, if not most, versions of mail insist on
2610         options coming before addresses.
2611
2612 2001-09-06  Derek Price  <dprice@collab.net>
2613
2614         * login.c (login): Deal with NULL return value from getpass.
2615
2616 2001-09-04  Derek Price  <dprice@collab.net>
2617
2618         * Makefile.in: Regenerated with automake 1.5.
2619         * stamp-h2.in: Ditto.
2620
2621 2001-09-04  Derek Price  <dprice@collab.net>
2622
2623         * main.c (main): Fix empty CVSROOT message to specify `valid' instead
2624         of `legal'.
2625
2626 2001-09-04  Derek Price  <dprice@collab.net>
2627
2628         * server.c (pserver_authenticate_connection): Back out changes from the
2629         30th and...
2630         * getline.c (getstr): init the buffer instead.
2631
2632 2001-08-31  Derek Price  <dprice@collab.net>
2633
2634         * Makefile.in: Backed out accidental commit from yesterday.
2635
2636 2001-08-30  Derek Price  <dprice@collab.net>
2637
2638         * server.c (pserver_authenticate_connection): Don't print from the
2639         NULL pointer in the error message string in the case where the client
2640         didn't send any data.
2641         * sanity.sh (pserver): Test for this case.
2642         (Report from Mark Welch <mark@collab.net>).
2643
2644 2001-08-24  Derek Price  <dprice@collab.net>
2645
2646         * logmsg.c (do_editor): Add comment and assertion.
2647         * import.c (import): Don't call do_editor with a repository argument
2648         in client mode.
2649         (Report and original patch from darkness <darkness@invado.com>.)
2650
2651 2001-08-24  Larry Jones  <larry.jones@sdrc.com>
2652
2653         * log.c (log_expand_revlist): Arrange for nil revision specs to
2654         select nothing instead of everything.
2655         * sanity.sh (log): New tests for above.
2656
2657 2001-08-24  Derek Price  <dprice@collab.net>
2658
2659         * parseinfo.c (Parse_Info): Change the function name in the trace
2660         and add the client/server string.
2661
2662 2001-08-24  Derek Price  <dprice@collab.net>
2663
2664         * Implement RereadLogAfterVerify CVSROOT/config option to control
2665         FreeBSD read-write of log messages in the verification script.
2666         * logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
2667         to preserve the status quo.
2668         * parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
2669         option. Possible values are: no | never | yes | always | stat
2670         * cvs.h: Add extern for RereadLogAfterVerify and new value macros
2671         LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
2672         its values.
2673         (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
2674
2675         * Apply changes from FreeBSD cvs sources to implement a read-write
2676         user-defined verification script.
2677         * logmsg.c (do_verify): Update do_verify to expect a pointer
2678         to the saved message. The log file passed to the verifymsg_script
2679         should be re-read after the user-defined verification script has
2680         been run. The user-defined verification script is allowed to
2681         modify the message.  This allows the script to add extra
2682         information to the log message or to remove template lines that
2683         are not needed.
2684         * cvs.h: Update prototype for do_verify prototype to expect a
2685         pointer to the saved_message.
2686         * commit.c (commit, commit_fileproc, commit_direntproc): Update
2687         calls to do_verify as the saved_message arg is now read-write.
2688         * import.c (import):  Update calls to do_verify as the
2689         saved_message arg is now read-write.
2690         * sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
2691         and add a new info-v4 test case have the verification script
2692         modify the log message to test the above changes.
2693         (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
2694
2695         * logmsg.c: Change RereadLogAfterVerify default to always.
2696         (do_verify): Reformat and make minor fixes to Mark's patch.
2697         * mkmodules.c (config_constants): Add comment about
2698         RereadLogAfterVerify.
2699         * sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
2700         reformat them a bit.
2701
2702 2001-08-23  Derek Price  <dprice@collab.net>
2703
2704         * sanity.sh (info): Demonstrate that the verifymsg scripts can
2705         sometimes, but not always, retreive information on which directory is
2706         being committed to.
2707
2708 2001-08-22  Derek Price  <dprice@collab.net>
2709
2710         * logmsg.c: Back out the last change - the repository which is passed
2711         in is actually the directory and changes with each call to do_verify.
2712         If a verifymsg script is using `pwd`, this could change the operation.
2713         * cvs.h: Ditto.
2714         * commit.c: Ditto.
2715         * import.c: Ditto.
2716
2717 2001-08-22  Derek Price  <dprice@collab.net>
2718
2719         * logmsg.c (do_editor): Return reused_message.
2720         (do_verify): Don't verify the same log message more than once.
2721         * cvs.h: Update prototypes for do_verify and do_editor.
2722         * commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
2723         * import.c (import): Ditto.
2724
2725 2001-08-22  Derek Price  <dprice@collab.net>
2726
2727         * logmsg.c (do_verify): Remove an unecessary "else" clause following an
2728         exit and unindent the former contents.
2729
2730 2001-08-22  Derek Price  <dprice@collab.net>
2731
2732         * commit.c (commit): Don't call do_verify in client mode since we know
2733         do_verify will just return anyhow.
2734
2735 2001-08-20  Derek Price  <dprice@collab.net>
2736
2737         * Makefile.am (cvs_SOURCES): Add version.c and version.h.
2738         (BUILT_SOURCES): Add version.h.
2739         (Maintainer Targets): Remove version.h.
2740         * version.c: Remove @VERSION@ dependant bits.
2741         * version.c.in: Removed.
2742         * version.h.in: New file.
2743         (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2744
2745         * Makefile.am: Various modifications to make Automake, make dist, and
2746         windows targets work like they are supposed to.
2747         * version.h: New (generated) file.
2748
2749         * Makefile.in: Regenerated.
2750
2751 2001-08-09  Derek Price  <dprice@collab.net>
2752
2753         * client.c (socket_buffer_shutdown): Use recv instead of read and
2754         return 0 on success.
2755         (Patch from "Manfred Klug" <manklu@web.de>.)
2756
2757 2001-08-09  Derek Price  <dprice@collab.net>
2758
2759         * buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
2760         when NO_SOCKET_TO_FD is defined.
2761         * client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
2762         call and reference to S_ISSOCK since these functions aren't available
2763         under Windows.
2764         (connect_to_forked_server, connect_to_pserver, start_tcp_server,
2765         start_server, start_rsh_server): Use new argument.
2766         (Patch from "Manfred Klug" <manklu@web.de>.)
2767
2768         * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
2769         where rsh pipes weren't being closed.
2770
2771 2001-08-09  Derek Price  <dprice@collab.net>
2772
2773         * sanity.sh (rmadd, rm-update-message, join-two-branch,
2774         ignore-on-branch): Change a few references to `cvs' to `$PROG'.
2775
2776 2001-08-07  Derek Price  <dprice@collab.net>
2777
2778         * build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
2779         * patch.c: VMS time_t appears to be unsigned.   Add a cast when testing
2780         for (time_t)-1.
2781         * subr.c: #else,#endif for no symlinks should be moved.
2782         (Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
2783
2784 2001-08-06  Derek Price  <dprice@collab.net>
2785
2786         * Makefile.in: Regenerated.
2787
2788 2001-08-01  Derek Price  <dprice@collab.net>
2789
2790         * diff.c (diff): Send long option for side-by-side diffs to the server
2791         rather than '-y', for backwards compatibility with old servers.
2792         (Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
2793
2794 2001-07-19  Larry Jones  <larry.jones@sdrc.com>
2795
2796         * mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
2797         disabled in wrapper.c.
2798
2799         * checkout.c (checkout): Don't complain about checking out into the
2800         repository when piping output.
2801         (Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
2802         * sanity.sh (checkout_repository): New tests for above.
2803
2804 2001-07-10  Larry Jones  <larry.jones@sdrc.com>
2805
2806         * sanity.sh (importc-7): Now works correctly in local mode.
2807
2808         * commit.c (commit_dirleaveproc): We're still in the directory when
2809         this is called, so the first argument to Name_Repository needs to
2810         be NULL, not dir.
2811         * sanity.sh (rmadd): New tests for above.
2812
2813         * commit.c (commit): Reword error messages for committing as root.
2814
2815 2001-07-08  Larry Jones  <larry.jones@sdrc.com>
2816
2817         * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
2818         NUL terminator.
2819         * update.c (special_file_mismatch): Ditto.
2820         (Reported by Pekka Savola <pekkas@netcore.fi>.)
2821
2822 2001-07-05  Larry Jones  <larry.jones@sdrc.com>
2823
2824         * client.c, root.c: Fix -Wall warnings.
2825
2826         * buffer.c: #include socket header to declare shutdown().
2827
2828         * rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
2829         portability.
2830         (RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
2831
2832 2001-07-04  Derek Price  <dprice@collab.net>
2833
2834         * Makefile.in: Regenerated with new Automake release candidate 1.4h.
2835
2836 2001-07-03  Derek Price  <dprice@collab.net>
2837
2838         * rcs.c (rcsbuf_open): Reduce memory consumption still further by not
2839         mmapping the entire file when pos is specified.
2840         (rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
2841         caching.
2842
2843 2001-07-03  Derek Price  <dprice@collab.net>
2844
2845         * rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
2846         consumption, especially with large (e.g. binary) files.
2847         (rcsbuf_close): Call munmap.
2848         (rcsbuf_getkey): Remove the buffer fill code when using mmap.
2849         (rcsbuf_getrevnum): Ditto.
2850         (rcsbuf_fill): Remove this function when using mmap.
2851         (rcsbuf_cache_open): Mostly don't use this function with mmap.
2852         (RCS_copydeltas): Don't depend on the file pointer with mmap.
2853
2854         * stamp-h2.in: Regenerated.
2855
2856 2001-07-03  Derek Price  <dprice@collab.net>
2857
2858         * update.c: Indent compiler directives.
2859
2860 2001-07-02  Larry Jones  <larry.jones@sdrc.com>
2861
2862         * import.c (update_rcs_file): Use -kb instead of -ko when comparing
2863         binary files.
2864         (Reported by Gyula Faller <gfaller@graphisoft.hu>.)
2865
2866 2001-06-28  Larry Jones  <larry.jones@sdrc.com>
2867
2868         * checkout.c (checkout): Explicitly initialize all the static options
2869         so that multiple calls work right.  Also fix potential memory leaks.
2870         (Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
2871
2872 2001-06-28  Derek Price  <dprice@collab.net>
2873
2874         * Makefile.in: Regenerated with new version of Automake.
2875
2876 2001-06-28  Larry Jones  <larry.jones@sdrc.com>
2877
2878         * checkout.c (checkout): Set history_name for export as well as
2879         checkout.
2880         (checkout_proc): Use it.
2881
2882         * checkout.c (safe_location): Add missing argument in error message.
2883
2884 2001-06-26  Larry Jones  <larry.jones@sdrc.com>
2885
2886         * recurse.c (start_recursion): Use strip_trailing_slashes instead
2887         of doing it by hand.
2888
2889         * server.c (pserver_authenticate_connection): Don't clear out
2890         descrambled_password until *after* it's (potentially) logged.
2891         (Reported by Eric Hanchrow <offby1@blarg.net>.)
2892
2893 2001-06-25  Larry Jones  <larry.jones@sdrc.com>
2894
2895         * recurse.c (start_recursion): Deal with at least some of the cases
2896         where trailing slashes cause confusion.
2897         (Reported by Malcolm Fernandes <fernande@redback.com>.)
2898         * sanity.sh (basica, basicb): Tweak existing tests to check this.
2899
2900 2001-06-22  Larry Jones  <larry.jones@sdrc.com>
2901
2902         * sanity.sh (modules5): New tests with -d on command line.
2903
2904 2001-06-21  Larry Jones  <larry.jones@sdrc.com>
2905
2906         * modules.c (do_module): Use run_module_prog and server_active to
2907         determine when to call server_prog instead of using server_expanding
2908         so that we get the right paths in the replies as long as we take
2909         mwhere into account in addition to where.
2910         (Reported by Pascal Bourguignon <pjb@informatimago.com>.)
2911         * server.c (server_prog): Use protocol pipe instead of buf_to_net.
2912         * sanity.sh (modules5): Remove FIXCVS comment and update to match.
2913         * server.c, server.h: Remove server_expanding since now unused.
2914
2915 2001-06-21  Larry Jones  <larry.jones@sdrc.com>
2916         for Stephen Rasku  <stephen@tgivan.com>
2917
2918         * admin.c: Corrected spelling mistakes in help.
2919
2920 2001-06-20  Derek Price  <dprice@collab.net>
2921
2922         * client.c (socket_buffer_shutdown): Fix untested typos.
2923         (Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
2924
2925         * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
2926         the correct place.
2927
2928 2001-06-20  Derek Price  <dprice@collab.net>
2929
2930         * logmsg.c (do_editor): Abort in the case that the file has only
2931         comment lines.
2932         (Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
2933
2934         * logmsg.c (do_editor): Fix rare memory leak.
2935         * sanity.sh (editor): Add tests for aborted log messages.
2936
2937 2001-06-20  Larry Jones  <larry.jones@sdrc.com>
2938
2939         * server.c (switch_to_user): Only set $CVS_USER if
2940         AUTH_SERVER_SUPPORT is defined.
2941         (Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
2942
2943 2001-06-13  Derek Price  <dprice@collab.net>
2944
2945         * client.c: Fix incorrect fixed-size buffer usage in
2946         connect_to_gserver().
2947         (Minor changes to a patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
2948
2949 2001-06-11  Derek Price  <dprice@collab.net>
2950
2951         * main.c (main): Always print $CVSROOT when parse_cvsroot fails.
2952         * root.c (parse_cvsroot): Tidy error messages and provide more
2953         consistent behavior.
2954         * sanity.sh (crerepos): Adapt to new error messages.
2955         (Suggested by  Alexey Mahotkin <alexm@hsys.msk.ru>.)
2956
2957 2001-06-08  Derek Price  <dprice@collab.net>
2958
2959         * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
2960
2961 2001-06-07  Larry Jones  <larry.jones@sdrc.com>
2962
2963         * rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
2964         should never break locks, you have to specify a specific revision
2965         to do that.  Also add an informative message for a bare -u when
2966         the user doesn't hold any locks.
2967         * commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
2968         * sanity.sh (rmadd-24): Update to match.
2969
2970         * sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
2971         dotest_fail.  Allow for "broken pipe" rather than "end of file".
2972
2973 2001-06-07  Derek Price  <dprice@collab.net>
2974
2975         * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
2976         /tmp/cvs-sanity/cvsroot.
2977
2978 2001-06-06  Derek Price  <dprice@collab.net>
2979
2980         (Reformatting, bug fixes, tests, and comments to a
2981         patch from Stephen Cameron <steve.cameron@compaq.com>.)
2982
2983         * tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
2984           Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
2985           and "cvs rtag -d" so that they will not disturb existing
2986           branch tags unless a new "-B" option is given.
2987         * sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
2988           to "cvs tag" and "cvs rtag"
2989
2990 2001-06-06  Derek Price  <dprice@collab.net>
2991
2992         * sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
2993         test call at Larry's suggestion.  Also, test the error message since
2994         it's fixed now.
2995
2996 2001-06-05  Larry Jones  <larry.jones@sdrc.com>
2997
2998         * rcs.c (RCS_unlock): Note when breaking someone else's lock.
2999         (Reported by MURVAI-BUZOGANY Laszlo
3000         <Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
3001         * sanity.sh (reserved-14): Update to match.
3002
3003 2001-06-05  Derek Price  <dprice@collab.net>
3004
3005         * sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false...  this is a local
3006         mode only test anyhow.
3007         (Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
3008
3009 2001-05-31  Derek Price  <dprice@collab.net>
3010
3011         * sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
3012         in the hopes that the data will eventually prove useful to someone
3013         motivated enough to fix the problem.
3014
3015 2001-05-30  Derek Price  <dprice@collab.net>
3016
3017         * stamp-h2.in: Regenerated.
3018
3019 2001-05-30  Derek Price  <dprice@collab.net>
3020
3021         * *: Various bug fixes and comments for the following
3022         patch from Donald Sharp <sharpd@cisco.com>:
3023
3024         * checkout.c (safe_location): cvs co -d <directory> still had
3025         failure modes from the way the -d option works.
3026         * sanity.sh: Misc error message resynching.
3027
3028 2001-05-29  Derek Price  <dprice@collab.net>
3029
3030         * Makefile.am (cvs_SOURCES): Add root.h.
3031
3032         * Makefile.in: Regenerated.
3033         * stamp-h2.in: Regenerated.
3034
3035 2001-05-29  Derek Price  <dprice@collab.net>
3036
3037         * checkout.c (safe_location): Correct formatting.
3038
3039 2001-05-29  Derek Price  <dprice@collab.net>
3040
3041         * root.c (parse_cvsroot): Fix a comment.
3042
3043 2001-05-26  Larry Jones  <larry.jones@sdrc.com>
3044
3045         * checkout.c (safe_location): Use old-style definition to keep
3046         non-ANSI compilers happy.
3047
3048         * sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
3049         of /tmp/cvs-sanity/cvsroot.
3050
3051 2001-05-25  Larry Jones  <larry.jones@sdrc.com>
3052
3053         * sanity.sh (modules5): Add sleep to script to help avoid out of
3054         order messages.
3055
3056         * filesubr.c (mkdir_if_needed): Return 1 if the directory exists
3057         reguardless of what errno is set to.
3058         (Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
3059
3060 2001-05-25  Derek Price  <dprice@collab.net>
3061         for Donald Sharp  <sharpd@cisco.com>
3062
3063         * checkout.c:  Modified safe_location() to refuse checkout if
3064         the -d option to co specifies inside of the repository.
3065         * import.c:  New parameter to safe_location needed to be added.
3066         * cvs.h:  New parameter to safe_location needed to be added.
3067         * sanity.sh:  Test case to test for failure mode.
3068
3069 2001-05-23  Larry Jones  <larry.jones@sdrc.com>
3070
3071         * checkout.c (checkout_proc): Don't build top_level_admin directory
3072         when exporting.
3073         (Reported by Tony Byrne <tonyb@directski.com>.)
3074
3075 2001-05-21  Derek Price  <dprice@collab.net>
3076
3077         * client.c: Fix a mispelling in a comment.
3078         (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
3079
3080 2001-05-05  Larry Jones  <larry.jones@sdrc.com>
3081
3082         * login.c (password_entry_operation): Only warn if unable to open
3083         .cvspass for reading: may be initial login and it doesn't exist yet.
3084
3085 2001-05-15  Derek Price  <dprice@collab.net>
3086
3087         * client.c (start_tcp_server): Use the struct sockaddr_in declared in
3088         the function.
3089         (Reported by Emil Isberg <isberg@dynarc.se>.)
3090
3091 2001-05-05  Larry Jones  <larry.jones@sdrc.com>
3092
3093         * annotate.c (annotate): Pass local to do_module and rannotate_proc
3094         so that -l actually works.
3095         * log.c (cvslog): Ditto.
3096         * patch.c (patch): Ditto; make local local instead of global.
3097         (patch_proc): Use local_specified parameter instead of global.
3098         * tag.c (cvstag, rtag_proc): Ditto.
3099
3100 2001-05-05  Larry Jones  <larry.jones@sdrc.com>
3101
3102         * client.h: Declare "struct buffer" outside prototype for __STDC__
3103         compilers.
3104
3105 2001-05-04  Derek Price  <dprice@collab.net>
3106
3107         * client.c:  General refactoring.  Removed several global variables in
3108         favor of passing locals and/or dynamic evaluation.
3109         (recv_line): Removed this function.
3110         (make_bufs_from_fds): New function with factored code.
3111         (connect_to_forked_server): New prototype.  Use new functions.
3112         (connect_to_pserver): New prototype.  Use new functions.
3113         (connect_to_gserver): New prototype.  Use new API.
3114         (auth_server): Factored this portion of the pserver code so it can be
3115         shared.  Rewrote to use buffers rather than depending on a socket.
3116         (start_rsh_server): New prototype.  Use new API.
3117         (start_tcp_server): New prototype.  Use new API.
3118         (start_server): Factor some code.  Use new API.
3119         * client.h: New prototypes.
3120         * cvs.h: Gratuitous reformatting.  Use new root.h.
3121         * login.c (login): Use new connect_to_pserver API.
3122         * root.h: New file.  Contains some code that used to be in cvs.h.
3123
3124 2001-05-04  Derek Price  <dprice@collab.net>
3125
3126         * client.c: Gratuitous reformatting.
3127         * client.h: Ditto.
3128
3129 2001-05-04  Derek Price  <dprice@collab.net>
3130
3131         * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
3132         prototype.
3133         (compress_buffer_shutdown_output): Ditto.
3134         (Thanks to Pavel Roskin <proski@gnu.org>.)
3135
3136 2001-05-03  Derek Price  <dprice@collab.net>
3137
3138         * buffer.c (struct stdio_buffer_closure): New structure to hold a
3139         FILE * and the child's PID when necessary.
3140         (stdio_buffer_initialize): Change proto to accept PID.  Set up new
3141         closure.  Pass new stdio_buffer_shutdown to buf_initialize.
3142         (stdio_buffer_input): Use new closure.
3143         (stdio_buffer_output): Ditto.
3144         (stdio_buffer_flush): Ditto.
3145         (stdio_buffer_shutdown): New function.  Teach buffer to close itself.
3146         (packetizing_buffer_shutdown): Use new buffer shutdown proto.
3147         * buffer.h (struct buffer): New buffer shutdown proto.
3148         (stdio_buffer_initialize): New proto.
3149         * client.c (log_buffer_shutdown): Use new proto.
3150         (socket_buffer_initialize): Pass shutdown func.
3151         (socket_buffer_shutdown): New function.
3152         * server.c (get_responses_and_close): Remove most of the guts.  Rely
3153         on the buffer shutdown function from now on.
3154         (start_rsh_server): Return child PID.
3155
3156 2001-05-03  Larry Jones  <larry.jones@sdrc.com>
3157
3158         * history.c (history_write): Handle the case where the user's home
3159         directory doesn't exist gracefully instead of erroring out.
3160         (Reported by David Hoover <dhoover@cadence.com>.)
3161
3162 2001-05-03  Derek Price  <dprice@collab.net>
3163
3164         * cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
3165         I wrote in the ChangeLog, oh, so long ago.
3166         * diff.c (diff): Ditto.
3167         * subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
3168
3169 2001-05-02  Larry Jones  <larry.jones@sdrc.com>
3170
3171         * rcs.c (RCS_getdate): Handle the (unusual!) case where we
3172         can't find any revisions at all.
3173         (Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
3174
3175 2001-04-30  Larry Jones  <larry.jones@sdrc.com>
3176
3177         * sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
3178         duplicate names; fix to work without SERVER_SUPPORT defined.
3179         (Reported by Pavel Roskin <proski@gnu.org>.)
3180
3181 2001-04-29  Derek Price  <dprice@collab.net>
3182
3183         * Makefile.am (check-local): Make dependent on localcheck and
3184         remotecheck and move old check target...
3185         (localcheck): here.
3186
3187         * Makefile.in: Regenerated.
3188
3189 2001-04-27  Larry Jones  <larry.jones@sdrc.com>
3190
3191         * sanity.sh (pserver): Add tests for readers and writers.
3192
3193 2001-04-27  Derek Price  <dprice@collab.net>
3194
3195         * sanity.sh (version-2r): Update to handle patch releases in version
3196         numbers.
3197
3198 2001-04-27  Derek Price  <dprice@collab.net>
3199
3200         * version.c: Regenerated.
3201
3202 2001-04-27  Derek Price  <dprice@collab.net>
3203
3204         * version.c: Regenerated.
3205
3206 2001-04-27  Larry Jones  <larry.jones@sdrc.com>
3207
3208         * main.c (lookup_command_attribute): Lookup specified command, not
3209         whatever's in the global command_name.
3210
3211 2001-04-25  Derek Price  <dprice@collab.net>
3212
3213         * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
3214         * version.c: Regenerated.
3215
3216 2001-04-22  Larry Jones  <larry.jones@sdrc.com>
3217
3218         * tag.c (tag_check_valid): Make an unwritable val-tags file a
3219         warning instead of a fatal error.
3220
3221 2001-04-20  Larry Jones  <larry.jones@sdrc.com>
3222
3223         * annotate.c (annotate_usage): -r and -D are not mutually exclusive.
3224         * main.c (cmd_usage): Add missing version subcommand.
3225         * update.c (update_usage): Add missing -C option.
3226
3227         * sanity.sh (death2): New tests for previous change.
3228
3229         * classify.c (Classify_File): Treat a dead revision like the RCS
3230         file doesn't exist.
3231         * sanity.sh: Update to match.
3232
3233 2001-04-16  Larry Jones  <larry.jones@sdrc.com>
3234
3235         * checkout.c, update.c: Fix usage messages: -r and -D are not
3236         mutually exclusive.
3237         (Suggested by David L. Martin <dlmart2@home.com>.)
3238
3239         * logmsg.c (do_editor): Don't add a blank line to the message.
3240         * sanity.sh (editor-log-file*): Update to match.
3241
3242         * checkout.c, update.c: Note in usage message that -k is sticky.
3243
3244         * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
3245         (Suggested by Rob Saccoccio <robs@chelsea.net>.)
3246
3247 2001-04-04  Larry Jones  <larry.jones@sdrc.com>
3248
3249         * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
3250         dotest_sort): Don't count on $? being set in then or else clauses.
3251
3252         * ignore.c (ignore_files): Collect unignored files into a list and
3253         sort it before calling PROC to avoid order dependencies.  Rewrite
3254         the while loop to allow normal continues instead of goto.
3255
3256 2001-04-04  Derek Price  <dprice@collab.net>
3257
3258         * sanity.sh (ignore-on-branch-3): Fix in the remote case.
3259
3260 2001-04-03  Larry Jones  <larry.jones@sdrc.com>
3261
3262         * update.c (update_fileproc): Remove unused variable (resurrecting).
3263
3264 2001-04-03  Derek Price  <dprice@collab.net>
3265             Larry Jones  <larry.jones@sdrc.com>
3266             reported by Jakob Bøhm  <JB@Danware.dk>
3267
3268         * update.c (update_fileproc): Don't store a file with T_UNKNOWN status
3269         in ignlist if present in the sandbox.
3270         * sanity.sh (ignore-on-branch): New test.
3271         (ignore): Tidy this test.
3272
3273 2001-04-02  Derek Price  <dprice@collab.net>
3274
3275         * sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
3276         is used and the user is root.  Fix some quoting in error messages.
3277         (fork): Take `cvs' out of the PATH.
3278         (TODO): Add note about the test suite not working with user names over
3279         eight characters in length.
3280
3281 2001-04-02  Derek Price  <dprice@collab.net>
3282
3283         * sanity.sh (fork): New test for CVS_SERVER default.
3284         (TODO): Note about eventually removing most of the references to
3285         CVS_SERVER.
3286
3287 2001-04-02  Larry Jones  <larry.jones@sdrc.com>
3288
3289         * client.c (connect_to_forked_server): Use program_path as the default
3290         server instead of "cvs".
3291
3292 2001-04-02  Derek Price  <dprice@collab.net>
3293
3294         * sanity.sh: Use less obfuscated English in my comment about sanity
3295         checking sanity.sh.
3296
3297 2001-04-02  Derek Price  <dprice@collab.net>
3298
3299         * sanity.sh (rm-update-message): Create a test directory again but
3300         change back to the correct directory upon completion this time.
3301
3302 2001-04-02  Derek Price  <dprice@collab.net>
3303
3304         * sanity.sh: Change last two '[.*]'s to 'test's for
3305         consistency and remove...
3306         (TODO): the note from the TODO list.
3307
3308 2001-04-02  Derek Price  <dprice@collab.net>
3309
3310         * sanity.sh: Add test for PWD before successful exit.
3311
3312 2001-03-30  Larry Jones  <larry.jones@sdrc.com>
3313
3314         * sanity.sh (rm-update-message): Remove duplicate code.
3315
3316 2001-03-30  Derek Price  <dprice@collab.net>
3317
3318         * sanity.sh (rm-update-message): New test for local/client-server
3319         warning message discrepency.
3320
3321 2001-03-30  Larry Jones  <larry.jones@sdrc.com>
3322
3323         * annotate.c: Move annotate() here from rcs.c, support rannotate.
3324         * Makefile.am, Makefile.in: Add annotate.c.
3325         * main.c (cmds[], cmd_usage[]): Add rannotate.
3326         * rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
3327         * rcs.h:    ... here.
3328         * server.c (serve_rannotate): New.
3329         (requests[]): Add rannotate.
3330         * sanity.sh (ann): New tests for rannotate.
3331
3332         * log.c (rlog_proc): Remove dead code.
3333
3334 2001-03-30  Derek Price  <dprice@collab.net>
3335
3336         * sanity.sh (join-readonly-conflict): Run more of this through dotest.
3337
3338 2001-03-30  Larry Jones  <larry.jones@sdrc.com>
3339
3340         * log.c (log_fileproc): Don't output working file for rlog.
3341         * sanity.sh (log): New tests for rlog.
3342
3343         * cvs.h (mtype): Add MISC type.
3344         * log.c (cvslog): Support rlog as well as log.
3345         (rlog_proc): New.
3346         * main.c (cmds[], cmd_usage[]): Add rlog.
3347         (main): Remove old rlog warning message.
3348         * server.c (serve_rlog): New.
3349         (requests[]): Add rlog.
3350
3351 2001-03-29  Derek Price  <dprice@collab.net>
3352
3353         * sanity.sh: cd to $TESTDIR once after it is normalized.  Make TODO
3354         on history and symlinks more specific.  Tested properly this time.
3355
3356 2001-03-29  Larry Jones  <larry.jones@sdrc.com>
3357
3358         * main.c (cmds[], lookup_command_attribute, main): Include the
3359         command attributes in the global command table instead of inferring
3360         them from the command names.  Change the sense of the
3361         CVS_CMD_IGNORE_ADMROOT attribute to match its name.
3362
3363 2001-03-29  Derek Price  <dprice@collab.net>
3364
3365         * sanity.sh (*, basic2-64): Remove references to TMPPWD.  Fix FIXME
3366         at end of script now that $TESTDIR can't be relative.
3367
3368 2001-03-29  Derek Price  <dprice@collab.net>
3369
3370         * sanity.sh: Normalize TESTDIR even when the user set it.
3371
3372 2001-03-29  Larry Jones  <larry.jones@sdrc.com>
3373
3374         * client.c (connect_to_pserver, start_tcp_server): Add IP address
3375         to connect failed message.
3376         (connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
3377         trace messages ala start_rsh_server.
3378         (start_rsh_server): Include entire command in trace message for
3379         START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
3380
3381 2001-03-29  Derek Price  <dprice@collab.net>
3382
3383         * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
3384         ${CVSROOT_DIRNAME} for consistency.
3385
3386 2001-03-29  Derek Price  <dprice@collab.net>
3387
3388         * sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
3389         for a CVS bug since May 96/97.  Not sure when the bug went bye-bye, but
3390         the tests broke when $TESTDIR != $TMPPWD.
3391
3392 2001-03-26  Larry Jones  <larry.jones@sdrc.com>
3393
3394         * classify.c (Classify_File): Don't report a conflict for a removed
3395         file when piping.  Also simplify the code structure.
3396         (Reported by Milos Kleint <milos.kleint@netbeans.com>.)
3397         * sanity.sh (rmadd2-14[abc]): New tests for above.
3398
3399 2001-03-24  Noel Cragg  <noel@shave.cnet.com>
3400
3401         * diff.c: mods to allow `-T' and `-y' options to be passed through
3402         to the diff library.  This wasn't allowed earlier because of a
3403         similarly named options that got passed through to the old rcs
3404         programs.  We've long since stopped sending `-T' to any rcs
3405         utility and have never used `-y'.  Any users of moldly CVS
3406         versions which used to support `-T' have (hopefully) upgraded to
3407         one where that option isn't supported.  It seems reasonable to
3408         enable them again and pass them through.  (sanity.sh still works
3409         anyways...)
3410         (longopts): add short option equivalents for --initial-tab and
3411         --side-by-side.
3412         (diff): add new short options to getopt string and switch
3413         statement.
3414
3415 2001-03-22  Larry Jones  <larry.jones@sdrc.com>
3416
3417         * sanity.sh: Add check for ${DOTSTAR} with large matches.
3418
3419 2001-03-23  Derek Price  <dprice@collab.net>
3420
3421         * sanity.sh: Do the same as below for $keep.
3422
3423 2001-03-23  Derek Price  <dprice@collab.net>
3424
3425         * sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
3426         often 'false' and more often ':' are shell builtins.  This makes the
3427         succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
3428         Alter tests in the rest of the script to match the new usage.  Added
3429         a suffix of 'r' to remote test names when it was appropriate and I
3430         remembered.  Some reformatting.
3431
3432 2001-03-22  Larry Jones  <larry.jones@sdrc.com>
3433
3434         * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
3435         output instead of using wildcards to avoid buffer overflows in some
3436         versions of expr.
3437
3438 2001-03-21  Derek Price  <dprice@collab.net>
3439
3440         * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
3441         a value inside ${TESTDIR} by the script.
3442
3443 2001-03-20  Derek Price  <dprice@collab.net>
3444
3445         * sanity.sh (diffmerge1): Minor formatting and syntax changes.
3446
3447             for Jacob Burckhardt  <bjacob@ca.metsci.com>
3448
3449         * sanity.sh (diffmerge1): More merging behavior tests.  Specifically,
3450         test some cases which broke before in Karl Tomlinson's diff fix was
3451         checked in today.
3452
3453 2001-03-20  Derek Price  <dprice@collab.net>
3454
3455         * sanity.sh: Don't use unescaped parens in sh outside of quotes.
3456
3457 2001-03-20  Derek Price  <dprice@collab.net>
3458
3459         * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
3460
3461 2001-03-20  Derek Price  <dprice@collab.net>
3462
3463         * sanity.sh: Change usage to match the new getopts format and comment.
3464
3465 2001-03-16  Derek Price  <dprice@collab.net>
3466
3467         * sanity.sh (modules2-nestedrename): New test.  Verifies behavior of
3468         renames nested under an ampersand module.
3469         (modules2-ampertag): New test.  Verifies an error condition which
3470         prevents some ampersand modules from being checked out when a tag
3471         is specified.
3472
3473 2001-03-16  Derek Price  <dprice@collab.net>
3474
3475         * sanity.sh (modules2): Additional test for ampersand module behavior
3476         with '-d'.
3477
3478             for Greg Klanderman  <greg@itasoftware.com>
3479
3480         * checkout.c (build_one_dir): Fix typo where clauses of two
3481         conditionals were reversed in call to Create_Admin.  This caused
3482         the CVS/Tag file to be removed in cases where it should have been
3483         set, and vice-versa.  It only surfaced in rare cases as this code
3484         is only invoked when using the -d option to build the path to
3485         check out in.  Further, the bug would only matter when checking
3486         out a module containing ampersand modules within it, via
3487         client/server CVS.
3488
3489 2001-03-16  Derek Price  <dprice@collab.net>
3490
3491         * sanity.sh (admin-28-5): Confirm that a missing tag during an
3492         'admin -n' operation is not a fatal error.
3493
3494 2001-03-16  Derek Price  <dprice@collab.net>
3495
3496         * admin.c (admin_data): Remove 'quiet' member.
3497         (admin_fileproc): Use global 'really_quiet' rather than
3498         admin_data->quiet.
3499
3500 2001-03-16  Derek Price  <dprice@collab.net>
3501
3502         * sanity.sh (admin): Replace hardcoded testdir path with the variable.
3503
3504 2001-03-15  Derek Price  <derek.price@openavenue.com>
3505
3506         * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
3507         * admin.c (admin_fileproc): Only print messages when not in
3508         really_quiet mode.
3509
3510             for Stephen Rasku  <stephen@tgivan.com>
3511
3512         * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
3513
3514 2001-03-15  Larry Jones  <larry.jones@sdrc.com>
3515
3516         * subr.c (sleep_past): Fix various bugs that would result in a
3517         negative sleep time if it weren't unsigned; since it is, it would
3518         result in a very large sleep time.  Ensure that us is always less
3519         than 1000000.  Don't try to sleep for more 1 sec with usleep.
3520         Cast NULL select arguments to correct type just in case.
3521
3522 2001-03-14  Derek Price  <derek.price@openavenue.com>
3523
3524         * subr.c (sleep_past): New function.
3525         * client.c (get_responses_and_close): Use new function.
3526         * commit.c (commit): Ditto.
3527         * update.c (do_update): Ditto.
3528         * cvs.h: Prototype new function.
3529
3530         * stamp-h2.in: Regenerated.
3531
3532 2001-03-14  Derek Price  <derek.price@openavenue.com>
3533
3534         * Makefile.in: Regenerated.
3535         * stamp-h2.in: Ditto.
3536
3537 2001-03-14  Larry Jones  <larry.jones@sdrc.com>
3538
3539         * commit.c (check_fileproc): Allow adding on the trunk when there's
3540         an existing non-Attic RCS file as long as the head revision is dead.
3541         This can happen due to an aborted resurrection.
3542         (commit_fileproc): When resurrecting, consider the dead revision
3543         along with the other files' revisions.
3544         (findmaxrev): Avoid unnecessary work.
3545         (checkaddfile): Only warn if file isn't in Attic as expected.
3546         (Reported by Ross Burton <r.burton@180sw.com>.)
3547         * sanity.sh (basica-r*): New tests for above.
3548         (basica-o4): Update to match.
3549
3550 2001-03-09  Larry Jones  <larry.jones@sdrc.com>
3551
3552         * edit.c (edit_fileproc, unedit_fileproc): Some implementations of
3553         asctime/ctime apparently use a leading zero on the date instead
3554         of the space required by the C Standard.  Correct for this so that
3555         shared working directories work without hassle.
3556         (Reported by David L. Martin <dlmart2@home.com>.)
3557         * entries.c (fgetentent): Ditto.
3558         * vers_ts.c (time_stamp_server, time_stamp) Ditto.
3559
3560 2001-03-07  Larry Jones  <larry.jones@sdrc.com>
3561
3562         * sanity.sh (basica, binfiles2, head, admin): Update to match
3563         change to admin.c.
3564
3565 2001-03-06  Larry Jones  <larry.jones@sdrc.com>
3566
3567         * client.c (recv_bytes): Handle EOF as in recv_line().
3568         (Reported by Pavel Roskin <proski@gnu.org>.)
3569
3570         * admin.c (admin_fileproc): Change final error message to clarify
3571         that CVS refused to modify the RCS file rather than being unable to.
3572
3573 2001-02-28  Jim Meyering  <meyering@lucent.com>
3574
3575         * commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
3576         the description of that option, to be consistent with the `-F logfile'
3577         in the Usage: line.  Use spaces instead of TAB characters, and realign.
3578
3579 2001-03-02  Derek Price  <derek.price@openavenue.com>
3580
3581         * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
3582         name of the command it actually used rather than 'rsh'.
3583
3584 2001-02-27  Derek Price  <derek.price@openavenue.com>
3585
3586         * sanity.sh (modules2-ampermod-*): Added these tests to make sure the
3587         top level directory is created in an ampermodule when '-n' is passed to
3588         checkout.
3589
3590         original bug report from
3591             Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
3592
3593 2001-02-27  Derek Price  <derek.price@openavenue.com>
3594
3595         * sanity.sh (version-[12]): replace ' (client/server)' with .* in these
3596         two tests so that 'make check' works with whatever client/server
3597         options the executable was compiled with.
3598
3599 2001-02-23  Derek Price  <derek.price@openavenue.com>
3600
3601         * main.c (main): Only check a cvsroot_t's isremote member when client
3602         support is enabled.
3603         * server.c: Include GSSAPI headers with client support as well as
3604         server support.
3605
3606 2001-02-21  Larry Jones  <larry.jones@sdrc.com>
3607
3608         * modules.c, cvs.h (do_module): Add build_dirs argument and use it
3609         instead of run_module_prog.  Change all callers.
3610         * tag.c (cvstag): For rtag, don't build directories.
3611         * sanity.sh (modules3): Update to match.
3612
3613 2001-02-20  Derek Price  <derek.price@openavenue.com>
3614
3615         * client.c: Use xgssapi.h.
3616         * server.c: Ditto.
3617
3618 2001-02-15  Derek Price  <derek.price@openavenue.com>
3619
3620         * Makefile.am (cvs_SOURCES): Correct error from yesterday.
3621         * Makefile.in: Regenerated.
3622
3623 2001-02-14  Derek Price  <derek.price@openavenue.com>
3624
3625         * server.c: Include xselect.h.
3626         * update.c (do_update): Use best available sleep function.
3627
3628 2001-02-14  Derek Price  <derek.price@openavenue.com>
3629
3630         * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
3631         (cvs_LDADD): Alphabetize and split to one/line.
3632         * Makefile.in: Regenerated.
3633
3634 2001-02-14  Larry Jones  <larry.jones@sdrc.com>
3635
3636         * build_src.com: Remove references to rtag.c & rtag.obj.
3637
3638 2001-02-13  Derek Price  <derek.price@openavenue.com>
3639
3640         * main.c (date_to_tm): New function to convert an RCS date string to a
3641         struct tm.
3642         (tm_to_internet): New function to convert a struct tm to a date string
3643         as specified by RFC822 and amended by RFC 1123.
3644         (date_to_internet): Use the above two functions and a struct tm
3645         intermediary for conversion.
3646         * patch.c (patch_fileproc): Answer somebody's comment and use the new
3647         diff_exec API.
3648         * rcs.c (RCS_checkin): Use new diff_exec API.
3649         (RCS_delete_revs): Use new diff_exec API.
3650         (make_file_label): If the file name is DEVNULL, date it the Epoch for
3651         compatibility with the POSIX.2 spec and Larry Wall's patch
3652         implementation.
3653         * rcscmds.c (diff_exec): Accept new label arguments.
3654         * sanity.sh (death2): Update some diff tests to accept the new format.
3655         * update.c (patch_file): Use new diff_exec API.
3656         * diff.c (diff_fileproc): Create header labels appropriate for
3657         compatibility with the Larry Wall version of patch.
3658         (diff): Rename calls to strcat_and_allocate.
3659         (strcat_and_allocate): Rename and move...
3660         * subr.c (xrealloc_and_strcat): here.
3661         * cvs.h: Update prototypes to match.
3662
3663 2001-02-13  Derek Price  <derek.price@openavenue.com>
3664
3665         * Makefile.am (cvs_SOURCES): Remove rtag.c.
3666
3667 2001-02-07  Larry Jones  <larry.jones@sdrc.com>
3668
3669         * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
3670         (basic2): Rewrite using dotest.
3671
3672 2001-02-06  Larry Jones  <larry.jones@sdrc.com>
3673
3674         * tag.c, rtag.c: Merge with tag.c being the surviving file.
3675         * Makefile.in: Update to match.
3676         * main.c (cmds): rtag() => cvstag().
3677         * server.c (serve_rtag): Ditto, and set command name.
3678
3679 2001-02-06  Derek Price  <derek.price@openavenue.com>
3680             Rex Jolliff  <Rex_Jolliff@notes.ymp.gov>
3681             Shawn Smith  <Shawn_Smith@notes.ymp.gov>
3682
3683         * add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
3684         CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
3685         5.7 {open,read,close}dir problems.  Check today's entry in the vms
3686         subdir for more.
3687         * filesubr.c: ditto
3688         * find_names.c: ditto
3689         * ignore.c: ditto
3690         * import.c: ditto
3691         * lock.c: ditto
3692         * update.c: ditto
3693
3694 2001-02-02  Larry Jones  <larry.jones@sdrc.com>
3695
3696         * error.h: Changed include guard macro from _error_h_ to ERROR_H;
3697         names beginning with underscore are reserved.
3698         * login.c (password_entry_parseline, password_entry_operation,
3699         password_entry_operation_e, password_entry_operation_t): Removed
3700         leading underscore(s).
3701         (password_entry_parseline): Corrected error messages.
3702         (password_entry_operation): Fixed uninitialized variable (password).
3703         (login): Removed unused variable (found_password).
3704
3705         * rtag.c (rtag_proc): Call lock_tree_for_write() before calling
3706         start_recursion.  This fixes a serious problem where do_recursion
3707         was reading and caching RCS files without any locks in place and
3708         that information was subsequently being used to rewrite the file
3709         causing any intermediate changes to be lost.
3710         (rtag_filesdoneproc): Defunct.
3711         (Reported by Karl Tomlinson <k.tomlinson@auckland.ac.nz>.)
3712         * tag.c (cvstag, tag_filesdoneproc): Ditto.
3713         * lock.c (lock_tree_for_write): Add which argument, change all
3714         callers to pass W_LOCAL.
3715         * rcs.h: Ditto.
3716
3717 2001-01-29  Derek Price  <derek.price@openavenue.com>
3718
3719         * client.c (get_cvs_port_number): change the prototype to accept a
3720         const cvsroot_t * as input and add a FIXME comment
3721         * cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
3722         * login.c (_password_entry_operation): consolidate all the ~/.cvspass
3723         access into a single new function which reads ~/.cvspass in a backwards
3724         compatible manner
3725         (logout): use the new _password_entry_operation function
3726         (login): ditto
3727         (get_cvs_password): ditto
3728         * root.c (normalize_cvsroot): move knowledge of default port & username
3729         values inside
3730
3731 2001-01-29  Larry Jones  <larry.jones@sdrc.com>
3732
3733         * subr.c (shell_escape): New function.
3734         * cvs.h: Declare it.
3735         * logmsg.c (logfile_write): Use it to avoid problems with filenames
3736         containing "'".
3737         (Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
3738
3739         * server.c (outbuf_memory_error, pserver_authenticate_connection,
3740         kserver_authenticate_connection): If available, use syslog() to
3741         record some errors.
3742
3743 2001-01-25  Larry Jones  <larry.jones@sdrc.com>
3744
3745         * server.c (do_cvs_command): If there's a partial output line left
3746         over and the client doesn't support MT, go ahead and send it in an
3747         M response instead of just dropping it.
3748         (Reported by Milos Kleint <Milos.Kleint@netbeans.com>.)
3749
3750         * update.c (update_fileproc): Handle toss_local_changes in the
3751         T_NEEDS_MERGE case.
3752         (Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
3753         * sanity.sh (clean): New tests for above.
3754
3755 2001-01-23  Derek Price  <derek.price@openavenue.com>
3756
3757         * run.c (run_exec): flush, if used, stderr and stdout before exit
3758         * server.c (cvs_flusherr): flush stderr & send a stderr flush command
3759         on the protocol pipe
3760         (cvs_flushout): like above, for stdout
3761         (do_cvs_command): handle flushes properly
3762         * sanity.sh (reserved): make the commitinfo script echo errors to
3763         stderr rather than stdin
3764
3765 2001-01-18  Larry Jones  <larry.jones@sdrc.com>
3766
3767         * log.c (option_revlist, revlist, log_usage, cvslog,
3768         log_parse_revlist, log_expand_revlist, log_version_requested): Add
3769         support for :: for exclusive ranges.
3770         * admin.c (admin_usage): Reorder -o to be parallel to log -r.
3771         * sanity.sh (log): New tests for above.
3772
3773 2001-01-18  Derek Price  <derek.price@openavenue.com>
3774
3775         * main.c: Add '2001' to the range of copyright years listed by the
3776         --version option
3777         * version.c.in (version): check current_parsed_root before its isremote
3778         member to avoid a core dump
3779         * sanity.sh (version): add a test for the version command
3780
3781         * version.c: regenerated
3782
3783 2001-01-12  Larry Jones  <larry.jones@sdrc.com>
3784
3785         * rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
3786         correct revision so that symbolic tags work correctly.  (This
3787         requires removing the "const" from the rev parameter since it's
3788         passed to RCS_gettag which might modify it.)
3789         (Reported by irina sturm <irina.sturm@st.com>.)
3790
3791 2001-01-11  Larry Jones  <larry.jones@sdrc.com>
3792
3793         * run.c (close_on_exec): Remove check for FD_CLOEXEC.  As far as I
3794         can see, it's *never* been defined, which defeats the whole point.
3795         If F_SETFD is defined, it's probably safe to use it.
3796
3797         * server.c (do_cvs_command): Call close_on_exec on the protocol and
3798         flow control pipes in the child process so they don't get inherited
3799         by any subsidiary processes.
3800         (Reported by Tristan Gingold <tgi@netgem.com>.)
3801
3802         * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
3803
3804 2001-01-10  Derek Price  <derek.price@openavenue.com>
3805             Rex Jolliff  <Rex_Jolliff@notes.ymp.gov>
3806
3807         * build_src.com: VMS changes
3808         * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
3809         * rcs.c: ditto
3810
3811 2001-01-10  Derek Price  <derek.price@openavenue.com>
3812
3813         * main.c (current_root): explicitly list this as a static global
3814
3815 2001-01-10  Derek Price  <derek.price@openavenue.com>
3816
3817         * cvs.h (get_cvs_port_number): change name & prototype from
3818         get_port_number
3819         * client.c (get_cvs_port_number): new function which returns a port
3820         number based on a cvsroot_t rather than requiring all possible sources
3821         passed in
3822         (connect_to_pserver): use new get_cvs_port_number function
3823         (connect_to_server): ditto
3824         * login.c (get_password): use new get_cvs_port_number function
3825         (login): ditto
3826         (logout): ditto
3827
3828 2001-01-10  Derek Price  <derek.price@openavenue.com>
3829
3830         * Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
3831         of the build since some systems don't allow mv's across partitions
3832         * Makefile.in: regenerated
3833
3834 2001-01-10  Derek Price  <derek.price@openavenue.com>
3835
3836         * Makefile.am (version.c): specify $(srcdir) explicitly in target rule
3837         so version.c gets built properly for all makes.
3838         (version.o): specify $(srcdir)/version.c explicitly so dependency is
3839         found and built properly
3840         * Makefile.in: regenerated
3841
3842 2001-01-09  Derek Price  <derek.price@openavenue.com>
3843
3844         * version.c: updated timestamp
3845
3846 2001-01-09  Larry Jones  <larry.jones@sdrc.com>
3847
3848         * server.c (server): Change to server_temp_dir immediately after
3849         creating it so that any stray files that happen to be created go
3850         there instead of in the server's initial directory, wherever that
3851         may be.
3852         * sanity.sh (modules5-15): Update to match.
3853
3854         * version.c.in: Update to match Derek's change to version.c.
3855
3856 2001-01-09  Derek Price  <derek.price@openavenue.com>
3857
3858         * cvs.h: Remove the various CVSroot_* bits and replace them with a
3859         single structure of type cvsroot_t (current_parsed_root)
3860
3861         * root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
3862         altering global variables
3863         (local_cvsroot): return a pointer to a new cvsroot_t rather than
3864         setting globals.  changed the name of this function from
3865         set_local_cvsroot to better explain new functionality
3866         (new_cvsroot_t): new initializer function
3867         (free_cvsroot_t): new function
3868         (others): use current_parsed_root rather than the old CVSroot_* globals
3869
3870         * add.c: use current_parsed_root rather than the old CVSroot_* globals
3871         * admin.c: ditto
3872         * checkout.c: ditto
3873         * client.c: ditto
3874         * commit.c: ditto
3875         * create_adm.c: ditto
3876         * diff.c: ditto
3877         * edit.c: ditto
3878         * expand_path.c: ditto
3879         * find_names.c: ditto
3880         * history.c: ditto
3881         * ignore.c: ditto
3882         * import.c: ditto
3883         * lock.c: ditto
3884         * log.c: ditto
3885         * login.c: ditto
3886         * logmsg.c: ditto
3887         * main.c: ditto
3888         * mkmodules.c: ditto
3889         * modules.c: ditto
3890         * parseinfo.c: ditto
3891         * patch.c: ditto
3892         * rcs.c: ditto
3893         * recurse.c: ditto
3894         * release.c: ditto
3895         * remove.c: ditto
3896         * repos.c: ditto
3897         * rtag.c: ditto
3898         * server.c: ditto
3899         * status.c: ditto
3900         * tag.c: ditto
3901         * update.c: ditto
3902         * version.c: ditto
3903         * watch.c: ditto
3904         * wrapper.c: ditto
3905
3906 2001-01-05  Derek Price  <derek.price@openavenue.com>
3907
3908         * cvs.h (enum CVSmethod): add null_method
3909         * root.c (method_names): correlate null_method & "undefined"
3910         (parse_cvsroot): make two error cases non fatal
3911         * sanity.sh (crerepos-6b): account for new error message, re above
3912
3913 2001-01-05  Derek Price  <derek.price@openavenue.com>
3914
3915         * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
3916         target to configure.in - see ../ChangeLog for more
3917         * src/cvsbug.in: Rename from cvsbug.sh
3918         * src/cvsbug.sh: Rename to cvsbug.in
3919
3920 2001-01-04  Larry Jones  <larry.jones@sdrc.com>
3921
3922         * Makefile.am (cvsbug): Explicitly list input file ($< is only
3923         valid in inference rules).
3924         * Makefile.in: Ditto.
3925
3926 2001-01-04  Derek Price  <derek.price@openavenue.com>
3927
3928         * sanity.sh: use getopts rather than getopt for portability reasons
3929
3930 2001-01-03  Derek Price  <derek.price@openavenue.com>
3931
3932         * Makefile.am (remotecheck): depend on 'all'
3933         * Makefile.in: regenerated
3934
3935 2000-12-29  Derek Price  <derek.price@openavenue.com>
3936
3937         * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
3938         to the line following the 'for'.  Apparently this is more portable.
3939
3940 2000-12-29  Derek Price  <derek.price@openavenue.com>
3941
3942         * sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
3943         implementation of Bourne shell doesn't seem to implement this default
3944         behavior.
3945
3946 2000-12-27  Derek Price  <derek.price@openavenue.com>
3947
3948         * sanity.sh: add a -f option for continuing from a particular test
3949         and shorten --keep to -k so we can use the getopt function.
3950
3951 2000-12-27  Derek Price  <derek.price@openavenue.com>
3952
3953         * Makefile.am (remotecheck): Make remotecheck dependant on all
3954         * Makefile.in: regenerated
3955
3956 2000-12-26  Derek Price  <derek.price@openavenue.com>
3957
3958         * Makefile.in: update timestamp
3959         * stamp-h2.in: ditto
3960         * version.c: ditto
3961
3962 2000-12-26  Derek Price  <derek.price@openavenue.com>
3963
3964         * Makefile.am: new target for version.c
3965         (EXTRA_DIST): add version.c.in & version.c so builds work when
3966         configure doesn't
3967         * Makefile.in: Regenerated
3968         * stamp-h2.in: update timestamp
3969         * version.c: ditto
3970
3971 2000-12-26  Derek Price  <derek.price@openavenue.com>
3972
3973         * Makefile.am (INCLUDES): add zlib
3974         * Makefile.in: Regenerated
3975
3976 2000-12-22  Derek Price  <derek.price@openavenue.com>
3977
3978         * Makefile.am (DISTCLEANFILES): added a few files
3979         (INCLUDES): commented
3980         * Makefile.in: Regenerated
3981
3982 2000-12-21  Derek Price  <derek.price@openavenue.com>
3983
3984         * .cvsignore: Added .deps directory and a new stamp file
3985         * Makefile.am: New file needed by Automake
3986         * Makefile.in: Regenerated
3987         * stamp-h2.in: New stamp file created by Automake
3988         * version.c.in: use configure to generate version.c
3989
3990 2000-12-16  Derek Price  <derek.price@openavenue.com>
3991
3992         * server.c (server_update): Keep the vers structure up to date after
3993         sending a Remove or Remove-entry command to the client
3994         * update.c (update): remove call to server_updated() after
3995         scratch_file()
3996         (scratch_file): in server mode, call server_updated(), otherwise keep
3997         the vers structure up to date
3998         (join_file): add a trace, save the revision to Register() on a remove
3999         before calling server_scratch & server_updated
4000         * sanity.sh (join): Add test for a remove/add caused by an update
4001         to a new branch and a join in the same step.
4002
4003 2000-12-15  Larry Jones  <larry.jones@sdrc.com>
4004
4005         * error.c (error): Add %ld and %lu.
4006
4007         * history.c: Change hrec.idx from int to long, reformat NEXT_BAR
4008         for readability, add hrec_idx.
4009         (fill_hrec): Change initialization to be portable and always set
4010         idx so it can be used as a line number in error messages; improve
4011         parsing and error checking.
4012         (read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
4013         no newline at end of file.
4014         (select_hrec): Add basic validity checking.
4015
4016 2000-12-07  Larry Jones  <larry.jones@sdrc.com>
4017
4018         * history.c (history): Allow multiple -m options as documented.
4019
4020 2000-11-29  Derek Price  <derek.price@openavenue.com>
4021
4022         * root.c (parse_cvsroot): back out yesterday's redundant changes
4023         * main.c (main): fix CVSROOT trace message to look like other trace
4024         messages
4025         * sanity.sh (multiroot2-9): expect new trace message
4026
4027 2000-11-28  Derek Price  <derek.price@openavenue.com>
4028
4029         * root.c (parse_cvsroot): add trace on this function
4030         * client.c (get_port_number): make trace print look like others
4031
4032 2000-11-16  Derek Price  <derek.price@openavenue.com>
4033
4034         * filesubr.c (cvs_temp_file): back out the previous change in the
4035         interests of portability, add an assertion, and fix the header comment
4036
4037 2000-11-16  Derek Price  <derek.price@openavenue.com>
4038
4039         * filesubr.c (cvs_temp_file): refine the exit behavior to notice if
4040         the out param was passed in NULL and, if so, avoid setting it and delete
4041         the temp file for later
4042
4043 2000-11-16  Derek Price  <derek.price@openavenue.com>
4044
4045         * filesubr.c (cvs_temp_file): fixed a garble or two, added some
4046         additional error checking, and added a comment
4047
4048 2000-11-15  Derek Price  <derek.price@openavenue.com>
4049
4050         * filesubr.c (cvs_temp_file): added cvs_temp_file
4051         function to use mkstemp rather than one of the other temp file
4052         generators as gcc keeps complaining I should.
4053         (cvs_temp_name): altered this function to simply wrap cvs_temp_file
4054         and deprecated it
4055         * cvs.h: added prototype for cvs_temp_file
4056         * commit.c (commit): use the new function instead of the old and plug
4057         an old (though related) memory leak.
4058         * import.c (import): use the new function
4059         * login.c (login): Ditto
4060         * logmsg.c (do_editor, do_verify): Ditto
4061         * patch.c (patch_fileproc): Ditto
4062
4063 2000-11-14  Larry Jones  <larry.jones@sdrc.com>
4064
4065         * update.c, update.h (do_update): Add xdotemplate parameter.
4066         Change all callers.
4067         (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
4068         * checkout.c (checkout_proc): Don't create CVS/Template if
4069         exporting.
4070         (Reported by Andrey Podkolzin <mdh@zenon.net>.)
4071
4072 2000-11-08  Larry Jones  <larry.jones@sdrc.com>
4073
4074         * admin.c (admin): Use getgroups() to check for membership in
4075         CVS_ADMIN_GROUP if it exists.  In any event, check the user's
4076         primary group in addition to any additional groups.
4077         (Reported by Thomas Okken <TOkken@refco.com>.)
4078
4079 2000-11-06  Jim Meyering  <meyering@lucent.com>
4080
4081         Compile with gcc's -Wformat and fix the exposed problems.
4082         * root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
4083         for the %s error format spec.
4084         [! HAVE_GSSAPI]: Likewise.
4085         (normalize_cvsroot): Put comment delimiters around token after `#endif'.
4086
4087 2000-11-03  Larry Jones  <larry.jones@sdrc.com>
4088
4089         * sanity.sh: Some versions of sed require a space between -e and
4090         the value.
4091
4092 2000-10-27  Larry Jones  <larry.jones@sdrc.com>
4093
4094         * checkout.c (checkout): Don't check for a safe location if just
4095         cat'ing the module database.
4096         (Reported by Ilya Martynov <m_ilya@agava.com>.)
4097         Have -s set cat as well as status; it simplifies the code.
4098
4099 2000-10-26  Larry Jones  <larry.jones@sdrc.com>
4100
4101         * sanity.sh (join-admin-2): Check output from all commands instead
4102         of (mostly) discarding.  (Some of the tests used to produce stray
4103         output in remote mode.)
4104
4105         * sanity.sh (dotest_line_by_line): Handle empty lines in pattern
4106         (expr doesn't distingish between successfully matching nothing
4107         and failing to match anything).
4108
4109         * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
4110
4111 2000-10-24  Jim Meyering  <meyering@lucent.com>
4112
4113         Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
4114         sometimes be ignored for some of the files involved in an update.
4115
4116         * update.c (join_file): Restore the original value of `options'
4117         right after calling checkout_file.
4118         * sanity.sh (join-admin-2): New test for this.
4119
4120 2000-10-23  Derek Price  <derek.price@openavenue.com>
4121             James Youngman  <jay@gnu.org>
4122
4123         * sanity.sh: it's /gnu/bin, not /gun/bin.  Thanks go to James Youngman
4124         <jay@gnu.org> for the bug report and patch.
4125
4126 2000-10-20  Jim Kingdon  <http://sourceforge.net/users/kingdon/>
4127
4128         * server.c (switch_to_user): Set CVS_USER.  Patch from Sudish
4129         Joseph and popularized by dozens (e.g. mozilla.org, also others).
4130
4131 2000-10-20  Derek Price  <derek.price@openavenue.com>
4132             KOIE Hidetaka  <hide@koie.org>
4133
4134         * root.c (normalize_cvsroot): plug a memory leak.  Thanks to
4135         KOIE Hidetaka <hide@koie.org>
4136
4137 2000-10-18  Derek Price  <derek.price@openavenue.com>
4138
4139         * client.c (connect_to_pserver): added a close brace the lack of which
4140         was preventing compilation when gssapi was enabled.  Removed a
4141         redundant check for HAVE_KERBEROS.
4142
4143 2000-10-18  Derek Price  <derek.price@openavenue.com>
4144
4145         * root.c (normalize_cvsroot): removed references to free_port_s and the
4146         now useless call to free now that port_s is on the stack.  Thanks to
4147         Jon Miner.
4148
4149 2000-10-18  Derek Price  <derek.price@openavenue.com>
4150
4151         * root.c (normalize_cvsroot): remove calls to snprintf for
4152         compatibility with M$ Windoze.
4153
4154 2000-10-18  Derek Price  <derek.price@openavenue.com>
4155
4156         * sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
4157         the output of a test to /dev/null since we don't know what error
4158         messages specific rsh implementations will output.
4159
4160 2000-10-17  Derek Price  <derek.price@openavenue.com>
4161
4162         * cvs.h: added CVSroot_password variable. Provided prototypes for
4163         get_port_number & normalize_cvsroot.
4164         * client.c (get_port_number): Fixed an ANSI prototype I had included
4165         for get_port_number.
4166         * login.c (login, logout): Removed two checks for a non-null
4167         CVSroot_username since parse_cvsroot now supplies a default in pserver
4168         mode. allow for a password in CVSROOT
4169         (get_cvs_passsword): return CVSroot_password if it was supplied
4170         in the CVSROOT.
4171         * root.c (parse_cvsroot): Changed CVSROOT spec from
4172         :method:user@host/port:/cvsroot to
4173         :method:[[user][:password]@]host[:[port]]/cvsroot
4174         Removed the xstrdup function since we'd rather have the error checking
4175         from the version in subr.c anyhow.  Moved some error messages which
4176         looked like they would print the wrong error message after a failed
4177         connect_to_gserver call.
4178         (normalize_cvsroot): return a normalized CVSROOT for use in the
4179         .cvspass file.
4180         * sanity.sh (crerepos-6): fix a test which was expecting an old error
4181         message.
4182
4183         * client.c (connect_to_pserver): Moved some error messages which looked like they
4184         would print the wrong error message after a failed connect_to_gserver
4185         call.
4186
4187         * login.c (login): Paranoiacly zero a password in memory.
4188
4189 2000-10-12  Derek Price  <derek.price@openavenue.com>
4190
4191         * client.c (auth_server_port_number -> get_port_number, start_pserver,
4192         start_tcp_server): use a port specified in CVSROOT instead of the
4193         default port.  Failing that, use the CVS_CLIENT_PORT environment
4194         variable.
4195         * cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
4196         * root.c (parse_cvsroot): Parse the new CVSROOT format properly.
4197         Incidentally reformated some error messages for uniformity and
4198         readability.
4199         * sanity.sh (crerepos): fix two tests which were now expecting the
4200         wrong error message.
4201
4202 2000-10-11  Larry Jones  <larry.jones@sdrc.com>
4203
4204         * server.c (pserver_authenticate_connection): Fix stupid mistake
4205         in previous change.
4206
4207 2000-10-11  Derek Price  <derek.price@openavenue.com>
4208
4209         * main.c (main): Dispose old CVSroot when parsing a '-d' option if
4210         free_CVSroot is set.
4211         * root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
4212         static boolean I expect hasn't been used since CVS learned to handle
4213         multiple CVSROOTs.
4214
4215 2000-10-10  Larry Jones  <larry.jones@sdrc.com>
4216
4217         * server.c (print_error): Make up a message if strerror fails.
4218
4219         * server.c (pserver_authenticate_connection): Give a real error
4220         message for an invalid repository.
4221
4222 2000-10-06  Derek Price  <derek.price@openavenue.com>
4223
4224         * add.c (add): Made quiet mode affect some warning messages as seemed
4225         appropriate.  Specifically, some of the messages which a user might
4226         want to ignore so they don't have to be quite so specific on the
4227         command line: files added twice, files already in the repository and
4228         check out properly (i.e. but picked up by 'cvs add *'), & files which
4229         are readded in place of a dead revision or onto a branch.  '-q' will
4230         not change the non-zero exit code for the cases where at least one
4231         passed in file name was already in the Entries file.  There seems to
4232         be a precedent in remove.c.
4233         * remove.c (cvsremove): switched the "use cvs ci to make these changes
4234         permanent message" to only print w/o '-Q' to match the new behavior of
4235         add.  This seems appropriate as '-Q' is defined to restrict messages
4236         to critical errors.
4237         * sanity.sh (adderrmsg): Added some tests for the above behavior.
4238
4239 2000-10-05  Larry Jones  <larry.jones@sdrc.com>
4240
4241         * client.c (call_in_directory): Create CVSADM directory if it doesn't
4242         exist in the directory.  This makes client/server work more like
4243         standalone when checking out into an existing (non-CVS) directory.
4244         * sanity.sh (dirs2, conflicts3, toplevel): Update to match.
4245
4246 2000-10-03  Larry Jones  <larry.jones@sdrc.com>
4247
4248         * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
4249
4250 2000-10-02  Larry Jones  <larry.jones@sdrc.com>
4251
4252         * cvs.h: Define (and use) T_PATCH as a valid file classification
4253         even when SERVER_SUPPORT isn't defined -- it simplifies the code.
4254         * classify.c (Classify_File): Ditto.
4255         * commit.c (check_fileproc): Ditto.
4256         * status.c (status_fileproc): Ditto.
4257         * update.c (update_fileproc): Ditto.
4258         * tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
4259         * sanity.sh (tagc-10): Update to match.
4260
4261 2000-09-29  Larry Jones  <larry.jones@sdrc.com>
4262
4263         * client.c (get_responses_and_close): Reset server_fd to -1 after
4264         shutting down.
4265         (Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
4266
4267 2000-09-27  Larry Jones  <larry.jones@sdrc.com>
4268
4269         * commit.c (commit): Don't sleep before returning in server mode,
4270         just let the client do it.
4271         * update.c (do_update): Ditto.
4272
4273         * sanity.sh (find_tool): Correct method of checking for GNU tools.
4274
4275         * checkout.c (checkout_proc): Match up user directories with
4276         repository directories instead of using Emptydir.
4277         * sanity.sh (cvsadm, emptydir): Update to match.
4278
4279 2000-09-19  Larry Jones  <larry.jones@sdrc.com>
4280
4281         * version.c: Push version number to 1.11.0.1.
4282
4283         * version.c: Version 1.11.
4284
4285 2000-09-07  Larry Jones  <larry.jones@sdrc.com>
4286
4287         * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
4288         from autoconf.
4289
4290 2000-08-23  Larry Jones  <larry.jones@sdrc.com>
4291
4292         * mkmodules.c (init): Create an empty val-tags file if it doesn't
4293         already exist to avoid problems with users not having sufficient
4294         permissions to create it later.
4295
4296 2000-09-06  Jim Kingdon  <jkingdon@dhcp-net200-89.su.valinux.com>
4297
4298         * main.c (lookup_command_attribute): Add "release" to commands
4299         which can be done by a read-only user.
4300
4301 2000-08-23  Larry Jones  <larry.jones@sdrc.com>
4302
4303         * repos.c (Name_Repository): Use pathname_levels to detect attempts
4304         to get above the repository instead of checking for leading ..
4305         which isn't reliable.
4306         * sanity.sh (multiroot3-12 to multiroot3-15): New tests for above.
4307
4308 2000-08-21  Larry Jones  <larry.jones@sdrc.com>
4309
4310         * rcs.c (expand_keywords): Handle the unusual case of log == NULL.
4311         (Reported by Craig Metz <cmetz@inner.net>.)
4312
4313 2000-08-01  Larry Jones  <larry.jones@sdrc.com>
4314
4315         * subr.c (pathname_levels): Fix bug that miscounts adjacent
4316         slashes.
4317         (Patch submitted by Tanaka Akira <akr@m17n.org>.)
4318
4319         * loginc.c (login): If available, use getpassphrase instead of
4320         getpass to support long passwords on Solaris.
4321
4322 2000-07-28  Larry Jones  <larry.jones@sdrc.com>
4323
4324         * server.c (server_noop): Avoid do_cvs_command() overhead.
4325         (requests): Make noop RQ_ROOTLESS.
4326
4327 2000-07-27  Noel Cragg  <noel@red-bean.com>
4328
4329         * root.c (parse_cvsroot): change fork method to behave like other
4330         remote methods -- let the server check that the repository
4331         directory is an absolute pathname.
4332
4333 2000-07-27  Larry Jones  <larry.jones@sdrc.com>
4334
4335         * lock.c (set_lock): Include actual lock directory in error message.
4336         * sanity.sh (multiroot3-10): Change to match.
4337
4338         * sanity.sh (client-3): Allow for a potential "broken pipe".
4339
4340 2000-07-26  Larry Jones  <larry.jones@sdrc.com>
4341
4342         * commit.c (commit_filesdoneproc): Flush stdout before running script.
4343         * modules.c (do_module): Ditto.
4344         * update.c (update_dirleave_proc): Ditto.
4345         * server.c (do_cvs_command): Give input from the protocol pipe
4346         precedence over input from stdout/stderr.  There's no particularly
4347         good justification for this other than helping to avoid out-of-order
4348         messages in sanity.sh.
4349
4350         * admin.c (admin_usage): Add the supported options.
4351
4352         * sanity.sh (info): Try to avoid out-of-order messages.
4353
4354         * sanity.sh (info): Fix problems when running twice in a row.
4355
4356 2000-07-17  Larry Jones  <larry.jones@sdrc.com>
4357
4358         * sanity.sh (modules5-7, cvsadm-1e, emptydir-2): Allow for a nil
4359         commit (can happen if the test is run twice in a row).
4360
4361 2000-07-19  Pavel Roskin  <proski@gnu.org>
4362         and Larry Jones  <larry.jones@sdrc.com>
4363
4364         * mkmodules.c (config_contents): Add a commented out example for
4365         LockDir. Don't suggest PreservePermissions unless it's enabled.
4366
4367 2000-07-17  Larry Jones  <larry.jones@sdrc.com>
4368
4369         * login.c (get_cvs_password): Handle malformed ~/.cvspass more
4370         gracefully.
4371
4372 2000-07-12  Larry Jones  <larry.jones@sdrc.com>
4373
4374         * sanity.sh (modules5): New tests for module programs.
4375
4376 2000-07-11  Larry Jones  <larry.jones@sdrc.com>
4377
4378         * filesubr.c (copy_file, xcmp): Handle systems (like Plan 9) that
4379         don't support mknod() and/or st_rdev.
4380         * import.c (add_rcs_file): Ditto.
4381         * rcs.c (RCS_checkout, RCS_checkin): Ditto.
4382         * update.c (special_file_mismatch): Ditto.
4383
4384 2000-07-10  Larry Jones  <larry.jones@sdrc.com>
4385
4386         * zlib.c (gunzip_and_write): Fix type clashes.
4387
4388         * main.c (main): Remove unused variables.
4389
4390 2000-07-10  Jim Meyering  <meyering@lucent.com>
4391
4392         When a command like `cvs update -kk -jT1 -jT2' creates a new file
4393         (because it had the T2 tag, but not T1), the subsequent commit of
4394         that just-added file would effectively set the admin `-kk' option
4395         for that file in the repository.
4396
4397         * update.c (join_file): Rename global-shadowing local `options'
4398         to `t_options'.
4399         Set file-scoped global `options' to NULL just before
4400         check-out.
4401         * sanity.sh (join-admin): New test for this.
4402
4403 2000-07-08  Larry Jones  <larry.jones@sdrc.com>
4404
4405         * version.c, cvs.h (version): New function.
4406         * main.c (cmds[]): Add version command to invoke it.
4407         (main): Also use it in -v.
4408         * server.c (serve_version): New function.
4409         (requests[]): Add version command to invoke it.
4410
4411 2000-07-06  Karl Fogel  <kfogel@red-bean.com>
4412
4413         * sanity.sh (pserver-14): remove this test for portability
4414         reasons (it was only recently added for the 2000-07-04 change).
4415
4416 2000-07-06  Larry Jones  <larry.jones@sdrc.com>
4417
4418         sanity.sh (modules-148): Don't test for specific revisions.
4419
4420         * main.c (main): Catch SIGABRT to try to clean up after assertion
4421         failures.  Don't bother SIG_register'ing Lock_Cleanup because
4422         main_cleanup calls it indirectly anyway.
4423         * patch.c (patch): Catch SIGABRT.
4424         * rcs.c (rcs_internal_lockfile): Ditto.
4425         * server.c (server): Ditto.
4426
4427         * fileattr.c (fileattr_write): Don't delete the unrecog_head list
4428         when writing...
4429         (fileattr_free): Delete it when freeing!
4430
4431 2000-07-05  Larry Jones  <larry.jones@sdrc.com>
4432
4433         * admin.c (admin): Handle -t in client so reading from files works
4434         correctly in client/server mode.
4435         * sanity.sh (log2): Update to match.
4436
4437 2000-07-04  Karl Fogel  <kfogel@red-bean.com>
4438
4439         * server.c (pserver_authenticate_connection): use new
4440         getline_safe() during authentication phase, to avoid a
4441         denial-of-service attack in which client sends arbitrary
4442         amounts of data with no newlines.
4443         (Reported by <jpmg@eng.cam.ac.uk>.)
4444
4445         * sanity.sh: new test pserver-14 for above.
4446
4447         * myndbm.c: #include getline.h.
4448         (mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
4449
4450 2000-07-03  Larry Jones  <larry.jones@sdrc.com>
4451
4452         * sanity.sh (modules): Rewrite using dotest.  Add "modules-"
4453         prefix to test names.
4454
4455 2000-06-28  Larry Jones  <larry.jones@sdrc.com>
4456
4457         * error.c (error_exit): Call rcs_cleanup () to release any rcs locks.
4458         * rcs.c, rcs.h (rcs_cleanup): Make public, close file before trying
4459         to remove (some systems won't remove open files).
4460         (RCS_putdtree): Don't worry about cleaning up before call error
4461         since it now does it for us.
4462         (rcs_internal_lockfile, rcs_internal_unlockfile): Keep track of
4463         lock file fd for rcs_cleanup ().
4464
4465         * client.c (handle_set_checkin_prog, handle_set_update_prog):
4466         Just ignore the request when exporting.
4467
4468 2000-06-27  Larry Jones  <larry.jones@sdrc.com>
4469
4470         * create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
4471         Change all callers.
4472         * checkout.c (checkout_proc): Don't create CVS/Template if
4473         exporting.
4474
4475 2000-06-26  Pavel Roskin <proski@gnu.org>
4476         and Larry Jones  <larry.jones@sdrc.com>
4477
4478         * server.c (switch_to_user): Only set CVS_Username if
4479         AUTH_SERVER_SUPPORT is defined.
4480
4481 2000-06-23  Larry Jones  <larry.jones@sdrc.com>
4482
4483         * client.c (send_dirent_proc): Don't allocate ignlist if you're
4484         going to skip the directory (plugs memory leak).
4485         (send_dirleave_proc): New function.
4486         (send_files): Use it (plugs memory leak).
4487         * root.c (root_allow_free): Plug memory leaks.
4488         * server.c (serve_directory, serve_notify, check_password,
4489         pserver_authenticate_connection): Ditto.
4490         * update.c (update): Ditto.
4491
4492         This completes the memory leak shoot-out -- the Purify'ed version
4493         of CVS now runs the entire test suite, both local and remote (except
4494         for remote crerepos, which causes Purify to choke) with *no* memory
4495         leaks.
4496
4497         * server.c (pserver_authenticate_connection): Don't free null pointer.
4498
4499 2000-06-21  Larry Jones  <larry.jones@sdrc.com>
4500
4501         * client.c (update_entries, get_responses_and_close): Plug memory leaks.
4502         * commit.c (find_fileproc, commit): Ditto.
4503         * import.c (import): Ditto.
4504         * log.c (cvslog): Ditto.
4505         * recurse.c (start_recursion): Ditto.
4506         * remove.c (cvsremove): Ditto.
4507         * server.c (fd_buffer_initialize, server_notify, do_cvs_command): Ditto.
4508         (fd_buffer_shutdown): New function.
4509
4510 2000-06-20  Larry Jones  <larry.jones@sdrc.com>
4511
4512         * root.c (parse_cvsroot): Put the terminating NUL byte into the
4513         string *before* copying it, not after. :-(
4514
4515 2000-06-19  Larry Jones  <larry.jones@sdrc.com>
4516
4517         * main.c (main): Plug memory leaks.
4518         * root.c (parse_cvsroot, set_local_cvsroot): Ditto.
4519         * server.c (serve_root): Ditto.
4520
4521 2000-06-16  Larry Jones  <larry.jones@sdrc.com>
4522
4523         * fileattr.c (fileattr_read): Plug memory leak.
4524         * rcs.c (RCS_whatbranch): Ditto.
4525         * update.c (update_dirleave_proc): Ditto.
4526
4527         * ignore.c (ign_dir_add): Duplicate string so caller can free.
4528
4529         * modules.c (do_module): Don't write into dbm's memory!
4530
4531 2000-06-15  Larry Jones  <larry.jones@sdrc.com>
4532
4533         * checkout.c (checkout_proc): Fix non-ANSI code in call to
4534         findslash(), minor cleanups.
4535
4536 2000-06-14  Larry Jones  <larry.jones@sdrc.com>
4537
4538         * tag.c (val_direntproc): Return R_PROCESS instead of 0.
4539
4540         * client.c (update_entries): Fix type clash calling gunzip_and_write().
4541         * server.c (receive_file): Fix type clash calling gunzip_and_write().
4542         (server_updated): Fix type clash calling buf_output().
4543         * error.c (error): Make buf char instead of unsigned char to avoid
4544         type clashes.
4545
4546         * modules.c (do_module): Change callback_proc to pass argc by
4547         value instead of by reference: callback procs shouldn't be
4548         messing with the callers argc/argv, it makes correct memory
4549         management impossible.  Plug memory leaks.
4550         * cvs.h: Change to match.
4551         * checkout.c (checkout_proc): Ditto; use a local argv array instead
4552         of messing with caller's.
4553         * modules.c (callback_proc): Ditto.
4554         * patch.c (patch_proc): Ditto; use a local argv array instead
4555         of messing with caller's.
4556         * rtag.c (rtag_proc): Ditto; use a local argv array instead
4557         of messing with caller's.
4558         * server.c (expand_proc): Ditto.
4559         * subr.c (line2argv): Change initial argv_allocated back to 1.
4560
4561         * checkout.c (findslash): Fix non-ANSI code.
4562
4563         * sanity.sh (modes3): Fix test names.
4564
4565 2000-06-13  Larry Jones  <larry.jones@sdrc.com>
4566
4567         * add.c (add): Plug memory leaks.
4568         * admin.c (admin_fileproc): Ditto.
4569         * checkout.c (build_dirs_and_chdir): Ditto.
4570         * edit.c (editors_fileproc): Ditto.
4571         * log.c (cvslog, log_parse_revlist, log_parse_date): Ditto.
4572         * rcs.c (RCS_addaccess): Ditto.
4573         * tag.c (check_fileproc): Ditto.
4574         * vers_ts.c (Version_TS): Ditto.
4575         * watch.c (watchers_fileproc): Ditto.
4576
4577 2000-06-12  Larry Jones  <larry.jones@sdrc.com>
4578
4579         * rcs.c (rcsbuf_valword): Set rcsbuf->vlen to keep rcsbuf_valcopy()
4580         from allocating more memory than needed for @ strings.  Don't declare
4581         unless PRESERVE_PERMISSIONS_SUPPORT (since not defined).
4582
4583         * rcs.c (RCS_abandon): New function to abandon changes.
4584         * rcs.h: Declare it.
4585         * admin.c (admin_fileproc): Use it instead of RCS_reparsercsfile.
4586
4587         * commit.c (commit_fileproc): Fix memory leaks.
4588         * patch.c (patch_fileproc): Ditto.
4589         * rcs.c (RCS_nodeisbranch, RCS_copydeltas): Ditto.
4590         * tag.c (tag_fileproc): Ditto.
4591         * update.c (update): Ditto.
4592
4593 2000-06-09  Larry Jones  <larry.jones@sdrc.com>
4594
4595         * rcs.c (RCS_reparsercsfile, RCS_fully_parse, getdelta,
4596         RCS_getdeltatext): Handle newphrases with composite values.
4597         (rcsbuf_getkey): Don't remove @s in composite values -- it makes
4598         it impossible to parse the value!  Set special flag to indicate
4599         a composite value.
4600         (rcsbuf_valcopy, rcsbuf_valpolish_internal): Handle composite values.
4601         (putrcsfield): Write composite values.
4602         (RCS_checkin): Set node types in other_delta list.
4603         * hash.h: Add RCSCMPFLD.
4604         * hash.c (nodetypestring): Ditto.
4605
4606         * rcs.c (getdelta): Never allocate space for value, just return
4607         pointer into rcsbuf (fixes memory leaks).  Use rcsbuf_getkey to
4608         read a key and value and then parse the value if needed rather
4609         than trying to read it in bits and pieces with rcsbuf_getid,
4610         rcsbuf_getstring, and rcsbuf_getword.
4611         (RCS_reparsercsfile): Change callers to compensate.
4612         (rcsbuf_valcmp, rcsbuf_valword): New functions.
4613         (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): Deleted.
4614         * sanity.sh (rcs3-1): Now get slightly different error message.
4615
4616 2000-06-08  Larry Jones  <larry.jones@sdrc.com>
4617
4618         * main.c (usg): Update CVS home page URL.
4619
4620         * main.c (main): Provide an actual error message for an unknown
4621         command in addition to the usage message.
4622
4623 2000-06-07  Larry Jones  <larry.jones@sdrc.com>
4624
4625         * server.c (serve_root, dirswitch, serve_repository,
4626         serve_static_directory, serve_sticky, receive_partial_file,
4627         receive_file, serve_modified, server_write_entries, serve_notify,
4628         serve_checkin_prog, serve_update_prog, server): Don't set
4629         pending_error before calling alloc_pending, it makes it fail;
4630         use alloc_pending instead of malloc when reasonable; be sure to
4631         save errno before calling functions that might change it.
4632         (Patch submitted by Dietmar Petras <dietmar.petras@elsa.de>.)
4633
4634 2000-06-03  Larry Jones  <larry.jones@sdrc.com>
4635
4636         * commit.c (checkaddfile): Plug memory leak.
4637         * rcs.c (RCS_checkin): Plug memory leaks.
4638         * server.c (do_cvs_command): Plug file descriptor leaks.
4639         * tag.c (check_fileproc): Plug memory leak.
4640
4641 2000-05-26  Larry Jones  <larry.jones@sdrc.com>
4642
4643         * recurse.c (unroll_files_proc): Plug memory leak.
4644
4645         * recurse.c (addfile): Fix nonportable pointer cast.
4646
4647         * rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
4648         leaks.
4649
4650 2000-05-25  Larry Jones  <larry.jones@sdrc.com>
4651
4652         * checkout.c (checkout, build_one_dir, checkout_proc): Move m_type
4653         to file scope and use it instead of continually doing strcmp on
4654         command_name.
4655         (build_one_dir, checkout_proc): Don't allow export if CVSADM
4656         directory already exists.
4657
4658 2000-05-23  Larry Jones  <larry.jones@sdrc.com>
4659
4660         * rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks.  (Patch
4661         submitted by Chris G. Demetriou <cgd@sibyte.com>.)
4662
4663 2000-05-20  Ian Lance Taylor  <ian@zembu.com>
4664
4665         * client.c (connect_to_gserver): Handle server error messages
4666         reasonably.
4667
4668 2000-05-19  Larry Jones  <larry.jones@sdrc.com>
4669
4670         * server.c (requests): Make Global_option RQ_ROOTLESS so it can be
4671         used with init.
4672
4673 2000-05-18  Larry Jones  <larry.jones@sdrc.com>
4674
4675         * client.c (start_server): Don't do encryption, authentication,
4676         compression, or case insensitivity when doing init because init
4677         is ROOTLESS and they're not.
4678
4679         * client.c (connect_to_pserver): Include repository and username in
4680         authorization failed message -- if a directory tree crosses multiple
4681         repositories, it can be quite difficult for the user to figure out
4682         which one is the problem.
4683
4684 2000-05-17  Larry Jones  <larry.jones@sdrc.com>
4685
4686         * main.c (main): Use full set of options when looking for -f to
4687         avoid misparsing options that take values (previously, -sVAR=foo
4688         was incorrectly parsed as though it were -s -V -A -R -= -f -o -o
4689         because it didn't know that -s takes a value).
4690         * sanity.sh (info-6b): New test for above.
4691
4692         * sanity.sh (conflicts-status): Fix tests so they work remotely, too.
4693
4694 2000-05-17  Jim Meyering  <meyering@lucent.com>
4695
4696         * sanity.sh (TESTDIR): Fix braino in last change:
4697         cd to /tmp before invoking pwd.
4698
4699         * sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
4700         is a symlink.
4701         (join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
4702         (conflicts-132): Remove unnecessary `rm aa'.
4703
4704 2000-05-16  Jim Kingdon  <kingdon@redhat.com>
4705
4706         * cvs.h, checkout.c (safe_location): Make extern.
4707         * import.c (import): Call it rather than reimplementing
4708         (incompletely) the same check.
4709
4710 2000-05-16  Larry Jones  <larry.jones@sdrc.com>
4711
4712         * rcs.h, subr.c (file_has_markers): Check for any of the three
4713         conflict marker lines, not just one.
4714         * sanity.sh (conflicts-status): New tests for above.
4715         * sanity.sh: Revise to avoid tripping the above check when merging
4716         changes into sanity.sh itself.
4717
4718 2000-05-15  Larry Jones  <larry.jones@sdrc.com>
4719
4720         * update.c (join_file): When registering the result of the merge,
4721         make sure that the version number is valid (vers->vn_rcs may be
4722         null if the file doesn't exist on the branch yet).  (Patch submitted
4723         by Robert de Vries <rhdv@rhdv.cistron.nl>.)
4724         * update.c (join_file): Correct diagnostics (previous change was not
4725         correct -- the file *does* exist in the specified revision, it just
4726         doesn't exist in the sandbox).
4727         * sanity.sh (import-113, join): New tests and changes for above.
4728
4729 2000-05-04  Larry Jones  <larry.jones@sdrc.com>
4730
4731         * sanity.sh: Look for a useful id program.  Since we're getting
4732         the real username for some tests anyway, use it for all the
4733         tests instead of a generic regular expression that may or may
4734         not match the actual username.
4735
4736 2000-05-04  Larry Jones  <larry.jones@sdrc.com>
4737
4738         * server.c: More error messages.
4739
4740 2000-05-02  Donald Sharp <sharpd@cisco.com>
4741         and Larry Jones  <larry.jones@sdrc.com>
4742
4743         * history.c (report_hrecs): Added code to print out year instead of
4744         just month/day.
4745         * sanity.sh (basic2-64, history): Update to match.
4746
4747 2000-04-19  Larry Jones  <larry.jones@sdrc.com>
4748
4749         * server.c (dirswitch): Set pending_error_text in addition to
4750         pending_error to aid in problem determination.
4751
4752 2000-03-23  Larry Jones  <larry.jones@sdrc.com>
4753
4754         * mkmodules.c (mkmodules): Return without doing anything if noexec
4755         is set to avoid trashing existing files.
4756
4757 2000-03-23  Larry Jones  <larry.jones@sdrc.com>
4758
4759         * main.c: Alphabetize cmds[] and cmd_usage[] and add server
4760         commands to cmd_usage[].
4761
4762 2000-03-21  Larry Jones  <larry.jones@sdrc.com>
4763
4764         * sanity.sh (client-1): May get "Broken pipe" message from the
4765         "server" in addition to the expected output.
4766
4767 2000-03-17  Larry Jones  <larry.jones@sdrc.com>
4768
4769         * server.c (switch_to_user): Set CVS_Username if it hasn't already
4770         been set elsewhere.  (Patch submitted by Gordon Matzigkeit
4771         <gord@fig.org>).
4772
4773 2000-03-13  Larry Jones  <larry.jones@sdrc.com>
4774
4775         * parseinfo.c: Add extern to logHistory declaration.  (Reported by
4776         <John.Tytgat@aaug.net>.)
4777         (parse_config): Reformat logHistory code.
4778
4779 2000-03-10  Larry Jones  <larry.jones@sdrc.com>
4780
4781         * add.c (add): Don't try to set cvsroot_len until after checking
4782         for help only -- CVSroot_directory isn't set in that case.
4783
4784 2000-03-03  Larry Jones  <larry.jones@sdrc.com>
4785
4786         * mkmodules.c (init): Use mkdir_if_needed to create CVSROOT/Emptydir
4787         so we don't fail if run multiple times.  (Reported by KOIE Hidetaka
4788         <hide@koie.org>.)
4789         * sanity.sh (1a): New test for above.
4790
4791 2000-03-02  Larry Jones  <larry.jones@sdrc.com>
4792
4793         * main.c: Use identical #if's in the command table and the code
4794         for pserver and kserver to prevent "peculiar" configurations from
4795         having really perverse behavior because the command table entries
4796         are present but the related code isn't.
4797
4798 2000-03-01  Larry Jones  <larry.jones@sdrc.com>
4799
4800         * import.c (import): Don't allow importing the repository.
4801         * sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
4802
4803 2000-03-01  Larry Jones  <larry.jones@sdrc.com>
4804
4805         * main.c (main): Update year in copyright message.
4806
4807 2000-03-01  Larry Jones  <larry.jones@sdrc.com>
4808
4809         * logmsg.c (do_editor): Correct previous change.
4810
4811 2000-02-29  Larry Jones  <larry.jones@sdrc.com>
4812
4813         * logmsg.c (do_editor): When reading temp file, check that message
4814         buffer is large enough to hold the next line and expand if needed.
4815
4816 2000-02-28  Larry Jones  <larry.jones@sdrc.com>
4817
4818         * commit.c (commit): Use get_file() to read log file correctly
4819         and in text mode rather than binary mode.
4820
4821         * subr.c (get_file): Ignore bufsize if buf is NULL.  Include
4822         terminating NUL byte when estimating required buffer size.
4823
4824 2000-02-28  Larry Jones  <larry.jones@sdrc.com>
4825
4826         * sanity.sh (find_tool): New function to replace duplicated code.
4827
4828 2000-02-25  Larry Jones  <larry.jones@sdrc.com>
4829
4830         * import.c (add_rcs_file): Don't abort just because lstat fails.
4831
4832 2000-02-16  Jim Meyering  <meyering@lucent.com>
4833
4834         Avoid race condition whereby a catchable signal could
4835         end up corrupting the repository.
4836         * commit.c (checkaddfile): Put a critical section around the code
4837         that handles the first commit on the trunk of a file that's already
4838         been committed on a branch.
4839         * cvs.h (Sig_inCrSect): Declare new function.
4840
4841 2000-02-21  Karl Fogel  <kfogel@red-bean.com>
4842
4843         * main.c (main): still check for repository, but not history file
4844         (correction to 2000-02-18 change -- that's what I get for
4845         believing the comment rather than the code).
4846
4847 2000-02-21  K.J. Paradise <kj@sourcegear.com>
4848
4849         * history.c mkmodules.c parseinfo.c: control which actions
4850         get logged to the cvs history file via CVSROOT/config file
4851         and LogHistory keyword. (John P Cavanaugh <cavanaug@sr.hp.com>)
4852
4853 2000-02-18  Karl Fogel  <kfogel@red-bean.com>
4854
4855         * history.c (history_write): don't die if history file not
4856         writable, just warn (unless `really_quiet') and skip out.
4857
4858         * main.c (main): don't bother checking if history file is
4859         writable.
4860
4861         * server.c (serve_root): same.
4862
4863 2000-02-17  Larry Jones  <larry.jones@sdrc.com>
4864
4865         * sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
4866         default since PreservePermissions code is now disabled.
4867
4868 2000-02-17  Larry Jones  <larry.jones@sdrc.com>
4869
4870         * sanity.sh (import-113): Revise to match Jim Meyering's fix.
4871
4872 2000-02-16  Larry Jones  <larry.jones@sdrc.com>
4873
4874         * add.c (add): Don't allow adding files or directories to Emptydir.
4875         (Patch submitted by Chris Cameron <chris.cameron@ot.co.nz>.)
4876         * sanity.sh (emptydir): Revise (emptydir-7 and emptydir-8) for this.
4877
4878 2000-02-16  Jim Meyering  <meyering@lucent.com>
4879
4880         * update.c (join_file): Correct typo in diagnostic:
4881         change `file %s is present...' to `file %s is not present...'.
4882
4883 2000-02-10  Larry Jones  <larry.jones@sdrc.com>
4884
4885         * parseinfo.c (Parse_Info): Treat matching lines with bad expansions
4886         as errors rather than just ignoring.
4887
4888 2000-02-10  Larry Jones  <larry.jones@sdrc.com>
4889
4890         * edit.c (edit): Check for invalid characters in hostname and CurDir.
4891         (Reported by "Andrew S. Townley" <atownley@informix.com>.)
4892         * sanity.sh (devcom2): New tests for above.
4893
4894 2000-02-10  Larry Jones  <larry.jones@sdrc.com>
4895
4896         * cvs.h: Always #include "server.h" to prevent compile errors when
4897         neither CLIENT_SUPPORT nor SERVER_SUPPORT is defined.
4898         (Reported by "Crow, Ian" <ian.crow@linklaters.com>.)
4899         * log.c (send_one, send_arg_list): Only define when CLIENT_SUPPORT
4900         is defined to prevent link errors.
4901
4902         * server.c (server): Always create a new temporary directory, don't
4903         try to reuse an existing one since we might not have correct
4904         permissions.  Also, include directory name in error messages.
4905
4906 2000-01-29  Jim Kingdon  <http://developer.redhat.com/>
4907
4908         * ignore.c (ignore_files): Correctly set errno to 0 when we go
4909         back to the top of the loop.  Fixes spurious errors like "cvs
4910         update: error reading current directory: No such file or
4911         directory".
4912
4913 2000-01-26  Larry Jones  <larry.jones@sdrc.com>
4914
4915         * run.c (run_exec): Conditionalize K.J.'s change so that it only
4916         applies when SETXID_SUPPORT is defined since some platforms don't
4917         have setegid().
4918
4919 2000-01-26  Larry Jones  <larry.jones@sdrc.com>
4920
4921         * sanity.sh: Make TESTDIR earlier then use it to check for versions
4922         of expr that don't work right with long expressions.
4923
4924         * sanity.sh (dotest_line_by_line): Have wc read from stdin so it
4925         doesn't output the file name and confuse expr.  Make the output a
4926         bit less verbose and easier to read.
4927
4928 2000-01-24  K.J. Paradise <kj@sourcegear.com>
4929
4930         * run.c :> prevents a user from creating a privileged shell from the
4931         text editor when the SETXID_SUPPORT option is selected.  This came from
4932         Bob Colle <bcolle@ilx.com>, and is his completely.
4933
4934 2000-01-22  Jim Kingdon  <http://developer.redhat.com/>
4935
4936         * sanity.sh (emptydir): Add a case in which one might hope for a
4937         non-Emptydir result, but which result?
4938
4939 2000-01-18  Larry Jones  <larry.jones@sdrc.com>
4940
4941         * main.c (main): Allow -z0 to disable gzip compression.
4942
4943 2000-01-17  Larry Jones  <larry.jones@sdrc.com> for
4944         K.J. Paradise (kj@sourcegear.com)
4945
4946         * version.c: Push version number to 1.10.8.1.
4947
4948         * version.c: Version 1.10.8.
4949
4950 2000-01-17  Larry Jones  <larry.jones@sdrc.com>
4951
4952         * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
4953         with users not having sufficient permissions to create it later.
4954
4955 2000-01-04  Larry Jones  <larry.jones@sdrc.com>
4956
4957         * client.c (get_responses_and_close): Simplify time-stamp race
4958         avoidance code.
4959         * commit.c (commit): Ditto.
4960         * update.c (do_update): Ditto.
4961         (Prompted by patch submitted by Pavel Roskin
4962         <pavel_roskin@geocities.com>.)
4963
4964         * hardlink.c: sizeof (char) is 1, by definition.
4965         * logmsg.c: Ditto.
4966         * rcs.c: Ditto.
4967
4968 2000-01-03  Karl Fogel  <kfogel@red-bean.com>
4969
4970         * filesubr.c, subr.c (backup_file): moved this function from
4971         filesubr.c to subr.c, at JimK's suggestion.
4972
4973 2000-01-03  Jim Kingdon  <http://developer.redhat.com/>
4974
4975         * sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
4976         file, not just its existence.
4977
4978 2000-01-03  Karl Fogel  <kfogel@red-bean.com>
4979
4980         * cvs.h, filesubr.c (backup_file): use `const' for suffix too;
4981         correct suffix length calculation and appending behavior; discard
4982         unnecessary `void' cast.  Thanks to Jim Meyering for noticing.
4983
4984 2000-01-03  Larry Jones <larry.jones@sdrc.com>
4985
4986         * sanity.sh (clean): Fix up expected output.
4987
4988 2000-01-02  John P Cavanaugh <cavanaug@sr.hp.com>
4989         and Karl Fogel <kfogel@red-bean.com>
4990
4991         New -C option to update: overwrites local changes with clean
4992         copies from the repository.  (This is an unreversion of the
4993         1999-12-10 change, further modified to work remotely.)
4994
4995         * client.h (BACKUP_MODIFIED_FILES): new #define.
4996
4997         * client.c (struct send_data): new element `backup_modified'.
4998         (send_files): set above element if BACKUP_MODIFIED_FILES flag is
4999         present.
5000
5001         * filesubr.c (backup_file): new function.
5002
5003         * cvs.h: prototype for new function `backup_file'.
5004
5005         * update.c (toss_local_changes): new file-scoped global.
5006         (update): set toss_local_changes if -C flag seen.  If
5007         client_active, send "-C" to server, and set SEND_NO_CONTENTS and
5008         BACKUP_MODIFIED_FILES flags before calling send_files().
5009
5010         (update_fileproc): if file is modified and toss_local_changes is
5011         set, then back the file up and then check out a fresh copy from
5012         the repository.  Also, fixed indentation and formatting for a
5013         particularly bad stretch of code near (but unrelated to) these
5014         changes.
5015
5016         * sanity.sh: new test `clean', for update -C option.
5017
5018 1999-12-29  Jim Kingdon  <http://developer.redhat.com/>
5019
5020         * history.c (read_hrecs): st_blksize is unsigned long, not int.
5021         This isn't just cosmetic - getting it wrong will cause coredumps
5022         and such on 64 bit machines.
5023
5024         * import.c (import_descend), ignore.c (ignore_files): Placate gcc
5025         -Wall by parenthesizing foo || (bar && baz).
5026
5027 1999-12-24  Larry Jones <larry.jones@sdrc.com>
5028
5029         * release.c (release): Use fputs to echo lines from update instead
5030         of printf to avoid problems with lines containing "%".  (Reported
5031         by Jean-Luc Simard <Jean-Luc.Simard@matrox.com>.)
5032
5033         * history.c (read_hrecs): Allocate a single 2-block buffer instead
5034         of allocating and freeing a buffer for each block.
5035         (fill_hrec): Remove redundant code.
5036         (select_hrec): Plug memory leak.
5037
5038 1999-12-22  Larry Jones <larry.jones@sdrc.com>
5039
5040         * history.c (history): For "modified" or "checkout", sort on
5041         file if user specified -l, even if user also specified a date-
5042         oriented flag.
5043         * sanity.sh (history): Update to match; add new tests.
5044
5045 1999-12-15  Pavel Roskin <pavel_roskin@geocities.com>
5046         and Larry Jones <larry.jones@sdrc.com>
5047
5048         * lock.c (lock_name): fixed assertion failure for the
5049         top-level CVS directory when LockDir is used
5050         * sanity.sh (lockfiles-9): new test for this case
5051
5052 1999-12-11  Karl Fogel  <kfogel@red-bean.com>
5053
5054         * Revert previous change -- it doesn't work remotely yet.
5055
5056 1999-12-10  John P Cavanaugh <cavanaug@sr.hp.com>
5057         and Karl Fogel <kfogel@red-bean.com>
5058
5059         * update.c: new -C option to update, overwrites local changes with
5060         clean copies from the repository.
5061         Also, fixed indentation and formatting for a particularly bad
5062         stretch of code near these changes in update_fileproc().
5063
5064         * sanity.sh: test new update -C option.
5065
5066 1999-12-10  Larry Jones <larry.jones@sdrc.com>
5067
5068         * commit.c (remove_file): Call history_write with update_dir NULL
5069         like Checkin() does for add and modify.
5070         * sanity.sh (basic2-64): Update to match, add "R" records to expected
5071         remote output.
5072
5073 1999-12-09  K.J. Paradise (kj@sourcegear.com)
5074
5075         * history.c, commit.c, sanity.sh: found (I think) final
5076         cause of seg fault in history command.  Also, added the "R"
5077         history functionality.  Fixed basic2-64 so it looks correct for
5078         the change.
5079
5080 1999-11-30  K.J. Paradise (kj@sourcegear.com)
5081
5082         * history.c: fixed seg fault caused by 11-03 changes.
5083         off by one in block memory allocations.
5084
5085 1999-11-29  Karl Fogel  <kfogel@red-bean.com>
5086
5087         * login.c (logout): free `tmp_name' when done.
5088         Correct a comment.
5089
5090 1999-11-29  Larry Jones <larry.jones@sdrc.com>
5091
5092         * cvs.h, error.c, import.c: Rename fperror to avoid name clash
5093         on LynxOS.  (Reported by Markus Braun <MarkusBraun@gmx.de>.)
5094
5095 1999-11-23  Larry Jones <larry.jones@sdrc.com>
5096
5097         * checkout.c (checkout_proc): Split declaration and initialization
5098         of rp to placate neurotic compilers that gripe about jumping past
5099         an initialization, even when the variable is not subsequently used.
5100
5101 1999-11-19  Larry Jones <larry.jones@sdrc.com>
5102
5103         * server.c (switch_to_user): Correct setgid error messages.
5104
5105 1999-11-19  Karl Fogel  <kfogel@red-bean.com>
5106
5107         * edit.c (unedit_usage, unedit): new struct, use it.  Now "cvs
5108         unedit" prints an accurate usage message (formerly it printed the
5109         message for "cvs edit", even though the two commands do not have
5110         identical usages).
5111
5112 1999-11-19  Larry Jones <larry.jones@sdrc.com>
5113
5114         * history.c: Move -e documentation from Flags to Reports.
5115         (history): Add -e to list of report types in error message.
5116
5117         * history.c (history): Process file arguments before client/server
5118         processing so they get sent to the server.
5119         * sanity.sh (history): New tests for above.  (Also remove comments
5120         about variable spacing -- history output is in variable-width
5121         columns with exactly one space between.)
5122
5123 1999-11-19  Larry Jones <larry.jones@sdrc.com>
5124
5125         * sanity.sh: Reestablish check for running as root (using ``id -u''
5126         instead of ``whoami'').
5127
5128         * sanity.sh(dotest, dotest_lit, dotest_fail, dotest_status,
5129         dotest_sort): Eval the command so quoting and pipes work right.
5130         (spacefiles, dirs, rcslib, modules, unedit-without-baserev,
5131         ignore, rcs, rcs2, history, tagdate, pserver, server, server2)
5132         Simplify various tests based on above.
5133
5134 1999-11-19  Karl Fogel  <kfogel@red-bean.com>
5135
5136         * mkmodules.c (init): make history file world-writeable after
5137         creating it, since it needs to be writeable for virtually any
5138         CVS operation.
5139
5140 1999-11-10  Jim Kingdon  <http://developer.redhat.com/>
5141
5142         * admin.c: Revert change to add -H command option.  The help
5143         invocation is "cvs -H admin" not "cvs admin -H" (see cvs.texinfo,
5144         basicb-21 in sanity.sh; fix to cvs.1)
5145
5146 1999-11-08  Jim Kingdon  <http://developer.redhat.com/>
5147
5148         * log.c (cvslog): If client_active, send options to the server
5149         based on our parsed options rather than trying to send the exact
5150         strings specified (using canonical forms, like RFC822/1123
5151         dates, in the protocol is just cleaner).
5152         (send_one, send_arg_list): New functions, helpers for above.
5153         * sanity.sh (logopt-6a): New test, for this fix.
5154
5155 1999-11-09  K.J. Paradise <kj@sourcegear.com>
5156
5157         * admin.c: made the -H option do what it is documented to
5158         do.  a
5159
5160 1999-11-08  Tom Tromey  <tromey@cygnus.com>
5161
5162         * client.c (connect_to_gserver): Print more error text if gssapi
5163         initialization fails.  From Assar Westerlund <assar@sics.se>.
5164
5165 1999-11-06  Larry Jones <larry.jones@sdrc.com>
5166
5167         *sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
5168         more general pattern to match the assertion failure.
5169
5170 1999-11-05  K.J. Paradise (kj@sourcegear.com)
5171
5172         * history.c: Added a trap to verify that if a
5173         read(file, buffer,blocksize) returns less than blocksize,
5174         that we really are at the end of the file.  I can't easily
5175         come up with a test case where this code gets touched, so
5176         it may cause problems.  All sanity tests still pass though.
5177
5178 1999-11-05  Jim Kingdon  <http://developer.redhat.com/>
5179
5180         * sanity.sh (logopt): New test, for Larry's fix.
5181         * sanity.sh (log-18a, rcs-15 to rcs-19): New tests, to test -d
5182         and -r more thoroughly.
5183
5184 1999-11-05  Larry Jones <larry.jones@sdrc.com>
5185
5186         * log.c (cvslog): Fix -s and -d with spaces on client side.
5187         (log_usage): Revert Karl's change once again.
5188         sanity.sh(rcs3-5): No longer get different results from local
5189         and client/server.
5190
5191 1999-11-04  Karl Fogel  <kfogel@red-bean.com>
5192
5193         * log.c (log_usage): Revert Jim Kingdon's reversion of my change
5194         of 1999-11-03.  Allowing a space between option and argument
5195         results in lossage; here is a reproduction recipe: run this from
5196         the top of a remote copy of the cvs source tree
5197
5198            cvs log -d '>1999-03-01' > log-out.with-space
5199
5200         and then run this (note there's no space after -d now):
5201
5202            cvs log -d'>1999-03-01' > log-out.no-space
5203
5204         The resulting files differ; furthermore, a glance at the output of
5205         cvs shows that the first command failed to recurse into
5206         subdirectories.  Until this misbehavior can be fixed in the source
5207         code, the documentation should reflect the true state of affairs:
5208         if one simply omits the space, everything works fine.
5209
5210 1999-11-04  Jim Kingdon  <http://developer.redhat.com/>
5211
5212         * log.c (log_usage): Revert Karl's change regarding -d and
5213         -s.  A space is allowed (see sanity.sh for example).
5214
5215 1999-11-03  K.J. Paradise (kj@sourcegear.com>
5216
5217         * history.c: cleaned up my prior change a bit, per Larry Jones'
5218         comments, and John O'Conner's additional comments about bits of
5219         non MS-Visual C++ compliancy of my code.
5220
5221 1999-11-04  Larry Jones <larry.jones@sdrc.com>
5222
5223         * sanity.sh: Check that tr that correctly handles NULs; if not, try
5224         to find a version that does; if none can be found, warn user.
5225         Also fix warnings for defective expr.
5226
5227 1999-11-04  Karl Fogel  <kfogel@red-bean.com>
5228
5229         Changes for empty/random passwords in anon pserver access:
5230
5231         * server.c (check_repository_password): if password empty, grant
5232         access no matter what password is received; this is so anon CVS no
5233         longer requires a password but remains backwards-compatible with
5234         all those clients out there.
5235
5236         * client.c (connect_to_pserver): proceed with login even if
5237         password not found in .cvspass file -- just use empty string as
5238         password.  And if such a login fails, print a descriptive error.
5239
5240         * login.c (get_cvs_password): don't complain if file or password
5241         not found.  That condition is no longer a showstopper, now that
5242         empty passwords are permissible.
5243         Cleaned up conditional chaining a bit, too.
5244
5245         * sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
5246         pserver-13): new tests, about empty-password pserver access.
5247
5248 1999-11-03  K.J. Paradise (kj@sourcegear.com>
5249
5250         * history.c:  modify parsing routines to parse the history
5251         file a block at a time, rather than all at once.  This allows
5252         people with large history files and small amount of memory
5253         to still get some functionality out of the history file.
5254
5255 1999-11-03  Karl Fogel  <kfogel@red-bean.com>
5256
5257         * log.c (log_usage): correct usage message for -d and -s options.
5258         Because the space between the option letter and its argument has
5259         been eliminated, I capitalized the argument portion to distinguish
5260         it from the option letter.  This makes it slightly inconsistent
5261         with other such usage summaries, but at least it is now both
5262         correct and readable.
5263
5264 1999-10-22  Larry Jones  <larry.jones@sdrc.com>
5265
5266         * sanity.sh (dotest_sort): Old versions of tr don't understand \t
5267         so use a literal tab instead.
5268
5269 1999-10-21  Larry Jones  <larry.jones@sdrc.com>
5270
5271         * sanity.sh (dotest_sort): Convert any tabs in the output into spaces
5272         before sorting to avoid POSIX.2 sort weirdness.
5273         (import-106, importb-2): Change expected output per above.
5274
5275 1999-10-18  K.J. Paradise <kj@sourcegear.com>
5276
5277         Bug: users 'stan' and 'cartman' both have full read/write access
5278         to the cvs repository.  'cartman' does a 'cvs admin -l foo.c'.
5279         'stan' then does a 'cvs admin -u foo.c'.  The lock wouldn't be
5280         removed, and no warning/error would be given.  This is now fixed.
5281         * rcs.c:(c.6157) remove caller/user check on the multiple lock
5282         detection routines.  Sanity.sh runs with no errors after this fix.
5283
5284 1999-10-14  Larry Jones  <larry.jones@sdrc.com>
5285
5286         Make "cvs admin -e" (with no list of users) work:
5287         * admin.c (admin): Remove error message.
5288         (admin_fileproc): If no args for -e, call RCS_delaccess with NULL user.
5289         * rcs.c (RCS_delaccess): Interpret NULL user as request to delete
5290         entire access list.
5291         * sanity.sh (admin-19a-*): Test.
5292
5293 1999-09-29  Larry Jones  <larry.jones@sdrc.com>
5294
5295         * entries.c (Subdirs_Known): Use entfilename when opening CVSADM_ENTLOG
5296         like everywhere else.  Although this isn't strictly necessary (since
5297         we immediately close it again), it keeps the code consistent and fixes
5298         a bug where an open error reported the wrong file name.
5299
5300 1999-09-16  Larry Jones  <larry.jones@sdrc.com>
5301
5302         * log.c (log_parse_revlist): Handle peculiar revision specs like
5303         "-r.", "-r:", and "-r," correctly.  (Thanks to Pavel Roskin
5304         <pavel_roskin@geocities.com> for submitting a patch, this fix is
5305         somewhat different.)
5306         * sanity.sh (log): New tests for above.
5307
5308 1999-09-15  Larry Jones  <larry.jones@sdrc.com>
5309
5310         * sanity.sh (basica-8b1): New test to check fix for bad diff options
5311         causing cvs to crash.
5312
5313 1999-09-02  Larry Jones  <larry.jones@sdrc.com>
5314
5315         * modules.c (do_module): Handle case where module definition has
5316         options and special options but no directory; fix potential problems
5317         running off beginning of string while stripping trailing blanks.
5318         * sanity.sh (modules2): New tests for above.
5319
5320 1999-08-26  Larry Jones  <larry.jones@sdrc.com>
5321
5322         * lock.c (lock_name): Remove side-effects from assert() expression
5323         since they won't occur if NDEBUG is defined (not that that's a good
5324         thing to do).  (Reported by KOIE Hidetaka <hide@koie.org>.)
5325
5326 1999-08-25  Larry Jones  <larry.jones@sdrc.com>
5327
5328         * sanity.sh: Use "${AWK}" instead of "awk" to make it easier for
5329         people to use nawk/gawk/etc.; use an explicit "-print" with find
5330         since some older version don't assume it; rename tests to avoid
5331         duplicate importc-8.  (Changes along these lines suggested by
5332         Chris Cameron <chris.cameron@ot.co.nz>.)
5333
5334 1999-08-24  Larry Jones  <larry.jones@sdrc.com>
5335
5336         * commit.c (check_fileproc): Don't crash when a file has no
5337         repository, just treat it as unknown.  (Reported by Stefaan
5338         Diericx <stefaan.diericx@argenta.be>.)
5339         * sanity.sh (errmsg2): New tests, for this fix.
5340
5341 1999-08-18  Larry Jones  <larry.jones@sdrc.com>
5342
5343         * update.c (special_file_mismatch): Initialize *_hardlinks to
5344         avoid trying to free garbage later on.  (Reported by Jan
5345         Scheffczyk <herta@Xterminator.StudFB.UniBw-Muenchen.de>.)
5346
5347 1999-08-17  Larry Jones  <larry.jones@sdrc.com>
5348
5349         * sanity.sh (basicc-11): Older versions of sh don't understand
5350         ``if ! test...''.  (Patch submitted by David J N Begley
5351         <david@avarice.nepean.uws.edu.au>.)
5352
5353 1999-08-17  Larry Jones  <larry.jones@sdrc.com>
5354
5355         * client.c, hardlink.c, hash.c, hash.h, main.c, recurse.c: Change
5356         enum constant UNKNOWN to avoid conflicts on HPUX 11.0.  (Reported
5357         by Laurent Duperval <laurent.duperval@cgi.ca>.)
5358
5359 1999-08-16  Larry Jones  <larry.jones@sdrc.com>
5360
5361         client.c: Eliminate redundant #if.  (Patch submitted by Assar
5362         Westerlund <assar@sics.se>.)
5363
5364 1999-07-30  Larry Jones  <larry.jones@sdrc.com>
5365
5366         * rcs.c (RCS_checkin): Terminate cleanly if RCS_addbranch fails
5367         rather than blithely continuing on and crashing.
5368         * sanity.sh (basica): New tests, for this fix.
5369
5370 1999-07-29  Larry Jones  <larry.jones@sdrc.com>
5371
5372         * import.c (add_rcs_file): change "cannot lstat" message to include
5373         userfile (the actual file causing the problem) instead of user
5374         (which may or may not be the same).
5375
5376 1999-07-29  Eric Sink   <eric@sourcegear.com>
5377
5378         * version.c: Push version number to 1.10.7.1.
5379
5380         * version.c: Version 1.10.7.
5381
5382 1999-07-28  Eric Sink   <eric@sourcegear.com>
5383
5384         * sanity.sh: before running basicc-11, we need to see if
5385         the cwd has been deleted (by basicc-8).  If so, we
5386         recreate it to allow basicc-11 to proceed.  This may be
5387         something that only happens under the Linux 2.2 kernel.
5388
5389 1999-07-18  Karl Fogel  <kfogel@floss.red-bean.com>
5390
5391         * edit.c (notify_do): chop newline, if any, from the value
5392         obtained from CVSROOT/users.  Otherwise it just gets passed along
5393         in the argument to the notification program (usually mail), which
5394         will misinterpret it as signifying the end of the command.
5395
5396 1999-07-19  Larry Jones  <larry.jones@sdrc.com>
5397
5398         * rcs.c (RCS_delete_revs): In the WIN32 kludge, be sure that the result
5399         of RCS_getexpand is not NULL before trying to use what it points to.
5400         (Patch submitted by Timothy L. Taylor <ttaylor@mitre.org>.)
5401
5402 1999-07-16  Tom Tromey  <tromey@cygnus.com>
5403
5404         * admin.c (admin): Allow `-k' options to be used unrestricted.
5405
5406 1999-06-23  Jim Kingdon  <http://www.cyclic.com>
5407
5408         * sanity.sh (symlinks2): New test, for symlinks in working
5409         directory without PreservePermissions.  This test (modulo a few
5410         details not relevant to testing whether we are following symlinks)
5411         worked remote as of now, or either remote or local for CVS 1.9.
5412         * subr.c (get_file): Revert 1998-02-15 change to special-case
5413         symlinks.  This makes the above test work local too.
5414         * rcs.c (RCS_checkin): Move the logic to handle special-case
5415         symlinks (and other files other than regular files) here, and make
5416         it only happen if PreservePermissions is on.
5417
5418 1999-06-18  Larry Jones  <larry.jones@sdrc.com>
5419
5420         * sanity.sh (devcom3-9a): Be less specific about the expected
5421         error message (BSD/OS 4.0 has a bug that can cause exec* to fail
5422         with EACCES instead of ENOENT).
5423
5424 1999-06-08  Larry Jones  <larry.jones@sdrc.com>
5425
5426         * sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
5427         Use ${PROG} instead of "cvs".
5428
5429 1999-06-05  Jim Kingdon  <http://www.cyclic.com>
5430
5431         * recurse.c (do_recursion, do_dir_proc): Make the SERVER_ACTIVE
5432         #ifdef be only around the check for server_active.  Modulo a few
5433         cosmetic tweaks, same as a patch submitted by Johannes Stezenbach
5434         of propack-data.de.
5435
5436 1999-06-01  Jim Kingdon  <http://www.cyclic.com>
5437
5438         * sanity.sh: Add comment about rcs2-7 failures on certain days.
5439
5440         Make "cvs status -v" on a removed file work:
5441         * status.c (cvsstatus): Reindent the client code.
5442         (status_fileproc): Don't need a CVS/Entries listing to show the
5443         tags.
5444         * sanity.sh (rmadd2): New test rmadd2-16 tests the existing
5445         behavior with "cvs log"; new test rmadd2-17 tests the new behavior
5446         with "cvs status".
5447
5448         * sanity.sh (basicc): To match no output in dotest, put the empty
5449         regexp first.  Remove tests which check that first-dir exists,
5450         since that isn't true in the case where the OS let us delete it.
5451         (dotest_internal): Fix so that things work with two regexps, with
5452         an empty one first.
5453
5454 1999-05-28  Larry Jones  <larry.jones@sdrc.com>
5455
5456         * sanity.sh (server-4): Replace bogus directory with real one since
5457         the server now checks it.
5458
5459 1999-05-27  Jim Kingdon  <http://www.cyclic.com>
5460
5461         * sanity.sh (spacefiles): Clean up -c, top, and -b at end.
5462         (spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
5463
5464         Fix two problems pointed out by Olaf Kirch of swb.de/caldera.de:
5465         * server.c (outside_root): New function, contains expanded version
5466         of code from serve_directory.
5467         (serve_directory): Call outside_root.
5468         (outside_dir): New function
5469         (serve_modified, serve_is_modified, serve_notify,
5470         serve_questionable, serve_unchanged): Call outside_dir.
5471         * sanity.sh (server2): New tests, for these fixes.
5472
5473 1999-05-26  Jim Kingdon  <http://www.cyclic.com>
5474
5475         * cvs.h, subr.c (xmalloc): Return void* not char*, like xrealloc
5476         has done for some time.
5477         * modules.c (do_module): If we find the module as a directory/file
5478         (rather than in the modules file), skip a bunch of processing
5479         which was unnecessary and also broken in most of the cases
5480         now tested for by the spacefiles sanity.sh test.
5481         * sanity.sh (spacefiles): New test, for specifying filenames
5482         (containing spaces, or starting with '-', or starting with '/') to
5483         "cvs co".
5484
5485 1999-05-25  Jim Kingdon  <http://www.cyclic.com>
5486
5487         * client.c (update_entries): Make the old DONT_USE_PATCH code the
5488         only code.  This means that if people are still on CVS 1.9
5489         servers, then CVS will fall back to transferring entire files.
5490         This is better than looking for an external "patch" program which
5491         causes no end of troubles (especially on Windows, but someone just
5492         posted to info-cvs about a problem with the Solaris patch).  (This
5493         change was run by devel-cvs and feedback was positive).
5494
5495         * subr.c (xmalloc, xrealloc): The new error.c does not support
5496         %lu; use sprintf instead.
5497
5498 1999-05-25 Derek Price
5499         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5500
5501         * sanity.sh (server): Escaped a few more newlines in
5502         another awk script.  Solaris awk still don't like 'em.
5503
5504 1999-05-25 Derek Price
5505         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5506         and Jim Kingdon
5507
5508         * log.c: Remove comment which said "you can delete [this line]"
5509         and which stuck around for over 3 years.
5510         * sanity.sh (errmsg2 & tagdate): Added tests to prove the
5511         current functionality with respect to combining -r and -D.
5512
5513 1999-05-20  Larry Jones  <larry.jones@sdrc.com>
5514
5515         * server.c (pserver_authenticate_connection): Previous changes
5516         broke verify_and_exit (reported by Robert Fitzsimons, thanks).
5517         * sanity.sh (pserver): New tests pserver-7 and pserver-8 for this.
5518
5519 1999-05-18 Derek Price
5520         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5521
5522         * sanity.sh (keyword2): Escaped a newline in an awk script.
5523         Apparently Solaris awk don't like 'em.
5524
5525 1999-05-18  Jim Kingdon  <http://www.cyclic.com>
5526
5527         * sanity.sh (basicc): Allow the behavior whereby unlink(".")
5528         succeeds.  Reported by Jeremy Buhler and Pavel Roskin.
5529
5530 1999-05-17  Steve Cameron of Compaq
5531
5532         * sanity.sh: Modified to no longer use "test -e" for existence
5533         test as it has turned out to be not portable enough.  Instead use
5534         "test -f", "test -d", etc.
5535         [SCO Unixware 7 apparently doesn't always support it -kingdon]
5536
5537 1999-05-17  Jim Kingdon  <http://www.cyclic.com>
5538
5539         * version.c: Push version number to 1.10.6.1.
5540
5541         * version.c: Version 1.10.6.
5542
5543 1999-05-16  Jim Kingdon  <http://www.cyclic.com>
5544
5545         * update.c (patch_file): When we are passing vn_rcs to
5546         RCS_checkout, pass vn_tag as well.
5547         * sanity.sh (keyword): In test keyword-22, test for the fixed
5548         behavior rather than the buggy behavior.  Adjust keyword-23.  Add
5549         test keyword-24, to see whether keyword-23 really worked.
5550
5551 1999-05-12  Larry Jones  <larry.jones@sdrc.com>
5552
5553         * sanity.sh (pserver-4, pserver-5): Bogus error messages from
5554         non-root initgroups on some 4.4BSD derived systems now show up
5555         in different places in the output.
5556
5557 1999-05-12  Jim Kingdon  <http://www.cyclic.com>
5558
5559         * import.c (import): Don't allow the user to supply a repository
5560         directory which takes us out of the cvsroot.
5561         * sanity.sh (importc): New tests importc-10 to importc-12, for this.
5562
5563 1999-05-11  Larry Jones  <larry.jones@sdrc.com>
5564
5565         * server.c (serve_notify): Allocate enough memory to hold the
5566         "misformed Notify request" message in pending_error_text.
5567
5568 1999-05-11  Jim Kingdon  <http://www.cyclic.com>
5569
5570         * server.c (switch_to_user): Ignore EPERM from initgroups.  Fixes
5571         pserver-4 in testsuite.
5572         (pserver_authenticate_connection): Only print "I LOVE YOU" after
5573         switch_to_user has come back successfully.
5574
5575         * server.c (pserver_authenticate_connection): Call error_exit
5576         rather than reinventing the wheel ourselves.
5577         (switch_to_user): Check for errors from setuid, setgid, and
5578         initgroups.  Fix the #ifdef's (the previous code would skip the
5579         setuid call if SETXID_SUPPORT).
5580
5581 1999-05-10  Jim Kingdon  <http://www.cyclic.com>
5582
5583         * server.c (serve_notify), edit.c (notify_do): Check for
5584         and reject characters which will get confused with delimiters.
5585         * sanity.sh (server): New tests server-7 through server-15 test
5586         for this and for other notify behaviors.
5587
5588         * rcs.c (RCS_tag2rev): Also look for a physical branch with
5589         RCS_getversion.
5590         * sanity.sh (tagf): Adjust tagf-12 and following tests to test for
5591         the fixed behavior rather than the broken behavior.
5592
5593 1999-05-07  Jim Kingdon  <http://www.cyclic.com>
5594
5595         * server.c (server_notify): Also set last_node to NULL.
5596         * sanity.sh (server): New tests server-6 and server-7, for this.
5597
5598 1999-05-05  Jim Kingdon  <http://www.cyclic.com>
5599
5600         * rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
5601
5602         * add.c (add): Look for directories with the same name in a
5603         different case where appropriate (analogous to fopen_case).
5604         In client code, add comment about how this doesn't do quite
5605         everything.
5606
5607 1999-05-03  Jim Meyering  <meyering@ascend.com>
5608
5609         Remove rcs-style ,file, lock files upon signal.
5610         * rcs.c (rcs_lockfile): New file-scoped global.
5611         (rcs_cleanup): New function (similar to patch_cleanup).
5612         (rcs_internal_lockfile): Register rcs_cleanup the first time this
5613         function is called.  Rename uses of local `lockfile' to refer to new
5614         global, `rcs_lockfile'.  Don't free the lock file name string, now
5615         that it's global.
5616         (rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
5617         free and NULL-out the global, rcs_lockfile.
5618
5619 1999-04-30  Jim Kingdon  <http://www.cyclic.com>
5620
5621         * rcs.c (annotate_fileproc): Don't cast NULL in passing it to
5622         RCS_deltas.  Because there is a prototype in scope the cast is
5623         unnecessary (per HACKING's ANSI C or SunOS4 rule), and in fact it
5624         was causing failures on UNICOS because it cast to size_t instead
5625         of size_t*.  (Thanks to Dean Kopesky for reporting this).
5626
5627 1999-04-29  Jim Kingdon  <http://www.cyclic.com>
5628
5629         * sanity.sh: If invoked without any arguments, print a usage
5630         message (thanks to Pavel Roskin for a report/patch).
5631
5632         * run.c (piped_child): Make the error messages more verbose.
5633         (close_on_exec): Reindent.
5634         * sanity.sh (devcom3): Several errors are possible in devcom3-9a.
5635         Adjust for change to piped_child error message.
5636
5637 1999-04-28  Jim Kingdon  <http://www.cyclic.com>
5638
5639         * sanity.sh (devcom3): Add some tests of the CVS/Notify file and
5640         disconnected "cvs edit".
5641
5642         * main.c (opt_usage): Remove -b.
5643
5644 1999-04-20 Derek Price
5645         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5646
5647         * rcs.c (RCS_delete_revs):  RCS_delete_revs uses an
5648         RCS_checkout call to get a new copy of a revision to be
5649         used internally after old revisions were deleted and it was
5650         performing keyword substitutions.  This munged all the
5651         the revisions of the file on the branch containing the
5652         deleted revisions and its sub-branches, as the original they
5653         were being patched from was incorrect.  Corrected this by
5654         passing in "-ko" as an option to RCS_checkout.
5655         * sanity.sh (keywordlog):  modified this test to verify the
5656         correct behavior of 'cvs admin -o'.
5657         [Fixed use of \$ in keywordlog test; added code in RCS_delete_revs
5658         to abort on binary file on Windows -kingdon]
5659
5660 1999-04-21  Derek Price
5661         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5662         and Jim Kingdon
5663
5664         * tag.c (tag_check_valid): A bug was causing CVS to spin
5665         indefinately when -j:<date> was specified.  CVS now returns
5666         an error.
5667         * sanity.sh: Added a test (tagdate-12) to test this.
5668
5669 1999-04-19  Jim Kingdon  <http://www.cyclic.com>
5670
5671         * sanity.sh (backuprecover): Clean up the repository at the end.
5672
5673 1999-04-18  Derek Price
5674         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5675
5676         * sanity.sh added a test (backuprecover) to test cvs behavior
5677         with a repository that is out of date relative to the
5678         developer's workspaces.
5679         [Fix --keep code; move test to "Repository Storage" section since
5680         it doesn't really exercise the diff/diff3 library. -kingdon]
5681
5682 1999-04-13  Derek Price
5683         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5684
5685         * sanity.sh (diff):  Tests to verify correct operation of
5686         the --ifdef parameter to cvs diff.
5687         [indentation fixed -kingdon].
5688
5689 1999-04-13  Derek Price
5690         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5691         for Noah Friedman  <friedman@splode.com>
5692
5693         * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
5694         latter is confused by pserver for a date spec.
5695
5696 1999-04-14  Jim Kingdon  <http://www.cyclic.com>
5697
5698         * fileattr.h: Adjust comments to reflect the official version of
5699         the fileattr format now being in cvs.texinfo.
5700
5701 1999-04-05  Jim Kingdon
5702
5703         * sanity.sh (watch5): Remove nonstandard --keep code.  Don't pass
5704         -f to rm when cleaning up (that tends to mask bugs).  Add watch5
5705         to list of tests at start.  Add comment explaining why we consider
5706         the behavior we test for the right one.  Rename a few tests which
5707         had been erroneously named watch6* instead of watch5*.
5708         * client.c (update_entries): Add comment with brief discussion of
5709         whether there is a better way.
5710
5711 1999-04-05  Derek Price
5712         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5713
5714         * client.c (update_entries):  Only call mark_up_to_date
5715         (which deletes the CVS/Base/<filename> file for watched
5716         and edited files) on commit.
5717         * sanity.sh:  Make sure the CVS/Base/<filename> file for
5718         a watched and edited file is not removed on a status or
5719         update of a touched/unmodfied file.
5720
5721 1999-03-30  Larry Jones  <larry.jones@sdrc.com>
5722
5723         * client.c (get_responses_and_close), commit.c (commit),
5724         update.c (do_update): If the sleep(1) call returns prematurely
5725         (due to the way wakeup is scheduled or receiving a signal), do
5726         it again.
5727
5728 1999-03-26  Jim Kingdon  <http://www.cyclic.com>
5729
5730         * server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
5731
5732         * sanity.sh (modules3-11b): Adjust exact text of error message to
5733         reflect 1999-03-24 change to dirswitch.
5734
5735 1999-03-25  Jim Kingdon  <http://www.cyclic.com>
5736
5737         * admin.c (admin): Make argument to -e optional, to match the
5738         documentation.
5739         * sanity.sh (admin-19a-2): Test for this.
5740
5741         * server.c (serve_root): Update comment about checking for missing
5742         Root request.
5743
5744 1999-03-24  Jim Kingdon  <http://www.cyclic.com>
5745
5746         * server.c (dirswitch): Also check dir here, similar to
5747         what server_pathname_check does for other cases.
5748         * sanity.sh (files): Adjust files-14 to test for this.
5749
5750 1999-03-24  Derek Price
5751         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5752         and Jim Kingdon
5753
5754         * sanity.sh: added a test (files-13) to test .. indirection
5755         in a path and another (files-14) to make sure we still fail
5756         out when the '..' indirection takes us into the $CVSROOT
5757         directory or beyond.
5758
5759 1999-03-24  Larry Jones  <larry.jones@sdrc.com>
5760
5761         * rcs.c: Change enum constants ADD and DELETE to something less
5762         likely to run into conflicts.
5763
5764 1999-03-21  Jim Kingdon  <http://www.cyclic.com>
5765
5766         * sanity.sh (tagf): New test, tests for moving a branch tag to a
5767         non-branch tag and trying to recover.
5768
5769 1999-03-12  Jim Kingdon  <http://www.cyclic.com>
5770
5771         * sanity.sh (branches): Tweak test branches-5 to test the case in
5772         which one modifies a file and then branches it.
5773
5774 1999-03-09  John Bley of duke.edu
5775
5776         * mkmodules.c (filelist): Missed a NULL in this struct (should
5777         have 3 members, only had 2).
5778
5779 1999-03-07  Jim Kingdon  <http://www.cyclic.com>
5780
5781         * sanity.sh (Index): Rename new test from rm_CVS/Root to rmroot
5782         (we don't have a formal rule about funky punctuation in test names
5783         but both underscore and a slash is too funky for me :-)).
5784         Reindent a few tests which were off.
5785
5786         * root.c: Remove the sentence which had the improper English;
5787         there isn't really a need for that sentence and it isn't
5788         particularly accurate any more.
5789
5790 1999-02-27  Derek Price
5791         <http://www-personal.engin.umich.edu/~oberon/resume.html>
5792
5793         * sanity.sh:  Added rm_CVS/Root test to test that CVS uses
5794         $CVSROOT rather than dumping core when running remotely and
5795         the admin file CVS/Root is deleted from the workspace.
5796
5797         Also, altered a few 'cvs commit' 's in regular expressions to
5798         fit the .${PROG} commit. portability syntax.
5799
5800         * recurse.c:  Stopped CVS from dumping core in the case tested
5801         above.
5802
5803         * root.c:  Fixed somebody's improper english.
5804
5805 1999-02-25  Larry Jones  <larry.jones@sdrc.com>
5806
5807         * sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
5808         expected result.
5809
5810 1999-02-24  Jim Kingdon  <http://www.cyclic.com>
5811
5812         * sanity.sh (keyword2): Restore the original \\\$ instead of $.
5813         The latter ends up working due to various kludgy semantics in the
5814         shell and regular expressions, but the former is cleaner.
5815
5816         * sanity.sh (keyword2): Protect keywords against accidental
5817         expansion in sanity.sh itself (most occurrences had this, but not
5818         all).
5819
5820 1999-02-23  Derek Price  <http://www.cyclic.com>
5821         and Jim Kingdon.
5822
5823         * sanity.sh (keyword2): New test, tests for merging with -kk.
5824
5825 1999-02-22  Jim Kingdon  <http://www.cyclic.com>
5826
5827         * version.c: Ease version number to 1.10.5.1.
5828
5829         * version.c: Version 1.10.5.
5830
5831 1999-02-18  Jim Kingdon  <http://www.cyclic.com>
5832
5833         * sanity.sh (files): New test, for a relatively obscure spurious
5834         "Up-to-date check failed" in client/server.
5835
5836         * main.c (lookup_command_attribute): Don't check for "history"
5837         twice.
5838
5839 1999-02-17  Jim Kingdon  <http://www.cyclic.com>
5840             and Hallvard B Furuseth
5841
5842         * root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
5843         warnings about statement not reached.
5844
5845 1999-02-16  Jim Kingdon  <http://www.cyclic.com>
5846
5847         * recurse.c (start_recursion): If we are skipping the current
5848         directory (due to it being from the wrong repository), also adjust
5849         the arguments we send to the server accordingly (like we already
5850         do for the case in which there is no CVS directory).
5851         * sanity.sh (multiroot4): New test, for this.  All these tests had
5852         passed locally, but remote multiroot4-12 tests for this fix.
5853         (multiroot): Adjust multiroot-diff-1, multiroot-update-2,
5854         multiroot-tag-1, multiroot-status-1, multiroot-update-3, and
5855         multiroot-log-1 to reflect the cosmetic change this produces (one
5856         less "Diffing ." message).
5857         (multiroot2): multiroot2-8 likewise.
5858
5859 1999-02-10  Jim Kingdon  <http://www.cyclic.com>
5860
5861         * tag.c (cvstag): Don't pass SEND_NO_CONTENTS if -c specified.
5862         * sanity.sh (tagc): New test, for various tag -c behaviors.
5863         Test tagc-6 tests for this fix.
5864
5865 1999-02-09  Jim Kingdon  <http://www.cyclic.com>
5866
5867         * error.c (error): Rewrite to no longer use vasprintf (see
5868         ../lib/ChangeLog for rationale).  Note the slight change in
5869         interface - callers which want %8.8s or similar formats need to
5870         call sprintf.
5871         * lock.c (lock_wait, lock_obtained): Use sprintf.
5872
5873 1999-02-08  Jim Kingdon  <http://www.cyclic.com>
5874
5875         * rcs.c (RCS_delete_revs): Pass -a to diff_exec.
5876         * sanity.sh (binfiles3): New tests binfiles3-9 through
5877         binfiles3-13 test for this fix.
5878         * sanity.sh (binfiles): New tests binfiles-o4 and binfiles-o5
5879         (which don't test this bug, just on general principles).
5880
5881 1999-02-04  Jim Kingdon  <http://www.cyclic.com>
5882
5883         * lock.c (lock_name): Permissions of directories in LockDir
5884         shouldn't depend on the umask.
5885         * sanity.sh (lockfiles): Set umask and CVSUMASK, to test for this.
5886
5887 1999-02-01  Jim Kingdon  <http://www.cyclic.com>
5888
5889         * sanity.sh (keywordlog): New tests keywordlog-22 and
5890         keywordlog-23 test keyword expansion and $Log.  Adjust other tests
5891         so that revisions differ more from each other, so this is a
5892         better test.
5893
5894 1999-01-29  Jim Kingdon  <http://www.cyclic.com>
5895
5896         * commit.c (checkaddfile): If options is "", treat it the same as
5897         NULL.  Centralize this check, and the one for it starting with
5898         "-k", at the start of the function.
5899
5900         * rcs.c, rcs.h (RCS_setexpand): New function.
5901         * admin.c (admin_fileproc): Access keyword expansion field via
5902         RCS_getexpand and RCS_setexpand, rather than directly.
5903         * commit.c (checkaddfile): When resurrecting, set the keyword
5904         expansion mode.
5905         * sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
5906         for the new behavior.
5907
5908 1999-01-27  Jim Kingdon  <http://www.cyclic.com>
5909
5910         * sanity.sh (multiroot3): Add new variant of multiroot3-10 test
5911         for RELATIVE_REPOS.  Move multiroot3-11 test out of the
5912         conditionals; it works the same for remote or local,
5913         RELATIVE_REPOS or no.
5914
5915         * options.h.in: Make RELATIVE_REPOS the default, as has been
5916         announced as a future direction since 1997-10-11.
5917         * sanity.sh (multiroot): Tweak multiroot-update-1a and
5918         multiroot-update-1b tests to work with either RELATIVE_REPOS or
5919         non-RELATIVE_REPOS.
5920
5921         * sanity.sh (client-9): Don't assume the time zone.
5922
5923 1999-01-26  Jim Kingdon  <http://www.cyclic.com>
5924
5925         Fix one facet of the "cvs add -kb" re-adding problem (the other
5926         known facet is tested for by binfiles3-8).
5927         * add.c (add): When re-adding a file, set the keyword expansion
5928         as we normally would.
5929         * sanity.sh (binfiles3): New test binfiles3-6a tests for this.
5930
5931 1999-01-22  Jim Kingdon  <http://www.cyclic.com>
5932
5933         * sanity.sh (rmadd2): New tests, for undoing a commit.
5934
5935 1999-01-21  Eric Mumpower  <nocturne@cygnus.com>
5936
5937         * sanity.sh (reposmv): Actually modify CVSROOT in current
5938         environment when calling functions, rather than trying to achieve
5939         the same effect with "CVSROOT=foo functionname". (Many common
5940         bourne shells, including those in SunOS and Solaris 2.4-2.7,
5941         do not properly handle "ENVVAR=foo command" when "command" is
5942         a user-defined shell function rather than an actual executable.)
5943
5944 1999-01-15  Jim Kingdon  <http://www.cyclic.com>
5945
5946         * sanity.sh (rcs3): Redirect awk's stdin to /dev/null like all the
5947         other awk invocations.  GNU awk seems not to read stdin in this
5948         case, but that behavior is hard to reconcile with the Single Unix
5949         Spec and some awks don't do it.
5950
5951         * sanity.sh (binfiles, binfiles2, binfiles3, server): Use the same
5952         tr trick as in rcs3.  People don't seem to have been complaining,
5953         and this should fix server-4 for HPUX.
5954
5955 1999-01-14  Jim Kingdon  <http://www.cyclic.com>
5956
5957         * client.c (recv_line): If the line we are reading contains a
5958         character which would sign-extend to EOF, don't treat it as end of
5959         file.  recv() doesn't report end of file this way and this might
5960         fix bugs with 0xff characters.
5961
5962 1999-01-14  Larry Jones  <larry.jones@sdrc.com>
5963
5964         * client.c (recv_line): Handle EOF from server.
5965
5966         * sanity.sh (importc-8, importc-9): Accept anything in the seconds
5967         fields of the timestamps since touch doesn't set it reliably.
5968         (This isn't great, but it's better than nothing.)
5969
5970 1999-01-14  Jim Kingdon  <http://www.cyclic.com>
5971
5972         * run.c (run_exec): Adjust comment about vfork; this isn't the place
5973         to get into a treatise about fork performance vs. vfork
5974         performance but it isn't quite as simple as whether one has
5975         copy-on-write.
5976
5977 1999-01-13  Larry Jones  <larry.jones@sdrc.com>
5978
5979         * sanity.sh (dotest_fail): Handle spurrious output from assert better.
5980
5981         * sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
5982         assertion failure message.
5983
5984 1999-01-12  Larry Jones  <larry.jones@sdrc.com>
5985
5986         * sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
5987         just use echo instead.
5988
5989 1999-01-11  Jim Meyering  <meyering@ascend.com>
5990
5991         * sanity.sh (mkmodules-temp-file-removal): New test, for this.
5992         * mkmodules.c (mkmodules): Remove each `CVSROOT/.#[0-9]*' temporary
5993         file that's used to check out files listed in CVSROOT/checkoutlist.
5994         Remove extra semicolon at end of line.
5995
5996 1999-01-11  Larry Jones  <larry.jones@sdrc.com>
5997
5998         * sanity.sh (rcs3-5a): Allow for multiple lines of output before the
5999         assertion failure message.
6000
6001         * sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
6002         (doesn't allow anything to follow omitted permissions).
6003
6004 1999-01-09  Jim Kingdon  <http://www.cyclic.com>
6005
6006         * client.c (set_sticky): Nonfatal error if we can't write it.
6007         * sanity.sh (dirs2-8 through dirs2-14): New tests, for this.
6008
6009         * sanity.sh (rcs3): Write NUL character with tr not awk, in
6010         accordance with Single Unix Specification.  Hopefully will fix
6011         rcs3-7 for HPUX.  Will not work on SunOS4, but then again neither
6012         did the old syntax.
6013
6014 1999-01-05  Jim Kingdon  <http://www.cyclic.com>
6015
6016         * client.c, update.c: Rename MD5* functions to cvs_MD5* per
6017         corresponding change to ../lib/md5.h.
6018
6019 1999-01-03  Jim Kingdon  <http://www.cyclic.com>
6020
6021         * sanity.sh (client): Give file1 a predictable mode so that the
6022         output in client-9 will not depend on the umask of the user
6023         running the tests.
6024
6025 1998-12-29  Jim Kingdon  <http://www.cyclic.com>
6026
6027         * client.c (client_senddate): Use date_to_internet rather than
6028         using our own "5/26/1997 13:01:40 GMT" date format.
6029         * main.c (date_to_internet): Check for errors from sscanf.  Always
6030         send a four digit year.  Send hours, minutes, and seconds as two
6031         digits per RFC822.
6032         * sanity.sh (client): New tests client-8 and client-9 test for this.
6033
6034         * sanity.sh (rcs2): New tests rcs2-6 through rcs2-8 test for fix
6035         to lib/getdate.y (before the fix, "100 months" or "8 years" would
6036         tend to mean the year 1969, thus the tests would give "cvs update:
6037         file1 is no longer in the repository").
6038
6039 1998-12-28  Larry Jones  <larry.jones@sdrc.com>
6040
6041         * entries.c (Register): Return if unable to open log file to avoid
6042         referencing the invalid file pointer.
6043         * sanity.sh (dirs2-7): With above change, no longer fails.
6044         * sanity.sh (rcs3-5a): Another assertion failure message.
6045         * sanity.sh (pserver-4, pserver-5): Some 4.4BSD derived systems spit
6046         out bogus error messages when initgroups is called as non-root.
6047
6048 1998-12-23  Larry Jones  <larry.jones@sdrc.com>
6049
6050         * sanity.sh (rcs3, dotest_fail): The assertion failure message varies
6051         wildly between different systems and the resulting abort call can
6052         even result in spurrious output.  Fix the regexp to accept nearly
6053         anything containing some kind of assertion failure and ensure that
6054         any spurrious output ends up in the output file instead of on the
6055         terminal.
6056
6057 1998-12-23  Jim Kingdon  <http://www.cyclic.com>
6058
6059         * admin.c, checkout.c, commit.c, cvsrc.c, expand_path.c,
6060         history.c, ignore.c, import.c, log.c, mkmodules.c, modules.c,
6061         myndbm.c, parseinfo.c, rcs.c, remove.c, rtag.c, status.c, subr.c,
6062         tag.c, wrapper.c: Cast all char's to unsigned char before passing
6063         them to ctype.h functions (isalpha, isgraph, isalnum, isspace,
6064         isdigit, isprint, isupper).  Whether using ctype.h is the right
6065         thing at all is unclear to me (having the server depend on locale
6066         seems wrong, as we don't necessarily have any good way to set the
6067         right locale, if there even is such a concept as 'right' locale in
6068         this context), but as long as we use ctype.h we might as use it
6069         according to the standards (this affects systems where plain char
6070         is signed but users supply characters with the 8th bit set).
6071         Thanks to Paul Eggert for suggesting this.
6072
6073 1998-12-22  Jim Kingdon  <http://www.cyclic.com>
6074
6075         * sanity.sh (rcs3): Oops, the earlier fix for srcdir only fixed
6076         the non-remote case, not the remote case.  Fix the other occurrence.
6077
6078 1998-12-22  Jim Kingdon
6079
6080         * sanity.sh (rcs3): The assertion failure message varies slightly
6081         depending on whether CVS was built with srcdir != ".".  Fix regexp.
6082
6083 1998-12-21  Jim Kingdon
6084
6085         * rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
6086         unused variable x_vers.
6087
6088         * rcs.c: When printing an unexpected character we found in the RCS
6089         file, print it in hex rather than as a character (see comment for
6090         rationale).
6091         * sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
6092
6093         * sanity.sh (rcs3): New test, for some error handling cases
6094         involving parsing RCS files.
6095
6096 1998-12-16  Jim Meyering  <meyering@ascend.com>
6097
6098         * rcs.c (RCS_getdate): Handle the case in which a file is first
6099         imported after its initial version has been created.
6100         * sanity.sh (import-after-initial): New test for that.
6101
6102 1998-12-17  Jim Kingdon
6103
6104         * server.c (serve_root): Pserver_Repos only exists if
6105         AUTH_SERVER_SUPPORT is defined.
6106
6107 1998-12-12  Jim Kingdon, and Derek R. Price of Stortek.
6108
6109         * sanity.sh (multiroot): Change + to ${PLUS}.
6110
6111 1998-12-12  Jim Kingdon, and Gary Young of Motorola
6112
6113         * sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
6114         allow 4 digit year in addition to 2 digit year.
6115
6116 1998-12-12  Jim Kingdon
6117
6118         * sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
6119         and for HEAD as (nonexistent) file name.
6120
6121 1998-12-02  Jim Kingdon
6122
6123         * version.c: Squish version number to 1.10.4.1.
6124
6125         * version.c: Version 1.10.4.
6126
6127 1998-11-24  Jim Kingdon
6128
6129         * recurse.c (do_file_proc): Check for errors from RCS_parse.
6130         * sanity.sh (rcslib-symlink-7 through rcslib-symlink-10): New
6131         tests, test for this.
6132
6133         * sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
6134
6135         * entries.c (Register): If we can't write Entries.Log, make it a
6136         nonfatal error.
6137         * sanity.sh (dirs2): Test for this fix.
6138
6139         * sanity.sh (dirs2): Clean up working directory at end of test.
6140
6141 1998-11-23  Jim Kingdon
6142
6143         * sanity.sh (dirs2): New test, for some more cases involving
6144         deleting directories and such.
6145
6146         * sanity.sh (dirs): Update for yesterday's change in Find_Names
6147         error handling.  The error in dirs-4 is fairly different now; in
6148         dirs-3 and dirs-3a it is the obvious change.
6149
6150 1998-11-22  Jim Kingdon
6151
6152         * sanity.sh (release): Move the commments listing "cvs release"
6153         tests from modules2-6 to here.
6154         * release.c (release): Update comment to reflect "? foo" case.
6155
6156         * find_names.c (Find_Names): If we can't read the repository, make
6157         it a nonfatal error.  Tell the caller whether this happened.
6158         (find_rcs): Add comment regarding this behavior.
6159         * recurse.c (do_recursion): If Find_Names gives an error, skip
6160         the directory and print a message saying so.
6161         * sanity.sh (modes3): New test, for this.
6162
6163 1998-11-18  Jim Kingdon
6164
6165         * rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
6166         consistently.
6167
6168         * sanity.sh (conflicts3): Tests conflicts3-24 through
6169         conflicts3-28 test for another case similar to conflicts3-22.
6170
6171 1998-11-14  Jim Kingdon
6172
6173         * sanity.sh (diff): New test, for now just tests for the "I know
6174         nothing" message.
6175
6176         * sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
6177         tests; resurrecting doesn't work from one level up.
6178
6179         * sanity.sh (mwrap-7): Remote prints the messages in a different
6180         order.
6181
6182 1998-11-13  Jim Kingdon
6183
6184         * tag.c (check_fileproc): Log tag deletions.
6185         * rtag.c (check_fileproc): Likewise.
6186         * sanity.sh (taginfo-14 through taginfo-18): New tests, for
6187         these behaviors.
6188
6189 1998-11-12  Jim Kingdon
6190
6191         * sanity.sh (mwrap-7): Update for the noexec fix.
6192
6193         * server.c (server_copy_file): Add comment about noexec.
6194
6195         * update.c (checkout_file): Handle noexec case involving revbuf
6196         and modes.
6197         (update_fileproc): In case T_NEEDS_MERGE, let merge_file take care
6198         of noexec, so it can tell the user if there would be conflicts.
6199         (merge_file): Print "conflicts found in FILE" message
6200         regardless of noexec.  Add comment about checking for whether the
6201         file already contained the changes, and noexec.
6202         * sanity.sh (conflicts-192a): New test, for this.
6203
6204 1998-10-20  Jim Kingdon
6205
6206         Use the gzip library on the server.  Probably doesn't speed things
6207         up as currently implemented, but does avoid hassles in terms of
6208         finding an external gzip program.
6209         * zlib.c, server.h (gunzip_and_write, read_and_gzip): Now returns
6210         whether a fatal error occurred, rather than expecting error (1,
6211         ...) to work.
6212         * client.c (update_entries, send_modified): Change callers.
6213         * server.c (receive_file): Rewrite gzip code to use
6214         gunzip_and_write rather than filter_through_gunzip.
6215         (server_updated): Likewise, use read_and_gzip rather than
6216         filter_through_gzip.
6217         * client.c, client.h (filter_through_gzip, filter_through_gunzip),
6218         run.c, cvs.h (filter_stream_through_program): Removed; no longer used.
6219         * sanity.sh (server): New tests server-4 and server-5 test
6220         this feature (note that CVS 1.10 also passes these tests; the
6221         behavior is supposed to be unchanged).
6222
6223 1998-10-19  Jim Kingdon
6224
6225         * sanity.sh (multiroot3): New test, tests for a few more
6226         multiroot cases.
6227
6228         * lock.c (lock_name): Set the permissions on each directory we
6229         create to that of the parent directory.
6230         * sanity.sh (lockfiles): New chmod and tests lockfiles-7a and
6231         lockfiles-7b test for this.  Adjust lockfiles-5 for new text of
6232         error message.
6233
6234 1998-10-15  Jim Kingdon
6235
6236         * server.c (requests): Set RQ_ROOTLESS for "Set".
6237         * sanity.sh (info): Also clean up $HOME/.cvsrc.
6238         (server): Test that we can send Set before Root (had been tested
6239         by crerepos-6b, but only if you ran the info test first).  Tests
6240         for this fix.
6241
6242 1998-10-14  Jim Kingdon
6243
6244         * subr.c (expand_string): Tweak the algorithm so that the size
6245         that it allocates is generally a power of two.
6246
6247 1998-10-14  Eivind Eklund and Jim Kingdon
6248
6249         * commit.c (commit): For the client, don't worry about whether we
6250         are root.
6251
6252 1998-10-13  Jim Kingdon
6253
6254         * server.h (struct request): Change status field to flags and add
6255         RQ_ROOTLESS.
6256         * client.c (handle_valid_requests, supported_request): Change
6257         status to flags.
6258         * server.c (requests): Change status to flags.  Add RQ_ROOTLESS.
6259         * server.c (server): If not RQ_ROOTLESS, and we haven't gotten a
6260         Root request, give an error.
6261
6262 1998-10-12  Jim Kingdon
6263
6264         * version.c: Slide version number to 1.10.3.1.
6265
6266         * Version 1.10.3.
6267
6268         * sanity.sh (modules2-17): Update for 9 Oct 1998 change to
6269         update_dirent_proc.
6270
6271 1998-10-11  Jim Kingdon
6272
6273         * commit.c (checkaddfile, commit_fileproc): A numeric value for
6274         'tag' does not mean that we are adding on a branch.
6275         * sanity.sh (keywordlog): Adjust this test, to test for this
6276         (replaces comment saying we should be doing it).
6277         (rmadd): Likewise.
6278
6279         * sanity.sh (rmadd): New test, tests for various existing
6280         behaviors with "cvs ci -r".
6281
6282 1998-10-09  Jim Kingdon
6283
6284         * update.c (update_dirent_proc): For local CVS, if the directory
6285         does not exist in the working directory nor in the repository,
6286         just skip it.
6287         * sanity.sh (dirs): New tests dirs-3a, dirs-7 and dirs-8 test for
6288         this and related behaviors.  Note that the new behavior was also
6289         the previous behavior for remote; we are only changing it for local.
6290
6291         * wrapper.c, cvsrc.c, ignore.c: Add comments about ignoring .cvsrc
6292         and friends if we can't find a home directory.
6293         * expand_path.c (expand_path): If we can't find the home
6294         directory, give an error rather than a coredump (or worse).
6295         * login.c (construct_cvspass_filename): Don't use errno in error
6296         message; get_homedir doesn't set it.  Add comment about this
6297         message.
6298
6299 1998-10-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
6300
6301         * diff.c (diff): Set variables to NULL at the start, and free
6302         memory at the end.
6303         * sanity.sh (multiroot2): Add tests for this (before the fix,
6304         multiroot2-12 would abort with "no more than two revisions/dates
6305         can be specified").
6306
6307 1998-10-06  Jim Kingdon  <kingdon@harvey.cyclic.com>
6308
6309         * Makefile.in (installcheck check): Remove references to RCSBIN;
6310         they don't do anything now that RCSBIN is ignored.
6311
6312         * client.c: Clean up horrible confusion about whether stored_mode
6313         or stored_mode_valid (or nothing :-)) indicates whether
6314         stored_mode is allocated.  Should fix crashes (for example, on NT
6315         when the server has renamed multiple files from uppercase to
6316         lowercase).
6317
6318         * sanity.sh (dirs): New tests, tests for some cases involving
6319         admins who do surgery on the repository.
6320
6321 1998-10-03  Johannes Stezenbach <johannes.stezenbach@propack-data.de>
6322
6323         * vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
6324         necessary change the file to be writable temporarily to set its
6325         modification time.
6326
6327 1998-10-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
6328
6329         * client.c (handle_error): Add comment about indicating which
6330         errors are from the server.
6331
6332 1998-10-01  Jim Kingdon  <kingdon@harvey.cyclic.com>
6333
6334         * sanity.sh (devcom-180): Allow one digit day.
6335
6336 1998-09-30  Jim Kingdon  <kingdon@harvey.cyclic.com>
6337
6338         * main.c (main): Don't call Name_Root if -d specified.
6339         * recurse.c (do_recursion, do_dir_proc): Don't check CVS/Root
6340         if -d was specified.
6341         * import.c (import): Indentation fix.
6342         * sanity.sh (multiroot): Update for this change.
6343         (reposmv): New test, tests for this.
6344
6345 1998-09-28  Jim Kingdon  <kingdon@harvey.cyclic.com>
6346
6347         * sanity.sh (multiroot2): New test, tests some nested directory
6348         cases.
6349
6350 1998-09-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
6351
6352         * sanity.sh (multiroot): Change a few comments which said modules
6353         when they meant directories.
6354
6355 1998-09-25  Jim Meyering  <meyering@ascend.com>
6356
6357         * sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
6358         in hostname regexp.
6359
6360 1998-09-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
6361
6362         * sanity.sh (log2): New test log2-7a tests for one error handling
6363         case.  Add a comment about another.
6364
6365 1998-09-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
6366
6367         * sanity.sh: Change crerepos test back to :ext: (for several
6368         reasons; see comments).
6369
6370 1998-09-24  Noel Cragg  <noel@swish.red-bean.com>
6371
6372         * sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
6373         check the operation of "tag" when there are symlinks in the
6374         repository.
6375
6376         * rcs.c (RCS_checkin): remove old code that resolved the symlink
6377         and call resolve_symlink instead.
6378         (RCS_rewrite): call resolve_symlink before doing anything else to
6379         make sure we're operating on the file and not the symlink.
6380
6381         * subr.c (resolve_symlink): new routine -- resolves a symbolic
6382         link chain to its destination.
6383         * cvs.h: add prototype.
6384
6385         * sanity.sh (basica-6.2, basica-6.3): changed match expressions to
6386         reflect new diff output.
6387
6388         * rcs.c (make_file_label): generate labels for files that include
6389         the pathname so that output from "cvs diff" is useable by patch.
6390         Looks like I came up with the mods as Andy Piper
6391         <andyp@parallax.co.uk>; his patch was on the Cyclic unofficial
6392         patches page.
6393
6394         * sanity.sh: change remote access method from ext to fork.  This
6395         results in a significant speed improvement when running the
6396         testsuite.  The ext method on my machine (i586 120MHz Linux 2.0.35
6397         with TCP wrappers installed) runs in 450% of the time of the local
6398         method while the fork method runs in only 150% of the time of the
6399         local method!  Yow!  Am I SWAPPING yet?!
6400         (crerepos-6a, crerepos-6b): change to reflect different error
6401         messages for fork method.
6402         (modes-15): same.
6403
6404         * client.c (connect_to_forked_server): new routine.
6405         (start_server): call the above when method is fork_method.
6406
6407         * root.c: add a new method named "fork".  This method uses the
6408         remote protocol, but does so by forking a "cvs server" process
6409         directly rather than doing "rsh host cvs server" (for example).
6410         This new method has few advantages for day-to-day use, but has
6411         three important benefits for debugging:
6412
6413           1) Most secure installations these days don't allow rsh access.
6414           With this new method, we can still test the remote protocol on
6415           these machines because we don't need to be able to make a local
6416           TCP connection.
6417
6418           2) Even if installations allow rsh access, they almost always
6419           have TCP wrappers to check permissions by IP/hostname.  This
6420           causes a short delay for every connection.  For invocations from
6421           the command line, this doesn't matter much, but it adds up to a
6422           significant amount of time when running the testsuite.
6423
6424           3) On machines that can't (or do not usually) provide rshd
6425           access (I'm thinking of WNT/W95 in particular), we can now run
6426           tests of the remote protocol using this method.  Indeed, we can
6427           run remote protocol tests on any machine that has an
6428           implementation of piped_child().
6429
6430         (parse_cvsroot): handle new method.
6431         (error_exit, xstrdup, isabsolute): new stub functions to use when
6432         compiling root.c with the DEBUG option.
6433         (main): fix a few typos.
6434         * cvs.h (CVSmethod): add fork_method.
6435
6436         * server.c (create_adm_p): use Emptydir as the placeholder
6437         directory instead of "." to avoid problems with "cvs update -d" et
6438         al.
6439
6440 1998-09-22  Noel Cragg  <noel@swish.red-bean.com>
6441
6442         * sanity.sh (devcom-180): fixed typo in regexp.
6443
6444         * main.c (main): remove need_to_create_root and related code
6445         (including CVS_IGNORE_REMOTE_ROOT environment variable).  The
6446         current implementation (just removed) of rewriting the contents of
6447         the CVS/Root file isn't desirable for a number of reasons:
6448
6449           1) Only the top-level CVS/Root directory is updated.  If we're
6450           really interested in pointing our WD at another CVSROOT, we
6451           should have a separate command.
6452
6453           2) With the new multiroot mods, we don't ever want to rewrite
6454           CVS/Root files in the way the removed code did.  Consider:
6455
6456             cvs -d repository1 co a
6457             cd a
6458             cvs -d repository2 co b
6459             cvs -d repository2 update b
6460
6461           The update command would rewrite the contents of a/CVS/Root to
6462           the incorrect value.  Bad.  We then wouldn't be talking to the
6463           correct repository for files in a.
6464
6465           3) The removed code seems to be a quick hack to support working
6466           directories checked out from multiple repositories.  With the
6467           CVS_IGNORE_REMOTE_ROOT variable set, one could perform commands
6468           as in example 2, above, without worring about updating CVS/Root
6469           files.  While in pre-1.10.1 recursive commands wouldn't handle
6470           that working directory hierarchy, one could use commands like
6471           "cvs foo -l" instead.  While not great, this allows you (with a
6472           lot of manual interaction) to have a multiroot WD.  Since we now
6473           have multiroot mods checked in, we don't need this code.
6474
6475         (lookup_command_attribute): while we don't need the
6476         CVS_CMD_USES_WORK_DIR flag anymore (since it only was supporting
6477         the need_to_create_root code), I'm leaving it in.  It may come in
6478         handy at some later date.
6479
6480 1998-09-18  Jim Kingdon  <kingdon@pennington.cyclic.com>
6481
6482         * version.c: Advance version number to 1.10.2.1.
6483
6484         * Version 1.10.2.
6485
6486 1998-09-13  Jim Kingdon  <kingdon@harvey.cyclic.com>
6487
6488         * client.c: Refuse to Copy-file to another directory
6489         * sanity.sh (client): New test, tests for this.
6490
6491         * edit.c (editors_fileproc), watch.c (watchers_fileproc): Use
6492         cvs_output rather than writing to stdout.
6493         * sanity.sh (devcom): Use dotest for tests 178, 180, and 183
6494         (tests that we preserve existing behavior on "cvs editors").
6495
6496         * commit.c (check_fileproc): Don't allow commits in Emptydir.
6497         * sanity.sh (emptydir-8): Test for this change in behavior.
6498
6499         * sanity.sh: Add some compatibility tests to TODO comments at end.
6500
6501 1998-09-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
6502
6503         * wrapper.c (wrap_add): Remove obsolete comment about -m.
6504
6505         * server.c (server_updated): Check for error from CVS_UNLINK.
6506
6507 1998-09-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
6508
6509         * server.c (serve_root): Allocate with malloc, not xmalloc.
6510
6511         * root.c (set_local_cvsroot): Move memory allocation from here...
6512         * server.c (serve_root): ...to here.  Fixes error handling.
6513
6514         * root.c (parse_cvsroot): Don't call check_root_consistent;
6515         parse_cvsroot is only used for local and client.
6516         * root.c (set_local_cvsroot): Move check_root_consistent
6517         functionality from here...
6518         * server.c (serve_root): ...to here.  Fixes error handling.  Also
6519         made the error more explicit, while I am at it.
6520         * server.c (Pserver_Repos): Now static.
6521         * cvs.h: Don't declare it.
6522         * root.c (check_root_consistent): Removed; no longer needed.
6523         * sanity.sh (pserver): New test, tests for this behavior and some
6524         other basic pserver stuff.
6525
6526         * update.c (merge_file): Use cvs_output for "already contains the
6527         differences" message.  Found this one when I actually observed the
6528         out-of-order bug in Real Life(TM).
6529
6530 1998-09-09  Jim Kingdon
6531
6532         * find_names.c (find_dirs): Make sure to zero errno before
6533         going around the loop again.
6534         * find_names.c (find_rcs): Make sure to set save_errno.
6535         (thanks to Alexandre Parenteau for reporting both problems).
6536
6537 1998-09-09  Jim Kingdon  <kingdon@harvey.cyclic.com> and Michael Pakovic
6538
6539         * edit.c (notify_do): Only free line if it is not NULL.
6540
6541 1998-09-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
6542
6543         * cvs.h: dirs_sent_to_server should not be inside
6544         AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
6545         Bishop, thanks).
6546
6547         * lock.c, cvs.h: New variable lock_dir.
6548         * parseinfo.c (parse_config): New option LockDir.
6549         * lock.c (lock_name): New function, abstracts out lock file naming
6550         and also supports LockDir.
6551         * lock.c (lock_simple_remove, Reader_Lock, write_lock, set_lock):
6552         Call it (6 places, to create/remove read/write/master locks).
6553         (Lock_Cleanup): Refuse to reenter this function.
6554         * sanity.sh (lockfiles): New test, tests for this feature.
6555
6556 1998-09-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
6557
6558         * sanity.sh (multiroot): Expect ${TESTDIR} in output instead of
6559         assuming it is /tmp/cvs-sanity (thanks to Mark D. Baushke of Cisco).
6560         Clean up working directory when done (fixes apparent thinko).
6561
6562         * server.c (create_adm_p): Fix one "return" which didn't return a
6563         value.
6564         (dirswitch): Check for errors from create_adm_p.
6565
6566         * sanity.sh: Set LC_ALL rather than just LC_COLLATE.
6567
6568 Wed Sep  2 02:30:22 1998  Jim Kingdon  <kingdon@pennington.cyclic.com>
6569
6570         * version.c: Bump version number to 1.10.1.1.
6571
6572         * Version 1.10.1.
6573
6574 1998-09-01  Jim Kingdon  <kingdon@harvey.cyclic.com>
6575
6576         Administrative note regarding Noel's changes to allow one to
6577         switch from one CVS root to another in a single command: The
6578         ChangeLog entries for the changes which Noel just checked in
6579         appear for 1998-09-01, 1998-08-28, 1998-08-25, 1998-08-19, and
6580         1998-08-18, rather than being all together.
6581
6582         * main.c (set_root_directory): Fix whitespace.
6583         (main): Nuke new -m option and just have that message controlled
6584         by -t.
6585         * server.c (server): Revert the CVS_SERVER_SLEEP code back the way
6586         it was in CVS 1.10.  Attaching to the parent process is relatively
6587         boring (you can just run "cvs server" under a debugger instead),
6588         but connecting to the child process is what the old code was for.
6589         * recurse.c, server.c: Remove DEBUG_NJC code.
6590
6591 1998-09-01  Noel Cragg  <noel@swish.red-bean.com>
6592
6593         * server.c (do_cvs_command): add another environment variable,
6594         CVS_SERVER_SLEEP2, after forking to pause the program so one can
6595         attach a debugger.
6596
6597         * sanity.sh (crerepos): clean up crerepos-18 now that multiroot
6598         works in this case.
6599         (multiroot): finalize tests for local vs. remote operation.
6600
6601         * recurse.c (start_recursion): near the beginning, save the list
6602         of directories to spoof as command-line arguments, if necessary.
6603         Use that list near the end and call send_file_names to send those
6604         arguments to the server.
6605         (do_argument_proc): removed, since we call send_file_names now.
6606
6607         * main.c (main): re-initialize dirs_sent_to_server on each pass
6608         through the loop for each CVSROOT.
6609
6610         * cvs.h: add proto for global variable which keeps track of which
6611         directories have been sent to the server when in client mode.
6612
6613         * client.c (is_arg_a_parent_or_listed_dir): new function.
6614         (arg_should_not_be_sent_to_server): new function.  Tries to decide
6615         whether the given argument should be sent to the server, based on
6616         the current CVSROOT and the list of directories sent to the
6617         server.
6618         (send_repository): add the directory name to the list of
6619         directories sent to the server.
6620         (send_file_names): call arg_should_not_be_sent_to_server.
6621
6622         * add.c (add): switch the order of send_files and send_file_names
6623         to make multiple repository support possible.  send_files needs to
6624         create a list of directories being requested so that
6625         send_file_names can decide which command-line arguments to send to
6626         the server for the given current CVSROOT.
6627         * admin.c (admin): same.
6628         * commit.c (commit): same.
6629         * diff.c (diff): same.
6630         * edit.c (editors): same.
6631         * log.c (cvslog): same.
6632         * rcs.c (annotate): same.
6633         * remove.c (cvsremove): same.
6634         * status.c (cvsstatus): same.
6635         * tag.c (cvstag): same.
6636         * update.c (update): same.
6637         * watch.c (watch_addremove): same.
6638         (watchers): same.
6639
6640 1998-08-31  Jim Kingdon  <kingdon@harvey.cyclic.com>
6641
6642         * sanity.sh: Remove "debug" function; it was apparently checked
6643         in accidentally by Norbert Kiesel's change.
6644
6645 1998-08-31  Norbert Kiesel  <nk@iname.com>
6646
6647         * release.c (release): modify last patch to release so that
6648         save_cwd is called only once and restore_cwd is always called when
6649         neccessary.  Also fixed a tiny memory leak.
6650
6651         * sanity.sh (release): added some more tests for "cvs release"
6652         including a test with two dirs and a "no" for the first one (which
6653         fails without the above patch).
6654
6655 1998-08-28  Noel Cragg  <noel@swish.red-bean.com>
6656
6657         * sanity.sh (crerepos-18): add new comment and change test
6658         slightly to support multiroot.
6659         (multiroot): add more tests.
6660
6661         * server.c (create_adm_p): new function.
6662         (dirswitch): call create_adm_p.  Modify the code to always write a
6663         new CVSADM_REP file, since create_adm_p might have put a
6664         placeholder there and our value is guaranteed to be correct.
6665         (server): move the CVS_SERVER_SLEEP check here so we can debug
6666         things at an earlier stage.
6667
6668         * recurse.c (start_recursion): add large comment about the ideal
6669         solution to the "Argument xxx" problem.
6670
6671         * main.c (main): move position of debugging comment for -m flag.
6672
6673         * diff.c (diff): clear a static variable.
6674
6675         * client.c (send_file_names): check to see if we should send this
6676         argument to the server based on the contents of the appropriate
6677         CVSADM directory.  This avoids "nothing known about foo" messages
6678         and problems with duplicate modules names in multiple
6679         repositories.
6680         (send_a_repository): change method of calculating toplevel_repos
6681         to support multiple CVSROOTs.
6682         (start_server): clear some static variables.
6683
6684 1998-08-28  Jim Meyering  <meyering@ascend.com>
6685
6686         * sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
6687         `Operation not permitted'.  Solaris2.5.1 gets a different error:
6688         `Invalid argument'.
6689
6690 1998-08-26  Eric M. Hopper
6691
6692         * sanity.sh: Set LC_COLLATE to "C".
6693
6694 1998-08-25  Noel Cragg  <noel@swish.red-bean.com>
6695
6696         * sanity.sh (multiroot): new set of tests to check the behavior of
6697         multiroot.
6698
6699         * diff.c (diff): set options value to NULL after freeing to reset
6700         the state for the next time around.
6701
6702 1998-08-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
6703
6704         Fix problems with trying to rename an open file:
6705         * rcs.c, rcs.h (RCS_setattic): New function.
6706         * commit.c (remove_file, checkaddfile): Call it.
6707
6708 1998-08-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
6709
6710         * release.c (release): Use save_cwd and restore_cwd to get back to
6711         where we started, rather than hoping that CVS_CHDIR ("..") will do
6712         something useful.  This removes the need for most of
6713         release_delete, so remove that function and inline what is left.
6714         * sanity.sh (basicc): Adjust tests for this fix, also some tests
6715         with multiple arguments to "cvs release" (in the non-"-d"-case, it
6716         would seem like the old code would CVS_CHDIR into directories and not
6717         CVS_CHDIR back, but I'm not going to investigate this and it
6718         should be a moot point with this fix.).
6719
6720         * sanity.sh (basicc): Add tests for a serious bug in "cvs release
6721         -d .".
6722
6723         More error handling fixes:
6724         * ignore.c (ignore_files): Check for errors from opendir and
6725         readdir.
6726         * find_names.c (Find_Names): Check for errors from find_rcs.
6727         (find_rcs, find_dirs): Comment error handling better; also return
6728         an error if we got one from readdir.
6729         * filesubr.c (deep_remove_dir): Also check for errors from readdir.
6730         * import.c (import_descend): Print message on error from opendir
6731         or readdir.
6732         * commit.c (remove_file): Check for errors from CVS_MKDIR and
6733         CVS_RENAME.
6734         (remove_file): No need to remove the file in the temporary
6735         directory; server.c now informs time_stamp_server of what is going
6736         on via CVS/Entries rather than a file with a kludged up timestamp.
6737         * client.c, entries.c, login.c, logmsg.c, mkmodules.c, patch.c,
6738         remove.c, update.c: Check for errors from unlink_file.
6739         * mkmodules.c (write_dbmfile, rename_dbfile, rename_rcsfile):
6740         Check for errors from fclose, CVS_RENAME, and CVS_STAT.
6741         * mkmodules.c (checkout_file): Clarify error handling convention.
6742         * mkmodules.c (mkmodules): Call checkout_file accordingly.
6743         * entries.c (Entries_Open): Check for errors from fclose.
6744
6745 1998-08-21  Ian Lance Taylor  <ian@cygnus.com>
6746
6747         * import.c (import): Output suggested merge command using
6748         cvs_output_tagged rather than just cvs_output.  Don't put
6749         CVSroot_cmdline in the log file.
6750         * client.c (importmergecmd): New static struct.
6751         (handle_mt): Handle +importmergecmd tag.
6752         * sanity.sh (import): Use an explicit -d in importb-2, to test
6753         whether it is reported in the suggested merge command.
6754
6755 1998-08-20  Ian Lance Taylor  <ian@cygnus.com>
6756
6757         * sanity.sh (import): Rewrite tests to use dotest.
6758
6759 1998-08-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
6760
6761         * sanity.sh: Add comments about binary files and cvs import.
6762
6763 1998-08-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
6764
6765         * sanity.sh (importc): Use ${username} in one place where I had
6766         missed it.
6767
6768         Make import -d work client/server:
6769         * client.c, client.h (client_process_import_file): Take new
6770         argument, for whether -d is specified, and send Checkin-time
6771         request if it is set.
6772         * import.c (import_descend): Pass it.
6773         * main.c, cvs.h (date_to_internet): New function.
6774         * server.c (server_modtime): Call date_to_internet.
6775         * server.c (serve_checkin_time): New function.
6776         (requests): Add "Checkin-time" request.
6777         (serve_modified): If it was sent, set the timestamp in the
6778         temporary directory.
6779         * import.c (import): If the client sends a -d option, complain.
6780         (import): For the server, always use the timestamps from the temp
6781         directory.
6782         (import): Don't send a -d option to the server.
6783         * sanity.sh (importc): Add tests for import -d.
6784
6785 Wed Aug 19 15:19:13 1998  Larry Jones  <larry.jones@sdrc.com>
6786
6787         * sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
6788         of .* since we expect to match multiple lines.
6789
6790 1998-08-19  Ian Lance Taylor  <ian@cygnus.com>
6791
6792         * cvs.h (CVSroot_cmdline): Declare.
6793         * root.c (CVSroot_cmdline): Define.
6794         * main.c (main): Set CVSroot_cmdline if the -d option is used.
6795         * import.c (import): If CVSroot_cmdline is not NULL, then mention
6796         an explicit -d option in the suggested merge command line.
6797
6798 Wed Aug 19 00:28:50 1998  Noel Cragg  <noel@swish.red-bean.com>
6799
6800         * recurse.c (do_dir_proc): don't muck with CVS/Root directories
6801         when running in server mode.
6802         (do_recursion): same.
6803
6804         * main.c (main): add the command-line option `m' to help debug the
6805         multiroot environment; it prints out the value of CVSROOT for each
6806         iteration through the main loop.  Also, changed the main loop so
6807         that it gets executed only once when running in server mode (the
6808         server will only deal with a single CVSROOT).
6809
6810         * recurse.c (do_recursion): change default for
6811         PROCESS_THIS_DIRECTORY to true; we should always process a
6812         directory's contents unless there's an existing CVS/Root file with
6813         a different root than the current root to tell us otherwise.
6814         (do_dir_proc): same.
6815
6816 Tue Aug 18 14:30:59 1998  Noel Cragg  <noel@swish.red-bean.com>
6817
6818         * recurse.c (do_recursion): check the current value of CVS/Root
6819         and add it to our list of CVSROOTs if it doesn't exist.  Decide
6820         whether or not to process files in this directory based based on
6821         the value of CURRENT_ROOT.
6822         (do_dir_proc): same.
6823
6824         * main.c: add two new globals -- root_directories and current_root
6825         -- which keep track of the values of CVSROOT we've seen and which
6826         value of CVSROOT we're currently processing.
6827         (main): put the main loop for stepping through cvsroot values
6828         here, since we might need to send command-specific arguments for
6829         every unique non-local cvsroot.  Moved blocks of code around so
6830         that one-time initializations happen first (outside the loop) and
6831         the other stuff happens inside the loop.
6832         (set_root_directory): helper function.
6833
6834         * cvs.h: add prototypes for root_directories and current_root, two
6835         new globals for keeping track of multiple CVSROOT information.
6836
6837 1998-08-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
6838
6839         * sanity.sh: Don't assume that the shell leaves $^ unexpanded in
6840         an unquoted here-document (suggested by Bart Schaefer to help when
6841         zsh is the shell).
6842
6843 1998-08-17  Ian Lance Taylor  <ian@cygnus.com>
6844
6845         * commit.c (checkaddfile): Don't call fix_rcs_modes.
6846         (fix_rcs_modes): Remove.
6847
6848 1998-08-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
6849
6850         * create_adm.c (Create_Admin): Don't condition traces on
6851         SERVER_SUPPORT; SERVER_SUPPORT shouldn't do (much of) anything
6852         independent of server_active.
6853
6854         * sanity.sh (binfiles3): New test, for yet another binary file
6855         bug (sigh).  Thanks to Jason Aten for reporting this one.
6856
6857 1998-08-15  Jim Kingdon  <kingdon@harvey.cyclic.com>
6858
6859         * rcscmds.c (call_diff_write_output): Update to reflect new
6860         calling convention for the write_output callback.
6861
6862 1998-08-15  Jim Meyering  <meyering@ascend.com>
6863
6864         * update.c (merge_file): Warn about failed unlink when not due
6865         to ENOENT.
6866
6867         * server.h (CLIENT_SERVER_STR): New macro
6868         * create_adm.c (Create_Admin): Use it.
6869         * entries.c (Scratch_Entry, Register): Use it.
6870         * filesubr.c (copy_file, xchmod, rename_file, unlink_file): Use it.
6871         * history.c (history_write): Use it.
6872         * modules.c (do_module): Use it.
6873         * no_diff.c (No_Difference): Use it.
6874         * run.c (run_popen): Use it.
6875         * server.c (server_register): Use it.
6876
6877 1998-08-14  Jim Meyering  <meyering@ascend.com>
6878
6879         * hardlink.c (lookup_file_by_inode): Use existence_error rather than
6880         comparing errno to ENOENT directly.
6881
6882         * client.c (copy_a_file): Unlink destination before doing copy.
6883         * sanity.sh (join-readonly-conflict): New test for this -- it would
6884         fail only in client/server mode.
6885
6886         * sanity.sh (rcsmerge-symlink-4): Don't use `test -L', it's not
6887         portable.  Instead, match against the output of `ls -l'.
6888         (dotest tag8k-16): Simplify tag-construction code and at the same
6889         time, avoid using expr's `length' and `substr' operators.  Not
6890         all versions of expr support those.
6891
6892 1998-08-14  Jim Kingdon  <kingdon@harvey.cyclic.com>
6893
6894         * version.c: Bump version number to 1.10.0.1.
6895
6896 Thu Aug 13 11:15:24 1998  Noel Cragg  <noel@swish.red-bean.com>
6897
6898         * version.c: Change version number to 1.10 and name to `Halibut'.
6899
6900         * sanity.sh (rcslib): new tests to check behavior of symlinks in
6901         the repository.
6902
6903 Wed Aug 12 15:39:38 1998  Noel Cragg  <noel@swish.red-bean.com>
6904
6905         * main.c (lookup_command_attribute): the `annotate' command
6906         shouldn't require access to the repository.  Add comment about
6907         commands that do not use the working directory.
6908
6909 Mon Aug 10 10:26:38 1998  Noel Cragg  <noel@swish.red-bean.com>
6910
6911         * version.c: Change version number to 1.9.30.
6912
6913 Thu Aug  6 17:44:50 1998  Noel Cragg  <noel@swish.red-bean.com>
6914
6915         * server.c (serve_rdiff): change the name of the command (for
6916         error reporting, etc.) from "patch" to "rdiff."
6917         (serve_remove): rename from "cvsremove" to "remove."
6918
6919         * main.c (lookup_command_attribute): the `rdiff' command shouldn't
6920         require write access to the repository.
6921
6922 1998-08-06  David Masterson of kla-tencor.com
6923         and Jim Kingdon
6924
6925         * commit.c (commit_filesdoneproc): Don't call strlen ("CVSROOT")
6926         from within the assert statement.  Apparently HP's cc compiler on
6927         HPUX 10.20 has trouble with that.
6928
6929 1998-08-06  Jim Kingdon  <kingdon@harvey.cyclic.com>
6930
6931         * rcs.c (RCS_checkin): When adding branch, if there is a lock on
6932         the branchpoint owned by someone else, leave it alone.  This
6933         restores CVS 1.9 (RCS 5.7) behavior, fixing a core dump.
6934         * sanity.sh (reserved): New tests reserved-16 through reserved-19
6935         test for this fix.
6936
6937 1998-08-05  Jim Kingdon  <kingdon@harvey.cyclic.com>
6938
6939         * sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
6940         This makes it work with GNU expr 1.12 as well as 1.16.
6941
6942 Sun Aug  2 20:27:44 1998  Noel Cragg  <noel@swish.red-bean.com>
6943
6944         * mkmodules.c: add comment about TopLevelAdmin for the initial
6945         contents of CVSROOT/config.
6946
6947 1998-07-29  Jim Kingdon  <kingdon@harvey.cyclic.com>
6948
6949         * rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
6950         is defined.
6951
6952 Tue Jul 28 19:33:08 1998  Noel Cragg  <noel@swish.red-bean.com>
6953
6954         * version.c: Change version number to 1.9.29.
6955
6956         * rcs.c (RCS_checkin): add code to follow symbolic links in the
6957         repository.
6958
6959 Sun Jul 26 05:14:41 1998  Noel Cragg  <noel@swish.red-bean.com>
6960
6961         * This set of changes reverts the code to pre-1.9.2 behavior and
6962         does not create CVS directories at top-level (except for the
6963         obvious "cvs co .").  Added a new configuration option to switch
6964         between 1.9 and 1.9.2 behavior.
6965
6966         * recurse.c (do_argument_proc): new function.
6967         (start_recursion): in the case that we've done a command from
6968         top-level but have no CVS directory there, the behavior should be
6969         the same as "cvs <cmd> dir1 dir2 dir3...".  Make sure that the
6970         appropriate "Argument" commands are sent to the server by calling
6971         walklist with do_argument_proc.
6972
6973         * client.c (call_in_directory): only create the top-level CVS
6974         directory when we're checking out "." explicitly.  The server will
6975         force creation of this directory in all other cases.
6976
6977         * checkout.c (checkout_proc): only generate the top-level
6978         directory when the TopLevelAdmin=yes.  Also send a message to the
6979         client to do the same.
6980
6981         * parseinfo.c (parse_config): handle TopLevelAdmin option.  Set
6982         top_level_admin.
6983
6984         * main.c: add new variable top_level_admin.
6985         * cvs.h: add extern definition for above.
6986
6987         * sanity.sh: since we're reverting to pre 1.9.2 behavior for
6988         top-level CVS directories, I needed to make changes to a bunch of
6989         tests that made assumptions about said directories.
6990         (preamble): make sure to add read and execute access to everything
6991         in TMPDIR before removing, since some tests make things read-only.
6992         (basicb-1a, basicb-1b, basicb-9a, basicb-9b): use dotest_fail
6993         because these tests check for the non-existant top-level CVS
6994         directory.
6995         (basicc-3, emptydir-6, emptydir-7, crerepos-6): use "rm -rf" so it
6996         won't complain when trying to remove the non-existant top-level
6997         CVS directory.
6998         (106.5): remove imported-f2-orig.tmp.
6999         (modules2-10, emptydir-4, abspath-1ba, abspath-1bb): cd into the
7000         directory where files exist before using the "add" command so cvs
7001         can find CVSROOT in CVS/Root.
7002         (cvsadm-2): look at a different CVS/Repository file, since the
7003         top-level one doesn't exist.
7004         (taginfo-3): create the directory in the repository directly
7005         rather than relying on the fact that the top-level CVS directory
7006         was created in a previous test.
7007         (serverpatch-6): update first-dir explicity, rather than relying
7008         on the non-existant top-level CVS/Entries file.
7009         (crerepos-18): look at CVS/Repository in a subdirectory rather
7010         than in the non-existant top-level CVS directory.
7011         (toplevel): add code to set TopLevelAdmin=yes.
7012         (toplevel2): new tests -- same as toplevel, but TopLevelAdmin=no.
7013
7014 1998-07-21  Jim Meyering  <meyering@ascend.com>
7015
7016         * rcs.c (RCS_checkout): Hoist frees of rev and value.
7017         Warn and return 1 in several cases rather than exiting via
7018         `error (1, ...'.  The latter could abort a multi-file commit
7019         in mid-stream, leaving stale locks in the repository.
7020
7021 1998-07-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
7022
7023         * build_src.com (rcscmds.c): Also look for include files in
7024         [-.diff], just like Ian's 1998-06-18 change to Makefile.in
7025
7026 1998-07-14  Jim Kingdon  <kingdon@harvey.cyclic.com>
7027
7028         * tag.c (pretag_proc), rtag.c (pretag_proc): Don't pass RUN_REALLY
7029         to run_exec.  This means that taginfo does not get executed if the
7030         global -n option is specified.  Which makes it like loginfo, -i,
7031         -e, -o, -t, -u in modules, editinfo, and verifymsg and unlike
7032         commitinfo.  The old behavior was pretty bad in the sense that it
7033         doesn't provide any way to log only the tags which actually
7034         happen.
7035         * sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
7036
7037 1998-07-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
7038
7039         * sanity.sh (ann-id): Write the test so that it tests for the
7040         current (buggy) behavior.
7041
7042         * sanity.sh (taginfo): Also clean up cvsroot/first-dir.
7043
7044 1998-07-12  Jim Meyering  <meyering@ascend.com>
7045
7046         * sanity.sh (ann-id): New (currently failing) test for bug in how
7047         rcs keywords are expanded in the output of `cvs annotate'.
7048
7049 1998-07-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
7050
7051         * sanity.sh (taginfo): Write the TESTDIR into the script rather
7052         than having the script look at the environment.  This means that
7053         it will work if TESTDIR is set by sanity.sh as well as if
7054         sanity.sh finds TESTDIR in the environment.
7055
7056 1998-07-11  Jim Kingdon  <kingdon@harvey.cyclic.com>
7057
7058         * tag.c (check_fileproc): Calculate the revision to be tagged the
7059         same way that tag_fileproc does.
7060         * sanity.sh (taginfo): New tests, test for this (before this fix,
7061         brtag had said 1.1 not 1.1.2.1).
7062
7063 1998-07-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
7064
7065         * sanity.sh (unedit-without-baserev): Also clean up "2" directory.
7066
7067 1998-07-08  Jim Kingdon  <kingdon@harvey.cyclic.com>
7068
7069         * edit.c (unedit_fileproc): If the Baserev file is missing, don't
7070         get the working file from CVS/Base.  The previous code could get
7071         you version 1.1 of the working file and put 1.2 in CVS/Entries.
7072         * sanity.sh (unedit-without-baserev): New tests test for this.
7073
7074 1998-07-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
7075
7076         * sanity.sh (unedit-without-baserev): Move the test itself to be
7077         in the same order as in the "tests" variable.
7078
7079 1998-07-02  Ian Lance Taylor  <ian@cygnus.com>
7080
7081         * rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>.  Don't
7082         declare vasprintf.
7083         (call_diff_printf_output): Remove.
7084         (call_diff_stdout_callbacks): Don't initialize printf_output
7085         field--it has been removed from the interface.
7086         (call_diff_file_callbacks): Likewise.
7087
7088 1998-07-01  Jim Meyering  <meyering@ascend.com>
7089
7090         * edit.c (unedit_fileproc): Handle the case in which base_get
7091         returns a NULL baserev.  That happens when a file being `unedit'ed
7092         exists in the CVS/Base directory, but isn't listed in the CVS/Baserev
7093         file.  The one case I've seen had no Baserev file at all.  The symptom
7094         (if you're lucky) is a segmentation fault upon unedit.  If you use
7095         SunOS4.1.4 for which printf prints NULL pointers as `(null)', your
7096         unedit command will complete normally, but it will have corrupted
7097         your CVS/Entries file and a subsequent update may result in an
7098         assertion failure, a core dump, and a stale lock in the repository.
7099         * sanity.sh (unedit-without-baserev): New test for this.
7100
7101 1998-07-01  Andy Mortimer of aeat.co.uk
7102         and Jim Kingdon  <kingdon@harvey.cyclic.com>
7103
7104         * server.c (server_updated): Use a prototype if we are using them
7105         for declarations.
7106
7107 1998-06-29  Jim Kingdon  <kingdon@harvey.cyclic.com>
7108
7109         * sanity.sh (commit-readonly): Protect keyword against expansion
7110         in sanity.sh itself.  Keep the keyword in the file which we check
7111         in (or else this fails to test for the RCS_checkout change).
7112
7113 1998-06-27  Jim Meyering  <meyering@ascend.com>
7114
7115         * rcs.c (RCS_checkout): If opening the local workfile fails due to
7116         lack of write access, try to chmod the file and retry the open.
7117         Before, a commit could fail part way through merely because the
7118         open to rewrite with newly expanded rcs keywords would fail.  It's
7119         easy to make this happen if you use `cvs -r' or CVSREAD and you
7120         apply a patch to one of your read-only source files -- patch
7121         preserves the read-only setting for the file and your next commit
7122         will fail after committing that file, but before rewriting
7123         (checking out) your working copy.
7124         * sanity.sh (commit-readonly): New test for this.
7125
7126 1998-06-25  Jim Kingdon  <kingdon@harvey.cyclic.com>
7127
7128         * update.c (patch_file): Update comments regarding context diffs
7129         to reflect diff library.
7130
7131 1998-06-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
7132
7133         * sanity.sh (modules4): Add tests for reversing the order of the
7134         "!first-dir/sdir" and "first-dir".
7135
7136 1998-06-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
7137         and Dave Wolfe@Motorola.
7138
7139         * sanity.sh (modes2): Touch the file before chmod'ing it.
7140
7141 1998-06-21  Ian Lance Taylor  <ian@cygnus.com>
7142
7143         * update.c (merge_files): Revert changes of 1998-06-19.  Instead,
7144         register a merged file with a dummy time stamp.  Only set
7145         last_register_time if we need to.
7146         (join_file): Likewise.  Always register a merged file, not just
7147         when the merge fails.
7148
7149 1998-06-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
7150
7151         * call_diff_write_output, call_diff_printf_output,
7152         call_diff_flush_output, call_diff_write_stdout, call_diff_error,
7153         call_diff_stdout_callbacks, call_diff_file_callbacks): Re-indent.
7154
7155 1998-06-19  Ian Lance Taylor  <ian@cygnus.com>
7156
7157         * update.c (merge_file): Make sure the time stamp of the file is
7158         different from the time stamp we register in the Entries file.
7159         (join_file): Likewise.
7160
7161 1998-06-18  Ian Lance Taylor  <ian@cygnus.com>
7162
7163         * rcscmds.c: Include <stdio.h>.  Include either <stdarg.h> or
7164         <varargs.h>.  Declare vasprintf.
7165         (call_diff_write_output): New static function.
7166         (call_diff_printf_output): New static function.
7167         (call_diff_flush_output): New static function.
7168         (call_diff_write_stdout): New static function.
7169         (call_diff_error): New static function.
7170         (call_diff_stdout_callbacks): New static variable.
7171         (call_diff_file_callbacks): New static variable.
7172         (call_diff): Don't sleep.  Use a callback structure when calling
7173         the diff library.
7174         (call_diff3): Likewise.
7175
7176         * rcscmds.c: Include diffrun.h.
7177         (call_diff, call_diff3): Pass NULL callback parameter.
7178         (diff_run, diff3_run): Don't declare.
7179         * Makefile.in (rcscmds.o): New target, to use -I for diff
7180         directory.
7181         (zlib.o): Depend upon zlib.h.
7182
7183 1998-06-09  Mike Sutton@SAIC
7184
7185         Make it compile with Sun's bundled K&R C compiler:
7186         * rcs.c (count_delta_actions): Change to static to match
7187         declaration.
7188         * client.c (handle_wrapper_rcs_option): Rename error label to
7189         handle_error to avoid clash with function name.
7190
7191 1998-06-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
7192
7193         * rcs.c (RCS_delete_revs): If we are trying to delete all
7194         revisions, give an error rather than assertion failed.
7195         * sanity.sh (basicb): New tests basicb-o* test for this.
7196
7197 1998-06-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
7198
7199         * add.c (add): Only send "Directory" requests if we need to.
7200
7201 1998-06-02  Assar Westerlund  <assar@sics.se>
7202
7203         * client.c: Check for HAVE_GSS_C_NT_HOSTBASED_SERVICE rather than
7204         assuming that GSS_C_NT_HOSTBASED_SERVICE is a macro.
7205         * server.c: Likewise.
7206
7207 1998-06-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
7208
7209         * fileattr.c (fileattr_read): Check for NULL return from strchr.
7210         * sanity.sh (devcom3): New test devcom3-10 checks for this.
7211
7212 1998-06-01  Assar Westerlund  <assar@sics.se>
7213         and Ian Lance Taylor  <ian@cygnus.com>
7214
7215         * client.c: If HAVE_GSSAPI_H, include <gssapi.h>.  Only include
7216         <gssapi/gssapi.h> if HAVE_GSSAPI_GSSAPI_H.  Only include
7217         <gssapi/gssapi_generic.h> if HAVE_GSSAPI_GSSAPI_GENERIC_H.
7218         (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
7219         (connect_to_gserver): Use GSS_C_NT_HOSTBASED_SERVICE instead of
7220         gss_nt_service_name.
7221         * server.c: Same header file changes.
7222         (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
7223         (gserver_authenticate_connection): Use GSS_C_NT_HOSTBASED_SERVICE
7224         instead of gss_nt_service_name.
7225
7226 1998-06-01  Jim Meyering  <meyering@ascend.com>
7227
7228         * sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
7229
7230 1998-05-26  Jim Kingdon  <kingdon@harvey.cyclic.com>
7231
7232         * rcs.c (annotate): Call tag_check_valid like the other functions
7233         which have a -r option.
7234         * sanity.sh (ann): New test ann-14 tests for this.
7235
7236 1998-05-24  Jim Kingdon  <kingdon@harvey.cyclic.com>
7237
7238         * sanity.sh (importc): New tests importc-5 through importc-8 test
7239         for a (fairly obscure) regression from CVS 1.9.
7240
7241 1998-05-23  Jim Kingdon  <kingdon@harvey.cyclic.com>
7242
7243         * sanity.sh (modules2): Add comment listing cvs release tests.
7244         (info): New test info-cleanup-0 tests "cvs -n release".
7245
7246         * rcs.c (rcsbuf_getid): Remove semicolon at end of #undef.  I'm
7247         kind of surprised that compilers accepted this at all, but
7248         removing it squelches a warning for some compilers.
7249
7250         * version.c: Change version number to 1.9.28.1.
7251
7252         * Version 1.9.28.
7253
7254 1998-05-22  Jim Kingdon  <kingdon@harvey.cyclic.com>
7255
7256         * rcs.c (RCS_cmp_file): Check for errors from CVS_FOPEN.  This
7257         restores the CVS 1.9 behavior (fatal error if we can't open the
7258         file), and corrects an apparent oversight in Ian's 13 Apr 1997
7259         change.
7260         * sanity.sh (modes2): New test, tests for this.
7261
7262 1998-05-22  Ian Lance Taylor  <ian@cygnus.com>
7263
7264         * server.c (server_updated): Correct test for whether to unlink
7265         the file.
7266
7267 1998-05-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
7268
7269         * wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
7270         serious bug can be fixed.
7271
7272 1998-05-15  Jim Kingdon  <kingdon@harvey.cyclic.com>
7273
7274         * checkout.c (checkout): Call server_pathname_check on the
7275         argument to "cvs co -d".
7276         * server.c (server_pathname_check): Add comment about how we could
7277         be handling absolute pathnames.
7278         * sanity.sh (abspath): Rewrite the tests which run "cvs co -d /foo"
7279         for remote, to reflect this.
7280
7281         * sanity.sh (abspath): Also do the "cannot rename" work-around for
7282         abspath-7d.
7283
7284 1998-05-13  Jim Kingdon  <kingdon@harvey.cyclic.com>
7285
7286         * commit.c (commit_filesdoneproc): Free admin_dir when done with it.
7287
7288 1998-05-13  Jim Meyering  <meyering@ascend.com>
7289
7290         * sanity.sh (editor): Change bogus sed command, `s/^/x&/g', to `s/^/x/'.
7291         The former exercised a bug in GNU sed-3.01-beta3.
7292         (emptydir-8): Add `Rebuilding administrative file database' message,
7293         since now it does that.
7294         * commit.c (commit_filesdoneproc): Pass only the admin directory
7295         pathname to mkmodules.
7296         Remove #if 0, now that it's fixed.
7297
7298         * status.c (cvsstatus): Rename from `status' to avoid shadowing
7299         lots of locals and parameters by the same name.
7300         * server.c (serve_status): Update caller.
7301         * main.c (cmds[]): Update table entry.
7302         * cvs.h: Update prototype.
7303
7304         * commit.c (commit_filesdoneproc): Remove trailing blanks.
7305         (commit) [CLIENT_SUPPORT]: Remove unnecessary (and local-shadowing)
7306         declaration of `err'.
7307         Rename global `tag' to `saved_tag' to avoid overshadowing `tag'
7308         parameters of three functions.
7309         Rename global `message' to `saved_message' to avoid overshadowing
7310         `message' parameter of a function.
7311         Rename global `ulist' to `saved_ulist' and move dcl up with others.
7312
7313 1998-05-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
7314
7315         * commit.c (commit_filesdoneproc): #if 0 the new code until it can
7316         be fixed.
7317
7318         * commit.c (commit_filesdoneproc): Add comment explaining last
7319         change.
7320
7321 1998-05-12  Jim Meyering  <meyering@ascend.com>
7322
7323         * commit.c (commit_filesdoneproc): Call mkmodules not just when
7324         committing a file directly under CVSROOT, but also when committing
7325         files in subdirectories of CVSROOT.
7326
7327 1998-05-08  Jim Meyering  <meyering@ascend.com>
7328
7329         * filesubr.c (xreadlink):  NUL-terminate the symbolic link name.
7330         Use a much smaller initial buffer length.
7331         Test errno only if readlink fails.
7332         Use xstrdup then free the original link name so we don't waste space.
7333
7334 1998-05-02  Jim Meyering  <meyering@ascend.com>
7335
7336         * rcs.c (rcsbuf_getword): Fix off-by-one error that would result in
7337         an abort (the first one in rcsbuf_getkey) when operating on on some
7338         ,v files with over 8192 bytes of tag and branch info.
7339
7340 1998-05-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
7341
7342         * sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
7343         a numeric branch.
7344
7345 1998-05-02  Jim Kingdon  <kingdon@harvey.cyclic.com>
7346
7347         * rcs.c: Add comments about getting rid of rcsbuf_getid,
7348         rcsbuf_getword, and rcsbuf_getstring.
7349
7350         * sanity.sh (abspath): Revise the workarounds to deal with exit
7351         status.
7352
7353 1998-04-30  Jim Kingdon  <kingdon@harvey.cyclic.com>
7354
7355         * sanity.sh (abspath): Work around the "cannot rename" bug.
7356
7357 1998-04-27  Jim Kingdon  <kingdon@harvey.cyclic.com>
7358
7359         * classify.c (Classify_File): Add comments about checking whether
7360         command name is "update".
7361
7362 1998-04-22  Jim Kingdon  <kingdon@harvey.cyclic.com>
7363
7364         * version.c: Change version number to 1.9.27.1.
7365
7366         * Version 1.9.27.
7367
7368 1998-04-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
7369
7370         (This diff was run by devel-cvs and everyone seemed to like it).
7371         * diff.c (diff_file_nodiff): Make HEAD mean the head of the branch
7372         which contains the sticky tag, not the sticky tag itself.
7373         * rcs.c, rcs.h (RCS_branch_head): New function.
7374         * sanity.sh (head): Update for this changed behavior.
7375
7376 1998-04-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
7377
7378         * sanity.sh: Move emptydir tests from basicb to new test emptydir.
7379         This is because we now need a module definition to create Emptydir;
7380         "co -d" doesn't cut it anymore.
7381
7382 1998-04-17  Petri Virkkula
7383
7384         * server.c (mkdir_p): Ignore EROFS error (like for EACCES).
7385
7386 1998-04-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
7387
7388         * checkout.c (checkout_proc): Don't create directories above the
7389         last one specified in "co -d".
7390         (build_dirs_and_chdir): Revert Noel's change of 17 Feb 1998.
7391         (struct dir_to_build): New field just_chdir.
7392         (build_dirs_and_chdir): Test it.
7393         * sanity.sh (abspath): New tests abspath-7* test for a bug which
7394         we fix, in which CVS would create bogus "D/////" entries in
7395         CVS/Entries.
7396         (abspath): Revise abspath-3* tests to test for the fact that we no
7397         longer create directories above the last one specified in "co -d".
7398         I checked that CVS 1.9 gives an error on this, so changing this
7399         behavior back should be OK.
7400         (cvsadm-2d3): Likewise (also checked CVS 1.9 for this case).
7401         (cvsadm-2d3d): Likewise (also checked CVS 1.9 for this case).
7402         (cvsadm-2d{4,5,6,7,8}, cvsadm-N2d{3,4,5,6,7,8}): Adjust for new
7403         behavior (same case as cvsadm-2d3).
7404         (cvsadm-2d{4,5,6,7,8}d, cvsadm-N2d{3,4,5,6,7,8}d): Remove test
7405         (same case as cvsadm-2d3d).
7406         (cvsadm): For remote, skip most these tests.
7407         (abspath): When cleaning up, delete mod1 and mod2 rather than mod1
7408         twice (longstanding bug, apparently only becomes visible if you
7409         run the tests in a certain order).
7410
7411 1998-04-14  Wilfredo Sanchez  <wsanchez@apple.com>
7412
7413         * rcs.c: variable "lockfile" was being referenced after being
7414         free'd.  Bad.  Moved the free() call down.
7415
7416 1998-04-12  Jim Kingdon  <kingdon@harvey.cyclic.com>
7417
7418         * sanity.sh (rcs): Add test for annotate and the year 2000.
7419
7420         * server.c (do_cvs_command): If there are partial lines left when
7421         the child process is done, send them along.
7422         * sanity.sh (rcs, rcs2): Enable all tests for remote; tests for
7423         this fix.
7424
7425 1998-04-11  Jim Kingdon  <kingdon@harvey.cyclic.com>
7426
7427         * client.c (client_senddate): Pass SDATEFORM not DATEFORM to
7428         sscanf.  This fixes a Y2K bug.
7429
7430         * history.c (history, select_hrec): Change since_date from time_t
7431         to RCS format.  Use the usual machinery (in particular, Make_Date
7432         and client_senddate) so that it will work on VMS too.
7433         * main.c, cvs.h (date_from_time_t): New function.
7434         * sanity.sh (history): New test, to test that this didn't break
7435         anything (also tests client_senddate fix).
7436
7437 1998-04-11  Norbert Kiesel  <nk@iname.com>
7438
7439         * server.c (cvs_output_binary): Shut up "gcc -Wall" by removing
7440         unnecessary else if test.
7441         * server.c (check_password): Fix uninitialized memory read if
7442         shadow passwords are used.  Also added some comments.
7443         * rcs.c (RCS_checkout): Make sure to call chown with -1 for uid or
7444         gid if they should not be changed
7445
7446 1998-04-10  Jim Kingdon  <kingdon@harvey.cyclic.com>
7447
7448         * sanity.sh (rcs2): New test, tests for various Y2K cases.
7449         * rcs.c (getdelta): Value for "state" keyword is optional (bug
7450         discovered incidentally in writing rcs2 test).
7451
7452 1998-04-09  Jim Kingdon  <kingdon@harvey.cyclic.com>
7453
7454         * filesubr.c, cvs.h (link_file): Remove; no longer used.
7455
7456 1998-04-08  Jim Kingdon  <kingdon@harvey.cyclic.com>
7457
7458         * recurse.c (do_dir_proc): Restore update_dir rather than a
7459         computation which appears to, but does not necessarily, restore it
7460         (reported by various people; this fix is from Greg Hudson).
7461         * sanity.sh (importc): New test, tests for this fix.
7462
7463 1998-03-27  Jim Kingdon  <kingdon@harvey.cyclic.com>
7464
7465         * rcs.c (RCS_lock): If the revision is already locked, give an
7466         error rather than dumping core.
7467         * sanity.sh (reserved): New test reserved-13c tests for this.
7468
7469 1998-03-25  Loren J. Rittle
7470
7471         * import.c (add_rev): Rewrite to use RCS_FLAGS_KEEPFILE option
7472         of RCS_checkin() to avoid damage to imported files instead of
7473         externally undoing damage after the fact.  The side effect is
7474         that callers of add_rev() may now incrementally walk the
7475         entries of the current directory without seeing gratuitous
7476         changes to the directory structure (under at least one file
7477         system under at least one OS).
7478
7479 1998-03-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
7480
7481         * error.c (error): Save and restore errno.  Should fix test case
7482         conflicts3-23 on SCO 5.0.2.  Reported by Steve Cameron.
7483
7484         * sanity.sh (admin): Rename admin-26-o* to admin-26-*; the "o"
7485         stands for "cvs admin -o".  Add comment about length of tests.
7486         Use ${PLUS}.
7487
7488 1998-03-05  Dan Wilder <dan@gasboy.com>
7489
7490         * Fix problem with cvs admin in which -ntag:branch
7491         option associated tag with the branch's head revision.
7492         Should have used branch number.  Entailed in this fix,
7493         the following.
7494
7495         * Add new functions "RCS_exist_rev", "RCS_exist_tag",
7496         "RCS_tag2rev", and "RCS_valid_rev" to rcs.c.  RCS_tag2rev
7497         is similar to RCS_gettag, but does less interpretation.
7498
7499         * Plug a small memory leak.
7500
7501         * Add tests admin-26 through admin-29 to sanity.sh,
7502         to test "cvs admin -n".
7503
7504 1998-03-17  Samuel Tardieu  <sam@inf.enst.fr>
7505
7506         * server.c (server_register): protect dereferencing timestamp in
7507         the trace message when it is null, to avoid a segmentation fault.
7508
7509 1998-03-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
7510
7511         * options.h.in (MY_NDBM): Rewrite the comment explaining this
7512         option.  It was not clear to everyone who "my" referred to, for
7513         example.
7514
7515         * hardlink.c (list_linked_files_on_disk): Remove unused variables
7516         err and p.
7517         (list_linked_files_on_disk): Add comment about memory allocation
7518         of return value.
7519         * rcs.c (rcsbuf_getword): Shut up gcc -Wall with a "return 0".
7520         (RCS_checkin): Remove unused variable fullpath.
7521         * sanity.sh (hardlinks): Remove comment about spurious warnings;
7522         the warnings are gone.
7523
7524 1998-03-12  Tim Pierce  <twp@skepsis.com>
7525
7526         New functions for parsing and writing hardlink fields.
7527         * rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
7528         function.
7529         (putdelta) [PRESERVE_PERMISSIONS_SUPPORT]: Use it.
7530         (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): New functions.
7531         (getdelta): Call them, storing `hardlinks' field in vnode->hardlinks.
7532         (RCS_reparsercsfile): When setting rdata->desc, xstrdup value
7533         rather than rcsbuf_valcopying it (due to changes in how getdelta
7534         handles keys and values in newphrases).
7535
7536         * sanity.sh (hardlinks): Use uglier filenames.  Checking out
7537         hardlinked files no longer produces the same spurious diagnostics,
7538         so fix that test.
7539         (hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
7540
7541         New infrastructure for managing hardlink lists internally...
7542         * hardlink.c, hardlink.h (list_linked_files_on_disk,
7543         compare_linkage_lists, find_checkedout_proc): New functions.
7544         * rcs.h (struct rcsversnode) [PRESERVE_PERMISSIONS_SUPPORT]: New
7545         member `hardlinks'.
7546         * update.c (special_file_mismatch): Get hardlinks from
7547         vp->hardlinks instead of from vp->other_delta.
7548         * rcs.c (free_rcsvers_contents): Comment about freeing hardlinks
7549         member.
7550         (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
7551         vers->hardlinks list instead of vers->other_delta.
7552
7553         ... and removed obsolete code from earlier revs.
7554         * hardlink.c, hardlink.h (list_files_linked_to,
7555         cache_hardlinks_proc, list_files_proc, set_hardlink_field_proc):
7556         Removed.
7557         * hardlink.h: Removed `links' member from hardlink_info struct.
7558         * commit.c (commit): Remove the call to cache_hardlinks_proc.
7559         (check_fileproc) [PRESERVE_PERMISSIONS_SUPPORT]: Removed reference
7560         to hlinfo->links.
7561         * hardlink.c (update_hardlink_info): Same.
7562         * update.c (get_linkinfo_proc): Same.
7563
7564         * rcs.c (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Use
7565         vp->hardlinks and find_checkedout_proc to find recently-updated
7566         files that may be hardlinked.
7567         * update.c (special_file_mismatch): Use List * structures and
7568         compare_linkage_lists for rev1_hardlinks and rev2_hardlinks.
7569
7570 1998-03-16  Larry Jones  <larry.jones@sdrc.com>
7571
7572         * server.c (check_password): If shadow passwords are supported but no
7573         entry is found in the shadow file, check the regular password file.
7574
7575 1998-03-07  Jim Kingdon  <kingdon@harvey.cyclic.com>
7576
7577         * sanity.sh: Rename permissions test to perms since that is what
7578         each of its individual tests are named.
7579         * sanity.sh (perms symlinks hardlinks): Change CVSROOT to
7580         CVSROOT_DIRNAME where appropriate.
7581         (perms symlinks hardlinks): Disable/adjust the meat of the tests for
7582         remote.
7583         (symlinks): Link to ${TESTDIR}/fumble rather than
7584         /fumble/mumble/grumble.  We shouldn't be making assumptions about
7585         what might exist in random directories outside ${TESTDIR}.
7586         * hardlink.c (cache_hardlinks_proc): Add comment about trimming
7587         whitespace.
7588
7589 1998-03-07  Tim Pierce  <twp@skepsis.com>
7590
7591         * rcs.c (RCS_checkout): Negation bug when checking out symlinks:
7592         existence_error should be !existence_error.
7593         * sanity.sh (permissions symlinks hardlinks): New tests, for
7594         PreservePermissions.
7595
7596 1998-03-04  Jim Kingdon  <kingdon@harvey.cyclic.com>
7597
7598         * version.c: Change version number to 1.9.26.1.
7599
7600         * Version 1.9.26.
7601
7602         * entries.c, cvs.h (Entries_Open): New argument update_dir; use it
7603         in error message.
7604         * add.c, checkout.c, client.c, find_names.c, import.c, recurse.c,
7605         update.c: Pass it (as NULL except in call_in_directory).
7606         * entries.c (Subdirs_Known): Just return if there is no CVSADM
7607         directory (as in subdir_record).
7608         * sanity.sh (conflicts3): New tests conflicts3-20a and
7609         conflicts3-23 test for these fixes.
7610
7611         * commit.c (commit): Only set up hardlist if preserve_perms.
7612
7613         * commit.c, import.c, no_diff.c, parseinfo.c, rcs.c, rcscmds.c,
7614         update.c: Omit the preserve_perms code if
7615         PRESERVE_PERMISSIONS_SUPPORT is not defined.  Much of that code
7616         won't even compile on non-unix systems.
7617
7618         * hardlink.c, hardlink.h: Use the 'standard' copyright (as found
7619         in server.c).
7620         * commit.c, rcs.c: Minor whitespace changes to Tim's submission.
7621         * commit.c (check_fileproc), update.c (get_linkinfo_proc): Remove
7622         unused variable delta.
7623         * hardlink.c (set_hardlink_field_proc), update.c
7624         (get_linkinfo_proc): Return a value rather than falling off the
7625         end of the function.
7626
7627 1998-03-02  Tim Pierce  <twp@skepsis.com>
7628
7629         * update.c (special_file_mismatch): Compare the hard links of the
7630         two revisions.
7631
7632         * rcs.c (RCS_checkout):
7633
7634         * hardlink.c, hardlink.h: New files.
7635         (hardlink_info): New struct.
7636         (hardlist, working_dir): New variables.
7637         (list_files_proc, cache_hardlinks_proc, set_hardlink_field_proc,
7638         lookup_file_by_inode, update_hardlink_info, list_files_linked_to):
7639         New functions.
7640
7641         * Makefile.in (SOURCES): Add hardlink.c.
7642         (OBJECTS): Add hardlink.o.
7643         (HEADERS): Add hardlink.h.
7644         * commit.c: Include hardlink.h.
7645         (commit): Save the working directory before recursing.  Walk the
7646         hardlink list, calling set_hardlink_field_proc on each node.
7647         (check_fileproc): Add each file's link information to hardlist.
7648         * rcs.c: Include hardlink.h.
7649         (RCS_checkin): Save list of hardlinks in delta node.
7650         (RCS_checkout): Look up the file's `hardlinks' delta field, and
7651         see if any of the files linked to it have been checked out
7652         already.  Link to one of those files if so.
7653         * update.c: Include hardlink.h.
7654         (get_linkinfo_proc): New function.
7655         (do_update): Extra recursion to collect hardlink info.
7656         (special_file_mismatch): Reparse the RCS file if necessary.
7657
7658         fsortcmp is now used by several files, so let's make it extern.
7659         * hash.c, hash.h (fsortcmp): New function.
7660         * find_names.c (fsortcmp): Removed.
7661         * lock.c (fsortcmp): Removed.
7662
7663 1998-03-03  Jim Kingdon  <kingdon@harvey.cyclic.com>
7664
7665         * sanity.sh (conflicts3): New tests conflicts3-14a,
7666         conflicts3-14b, and conflicts3-21, conflicts3-22 test that we can
7667         skip over a working directory with a CVSADM directory missing.
7668
7669 1998-02-26  Jim Kingdon  <kingdon@harvey.cyclic.com>
7670
7671         * sanity.sh (conflicts3): Tests conflicts3-16 and conflicts3-20
7672         test that we include update_dir in messages.  Rename test
7673         conflicts3-14 to fix typo.
7674
7675 Sun Feb 22 23:14:25 1998  Steve Cameron  <steve.cameron@compaq.com>
7676         and Ian Lance Taylor  <ian@cygnus.com>
7677
7678         * update.c (tag_update_dir): New static variable.
7679         (update_dirent_proc): If no tag or date were specified when
7680         creating a subdirectory, use the tag and/or date of the parent
7681         directory.
7682         (update_dirleave_proc): If we set the tag and/or date in
7683         update_dirent_proc, reset them when we leave the directory.
7684         * sanity.sh (branches2): New set of tests for above patch, and
7685         related behaviour.
7686
7687 Sun Feb 22 13:31:51 1998  Ian Lance Taylor  <ian@cygnus.com>
7688
7689         * commit.c (lock_RCS): Don't call RCS_rewrite.
7690
7691         * update.c (patch_file): If the revision is dead, let
7692         checkout_file handle it.
7693         * sanity.sh (death2): Add test for above patch: add
7694         death2-10a, death2-10b, death2-13a, and adjust
7695         death2-{2,4,5,11,14,diff-11,diff-12,19}.
7696
7697         * cvs.h (RCS_FLAGS_KEEPFILE): Define.
7698         * rcs.c (RCS_checkin): If RCS_FLAGS_KEEPFILE is set in the flags
7699         parameter, don't unlink the working file.
7700         * checkin.c (Checkin): Don't copy the file.  Instead pass
7701         RCS_FLAGS_KEEPFILE to RCS_checkin, and only check the file out
7702         again if it has changed.
7703
7704 1998-02-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
7705
7706         * rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
7707         means anything just because ferror is set.
7708
7709 Sat Feb 21 20:02:24 1998  Ian Lance Taylor  <ian@cygnus.com>
7710
7711         * Makefile.in (clean): Change "/bin/rm" to "rm".
7712
7713         * buffer.c (buf_append_buffer): Correct typo in comment.
7714         * rcs.c (RCS_putadmin): Likewise.
7715
7716 Fri Feb 20 17:53:06 1998  Ian Lance Taylor  <ian@cygnus.com>
7717
7718         * rcs.c (rcs_internal_unlockfile): Pass errno when calling error
7719         because ferror is true.
7720
7721 1998-02-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
7722
7723         * sanity.sh (abspath): Don't assume that we can't write to /; this
7724         is the kind of thing that is sure to break sooner or later
7725         (especially on Windows).
7726
7727         * sanity.sh: Add summary of which modules tests are which (at
7728         "modules").  Move cvsadm, abspath, and toplevel next to modules.
7729         Add comments to clarify the structure (such as it is).
7730
7731 Fri Feb 20 12:47:14 1998  Larry Jones  <larry.jones@sdrc.com>
7732
7733         * admin.c (admin_fileproc): Better fix for -b.
7734
7735         * rcs.c (RCS_whatbranch): Back out previous change.
7736         (RCS_getversion): Ditto.
7737         (RCS_setbranch): Treat an empty revision string like a null pointer.
7738
7739 1998-02-18  Jim Kingdon  <kingdon@harvey.cyclic.com>
7740
7741         * rcs.c (RCS_whatbranch): Fix indentation.
7742
7743         * patch.c (patch_fileproc): Check for errors from fclose; check
7744         for errors from fopen properly.
7745
7746 Wed Feb 18 16:03:37 1998  Larry Jones  <larry.jones@sdrc.com>
7747
7748         * admin.c (admin_fileproc): Convert -b argument from symbolic name
7749         to revision number before storing in the RCS file.
7750         * rcs.c (RCS_whatbranch): Allow numeric as well as symbolic revision.
7751         (RCS_getversion): Take advantage of above.
7752         * sanity.sh (admin): Add/revise/renumber admin-10c, admin-11a,
7753         admin-12, and admin-12a to check above.
7754
7755         * commmit.c (lock_RCS): Minor clean-up.
7756
7757         * sanity.sh (abspath-6a): Don't depend on the sepcific contents of
7758         CVSROOT, it depends on which other tests have been run.
7759
7760 Wed Feb 18 01:56:04 1998  Ian Lance Taylor  <ian@cygnus.com>
7761
7762         * rcs.c (putsymbol_proc): Use putc and fputs rather than fprintf.
7763         (RCS_putadmin): Don't call RCS_symbols if the symbols have not yet
7764         been converted to a list.
7765
7766         * rcs.c (rcsbuf_cache, rcsbuf_cache_open, rcsbuf_cache_close): New
7767         static functions to avoid closing and reopening the RCS file.
7768         (cached_rcs, cached_rcsbuf): New static variables.
7769         (RCS_parse): Call rcsbuf_cache_close.  Don't call fclose.
7770         (RCS_parsercsfile): Likewise.
7771         (RCS_parsercsfile_i): Call rcsbuf_cache rather than
7772         rcsbuf_close.  Call fclose on error.  Remove comment about
7773         inefficiency of opening file twice.
7774         (RCS_reparsercsfile): Call rcsbuf_cache_open rather than fopen and
7775         rcsbuf_open.  Call rcsbuf_cache rather than rcsbuf_close and
7776         fclose.
7777         (RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
7778         (RCS_rewrite): Likewise.
7779         (RCS_checkin): Call rcsbuf_cache_close.
7780
7781         * rcs.c (RCS_copydeltas): Fix code which checks for an extra
7782         newline in buffered data.
7783
7784         * rcs.c (rcsbuf_getkey): Save an indirection by using start rather
7785         than *valp when trimming trailing whitespace from value.
7786
7787         * rcs.c (rcsbuf_get_buffered): New static function.
7788         (RCS_copydeltas): After we have done all the required special
7789         actions, and inserted any new revision, just copy the file bytes
7790         directly, rather than interpreting all the data.
7791         (count_delta_actions): New static function.
7792         * sanity.sh (rcs): Add rcs-6a and rcs-6b to commit a new branch
7793         revision, to force CVS to interpret all the data, rather than just
7794         copying it.  Adjust rcs-5 to add a branch tag.  Adjust rcs-8a and
7795         rcs-14 for the changes created by rcs-6b.
7796
7797 Tue Feb 17 18:34:01 1998  Ian Lance Taylor  <ian@cygnus.com>
7798
7799         * sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
7800         the test.
7801
7802         * import.c (expand_at_signs): Rewrite to use memchr and fwrite
7803         rather than putc.
7804
7805         Rewrite RCS file reading routines for speed:
7806         * rcs.c (struct rcsbuffer): Define.
7807         (rcsbuf_open, rcsbuf_close, rcsbuf_getkey, rcsbuf_getrevnum,
7808         rcsbuf_fill, rcsbuf_valcopy, rcsbuf_valpolish,
7809         rcsbuf_valpolish_internal, rcsbuf_ftell): New static functions.
7810         (getrcskey, getrcsrev, getrevnum): Remove.
7811         (many functions): Change to use new rcsbuf functions instead of
7812         old getrcskey/getrcsrev/getrevnum functions.
7813         (RCS_reparsercsfile): Add rcsbufp parameter.  Change all callers.
7814         (RCS_deltas): Add rcsbuf parameter.  Change all callers.
7815         (getdelta): Change fp parameter to rcsbuf parameter.  Change all
7816         callers.
7817         (RCS_getdeltatext): Add rcsbuf parameter.  Change all callers.
7818         (RCS_copydeltas): Add rcsbufin parameter.  Change all callers.
7819         * rcs.h (RCS_reparsercsfile): Update declaration.
7820         * admin.c (admin_fileproc): Update calls to RCS_reparsercsfile for
7821         new parameters.
7822
7823 1998-02-17  Jim Kingdon  <kingdon@harvey.cyclic.com>
7824
7825         * sanity.sh (toplevel): Also clean up second-dir (not a new
7826         bug, but triggered by running tests as "toplevel abspath").
7827
7828         * create_adm.c (Create_Admin): Just print update_dir to tell the
7829         user where we are; not the whole xgetwd.  Cleaner than
7830         Noel's change (which also had problems in errno handling).
7831         * sanity.sh (toplevel-12): Update accordingly.
7832
7833 Tue Feb 17 02:32:21 1998  Noel Cragg  <noel@swish.red-bean.com>
7834
7835         [These mods make "checkout" work with "-d /absolute/pathname"
7836         once again.]
7837
7838         * checkout.c (checkout_proc): the -d flag on the command line
7839         should override the -d flag in the modules file if the latter is
7840         an absolute path.  The loop that assembles the list of directories
7841         to build has been reorganized slightly to prepare for rewriting
7842         with last_component rather than assuming '/' as a path separator.
7843         Also added to that loop was some code to handle absolute
7844         pathnames.
7845         (build_dirs_and_chdir): add a new argument that tells this routine
7846         whether or not to check before it creates and populates
7847         directories or not.
7848
7849         * filesubr.c (last_component): return the top-level directory when
7850         asked about the top-level directory.
7851
7852         * sanity.sh (toplevel-12): change test to reflect the new style of
7853         this error message.
7854
7855         * create_adm.c (Create_Admin): include the directory in the error
7856         message.
7857
7858 1998-02-16  Jim Kingdon  <kingdon@harvey.cyclic.com>
7859
7860         * diff.c (diff_fileproc), import.c (import, add_rcs_file), rcs.c
7861         (RCS_cmp_file): Don't ignore errors from CVS_UNLINK and fclose.
7862
7863         * patch.c (patch_fileproc): Check for errors from fclose; if we
7864         get -1 from getline check for end of file vs. error.
7865
7866         * rcs.c (RCS_checkout): Comment return value (0/1, not -1).
7867         * commit.c, diff.c, mkmodules.c, patch.c, rcs.c, update.c: Update
7868         to match this convention.  Don't suppress errors based on
7869         quiet or really_quiet variables.
7870
7871         Fix a longstanding bug which also makes stamps-8kw in make
7872         remotecheck work again (it stopped working with Ian's 8 Feb 98
7873         checkin):
7874         * client.c, client.h (change_mode): If new argument respect_umask
7875         is set, then honor the umask.
7876         * client.c, server.c: Update callers.
7877
7878         Cleanups to Tim's checkin:
7879         * rcs.c (RCS_checkout): Use existence_error not ENOENT.
7880         * commit.c (checkaddfile): Remove comment about whether we want to
7881         check for errors from fclose; there is no reason not to.
7882         * rcs.c (RCS_checkout), update.c (special_file_mismatch): sscanf
7883         on %ld requires an unsigned long, not a dev_t.
7884         * update.c (special_file_mismatch): Remove unused variable
7885         check_devnums.
7886         * mkmodules.c (config_contents): Between two settings, use a blank
7887         line not a "#" line.
7888
7889 1998-02-15  Tim Pierce  <twp@skepsis.com>
7890
7891         [This is the code as submitted.  I'll be checking in my cleanups
7892         shortly.  This work sponsored by Abbott Labs.  -kingdon]
7893
7894         Support for device special files, symbolic links, user and group
7895         ownerships, and file permissions.
7896
7897         * parseinfo.c: (parse_config): Handle new config variable
7898         `PreservePermissions'.
7899         * mkmodules.c (config_contents): Add new PreservePermissions var.
7900
7901         * rcs.c, rcs.h (preserve_perms): New variable.
7902         (RCS_checkout, RCS_checkin): Support for newphrases `owner',
7903         `group', `permissions', `special', `symlink'.
7904         (RCS_checkout): If `workfile' and `sout' are symlinks, remove them
7905         before attempting to open them for writing.
7906         * import.c (add_rcs_file): Support for newphrases.  Do not attempt
7907         to read data from special files or symlinks.  Error message
7908         `cannot fstat' is now `cannot lstat'.
7909
7910         New metrics for deciding when two files are different:
7911
7912         * update.c, cvs.h (special_file_mismatch): New function.
7913         (merge_file, join_file): Call it.
7914         * no_diff.c (No_Difference): Call it.
7915
7916         * filesubr.c (xcmp): Consider files to be different if they are of
7917         different types; if they are symlinks which link to different
7918         pathnames; or if they are devices with different device numbers.
7919         Error message is now `cannot lstat'.
7920         * rcs.c (RCS_cmp_file): Use `xcmp' to compare files, simplifying
7921         the special handling for nonregular files.
7922
7923         * rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
7924         special files, report no differences.
7925
7926         Miscellaneous changes to make special file support possible:
7927
7928         * commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
7929         a symlink.
7930
7931         * import.c (add_rcs_file): Don't try to close fpuser if it was
7932         never opened (e.g. when operating on a symlink).
7933
7934         * filesubr.c, cvs.h (isdevice, xreadlink): New functions.
7935         * filesubr.c (copy_file): Handle special files and symlinks.
7936         (xchmod): Do nothing if `preserve_perms' is set.
7937
7938         * commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
7939         fopen/fclose calls.  Copy_file no longer attempts to read data
7940         from device files.
7941
7942         * filesubr.c (islink): Use CVS_LSTAT, not lstat.
7943         * vers_ts.c (time_stamp, time_stamp_server): Use CVS_LSTAT, not stat,
7944         to get symlinks right.
7945         * subr.c (get_file): Same.  Don't attempt to read from special
7946         files or symlinks.
7947
7948         * classify.c (Classify_File): Doc fix.
7949
7950 Fri Feb 13 17:07:32 1998  Eric Mumpower  <nocturne@cygnus.com>
7951         and Ian Lance Taylor  <ian@cygnus.com>
7952
7953         Fix some file system ordering problems found on Irix 6.4:
7954         * sanity.sh (basic2): Use dotest_sort for test 56.
7955         (importb): Use dotest_sort for tests importb-1 and importb-2.
7956         (head): Use dotest_sort for test head-1.
7957
7958 Thu Feb 12 15:15:33 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
7959
7960         * import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
7961
7962 11 Feb 1998  Andy Piper
7963
7964         * server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
7965
7966 Mon Feb  9 18:34:39 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
7967
7968         Tweaks to Ian's checkin:
7969         * update.c (merge_file): Remove comment about sending file to
7970         client before the message.  It doesn't apply to this code any more
7971         (it does apply to checkout_file, but I'm not sure it is important
7972         to have such a comment anyway).
7973         * buffer.c (buf_default_memory_error, buf_length): Reindent.
7974         * server.h: Declare struct buffer before use.
7975
7976 Mon Feb  9 21:05:28 1998  Ian Lance Taylor  <ian@cygnus.com>
7977
7978         * rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
7979         Don't bother with ungetc.
7980
7981         * rcs.c (getrcsrev): Rewrite to simply call getrevnum.
7982
7983 Sun Feb  8 15:49:39 1998  Ian Lance Taylor  <ian@cygnus.com>
7984
7985         Don't have the server check out a revision into a file and then
7986         immediately read the file; just read into a buffer instead.
7987         * update.c: Include buffer.h.
7988         (update_fileproc): Let checkout_file call server_updated.
7989         (checkout_file): Add merging and update_server parameters.  Change
7990         all callers.  If server_active, don't mess with backup files.  If
7991         server_active, copy the revision into a buffer rather than a file
7992         when possible.  If update_server, call server_updated.  Fix
7993         handling of error status.
7994         (checkout_to_buffer): New static function used by checkout_file.
7995         (merge_file): Let checkout_file call server_updated.
7996         (join_file): Likewise.
7997         * server.c (server_updated): Change file_info parameter to mode
7998         parameter.  Add filebuf parameter.  Change all callers.  If
7999         filebuf is not NULL, don't read the file.
8000         * server.h (server_updated): Update declaration.
8001         * buffer.c (buf_free): New function.
8002         (buf_append_buffer): New function.
8003         (buf_length): New function.
8004         * buffer.h (buf_free, buf_append_buffer, buf_length): Declare.
8005
8006         * buffer.c: (buf_initialize): If the memory parameter is NULL, use
8007         buf_default_memory_error.
8008         (buf_default_memory_error): New static function.
8009         * buffer.h (BUFMEMERRPROC): Define typedef.
8010         * client.c (buf_memory_error): Remove.
8011         (start_server): Pass NULL rather than buf_memory_error as buffer
8012         memory error function.
8013
8014 Sat Feb  7 16:27:30 1998  Ian Lance Taylor  <ian@cygnus.com>
8015
8016         * rcs.c (RCS_parsercsfile_i): Read the expand keyword from the RCS
8017         file.  We do this because Version_TS calls RCS_getexpand in many
8018         common cases, and we don't want to reopen the file just for that.
8019         (RCS_reparsercsfile): Skip the expand keyword.
8020         (RCS_getexpand): Don't call RCS_reparsercsfile.
8021
8022         * rcs.c (STREQ): New macro.  In all string equality tests in the
8023         file, replace strcmp with STREQ.
8024
8025 Fri Feb  6 16:14:49 1998  Ian Lance Taylor  <ian@cygnus.com>
8026
8027         * update.c (checkout_file): If we've already removed the backup
8028         file once, don't try to remove it again.
8029
8030         * filesubr.c (unlink_file_dir): Call stat rather than isdir, and
8031         don't call unlink if the file does not exist.
8032
8033         * myndbm.c (mydbm_load_file): Rename line_len to line_size.  Call
8034         getstr rather than getline, to avoid any confusion between \n and
8035         \012.  Use the line length returned by getstr rather than calling
8036         strlen.  Remove local variable len.
8037
8038 Fri Feb  6 13:23:46 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8039
8040         * rcs.c (RCS_parsercsfile_i): Don't suppress errors on
8041         really_quiet.
8042         (RCS_parsercsfile_i, RCS_reparsercsfile, RCS_fully_parse,
8043         RCS_deltas, getdelta, getrcskey, RCS_getdeltatext):
8044         Check for errors.  Include errno in error messages.  Include
8045         filename in error messages.  Pass new argument to getrcskey.
8046         (getrcskey): New argument NAME, so we can report errors ourself.
8047
8048 Fri Feb  6 12:10:18 1998  Ian Lance Taylor  <ian@cygnus.com>
8049
8050         * rcs.c (RCS_reparsercsfile): Don't use ftell/fseek; just keep
8051         track of whether we've already read a key/value pair.  Use sizeof
8052         rather than strlen for a constant string.  Pass the current key
8053         and value to getdelta, and get them back as well.
8054         (getdelta): Add keyp and valp parameters.  Don't use ftell/fseek;
8055         just return the key/value pair to the caller.  Don't allocate
8056         vnode before we know we need it.  Check one getrcskey return
8057         value.  Use sizeof rather than strlen for a constant string.
8058
8059         * rcs.c (getrcskey): Correct comment describing return value.
8060
8061 Thu Feb  5 22:51:13 1998  Ian Lance Taylor  <ian@cygnus.com>
8062
8063         * subr.c (getcaller): Cache the result, so that we don't keep
8064         searching the password file.
8065
8066 Wed Feb  4 23:31:08 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8067
8068         * rcs.c (max_rev): Don't prototype.  Interesting that noone
8069         complained about this until now.
8070
8071 4 Feb 1998  Jim Kingdon
8072
8073         * rcs.c (RCS_checkin): When adding a new file, read it
8074         with "rb" if binary.
8075
8076 Fri Jan 30 11:32:41 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8077
8078         * sanity.sh: Also test "first-dir" as the regexp in loginfo in
8079         addition to ALL.
8080
8081         * main.c (main): Update year in copyright notice to 1998.
8082
8083 Thu Jan 29 00:01:05 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8084
8085         * version.c: Change version number to 1.9.25.
8086
8087         * Version 1.9.24.
8088
8089         * sanity.sh (multibranch2): File file2 and tests multibranch2-13
8090         through multibranch2-15 test a slightly different case than the
8091         rest of multibranch2.
8092
8093         * mkmodules.c (cvswrappers_contents): Rewrite.  The text didn't
8094         describe -k and had various other problems.
8095
8096 28 Jan 1998  Karl Fogel and Jim Kingdon
8097
8098         New feature to let server tell client about wrappers.
8099         * client.h (struct response): Add comment about args being
8100         '\0' terminated when passed to handle_* functions.
8101         * client.c (start_server): send "wrapper-sendme-rcsOptions" to
8102         server iff supported.
8103         (responses): new response "Wrapper-rcsOption"; allows the server
8104         to send certain lines from its cvswrappers file.
8105         (handle_wrapper_rcs_option): new func, handles "Wrapper-rcsOption"
8106         response from server.
8107         * server.c (serve_wrapper_sendme_rcs_options): new func, sends
8108         server side CVSROOT/cvswrappers rcs option lines to client.
8109         (requests): new request "wrapper-sendme-rcsOptions"; if received,
8110         we know we can send "Wrapper-rcsOption..." to the client.
8111         * wrapper.c (wrap_unparse_rcs_options): new func; repeated calls
8112         step down the wrapper list returning rcs option entries, but
8113         repackaged as cvswrappers lines.
8114         (wrap_setup): new guard variable `wrap_setup_already_done'; if
8115         this function has run already, just return having done nothing.
8116         Add comment concerning environment variable.
8117         * cvs.h: declare wrap_unparse_rcs_options().
8118
8119 Tue Jan 27 18:27:19 1998  Ian Lance Taylor  <ian@cygnus.com>
8120
8121         * rtag.c (rtag_dirproc): Call ignore_directory, and skip the
8122         directory if it returns true.
8123         * sanity.sh (modules4): New set of tests to test some aspects of
8124         excluding directories in the modules file, including the above
8125         patch.
8126
8127 Thu Jan 22 10:05:55 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8128
8129         * server.c (serve_kopt): Check for length of arg.  Based on
8130         inspection of the code, plugs a buffer overrun security hole which
8131         was introduced Monday.
8132
8133         * server.c (serve_is_modified): Don't call xmalloc; we aren't
8134         allowed to call error() here.  Remove duplicate (and potentially
8135         confusing) variable 'p'.
8136
8137         * log.c (log_fileproc): Look for first character of version
8138         '0' AND second character '\0', rather than OR.  I didn't try to
8139         come up with a test case but this looks like a simple thinko
8140         (albeit one which would show up in obscure cases if at all).
8141
8142 Tue Jan 20 19:37:53 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8143
8144         * client.c (send_dirent_proc): Don't send nonexistent directories
8145         unless noexec.
8146         * sanity.sh (modules2): New tests modules2-13 through modules2-18
8147         test for this fix.
8148
8149 Mon Jan 19 11:17:51 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8150
8151         * server.c (serve_kopt): New function.
8152         (requests): Add "Kopt" request.
8153         (kopt): New variable.
8154         (serve_is_modified): Write kopts from there into entries.
8155         (serve_modified): Call serve_is_modified so we do the same.
8156         Declare serve_modified and serve_is_modified.
8157         * vers_ts.c (Version_TS): Set ->options even for a dummy ("D"
8158         timestamp) entry.
8159         * import.c (process_import_file): Check for -k options.
8160         * client.c (client_process_import_file): Send Kopt request.
8161         (send_fileproc): Likewise, for "cvs add".
8162         * sanity.sh: Enable test binwrap3-sub2-add1 for remote.
8163         Add -I .cvswrappers to binwrap3-2a; adjust binwrap3-2d
8164         accordingly.  Tests for this fix.
8165
8166 Mon Jan 19 08:48:59 1998  Larry Jones  <larry.jones@sdrc.com>
8167
8168         * sanity.sh (errmsg1): Append test 168 output to log file.
8169
8170 Sat Jan 17 08:01:51 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8171
8172         * sanity.sh (ann-10, ann-11): Don't make assumptions about the
8173         number of characters in the username.
8174
8175 Fri Jan 16 15:34:02 1998  Larry Jones  <larry.jones@sdrc.com>
8176
8177         * diff.c (diff_fileproc): Free label1 and label2 when finished.
8178
8179         * edit.c (editor_set): Don't free edlist until after we're
8180         done using it.
8181
8182         * rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
8183
8184         * subr.c (make_message_rcslegal): Don't access uninitialized or
8185         unallocated memory; only strip trailing blank lines.
8186         * sanity.sh (log-3): Enhance to test this fix.
8187
8188 Fri Jan 16 12:41:03 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8189
8190         * sanity.sh: Add keywordlog to list of tests run by default.
8191
8192         * rcs.c (RCS_deltas): Don't call cvs_output if length is zero;
8193         passing zero length to cvs_output does not mean output zero
8194         bytes.  The 27 Dec 1997 change to no longer '\0'-terminate the
8195         ->text field turned this from a time bomb to a user-visible bug.
8196         * sanity.sh (ann): New tests, test for this fix and other annotate
8197         behaviors.
8198
8199 Thu Jan 15 23:52:00 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8200
8201         * root.c (root_allow_ok): If inetd.conf didn't specify an
8202         --allow-root options at all, we know we are in trouble.  Give a
8203         specific error message.
8204
8205 Thu Jan 15 21:24:59 1998  Ian Lance Taylor  <ian@cygnus.com>
8206
8207         * sanity.sh (dotest_sort): New variant of dotest which sorts the
8208         output, for use when the output depends upon details of the file
8209         system, typically when doing an import.
8210         (rdiff): Use dotest_sort for rdiff-1.
8211         (ignore): Use dotest_sort for 188a, 188b, 189d, 190, and 191.
8212
8213         * sanity.sh: (TESTSHELL): New variable.
8214         (editor, info, reserved): Use TESTSHELL in temporary script.
8215
8216         * sanity.sh (ignore): Do all tests in subdirectory, to avoid
8217         conflict between cvsroot and CVSROOT on Windows.
8218         (binwrap3, mwrap, info, config): Likewise.
8219
8220         * sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
8221         binfiles2-7-brmod.
8222
8223         * release.c (release_delete): If __CYGWIN32__ is defined, don't
8224         worry about mismatched inodes.  This is a hack, but then I think
8225         the test is rather peculiar anyhow.
8226
8227 Thu Jan 15 16:07:36 1998  Larry Jones  <larry.jones@sdrc.com>
8228
8229         * sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
8230
8231 Wed Jan 14 15:43:13 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8232
8233         * Split ChangeLog into ChangeLog-97 and ChangeLog.
8234         * Makefile.in (DISTFILES): Add ChangeLog-97.
8235
8236 13 Jan 1998  Jim Kingdon
8237
8238         * client.c: Declare handle_mt.
8239
8240 Tue Jan 13 22:21:30 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8241
8242         * sanity.sh: Add comment about how pwd and /bin/pwd often differ
8243         in behavior (but are not guaranteed to).
8244
8245 Tue Jan 13 13:49:53 1998  Ian Lance Taylor  <ian@cygnus.com>
8246
8247         * sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
8248
8249         * update.c (checkout_file): Don't pass set_time as true to
8250         Version_TS if the file is dead.
8251         * sanity.sh (modules): Add tests modules-155c6 through
8252         modules-155c8 to test for above patch (without the above patch,
8253         modules-155c8 will fail when remote).
8254
8255 Tue Jan 13 10:37:02 1998  Larry Jones  <larry.jones@sdrc.com>
8256
8257         * client.c (send_modified): Change bufsize and newsize from int
8258         to size_t to avoid type clashes in call to read_and_gzip.
8259
8260 Tue Jan 13 10:33:02 1998  Larry Jones  <larry.jones@sdrc.com>
8261
8262         * zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
8263
8264 Tue Jan 13 10:26:43 1998  Larry Jones  <larry.jones@sdrc.com>
8265
8266         * add.c, rcs.c: Plug memory leaks.
8267
8268 Mon Jan 12 10:45:27 1998  Larry Jones  <larry.jones@sdrc.com>
8269
8270         * server.c (mkdir_p): Don't try to create nameless directories
8271         (i.e., given "/foo//bar", don't try to create "/foo/",
8272         just "/foo" and "/foo//bar") since it isn't necessary and
8273         it fails on some systems in unexpected ways.
8274
8275 1998-01-11  enami tsugutomo  <enami@but-b.or.jp>
8276
8277         * rcs.c (linevector_copy): Delete lines before overwriting them.
8278
8279 Sat Jan 10 11:05:40 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8280
8281         * cvsrc.c, entries.c, login.c, logmsg.c, myndbm.c, patch.c,
8282         release.c, server.c: Check for errors from getline, CVS_FOPEN,
8283         fprintf, CVS_UNLINK and fclose.  Note that the new errors are
8284         nonfatal.  This is because of conservatism more than because
8285         it is always the best thing.
8286         * login.c (get_cvs_password): Close the file when done with it.
8287         * client.c (notified_a_file): If -1 return from getline, check
8288         feof rather than assuming errno is set.
8289
8290 Fri Jan  9 14:38:54 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8291
8292         * server.c (expand_proc): Also output server_dir in
8293         "Module-expansion", not just in output_dir ("Created", &c).
8294         * sanity.sh (modules2): New tests modules2-9 through modules2-12
8295         test for this.
8296
8297 Thu Jan  8 12:56:55 1998  Yasutoshi Hiroe  <hiroe@rgk.ricoh.co.jp>
8298
8299         * import.c (import): Don't strcat on uninitialized memory.  Fixes
8300         possible SIGSEGV with zero-length message.
8301
8302 Tue Jan  6 22:56:29 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8303
8304         * sanity.sh (crerepos): Fix mistaken variable name which caused us
8305         not to clean up at the end of the test.
8306
8307 Mon Dec 22 01:40:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
8308
8309         * add.c (add): Also look for .cvswrappers files.
8310         * sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
8311         test for this.
8312
8313 Tue Jan  6 11:50:38 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8314
8315         * sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
8316         test behaviors when mixing repositories.
8317
8318 Sun Jan  4 17:40:22 1998  Jim Kingdon  <kingdon@harvey.cyclic.com>
8319
8320         * version.c: Change version number to 1.9.23.
8321
8322         * Version 1.9.22.
8323
8324
8325 For older changes see ChangeLog-97.