1 2004-06-09 Derek Price <derek@ximbiot.com>
3 * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
5 (Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
6 Krahmer <krahmer@suse.de>.)
8 * cvs.h: Include xsize.h.
10 2004-06-09 Derek Price <derek@ximbiot.com>
12 * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
13 against malformed entries.
14 * sanity.sh (server): Tests for same.
16 2004-06-07 Larry Jones <lawrence.jones@ugsplm.com>
18 * sanity.sh (basica): More tests for string-based revision inc.
20 2004-06-04 Larry Jones <lawrence.jones@ugsplm.com>
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.
26 2004-05-19 Derek Price <derek@ximbiot.com>
28 * server.c (serve_unchanged, serve_is_modified): Overwrite existing
29 data in timefields. Fixes CAN-2004-0396.
31 2004-05-14 Derek Price <derek@ximbiot.com>
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
37 2004-05-14 Mark D. Baushke <mdb@cvshome.org>
39 * sanity.sh (trailingslashes): During cleanup remove topfile,v to
40 avoid problems in later tests (editor-1).
42 2004-05-13 Derek Price <derek@ximbiot.com>
44 * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
46 2004-05-13 Derek Price <derek@ximbiot.com>
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.
51 2004-05-12 Derek Price <derek@ximbiot.com>
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.
59 2004-05-10 Derek Price <derek@ximbiot.com>
61 * sanity.sh (top-level): Rename to...
62 (rstar-toplevel): ...this for clarity.
64 2004-05-10 Derek Price <derek@ximbiot.com>
66 * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
68 2004-05-02 Larry Jones <lawrence.jones@ugsplm.com>
70 * log.c (log_expand_revlist): Suppress warnings if really_quiet.
72 2004-05-07 Derek Price <derek@ximbiot.com>
74 * sanity.sh (basica): Remove unnecessary empty arguments.
76 2004-05-07 Derek Price <derek@ximbiot.com>
78 * cvs.h (fopen_case): Remove obsolescent prototype.
80 2004-05-05 Derek Price <derek@ximbiot.com>
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>.)
86 2004-05-05 Derek Price <derek@ximbiot.com>
88 * commit.c: Some gratuitous reformatting.
90 2004-05-04 Derek Price <derek@ximbiot.com>
92 * update.c: Some gratuitous reformatting.
94 2004-05-04 Derek Price <derek@ximbiot.com>
96 * add.c (add): Remove obsolete FIXME comment.
97 (*): Some gratuitous reformatting.
99 2004-04-26 Derek Price <derek@ximbiot.com>
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>.)
105 2004-04-19 Derek Price <derek@ximbiot.com>
107 * ignore.c: Gratuitous reformatting.
109 2004-04-11 Derek Price <derek@ximbiot.com>
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.
115 2004-04-11 Derek Price <derek@ximbiot.com>
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.
121 2004-04-07 Derek Price <derek@ximbiot.com>
123 * sanity.sh (parseroot): Replace hard path with $HOME.
125 2004-04-07 Derek Price <derek@ximbiot.com>
127 * sanity.sh (parseroot): s/oberon/$username/.
129 2004-04-07 Derek Price <derek@ximbiot.com>
131 * client.c (start_tcp_server): Use xstrdup rather than
132 xmalloc(strlen)/strcpy.
134 2004-04-07 Derek Price <derek@ximbiot.com>
136 * root.c (parse_cvsroot): Ignore method options.
137 * sanity.sh (parseroot): Verify that method options are ignored.
139 2004-04-06 Derek Price <derek@ximbiot.com>
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.
147 2004-04-06 Derek Price <derek@ximbiot.com>
149 * log.c, tag.c: Gratuitous restyling.
151 2004-04-04 Derek Price <derek@ximbiot.com>
153 * filesubr.c (isabsolute): Move...
154 * subr.c: ...here and use new ISABSOLUTE macro.
156 2004-04-04 Derek Price <derek@ximbiot.com>
158 * client.c (send_file_names): Cast out an unneeded const to avoid a
161 2004-04-03 Larry Jones <lawrence.jones@ugsplm.com>
163 * client.c (send_file_names): Remove unused variables.
165 2004-04-02 Derek Price <derek@ximbiot.com>
167 * sanity.sh (client): Honor $keep.
169 2004-04-02 Derek Price <derek@ximbiot.com>
171 * log.c, patch.c, rcs.c: Gratuitous restyling.
173 2004-04-02 Derek Price <derek@ximbiot.com>
175 * import.c (import): Use ISDIRSEP rather than testing paths against `/'
176 directly. Some gratuitos reformatting.
178 2004-04-02 Derek Price <derek@ximbiot.com>
180 * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
183 2004-04-02 Derek Price <derek@ximbiot.com>
185 * client.c (send_file_names): Move code which calculates and sends
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 `..'.
192 2004-04-01 Derek Price <derek@ximbiot.com>
194 * lock.c: Gratuitous restyling.
196 2004-04-01 Derek Price <derek@ximbiot.com>
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.
202 2004-03-29 Derek Price <derek@ximbiot.com>
204 * server.c: Gratuitous restyling.
206 2004-03-29 Derek Price <derek@ximbiot.com>
208 * login.c: Gratuitous restyling.
210 2004-03-22 Derek Price <derek@ximbiot.com>
212 * sanity.sh (toplevel): Remove FIXME type comment and unneeded
215 2004-03-22 Derek Price <derek@ximbiot.com>
217 * update.c: Some minor style cleanup.
219 2004-03-22 Derek Price <derek@ximbiot.com>
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>.)
225 2004-03-22 Derek Price <derek@ximbiot.com>
227 * sanity.sh (top-level): Don't match the assertion's line number.
229 2004-03-22 Derek Price <derek@ximbiot.com>
231 * sanity.sh (top-level): New test to confirm assertion failure.
233 2004-03-22 Derek Price <derek@ximbiot.com>
235 * sanity.sh: Only verify argument to -f when -f was passed. Check for
236 $TMPDIR/cvsXXXXXX temp files after each test.
238 2004-03-22 Derek Price <derek@ximbiot.com>
240 * sanity.sh: Verify that the argument to -f is really a test.
242 2004-03-20 Larry Jones <lawrence.jones@ugsplm.com>
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.
249 * subr.c (previous_rev): Fix == vs = typo.
251 * buffer.h: Add prototype for buf_empty.
253 * add.c (add): Remove unused variable.
255 2004-03-20 Derek Price <derek@ximbiot.com>
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.
303 2004-03-20 Derek Price <derek@ximbiot.com>
305 * sanity.sh (conflicts2): s/cvs/$testcvs/.
307 2004-03-20 Derek Price <derek@ximbiot.com>
309 * add.c (add): Correct longstanding resurrection bugs. Remove FIXME
310 comment to this effect. Set mode and Entries timestamps of resurrected
312 * sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
313 update-p): Update tests to compensate. Remove FIXCVS comments.
315 2004-03-19 Mark D. Baushke <mdb@cvshome.org>
317 * server.c (gserver_authenticate_connection): Handle large
318 GSSAPI packets dynamically.
319 (Bug report from Douglas Engert <DEEngert@anl.gov>)
321 2004-03-19 Derek Price <derek@ximbiot.com>
323 * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
324 prototype arguments to avoid potential conflicts with implementations.
326 2004-03-18 Derek Price <derek@ximbiot.com>
328 * cvs.h (pathname_levels): Make string argument const.
329 * subr.c (pathname_levels): Simplify function.
331 2004-03-17 Derek Price <derek@ximbiot.com>
333 * subr.c (pathname_levels): Get it right this time.
335 2004-03-17 Derek Price <derek@ximbiot.com>
337 * subr.c (pathname_levels): Remove incorrect assertion and just
338 return 0 when pathname is NULL.
340 2004-03-17 Derek Price <derek@ximbiot.com>
342 * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
343 and remove FIXME comment to that effect.
345 2004-03-16 Derek Price <derek@ximbiot.com>
347 * main.c (main): Update the --version Copyright (c) string to
350 2004-03-15 Mark D. Baushke <mdb@cvshome.org>
352 * release.c (release): Add missing xmalloc of update_cmd.
354 2004-03-15 Derek Price <derek@ximbiot.com>
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>.)
361 2004-03-14 Derek Price <derek@ximbiot.com>
363 * add.c (add): Only call server_updated() when we actual have a new
364 resurrected file for the client.
366 2004-03-14 Derek Price <derek@ximbiot.com>
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
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.
377 2004-03-14 Derek Price <derek@ximbiot.com>
379 * commit.c (remove_file): Print the actual previous revision instead of
381 * sanity.sh: Update to match.
383 2004-03-14 Derek Price <derek@ximbiot.com>
385 * rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
386 open in the error message.
388 2004-03-14 Derek Price <derek@ximbiot.com>
390 * diff.c (diff_fileproc): Allow diffing of new files against arbitrary
391 revisions instead of assuming that there is no RCS archive file.
393 2004-03-03 Derek Price <derek@ximbiot.com>
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
399 (Original patch from Dan Peterson <dbpete@aol.com>.)
401 * sanity.sh (import-CVS): New tests for the above.
403 2004-02-29 Larry Jones <lawrence.jones@ugsplm.com>
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.
411 2004-02-28 Larry Jones <lawrence.jones@ugsplm.com>
413 * sanity.sh (join6): New tests for previous fix.
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.
419 2004-02-25 Larry Jones <lawrence.jones@ugsplm.com>
421 * update.c (join_file): Fix optimization to avoid dereferencing NULL.
422 (Reported by Steve McIntyre <steve@einval.com>.)
424 2004-02-25 Derek Price <derek@ximbiot.com>
426 * buffer.c (buf_empty): New function.
427 * server.c (server): Check for unread data in buffer before closing.
429 2004-02-25 Derek Price <derek@ximbiot.com>
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
435 * sanity.sh: Add test case for release.c fix.
436 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
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.
443 2004-02-24 Larry Jones <lawrence.jones@ugsplm.com>
445 * filesubr.c (xresolvepath): Fix crash in error case.
446 (Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
448 2004-02-24 Derek Price <derek@ximbiot.com>
450 * sanity.sh (crerepos): Minor stylistic changes to previous change.
452 2004-02-24 Derek Price <derek@ximbiot.com>
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>.)
459 * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
460 s/_SAVED\>/_save/ for consistency.
462 2004-02-20 Derek Price <derek@ximbiot.com>
464 * subr.c (set_nonblock_fd): Move back to...
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.
470 2004-02-20 Derek Price <derek@ximbiot.com>
472 * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
473 update.c: Remove VIM editor commands.
475 2004-02-20 Larry Jones <lawrence.jones@ugsplm.com>
477 * hash.h (struct node): Change data from char * to void *, change
480 2004-02-19 Larry Jones <lawrence.jones@ugsplm.com>
482 * login.c (password_entry_operation): Initialize line.
484 2004-02-19 Derek Price <derek@ximbiot.com>
486 * sanity.sh (crerepos): Correct comment.
488 2004-02-19 Derek Price <derek@ximbiot.com>
490 * sanity.sh (crerepos): Don't create directories named `tmp' in
491 $TESTDIR to avoid conflicts with the default value of $TMPDIR.
493 2004-02-19 Derek Price <derek@ximbiot.com>
495 * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
498 2004-02-19 Derek Price <derek@ximbiot.com>
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.
505 2004-02-17 Derek Price <derek@ximbiot.com>
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.
511 2004-02-17 Derek Price <derek@ximbiot.com>
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.
516 2004-02-17 Larry Jones <lawrence.jones@ugsplm.com>
518 * log.c (rlog_proc): Fix (harmless) uninitialized variable.
520 * sanity.sh (basicc): Add tests pointing out defective handling
523 2004-02-17 Derek Price <derek@ximbiot.com>
525 * checkout.c (build_dir_and_chdir): Expand header comment.
527 2004-02-15 Mark D. Baushke <mdb@cvshome.org>
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.
535 2004-02-13 Larry Jones <lawrence.jones@ugsplm.com>
537 * rcs.c (locate_rcs): Remove unused variables.
539 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
541 * lock.c (readers_exist): Plug a memory leak.
543 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
545 * server.c (do_cvs_command): Plug a memory leak.
547 2004-02-12 Derek Price <derek@ximbiot.com>
549 * modules.c: Reformat comment and line to fit in 80 chars.
551 2004-02-12 Larry Jones <lawrence.jones@ugsplm.com>
553 * modules.c (_do_module): Rename to my_module to avoid reserved name.
554 * stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
556 2004-02-11 Larry Jones <lawrence.jones@ugsplm.com>
558 * root.c (parse_cvsroot): Set hostname in fork mode for error messages.
559 * buffer.c (stdio_buffer_shutdown): Undo previous change.
561 2004-02-11 Mark D. Baushke <mdb@cvshome.org>
563 * buffer.c (buf_free): Plug a memory leak.
564 * commit.c (checkaddfile): Ditto.
566 * server.c (fd_buffer_shutdown): Avoid a double free().
568 * parseinfo.c (parse_config): Fix comments.
570 2004-02-11 Derek Price <derek@ximbiot.com>
572 * buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
573 print current_parsed_root->hostname when using the fork method.
575 2004-02-11 Derek Price <derek@ximbiot.com>
577 * server.c (do_cvs_command): Simplify stream & pipe closing.
578 (Suggestion from Eric Siegerman <erics@telepres.com>.)
580 * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
582 2004-02-11 Derek Price <derek@ximbiot.com>
584 * checkout.c (checkout_proc): s/is_absolute/isabsolute/.
586 2004-02-11 Derek Price <derek@ximbiot.com>
588 * checkout.c (checkout_proc): Remove unneeded variable and enclosing
590 * modules.c (_do_modules): Minor whitespace change.
592 2004-02-10 Derek Price <derek@ximbiot.com>
594 * server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
595 (set_block_fd, set_nonblock_fd): Move to...
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.
601 2004-02-10 Derek Price <derek@ximbiot.com>
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>.)
611 2004-02-10 Derek Price <derek@ximbiot.com>
613 * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
615 2004-02-09 Derek Price <derek@ximbiot.com>
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.
621 2004-02-09 Derek Price <derek@ximbiot.com>
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.
627 2004-02-09 Derek Price <derek@ximbiot.com>
629 * sanity.sh (co-d): New test to prove `co -d' failure case.
631 2004-02-05 Derek Price <derek@ximbiot.com>
633 * sanity.sh (recase): Fix typo that creeped in somehow between my last
634 test run and my commit.
636 2004-02-04 Derek Price <derek@ximbiot.com>
638 * stack.c (shift, shift_string): Make sure these functions return their
641 2004-02-04 Derek Price <derek@ximbiot.com>
643 * modules.c (do_modules): Move content to and make this function a
645 (_do_modules): ...this new function which can watch for infinite loops
647 * stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
648 unshift_string, shift_string): New
650 * stack.h (push_string, pop_string, unshift_string, shift_string: New
652 * sanity.sh (modules): Add check for nested alias loops.
654 2004-02-04 Derek Price <derek@ximbiot.com>
656 * sanity.sh (recase): Update test names and comments for clarity and
659 2004-02-03 Derek Price <derek@ximbiot.com>
661 Preserve the case of checked out directories in a path as well as file
662 names for client communication with the server.
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.
670 * Makefile.in: Regenerated.
672 2004-02-02 Derek Price <derek@ximbiot.com>
674 * sanity.sh (join-rm): New test for issue #104 & #159.
676 2004-02-02 Derek Price <derek@ximbiot.com>
678 Continue removal from server of handling of case insensitive clients.
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
688 2004-02-02 Derek Price <derek@ximbiot.com>
690 * add.c, client.c, cvs.h, rcs.c, subr.c: Remove server support for case
693 2004-01-25 Derek Price <derek@ximbiot.com>
695 * server.c (kserver_authenticate_connection): Fix call to
697 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
699 2004-01-22 Derek Price <derek@ximbiot.com>
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.
705 2004-01-17 Mark D. Baushke <mdb@cvshome.org>
707 * logmsg.c (do_verify): Eliminate double-free bug.
708 (Original patch from Gerald Combs.)
710 2004-01-07 Larry Jones <lawrence.jones@ugsplm.com>
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.
721 2004-01-01 Larry Jones <lawrence.jones@ugsplm.com>
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>.)
727 2003-12-18 Derek Price <derek@ximbiot.com>
729 * server.c (switch_to_user): SysLog attempts to root from pserver.
731 2003-12-18 Derek Price <derek@ximbiot.com>
733 * server.c (switch_to_user): Don't allow CVS to run as root in pserver
735 (Original patch from Wichert Akkerman via Bradley M Kuhn
737 * sanity.sh (pserver): Check for bad root error message.
739 2003-12-17 Larry Jones <lawrence.jones@eds.com>
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>.)
745 2003-12-09 Mark D. Baushke <mdb@cvshome.org>
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
751 (Problem reported by "Jim.Hyslop" <Jim.Hyslop@Leitch.com>.)
753 2003-12-03 Derek Price <derek@ximbiot.com>
755 * sanity.sh (recase-8csss): rename to...
756 (recase-8sscs): ...this to match the convention.
758 2003-12-03 Derek Price <derek@ximbiot.com>
760 * sanity.sh (recase): Add some clarifying comments.
762 2003-12-03 Larry Jones <lawrence.jones@eds.com>
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>.)
768 2003-11-26 Derek Price <derek@ximbiot.com>
770 * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
771 intermittent conniptions.
773 2003-11-25 Mark D. Baushke <mdb@cvshome.org>
775 * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
777 2003-11-25 Derek Price <derek@ximbiot.com>
779 * sanity.sh (release): Perform forgotten cleanup.
781 2003-11-25 Derek Price <derek@ximbiot.com>
783 * commit.c (commit_fileproc): Reword comment.
785 2003-11-25 Derek Price <derek@ximbiot.com>
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
790 * sanity.sh (recase): New tests for behavior which varies when the
791 client and/or the server are case insensitive.
793 2003-11-25 Derek Price <derek@ximbiot.com>
795 * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
796 considerably between platforms.
798 2003-11-24 Larry Jones <lawrence.jones@eds.com>
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>.)
804 2003-11-24 Derek Price <derek@ximbiot.com>
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.
811 2003-11-21 Larry Jones <lawrence.jones@eds.com>
813 * hash.c (printnode, printlist): Cast %p arguments to void * as
814 required by the C standard.
816 2003-11-21 Derek Price <derek@ximbiot.com>
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.
828 (newroot): New function.
829 (*): Use newroot when appropriate.
831 2003-11-19 Larry Jones <lawrence.jones@eds.com>
833 * rcs.c (RCS_getrevtime): Add error checking; cleanup.
835 2003-11-18 Derek Price <derek@ximbiot.com>
837 * modules.c (do_module): Reject absolute paths.
838 (Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
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.
845 2003-11-13 Derek Price <derek@ximbiot.com>
847 * rcs.c (RCS_delete_revs): It's `&&', not `and'.
849 2003-11-13 Derek Price <derek@ximbiot.com>
851 * sanity.sh: Create the empty log to make it easier to tail immediately
852 after the script is started.
854 2003-11-13 Derek Price <derek@ximbiot.com>
856 * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
859 2003-11-13 Derek Price <derek@ximbiot.com>
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
866 2003-11-10 Derek Price <derek@ximbiot.com>
868 * commit.c (check_fileproc, find_fileproc): Don't leak memory.
870 2003-11-10 Derek Price <derek@ximbiot.com>
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>.)
876 * sanity.sh (rmadd3): Update to match. Expand comments.
878 2003-11-10 Derek Price <derek@ximbiot.com>
880 * sanity.sh (rmadd3): Test the behavior of commit after the
882 (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
884 2003-11-10 Mark D. Baushke <mdb@cvshome.org>
886 * Backport symlink bugfix from cvs 1.12.1.1 feature release
887 as written by Derek Price <derek@ximbiot.com>. (This fixes
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.
896 * cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
897 (xresolvepath): New proto.
898 (start_recursion): Add repository to proto.
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
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):
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.
922 * patch.c (patch_proc): Call tag_check_valid with repository
925 * filesubr.c (xreadlink): #ifdef HAVE_READLINK this function. Add
926 more complete header comment.
927 (xresolvepath): New function.
929 * recurse.c (do_recursion): Call Lock_Cleanup() only repository
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.
937 * checkout.c (checkout_proc): Use new definition of do_update().
938 * update.c (update): Ditto.
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
953 2003-11-10 Derek Price <derek@ximbiot.com>
955 * sanity.sh (rmadd3): Add whitespace after end of test for readability.
957 2003-11-10 Derek Price <derek@ximbiot.com>
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>.)
964 2003-11-03 Derek Price <derek@ximbiot.com>
966 * sanity.sh (server): Test that the global `-l' option is ignored
969 2003-11-01 Larry Jones <lawrence.jones@eds.com>
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>.)
975 2003-10-31 Derek Price <derek@ximbiot.com>
977 * sanity.sh (checkout_repository): Name tests consistently.
979 2003-10-31 Derek Price <derek@ximbiot.com>
981 * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
983 2003-10-28 Derek Price <derek@ximbiot.com>
985 * sanity.sh (devcom): s/cvs/$PROG/.
987 2003-10-28 Derek Price <derek@ximbiot.com>
989 * sanity.sh (devcom): Renumber tests and use dotest function.
991 2003-10-28 Derek Price <derek@ximbiot.com>
993 * sever.h: Add the standard copyright notice.
995 2003-10-28 Derek Price <derek@ximbiot.com>
997 * lock.c: Remove some suggestions which have already been implemented
998 or which have become obsolete from the header comment.
1000 2003-10-26 Derek Price <derek@ximbiot.com>
1002 * sanity.sh (join6): Fix a few typos in the last test and remove a
1005 2003-10-25 Mark D. Baushke <mdb@cvshome.org>
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).
1011 2003-10-24 Derek Price <derek@ximbiot.com>
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.
1021 2003-10-23 Mark D. Baushke <mdb@cvshome.org>
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.
1029 2003-10-23 Derek Price <derek@ximbiot.com>
1031 * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
1034 2003-10-19 Mark D. Baushke <mdb@cvshome.org>
1036 * sanity.sh (admin-31): Fix more typos.
1038 2003-10-18 Mark D. Baushke <mdb@cvshome.org>
1040 * sanity.sh (admin): Fix a typo.
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
1047 (Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
1048 * sanity.sh (admin): Test these changes.
1050 2003-10-17 Mark D. Baushke <mdb@cvshome.org>
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.
1057 2003-10-15 Larry Jones <lawrence.jones@eds.com>
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>.)
1063 2003-10-14 Derek Price <derek@ximbiot.com>
1065 Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
1066 testing with _POSIX2_VERSION=200112 in the environment.
1068 * sanity.sh: Use 'sed 1q', not 'head -1'.
1069 (Patch from Paul Eggert <eggert@twinsun.com>.)
1071 2003-10-10 Derek Price <derek@ximbiot.com>
1073 * lock.c (set_lock): Clarify comment.
1075 2003-10-08 Derek Price <derek@ximbiot.com>
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
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'.
1090 * Makefile.in: Regenerated.
1092 2003-10-08 Derek Price <derek@ximbiot.com>
1094 * update.c (patch_file): Correct spelling and punctuation in comment.
1095 Update some lines to fit in 80 characters.
1097 2003-10-08 Larry Jones <lawrence.jones@eds.com>
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>.)
1103 2003-10-07 Larry Jones <lawrence.jones@eds.com>
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.
1108 2003-10-07 Derek Price <derek@ximbiot.com>
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.
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.
1124 2003-10-07 Derek Price <derek@ximbiot.com>
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.
1130 2003-10-03 Derek Price <derek@ximbiot.com>
1132 * server.c (serve_global_option): Warn that -l is being ignored rather
1133 than exiting fatally due to backwards compatibility complaints from
1136 2003-09-29 Derek Price <derek@ximbiot.com>
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.
1141 2003-09-26 Derek Price <derek@ximbiot.com>
1143 * diff.c (diff): Add a FIXME re spaces in diff arguments.
1145 2003-09-25 Mark D. Baushke <mdb@cvshome.org>
1147 * rcs.c (make_file_label): Do not return an uninitialized label.
1148 (Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
1150 2003-09-12 Derek Price <derek@ximbiot.com>
1152 * sanity.sh (mkmodules): Correct comments.
1154 2003-09-12 Derek Price <derek@ximbiot.com>
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.
1163 2003-09-12 Derek Price <derek@ximbiot.com>
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.
1173 2003-08-27 Larry Jones <lawrence.jones@eds.com>
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>.)
1183 2003-08-13 Larry Jones <lawrence.jones@eds.com>
1185 * server.c (server_cleanup): Don't shutdown buf_from_net if it's
1187 (Reported by Scott Mitchell <scott@fishballoon.org>.)
1189 2003-08-01 Derek Price <derek@ximbiot.com>
1191 * sanity.sh (join5): Use $PROG consistently and escape a `.'.
1193 2003-08-01 Derek Price <derek@ximbiot.com>
1195 * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
1197 2003-07-31 Derek Price <derek@ximbiot.com>
1199 * add.c (add_directory): Restore a malloc I shouldn't have altered on
1202 2003-07-31 Derek Price <derek@ximbiot.com>
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.
1208 2003-07-31 Derek Price <derek@ximbiot.com>
1210 * add.c (add_directory): Don't print status information in really_quiet
1213 2003-07-29 Derek Price <derek@ximbiot.com>
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.
1219 2003-07-29 Derek Price <derek@ximbiot.com>
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.
1225 2003-07-28 Derek Price <derek@ximbiot.com>
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.)
1232 2003-07-28 Derek Price <derek@ximbiot.com>
1234 * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
1237 2003-07-25 Derek Price <derek@ximbiot.com>
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
1245 2003-07-25 Derek Price <derek@ximbiot.com>
1247 * commit.c (finaladd): But don't free variables we no longer allocate.
1249 2003-07-25 Derek Price <derek@ximbiot.com>
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.
1257 2003-07-25 Derek Price <derek@ximbiot.com>
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>.)
1263 2003-07-25 Derek Price <derek@ximbiot.com>
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>.)
1269 2003-07-25 Derek Price <derek@ximbiot.com>
1271 * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
1274 2003-07-25 Derek Price <derek@ximbiot.com>
1276 * cvs.h (strip_trailing_newlines): Update prototype.
1277 * subr.c (strip_trailing_newlines): Return true when newlines are
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.
1283 2003-07-20 Derek Price <derek@ximbiot.com>
1285 * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
1288 2003-07-12 Larry Jones <lawrence.jones@eds.com>
1290 * sanity.sh (diffnl): New tests for diff on files with no newline
1292 (Patch from Andrew Moise <chops@demiurgestudios.com>.)
1294 2003-07-09 Larry Jones <lawrence.jones@eds.com>
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.
1300 * update.c (join_file): Handle locally removed but not yet committed
1302 (Reported by Larry Lords <LordsLL@ldschurch.org>.)
1303 * sanity.sh (join, join4): New tests for above.
1305 2003-06-28 Larry Jones <lawrence.jones@eds.com>
1307 * commit.c (fixaddfile): Bail out if locate_rcs() fails. Make
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.
1319 2003-06-27 Larry Jones <lawrence.jones@eds.com>
1321 * lock.c (readers_exist): Use LockDir rather than always looking
1323 (Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
1324 Remove vestigial lock promotion code.
1326 2003-06-26 Larry Jones <lawrence.jones@eds.com>
1328 * hash.c (sortlist): Avoid crash when list is null.
1330 2003-06-23 Derek Price <derek@ximbiot.com>
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>.)
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.
1340 2003-06-23 Derek Price <derek@ximbiot.com>
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>.)
1348 2003-06-20 Derek Price <derek@ximbiot.com>
1350 * client.c: Remove silly comment.
1351 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
1353 2003-06-13 Derek Price <derek@ximbiot.com>
1355 * subr.c (file_has_conflict): Fix comment.
1356 (Patch from Paul Edwards <kerravon@w3.to>.)
1358 2003-06-13 Derek Price <derek@ximbiot.com>
1360 * subr.c (xrealloc): Trivial comment fix.
1361 (Patch from Kenneth Lorber <keni@his.com>.)
1363 2003-06-13 Derek Price <derek@ximbiot.com>
1365 * diff.c (diff_fileproc): Fix memory leak.
1366 (Patch from Kenneth Lorber <keni@his.com>.)
1368 2003-06-12 Derek Price <derek@ximbiot.com>
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>.)
1375 2003-06-11 Larry Jones <lawrence.jones@eds.com>
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.
1381 2003-06-09 Derek Price <derek@ximbiot.com>
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".
1387 2003-06-09 Derek Price <derek@ximbiot.com>
1389 * filesubr.c (cvs_temp_file): Tidy a comment.
1391 2003-06-09 Derek Price <derek@ximbiot.com>
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>.)
1398 2003-06-04 Derek Price <derek@ximbiot.com>
1400 * cvs.h (locate_file_in_dir): New proto.
1401 (locate_rcs): Move proto...
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.
1408 2003-06-02 Derek Price <derek@ximbiot.com>
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>.)
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 &
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
1421 * rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
1423 * rcs.c (RCS_cmp_file): Accept a second revision number and cache the
1424 first revision if it needs to be checked out.
1426 * checkin.c (Checkin): Use new RCS_cmp_file().
1427 * import.c (update_rcs_file): Ditto.
1428 * no_diff.c (No_Difference): Ditto.
1430 * cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
1431 * rcs.h (RCS_cmp_file): Ditto.
1433 * sanity.sh: Minor corrections to handle the above changes.
1435 2003-05-29 Derek Price <derek@ximbiot.com>
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>.)
1443 2003-05-23 Larry Jones <lawrence.jones@eds.com>
1445 * sanity.sh (info-cleanup-verifymsg): Avoid race in output.
1447 2003-05-22 Larry Jones <lawrence.jones@eds.com>
1449 * commit.c (commit): Fix leading zero stripping code to not strip
1450 unless there's a following digit.
1452 * parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
1453 * sanity.sh (info): New test for above.
1455 2003-05-21 Derek Price <derek@ximbiot.com>
1457 * Makefile.in: Regenerate with Automake version 1.7.5.
1459 2003-05-20 Larry Jones <lawrence.jones@eds.com>
1461 * parseinfo.c (Parse_Info): Fix stupid memory management error.
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.
1468 2003-05-18 Mark D. Baushke <mdb@gnu.org>
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.
1476 2003-05-18 Larry Jones <lawrence.jones@eds.com>
1478 * server.h (kserver_authenticate_connection,
1479 pserver_authenticate_connection): Add prototypes.
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.
1485 2003-05-01 Derek Price <derek@ximbiot.com>
1487 * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
1488 (Report from Jim Salter <jsalterjim@earthlink.net>.)
1490 2003-05-01 Derek Price <derek@ximbiot.com>
1492 * repos.c (Sanitize_Repository_Name): Remove some old comments about
1493 the defunct RELATIVE_REPOS macro.
1494 * server.c (outside_root): Ditto.
1496 2003-04-30 Derek Price <derek@ximbiot.com>
1498 * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
1500 2003-04-28 Derek Price <derek@ximbiot.com>
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.
1520 * cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
1521 * server.h (server_prog): Remove proto.
1522 (progs): Remove enum.
1524 * sanity.sh (modules5): Remove tests for checkin and update programs.
1526 2003-04-10 Larry Jones <lawrence.jones@eds.com>
1528 * Makefile.in: Regenerated.
1530 2003-03-27 Mark D. Baushke <mdb@cvshome.org>
1532 * sanity.sh (rdiff2): Add new test case for SEGV problem reported
1534 (Report from James Cribb)
1536 2003-03-26 Derek Price <derek@ximbiot.com>
1538 * client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
1540 * client.h: Ditto. Remove some unecessary server function prototypes.
1542 2003-03-26 Derek Price <derek@ximbiot.com>
1544 * client.c: Include the net headers for HAVE_GSSAPI.
1545 (Report from Jim Salter <jsalterjim@earthlink.net>.)
1547 2003-03-26 Derek Price <derek@ximbiot.com>
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
1553 * sanity.sh (opterrmsg): New tests for -z argument checking.
1555 2003-03-26 Larry Jones <lawrence.jones@eds.com>
1557 * main.c (main): Use strtol() instead of atoi() when parsing -z
1559 (Reported by Eric Siegerman <erics@telepres.com>.)
1561 2003-03-24 Derek Price <derek@ximbiot.com>
1563 * Makefile.am: Update copyright notice.
1565 * Makefile.in: Regenerated.
1567 2003-03-19 Larry Jones <lawrence.jones@eds.com>
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.
1573 * filesubr.c (locate_rcs): Fix gcc warning.
1575 2003-03-17 Derek Price <derek@ximbiot.com>
1577 * add.c: Correct comment.
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.
1594 2003-03-17 Larry Jones <lawrence.jones@eds.com>
1596 * server.c (switch_to_user): Add syslog calls for setgid/setuid
1599 2003-03-07 Derek Price <derek@ximbiot.com>
1601 * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
1604 2003-03-07 Derek Price <derek@ximbiot.com>
1606 * sanity.sh (usage): Show users long --help rather than less
1609 2003-03-07 Derek Price <derek@ximbiot.com>
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.
1616 2003-03-07 Larry Jones <lawrence.jones@eds.com>
1618 * commit.c (check_fileproc): Remove unused variables.
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.
1626 2003-03-06 Derek Price <derek@ximbiot.com>
1628 * subr.c (file_has_conflict): New file.
1629 * commit.c (check_fileproc): Factor code into new file_has_conflict()
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>.)
1635 * sanity.sh (status): New test for same.
1637 2003-03-05 Mark D. Baushke <mdb@cvshome.org>
1639 * rcs.c (RCS_magicrev): Backout CVS_LOCAL_BRANCH_NUM feature.
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.
1657 2003-03-04 Derek Price <derek@ximbiot.com>
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.
1664 2003-02-28 Derek Price <derek@ximbiot.com>
1666 * root.c (parse_cvsroot): s/no_passwd/no_password/ in comments.
1668 2003-02-28 Derek Price <derek@ximbiot.com>
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.
1674 2003-02-28 Larry Jones <lawrence.jones@eds.com>
1676 * lock.c (set_lock): If possible, try a short wait with no message
1677 before calling lock_wait() to optimize master lock contention.
1679 2003-02-26 Larry Jones <lawrence.jones@eds.com>
1681 * checkout.c (checkout): Send "--" before file names.
1682 * sanity.sh (spacefiles): Remote now works just like local.
1684 2003-02-25 Derek Price <derek@ximbiot.com>
1686 * sanity.sh (rcs4): Use UTC to work across timezones.
1688 2003-02-25 Derek Price <derek@ximbiot.com>
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.
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.
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.
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.
1713 * sanity.sh (rcs4): Tests for same.
1714 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
1716 2003-02-25 Derek Price <derek@ximbiot.com>
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
1722 (Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
1723 Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
1725 2003-02-25 Derek Price <derek@ximbiot.com>
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.
1731 * Makefile.in: Regenerated.
1733 2003-02-25 Derek Price <derek@ximbiot.com>
1735 * watch.c (watch_usage): Use {} rather than () for literals.
1737 2003-02-14 Derek Price <derek@ximbiot.com>
1739 * watch.c (watch_usage): Make the repeatability of -a part of the
1742 2003-02-14 Derek Price <derek@ximbiot.com>
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'.
1749 2003-02-07 Derek Price <derek@ximbiot.com>
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!)
1759 * sanity.sh (branch-after-import): Misc portablility and standard
1762 2003-02-12 Derek Price <derek@ximbiot.com>
1764 * main.c (main): Update copyright message to 2003.
1766 2003-02-21 Larry Jones <lawrence.jones@eds.com>
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.
1776 2003-02-19 Larry Jones <lawrence.jones@eds.com>
1778 * sanity.sh (admin-10): Add test for repository files not in
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>).
1786 2003-02-14 Larry Jones <lawrence.jones@eds.com>
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.
1792 2003-02-01 Larry Jones <lawrence.jones@eds.com>
1794 * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
1795 (Patch from Johannes Grødem <johs+n@ifi.uio.no>.)
1797 2003-02-08 Derek Price <derek@ximbiot.com>
1799 * rcs.c (RCS_checkout): Supply the full function name in the trace
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
1808 2003-02-06 Derek Price <derek@ximbiot.com>
1810 * client.c: Use the complete path to the CVSADM_TEMPLATE file in
1811 error messages. Remove related FIXME.
1813 2003-01-31 Derek Price <derek@ximbiot.com>
1815 * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
1817 2003-01-30 Derek Price <derek@ximbiot.com>
1819 * sanity.sh (keywordname): New test.
1821 2003-01-23 Larry Jones <lawrence.jones@eds.com>
1823 * diff.c (diff_fileproc): Restructure code to simplify and eliminate
1826 * server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
1827 coding test for core file.
1829 2003-01-21 Larry Jones <lawrence.jones@eds.com>
1831 * root.c (method_name): Redefine as a 2D array.
1832 * root.h (method_name): Ditto.
1834 2003-01-21 Jim Meyering <jim@meyering.net>
1836 * add.c (add): Rename local-shadowing `i' to `j'.
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.
1843 2003-01-20 Larry Jones <lawrence.jones@eds.com>
1845 * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
1846 it parses correctly.
1847 (Reported by Andres Bertens <abertens@entelchile.net>.)
1849 2003-01-15 Karl Fogel <kfogel@collab.net>
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.
1857 Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
1859 2003-01-08 Larry Jones <lawrence.jones@eds.com>
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>.)
1867 2003-01-02 Larry Jones <lawrence.jones@eds.com>
1869 * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
1871 2002-12-27 Derek Price <derek@ximbiot.com>
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.
1890 * myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
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.)
1897 2002-12-20 Derek Price <derek@ximbiot.com>
1899 * client.c (send_a_repository): Suppress a warning under Windoze.
1901 2002-12-19 Derek Price <derek@ximbiot.com>
1903 * Makefile.am: Remove reference to options.h.
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.
1909 * Makefile.in: Regenerated.
1911 2002-12-16 Derek Price <derek@ximbiot.com>
1913 * admin.c: Disable cvsadmin group checking on the client.
1914 (Reported by Dan Peterson <dbpete@aol.com>.)
1916 2002-12-06 Derek Price <derek@ximbiot.com>
1918 * buffer.c: Replace calls to malloc with calls to xmalloc and calls to
1919 realloc with calls to xrealloc.
1920 * parseinfo.c: Ditto.
1924 * scramble.c: Change some comments to refer to xmalloc rather than
1926 (Reported by Dan Peterson <dbpete@aol.com>.)
1928 2002-12-04 Derek Price <derek@ximbiot.com>
1930 * options.h: Remove CVS_ADMIN_GROUP.
1932 2002-12-02 Larry Jones <lawrence.jones@eds.com>
1934 * commit.c (commit): Strip leading zeros from numeric revision
1935 in addition to trailing dots.
1936 (Reported by Peter Meszaros <pme@prolan.hu>.)
1938 2002-11-22 Larry Jones <lawrence.jones@eds.com>
1940 * sanity.sh: Note that the tests run for a long time.
1942 * checkout.c (safe_location): Use xstrdup, not strdup.
1943 (Reported by Terrence Enger <tenger@iSeries-guru.com>.)
1945 2002-11-19 Larry Jones <lawrence.jones@eds.com>
1947 * log.c (log_expand_revlist): Fix cross-branch correction code.
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.
1953 2002-11-12 Derek Price <derek@ximbiot.com>
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.
1959 2002-11-08 Derek Price <derek@ximbiot.com>
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.
1966 2002-11-03 Derek Price <derek@ximbiot.com>
1968 * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
1970 2002-11-03 Derek Price <derek@ximbiot.com>
1972 * sanity.sh (rcs2-7): Notate with three more failure dates.
1974 2002-10-25 Derek Price <derek@ximbiot.com>
1976 * root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
1977 more appropriate calls to error_exit().
1981 2002-10-24 Derek Price <derek@ximbiot.com>
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>.)
1993 2002-10-05 Larry Jones <lawrence.jones@eds.com>
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
2002 2002-10-04 Larry Jones <lawrence.jones@eds.com>
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.
2017 2002-10-03 Larry Jones <lawrence.jones@eds.com>
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).
2026 2002-09-27 Larry Jones <lawrence.jones@eds.com>
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.
2041 * sanity.sh (client-9): Update to match.
2043 2002-09-24 Derek Price <derek@ximbiot.com>
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.
2049 2002-09-24 Derek Price <derek@ximbiot.com>
2051 * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
2053 2002-09-24 Derek Price <derek@ximbiot.com>
2055 * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
2057 2002-09-24 Derek Price <derek@ximbiot.com>
2059 * options.h: Move definition of UMASK_DFLT into configure.in.
2061 2002-09-24 Derek Price <derek@ximbiot.com>
2063 * Makefile.in: Regenerated using Automake 1.6.3.
2065 2002-09-24 Larry Jones <lawrence.jones@eds.com>
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.
2071 2002-09-24 Derek Price <derek@ximbiot.com>
2073 * options.h: Move definition of TMPDIR_DFLT into configure.in.
2075 2002-09-24 Derek Price <derek@ximbiot.com>
2077 * options.h: Move defininition of EDITOR_DFLT into configure.in.
2079 * Makefile.in: Regenerated.
2081 2002-09-23 Jim Meyering <meyering@lucent.com>
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>.
2094 2002-09-20 Derek Price <derek@ximbiot.com>
2096 * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
2097 and SERVER_LO_WATER into configure.in.
2099 2002-09-20 Derek Price <derek@ximbiot.com>
2101 * options.h: Move definition of PATCH_PROGRAM to configure.in.
2103 2002-09-18 Larry Jones <lawrence.jones@eds.com>
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.
2110 2002-09-16 Jim Meyering <meyering@lucent.com>
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>.
2117 2002-09-15 Larry Jones <lawrence.jones@eds.com>
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>.)
2124 2002-08-28 Larry Jones <lawrence.jones@eds.com>
2126 * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
2127 (Reported by Eric Siegerman <erics@telepres.com>.)
2129 2002-08-16 Derek Price <derek@ximbiot.com>
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.
2136 2002-08-14 Derek Price <oberon@umich.edu>
2138 * server.c (server): Dispose of the correct pointer. Tidy comment.
2140 2002-08-13 Derek Price <oberon@umich.edu>
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.
2146 2002-08-08 Derek Price <oberon@umich.edu>
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>.)
2153 2002-07-31 Derek Price <oberon@umich.edu>
2155 * filesubr.c: Add a line so VIM can determine tab stops and shift widths.
2157 * (parse_cvsroot): Add comments and tidy slightly.
2159 2002-07-31 Derek Price <oberon@umich.edu>
2161 * sanity.sh: Add another date to the comment about rcs2-7 failing.
2163 2002-07-26 Jim Meyering <meyering@lucent.com>
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
2168 * sanity.sh (commit-add-missing): New test for above.
2170 2002-07-25 Larry Jones <lawrence.jones@eds.com>
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.
2175 2002-07-09 Larry Jones <lawrence.jones@eds.com>
2177 * vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
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>.)
2184 2002-06-26 Larry Jones <lawrence.jones@eds.com>
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.
2191 2002-06-18 Larry Jones <lawrence.jones@eds.com>
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.
2198 2002-06-18 Derek Price <oberon@umich.edu>
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
2203 (Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
2205 2002-06-17 Larry Jones <lawrence.jones@eds.com>
2206 and Jonathan Kamens <jik@kamens.brookline.ma.us>
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.
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).
2217 2002-05-31 Larry Jones <lawrence.jones@eds.com>
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>.)
2223 2002-05-24 Larry Jones <lawrence.jones@eds.com>
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>.)
2229 * rcscmds.c (diff_execv): Remove -- same as diff_exec. Change
2233 2002-05-23 Larry Jones <lawrence.jones@eds.com>
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.
2239 2002-05-22 Derek Price <oberon@umich.edu>
2241 * cvs.h: Add prototype for this...
2242 * filesubr.c (strcat_filename_onto_homedir): new function.
2243 * login.c (): Use new function.
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>.)
2250 2002-05-21 Larry Jones <lawrence.jones@eds.com>
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.
2257 2002-05-20 Derek Price <oberon@umich.edu>
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>.)
2265 2002-05-20 Derek Price <oberon@umich.edu>
2267 * main.c (main): Add 2002 to the copyright years output with the
2270 2002-05-15 Larry Jones <lawrence.jones@eds.com>
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>.)
2277 2002-05-09 Larry Jones <lawrence.jones@eds.com>
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
2282 (Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
2284 2002-05-08 Derek Price <oberon@umich.edu>
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.
2290 2002-05-08 Derek Price <oberon@umich.edu>
2292 * cvs.h: Use the HAVE_CONFIG_H define.
2294 2002-05-07 Larry Jones <lawrence.jones@eds.com>
2296 * filesubr.c (isaccessible): Set errno before returning failure
2297 in the SETXID_SUPPORT code.
2299 * logmsg (do_verify): Avoid even more work if there's no verifymsg
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.
2307 * commit.c (commit): Always send -m to the server, even if there's
2310 * create_adm.c (Create_Admin): Add dotemplate parameter to trace.
2311 Remove unreachable code.
2313 2002-05-03 Larry Jones <lawrence.jones@eds.com>
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>.)
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
2326 2002-05-02 Derek Price <oberon@umich.edu>
2328 * .cvsignore: Remove lines for files obsoleted by new autotools.
2330 2002-05-02 Derek Price <oberon@umich.edu>
2332 * stamp-h2.in: Remove this uneeded file.
2334 2002-05-01 Derek Price <oberon@umich.edu>
2336 * options.h.in: Move to...
2339 2002-04-30 Derek Price <oberon@umich.edu>
2341 * version.h.in: Remove this file.
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.
2352 * Makefile.in: Regenerated with automake 1.6.
2354 2002-04-28 Derek Price <oberon@umich.edu>
2356 * cvs.h: Use `"'s around includes when we mean a local file.
2358 2002-04-28 Derek Price <oberon@umich.edu>
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.).
2365 2002-04-26 Larry Jones <larry.jones@sdrc.com>
2367 * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
2368 (Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
2370 2002-04-19 Larry Jones <larry.jones@sdrc.com>
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).
2376 * subr.c (gca): Simplify and optimize.
2378 2002-04-19 Jim Meyering <meyering@lucent.com>
2379 and Ed Santiago <easm@lucent.com>
2381 * classify.c (Classify_File): Fix it so that `cvs update -p -r...'
2382 works, even under some slightly unusual (though perfectly legitimate)
2384 * sanity.sh (update-p): New tests for this.
2386 2002-04-18 Derek Price <oberon@umich.edu>
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.
2391 2002-04-18 Larry Jones <larry.jones@sdrc.com>
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.
2396 * wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
2398 2002-04-18 Derek Price <oberon@umich.edu>
2400 * version.h: Regenerated for 1.11.2.1 version update.
2402 2002-04-17 Derek Price <oberon@umich.edu>
2404 * version.h: Regenerated for 1.11.2.
2406 2002-04-03 Derek Price <oberon@umich.edu>
2408 * stamp-h2.in: Regenerate with recent version of Autoconf.
2410 2002-04-03 Derek Price <oberon@umich.edu>
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
2416 2002-03-22 Larry Jones <larry.jones@sdrc.com>
2418 * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
2421 2002-03-21 Derek Price <oberon@umich.edu>
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.)
2427 * sanity.sh (rcslib): Test for same.
2429 2002-03-17 Larry Jones <larry.jones@sdrc.com>
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.
2435 2002-03-13 Derek Price <oberon@umich.edu>
2437 * main.c (usg): Correct a spelling mistake in a comment.
2438 (Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
2440 2002-03-09 Larry Jones <larry.jones@sdrc.com>
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.
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.
2450 2002-02-27 Larry Jones <larry.jones@sdrc.com>
2452 * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
2454 2002-02-26 Larry Jones <larry.jones@sdrc.com>
2456 * diff.c (diff): Remove -V and --paginate options: they aren't valid.
2457 (diff_usage): Document all the diff options.
2459 2002-02-13 Larry Jones <larry.jones@sdrc.com>
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>.)
2468 2002-02-11 Larry Jones <larry.jones@sdrc.com>
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.
2474 2002-02-08 Larry Jones <larry.jones@sdrc.com>
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.
2480 2002-01-30 Larry Jones <larry.jones@sdrc.com>
2482 * error.h (error_exit): Remove unintended prototype.
2484 * server.c (serve_root): Remove check for impossible condition.
2485 (serve_init): Save and restore current_parsed_root.
2487 2002-01-29 Larry Jones <larry.jones@sdrc.com>
2489 * error.h (error_exit): Declare __noreturn__ to avoid spurious
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.
2501 2002-01-10 Larry Jones <larry.jones@sdrc.com>
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.
2510 2002-01-02 Larry Jones <larry.jones@sdrc.com>
2512 * server.c (LOG_DAEMON): Define if needed.
2513 (Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
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.
2519 2001-12-10 Larry Jones <larry.jones@sdrc.com>
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.
2526 2001-12-03 Larry Jones <larry.jones@sdrc.com>
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
2533 2001-11-30 Larry Jones <larry.jones@sdrc.com>
2535 * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
2537 2001-10-25 Larry Jones <larry.jones@sdrc.com>
2539 * log.c (log_expand_revlist): Make erroneous or inconsistent revision
2540 specs select no revisions rather than all revisions.
2542 2001-10-23 Larry Jones <larry.jones@sdrc.com>
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.
2556 2001-10-02 Larry Jones <larry.jones@sdrc.com>
2558 * rcs.c (RCS_fully_parse): Add revision number to more error messages.
2560 2001-09-27 Larry Jones <larry.jones@sdrc.com>
2562 * rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
2563 number to the "mismatch" error message.
2565 * sanity.sh (multiroot2-9a): Update to match changes to lock.c.
2567 2001-09-26 Larry Jones <larry.jones@sdrc.com>
2569 * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
2571 2001-09-24 Derek Price <dprice@collab.net>
2573 * find_names.c (add_entries_proc): Leave closure specified as such in the
2574 function definition for clarity.
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>.)
2581 2001-09-19 Derek Price <dprice@collab.net>
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>.)
2590 2001-09-19 Derek Price <dprice@collab.net>
2592 * rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
2593 of the form "if ( ... ) abort();" with equivalent calls to assert().
2595 2001-09-17 Derek Price <dprice@collab.net>
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.)
2602 2001-09-14 Derek Price <dprice@collab.net>
2604 * logmsg.c (do_verify): Dispose memory when finished with it.
2606 2001-09-07 Larry Jones <larry.jones@sdrc.com>
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.
2612 2001-09-06 Derek Price <dprice@collab.net>
2614 * login.c (login): Deal with NULL return value from getpass.
2616 2001-09-04 Derek Price <dprice@collab.net>
2618 * Makefile.in: Regenerated with automake 1.5.
2619 * stamp-h2.in: Ditto.
2621 2001-09-04 Derek Price <dprice@collab.net>
2623 * main.c (main): Fix empty CVSROOT message to specify `valid' instead
2626 2001-09-04 Derek Price <dprice@collab.net>
2628 * server.c (pserver_authenticate_connection): Back out changes from the
2630 * getline.c (getstr): init the buffer instead.
2632 2001-08-31 Derek Price <dprice@collab.net>
2634 * Makefile.in: Backed out accidental commit from yesterday.
2636 2001-08-30 Derek Price <dprice@collab.net>
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>).
2644 2001-08-24 Derek Price <dprice@collab.net>
2646 * logmsg.c (do_editor): Add comment and assertion.
2647 * import.c (import): Don't call do_editor with a repository argument
2649 (Report and original patch from darkness <darkness@invado.com>.)
2651 2001-08-24 Larry Jones <larry.jones@sdrc.com>
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.
2657 2001-08-24 Derek Price <dprice@collab.net>
2659 * parseinfo.c (Parse_Info): Change the function name in the trace
2660 and add the client/server string.
2662 2001-08-24 Derek Price <dprice@collab.net>
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
2673 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
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
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>.)
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.
2702 2001-08-23 Derek Price <dprice@collab.net>
2704 * sanity.sh (info): Demonstrate that the verifymsg scripts can
2705 sometimes, but not always, retreive information on which directory is
2708 2001-08-22 Derek Price <dprice@collab.net>
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.
2717 2001-08-22 Derek Price <dprice@collab.net>
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.
2725 2001-08-22 Derek Price <dprice@collab.net>
2727 * logmsg.c (do_verify): Remove an unecessary "else" clause following an
2728 exit and unindent the former contents.
2730 2001-08-22 Derek Price <dprice@collab.net>
2732 * commit.c (commit): Don't call do_verify in client mode since we know
2733 do_verify will just return anyhow.
2735 2001-08-20 Derek Price <dprice@collab.net>
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>.)
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.
2749 * Makefile.in: Regenerated.
2751 2001-08-09 Derek Price <dprice@collab.net>
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>.)
2757 2001-08-09 Derek Price <dprice@collab.net>
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
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>.)
2768 * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
2769 where rsh pipes weren't being closed.
2771 2001-08-09 Derek Price <dprice@collab.net>
2773 * sanity.sh (rmadd, rm-update-message, join-two-branch,
2774 ignore-on-branch): Change a few references to `cvs' to `$PROG'.
2776 2001-08-07 Derek Price <dprice@collab.net>
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
2781 * subr.c: #else,#endif for no symlinks should be moved.
2782 (Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
2784 2001-08-06 Derek Price <dprice@collab.net>
2786 * Makefile.in: Regenerated.
2788 2001-08-01 Derek Price <dprice@collab.net>
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>.)
2794 2001-07-19 Larry Jones <larry.jones@sdrc.com>
2796 * mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
2797 disabled in wrapper.c.
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.
2804 2001-07-10 Larry Jones <larry.jones@sdrc.com>
2806 * sanity.sh (importc-7): Now works correctly in local mode.
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
2811 * sanity.sh (rmadd): New tests for above.
2813 * commit.c (commit): Reword error messages for committing as root.
2815 2001-07-08 Larry Jones <larry.jones@sdrc.com>
2817 * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
2819 * update.c (special_file_mismatch): Ditto.
2820 (Reported by Pekka Savola <pekkas@netcore.fi>.)
2822 2001-07-05 Larry Jones <larry.jones@sdrc.com>
2824 * client.c, root.c: Fix -Wall warnings.
2826 * buffer.c: #include socket header to declare shutdown().
2828 * rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
2830 (RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
2832 2001-07-04 Derek Price <dprice@collab.net>
2834 * Makefile.in: Regenerated with new Automake release candidate 1.4h.
2836 2001-07-03 Derek Price <dprice@collab.net>
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
2843 2001-07-03 Derek Price <dprice@collab.net>
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.
2854 * stamp-h2.in: Regenerated.
2856 2001-07-03 Derek Price <dprice@collab.net>
2858 * update.c: Indent compiler directives.
2860 2001-07-02 Larry Jones <larry.jones@sdrc.com>
2862 * import.c (update_rcs_file): Use -kb instead of -ko when comparing
2864 (Reported by Gyula Faller <gfaller@graphisoft.hu>.)
2866 2001-06-28 Larry Jones <larry.jones@sdrc.com>
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>.)
2872 2001-06-28 Derek Price <dprice@collab.net>
2874 * Makefile.in: Regenerated with new version of Automake.
2876 2001-06-28 Larry Jones <larry.jones@sdrc.com>
2878 * checkout.c (checkout): Set history_name for export as well as
2880 (checkout_proc): Use it.
2882 * checkout.c (safe_location): Add missing argument in error message.
2884 2001-06-26 Larry Jones <larry.jones@sdrc.com>
2886 * recurse.c (start_recursion): Use strip_trailing_slashes instead
2887 of doing it by hand.
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>.)
2893 2001-06-25 Larry Jones <larry.jones@sdrc.com>
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.
2900 2001-06-22 Larry Jones <larry.jones@sdrc.com>
2902 * sanity.sh (modules5): New tests with -d on command line.
2904 2001-06-21 Larry Jones <larry.jones@sdrc.com>
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.
2915 2001-06-21 Larry Jones <larry.jones@sdrc.com>
2916 for Stephen Rasku <stephen@tgivan.com>
2918 * admin.c: Corrected spelling mistakes in help.
2920 2001-06-20 Derek Price <dprice@collab.net>
2922 * client.c (socket_buffer_shutdown): Fix untested typos.
2923 (Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
2925 * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
2928 2001-06-20 Derek Price <dprice@collab.net>
2930 * logmsg.c (do_editor): Abort in the case that the file has only
2932 (Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
2934 * logmsg.c (do_editor): Fix rare memory leak.
2935 * sanity.sh (editor): Add tests for aborted log messages.
2937 2001-06-20 Larry Jones <larry.jones@sdrc.com>
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>.)
2943 2001-06-13 Derek Price <dprice@collab.net>
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>.)
2949 2001-06-11 Derek Price <dprice@collab.net>
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>.)
2957 2001-06-08 Derek Price <dprice@collab.net>
2959 * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
2961 2001-06-07 Larry Jones <larry.jones@sdrc.com>
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.
2970 * sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
2971 dotest_fail. Allow for "broken pipe" rather than "end of file".
2973 2001-06-07 Derek Price <dprice@collab.net>
2975 * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
2976 /tmp/cvs-sanity/cvsroot.
2978 2001-06-06 Derek Price <dprice@collab.net>
2980 (Reformatting, bug fixes, tests, and comments to a
2981 patch from Stephen Cameron <steve.cameron@compaq.com>.)
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"
2990 2001-06-06 Derek Price <dprice@collab.net>
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
2996 2001-06-05 Larry Jones <larry.jones@sdrc.com>
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.
3003 2001-06-05 Derek Price <dprice@collab.net>
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>.)
3009 2001-05-31 Derek Price <dprice@collab.net>
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.
3015 2001-05-30 Derek Price <dprice@collab.net>
3017 * stamp-h2.in: Regenerated.
3019 2001-05-30 Derek Price <dprice@collab.net>
3021 * *: Various bug fixes and comments for the following
3022 patch from Donald Sharp <sharpd@cisco.com>:
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.
3028 2001-05-29 Derek Price <dprice@collab.net>
3030 * Makefile.am (cvs_SOURCES): Add root.h.
3032 * Makefile.in: Regenerated.
3033 * stamp-h2.in: Regenerated.
3035 2001-05-29 Derek Price <dprice@collab.net>
3037 * checkout.c (safe_location): Correct formatting.
3039 2001-05-29 Derek Price <dprice@collab.net>
3041 * root.c (parse_cvsroot): Fix a comment.
3043 2001-05-26 Larry Jones <larry.jones@sdrc.com>
3045 * checkout.c (safe_location): Use old-style definition to keep
3046 non-ANSI compilers happy.
3048 * sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
3049 of /tmp/cvs-sanity/cvsroot.
3051 2001-05-25 Larry Jones <larry.jones@sdrc.com>
3053 * sanity.sh (modules5): Add sleep to script to help avoid out of
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>.)
3060 2001-05-25 Derek Price <dprice@collab.net>
3061 for Donald Sharp <sharpd@cisco.com>
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.
3069 2001-05-23 Larry Jones <larry.jones@sdrc.com>
3071 * checkout.c (checkout_proc): Don't build top_level_admin directory
3073 (Reported by Tony Byrne <tonyb@directski.com>.)
3075 2001-05-21 Derek Price <dprice@collab.net>
3077 * client.c: Fix a mispelling in a comment.
3078 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
3080 2001-05-05 Larry Jones <larry.jones@sdrc.com>
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.
3085 2001-05-15 Derek Price <dprice@collab.net>
3087 * client.c (start_tcp_server): Use the struct sockaddr_in declared in
3089 (Reported by Emil Isberg <isberg@dynarc.se>.)
3091 2001-05-05 Larry Jones <larry.jones@sdrc.com>
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.
3100 2001-05-05 Larry Jones <larry.jones@sdrc.com>
3102 * client.h: Declare "struct buffer" outside prototype for __STDC__
3105 2001-05-04 Derek Price <dprice@collab.net>
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.
3124 2001-05-04 Derek Price <dprice@collab.net>
3126 * client.c: Gratuitous reformatting.
3129 2001-05-04 Derek Price <dprice@collab.net>
3131 * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
3133 (compress_buffer_shutdown_output): Ditto.
3134 (Thanks to Pavel Roskin <proski@gnu.org>.)
3136 2001-05-03 Derek Price <dprice@collab.net>
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.
3156 2001-05-03 Larry Jones <larry.jones@sdrc.com>
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>.)
3162 2001-05-03 Derek Price <dprice@collab.net>
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.
3169 2001-05-02 Larry Jones <larry.jones@sdrc.com>
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>.)
3175 2001-04-30 Larry Jones <larry.jones@sdrc.com>
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>.)
3181 2001-04-29 Derek Price <dprice@collab.net>
3183 * Makefile.am (check-local): Make dependent on localcheck and
3184 remotecheck and move old check target...
3187 * Makefile.in: Regenerated.
3189 2001-04-27 Larry Jones <larry.jones@sdrc.com>
3191 * sanity.sh (pserver): Add tests for readers and writers.
3193 2001-04-27 Derek Price <dprice@collab.net>
3195 * sanity.sh (version-2r): Update to handle patch releases in version
3198 2001-04-27 Derek Price <dprice@collab.net>
3200 * version.c: Regenerated.
3202 2001-04-27 Derek Price <dprice@collab.net>
3204 * version.c: Regenerated.
3206 2001-04-27 Larry Jones <larry.jones@sdrc.com>
3208 * main.c (lookup_command_attribute): Lookup specified command, not
3209 whatever's in the global command_name.
3211 2001-04-25 Derek Price <dprice@collab.net>
3213 * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
3214 * version.c: Regenerated.
3216 2001-04-22 Larry Jones <larry.jones@sdrc.com>
3218 * tag.c (tag_check_valid): Make an unwritable val-tags file a
3219 warning instead of a fatal error.
3221 2001-04-20 Larry Jones <larry.jones@sdrc.com>
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.
3227 * sanity.sh (death2): New tests for previous change.
3229 * classify.c (Classify_File): Treat a dead revision like the RCS
3231 * sanity.sh: Update to match.
3233 2001-04-16 Larry Jones <larry.jones@sdrc.com>
3235 * checkout.c, update.c: Fix usage messages: -r and -D are not
3237 (Suggested by David L. Martin <dlmart2@home.com>.)
3239 * logmsg.c (do_editor): Don't add a blank line to the message.
3240 * sanity.sh (editor-log-file*): Update to match.
3242 * checkout.c, update.c: Note in usage message that -k is sticky.
3244 * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
3245 (Suggested by Rob Saccoccio <robs@chelsea.net>.)
3247 2001-04-04 Larry Jones <larry.jones@sdrc.com>
3249 * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
3250 dotest_sort): Don't count on $? being set in then or else clauses.
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.
3256 2001-04-04 Derek Price <dprice@collab.net>
3258 * sanity.sh (ignore-on-branch-3): Fix in the remote case.
3260 2001-04-03 Larry Jones <larry.jones@sdrc.com>
3262 * update.c (update_fileproc): Remove unused variable (resurrecting).
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>
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.
3273 2001-04-02 Derek Price <dprice@collab.net>
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.
3281 2001-04-02 Derek Price <dprice@collab.net>
3283 * sanity.sh (fork): New test for CVS_SERVER default.
3284 (TODO): Note about eventually removing most of the references to
3287 2001-04-02 Larry Jones <larry.jones@sdrc.com>
3289 * client.c (connect_to_forked_server): Use program_path as the default
3290 server instead of "cvs".
3292 2001-04-02 Derek Price <dprice@collab.net>
3294 * sanity.sh: Use less obfuscated English in my comment about sanity
3297 2001-04-02 Derek Price <dprice@collab.net>
3299 * sanity.sh (rm-update-message): Create a test directory again but
3300 change back to the correct directory upon completion this time.
3302 2001-04-02 Derek Price <dprice@collab.net>
3304 * sanity.sh: Change last two '[.*]'s to 'test's for
3305 consistency and remove...
3306 (TODO): the note from the TODO list.
3308 2001-04-02 Derek Price <dprice@collab.net>
3310 * sanity.sh: Add test for PWD before successful exit.
3312 2001-03-30 Larry Jones <larry.jones@sdrc.com>
3314 * sanity.sh (rm-update-message): Remove duplicate code.
3316 2001-03-30 Derek Price <dprice@collab.net>
3318 * sanity.sh (rm-update-message): New test for local/client-server
3319 warning message discrepency.
3321 2001-03-30 Larry Jones <larry.jones@sdrc.com>
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...
3328 * server.c (serve_rannotate): New.
3329 (requests[]): Add rannotate.
3330 * sanity.sh (ann): New tests for rannotate.
3332 * log.c (rlog_proc): Remove dead code.
3334 2001-03-30 Derek Price <dprice@collab.net>
3336 * sanity.sh (join-readonly-conflict): Run more of this through dotest.
3338 2001-03-30 Larry Jones <larry.jones@sdrc.com>
3340 * log.c (log_fileproc): Don't output working file for rlog.
3341 * sanity.sh (log): New tests for rlog.
3343 * cvs.h (mtype): Add MISC type.
3344 * log.c (cvslog): Support rlog as well as log.
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.
3351 2001-03-29 Derek Price <dprice@collab.net>
3353 * sanity.sh: cd to $TESTDIR once after it is normalized. Make TODO
3354 on history and symlinks more specific. Tested properly this time.
3356 2001-03-29 Larry Jones <larry.jones@sdrc.com>
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.
3363 2001-03-29 Derek Price <dprice@collab.net>
3365 * sanity.sh (*, basic2-64): Remove references to TMPPWD. Fix FIXME
3366 at end of script now that $TESTDIR can't be relative.
3368 2001-03-29 Derek Price <dprice@collab.net>
3370 * sanity.sh: Normalize TESTDIR even when the user set it.
3372 2001-03-29 Larry Jones <larry.jones@sdrc.com>
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.
3381 2001-03-29 Derek Price <dprice@collab.net>
3383 * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
3384 ${CVSROOT_DIRNAME} for consistency.
3386 2001-03-29 Derek Price <dprice@collab.net>
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.
3392 2001-03-26 Larry Jones <larry.jones@sdrc.com>
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.
3399 2001-03-24 Noel Cragg <noel@shave.cnet.com>
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
3410 (longopts): add short option equivalents for --initial-tab and
3412 (diff): add new short options to getopt string and switch
3415 2001-03-22 Larry Jones <larry.jones@sdrc.com>
3417 * sanity.sh: Add check for ${DOTSTAR} with large matches.
3419 2001-03-23 Derek Price <dprice@collab.net>
3421 * sanity.sh: Do the same as below for $keep.
3423 2001-03-23 Derek Price <dprice@collab.net>
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.
3432 2001-03-22 Larry Jones <larry.jones@sdrc.com>
3434 * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
3435 output instead of using wildcards to avoid buffer overflows in some
3438 2001-03-21 Derek Price <dprice@collab.net>
3440 * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
3441 a value inside ${TESTDIR} by the script.
3443 2001-03-20 Derek Price <dprice@collab.net>
3445 * sanity.sh (diffmerge1): Minor formatting and syntax changes.
3447 for Jacob Burckhardt <bjacob@ca.metsci.com>
3449 * sanity.sh (diffmerge1): More merging behavior tests. Specifically,
3450 test some cases which broke before in Karl Tomlinson's diff fix was
3453 2001-03-20 Derek Price <dprice@collab.net>
3455 * sanity.sh: Don't use unescaped parens in sh outside of quotes.
3457 2001-03-20 Derek Price <dprice@collab.net>
3459 * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
3461 2001-03-20 Derek Price <dprice@collab.net>
3463 * sanity.sh: Change usage to match the new getopts format and comment.
3465 2001-03-16 Derek Price <dprice@collab.net>
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
3473 2001-03-16 Derek Price <dprice@collab.net>
3475 * sanity.sh (modules2): Additional test for ampersand module behavior
3478 for Greg Klanderman <greg@itasoftware.com>
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
3489 2001-03-16 Derek Price <dprice@collab.net>
3491 * sanity.sh (admin-28-5): Confirm that a missing tag during an
3492 'admin -n' operation is not a fatal error.
3494 2001-03-16 Derek Price <dprice@collab.net>
3496 * admin.c (admin_data): Remove 'quiet' member.
3497 (admin_fileproc): Use global 'really_quiet' rather than
3500 2001-03-16 Derek Price <dprice@collab.net>
3502 * sanity.sh (admin): Replace hardcoded testdir path with the variable.
3504 2001-03-15 Derek Price <derek.price@openavenue.com>
3506 * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
3507 * admin.c (admin_fileproc): Only print messages when not in
3510 for Stephen Rasku <stephen@tgivan.com>
3512 * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
3514 2001-03-15 Larry Jones <larry.jones@sdrc.com>
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.
3522 2001-03-14 Derek Price <derek.price@openavenue.com>
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.
3530 * stamp-h2.in: Regenerated.
3532 2001-03-14 Derek Price <derek.price@openavenue.com>
3534 * Makefile.in: Regenerated.
3535 * stamp-h2.in: Ditto.
3537 2001-03-14 Larry Jones <larry.jones@sdrc.com>
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.
3550 2001-03-09 Larry Jones <larry.jones@sdrc.com>
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.
3560 2001-03-07 Larry Jones <larry.jones@sdrc.com>
3562 * sanity.sh (basica, binfiles2, head, admin): Update to match
3565 2001-03-06 Larry Jones <larry.jones@sdrc.com>
3567 * client.c (recv_bytes): Handle EOF as in recv_line().
3568 (Reported by Pavel Roskin <proski@gnu.org>.)
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.
3573 2001-02-28 Jim Meyering <meyering@lucent.com>
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.
3579 2001-03-02 Derek Price <derek.price@openavenue.com>
3581 * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
3582 name of the command it actually used rather than 'rsh'.
3584 2001-02-27 Derek Price <derek.price@openavenue.com>
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
3590 original bug report from
3591 Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
3593 2001-02-27 Derek Price <derek.price@openavenue.com>
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.
3599 2001-02-23 Derek Price <derek.price@openavenue.com>
3601 * main.c (main): Only check a cvsroot_t's isremote member when client
3603 * server.c: Include GSSAPI headers with client support as well as
3606 2001-02-21 Larry Jones <larry.jones@sdrc.com>
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.
3613 2001-02-20 Derek Price <derek.price@openavenue.com>
3615 * client.c: Use xgssapi.h.
3618 2001-02-15 Derek Price <derek.price@openavenue.com>
3620 * Makefile.am (cvs_SOURCES): Correct error from yesterday.
3621 * Makefile.in: Regenerated.
3623 2001-02-14 Derek Price <derek.price@openavenue.com>
3625 * server.c: Include xselect.h.
3626 * update.c (do_update): Use best available sleep function.
3628 2001-02-14 Derek Price <derek.price@openavenue.com>
3630 * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
3631 (cvs_LDADD): Alphabetize and split to one/line.
3632 * Makefile.in: Regenerated.
3634 2001-02-14 Larry Jones <larry.jones@sdrc.com>
3636 * build_src.com: Remove references to rtag.c & rtag.obj.
3638 2001-02-13 Derek Price <derek.price@openavenue.com>
3640 * main.c (date_to_tm): New function to convert an RCS date string to a
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
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
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.
3663 2001-02-13 Derek Price <derek.price@openavenue.com>
3665 * Makefile.am (cvs_SOURCES): Remove rtag.c.
3667 2001-02-07 Larry Jones <larry.jones@sdrc.com>
3669 * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
3670 (basic2): Rewrite using dotest.
3672 2001-02-06 Larry Jones <larry.jones@sdrc.com>
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.
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>
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
3688 * find_names.c: ditto
3694 2001-02-02 Larry Jones <larry.jones@sdrc.com>
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).
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.
3717 2001-01-29 Derek Price <derek.price@openavenue.com>
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
3725 (logout): use the new _password_entry_operation function
3727 (get_cvs_password): ditto
3728 * root.c (normalize_cvsroot): move knowledge of default port & username
3731 2001-01-29 Larry Jones <larry.jones@sdrc.com>
3733 * subr.c (shell_escape): New function.
3734 * cvs.h: Declare it.
3735 * logmsg.c (logfile_write): Use it to avoid problems with filenames
3737 (Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
3739 * server.c (outbuf_memory_error, pserver_authenticate_connection,
3740 kserver_authenticate_connection): If available, use syslog() to
3743 2001-01-25 Larry Jones <larry.jones@sdrc.com>
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>.)
3750 * update.c (update_fileproc): Handle toss_local_changes in the
3752 (Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
3753 * sanity.sh (clean): New tests for above.
3755 2001-01-23 Derek Price <derek.price@openavenue.com>
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
3765 2001-01-18 Larry Jones <larry.jones@sdrc.com>
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.
3773 2001-01-18 Derek Price <derek.price@openavenue.com>
3775 * main.c: Add '2001' to the range of copyright years listed by the
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
3781 * version.c: regenerated
3783 2001-01-12 Larry Jones <larry.jones@sdrc.com>
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>.)
3791 2001-01-11 Larry Jones <larry.jones@sdrc.com>
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.
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>.)
3802 * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
3804 2001-01-10 Derek Price <derek.price@openavenue.com>
3805 Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
3807 * build_src.com: VMS changes
3808 * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
3811 2001-01-10 Derek Price <derek.price@openavenue.com>
3813 * main.c (current_root): explicitly list this as a static global
3815 2001-01-10 Derek Price <derek.price@openavenue.com>
3817 * cvs.h (get_cvs_port_number): change name & prototype from
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
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
3828 2001-01-10 Derek Price <derek.price@openavenue.com>
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
3834 2001-01-10 Derek Price <derek.price@openavenue.com>
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
3842 2001-01-09 Derek Price <derek.price@openavenue.com>
3844 * version.c: updated timestamp
3846 2001-01-09 Larry Jones <larry.jones@sdrc.com>
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
3852 * sanity.sh (modules5-15): Update to match.
3854 * version.c.in: Update to match Derek's change to version.c.
3856 2001-01-09 Derek Price <derek.price@openavenue.com>
3858 * cvs.h: Remove the various CVSroot_* bits and replace them with a
3859 single structure of type cvsroot_t (current_parsed_root)
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
3870 * add.c: use current_parsed_root rather than the old CVSroot_* globals
3875 * create_adm.c: ditto
3878 * expand_path.c: ditto
3879 * find_names.c: ditto
3888 * mkmodules.c: ditto
3890 * parseinfo.c: ditto
3906 2001-01-05 Derek Price <derek.price@openavenue.com>
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
3913 2001-01-05 Derek Price <derek.price@openavenue.com>
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
3920 2001-01-04 Larry Jones <larry.jones@sdrc.com>
3922 * Makefile.am (cvsbug): Explicitly list input file ($< is only
3923 valid in inference rules).
3924 * Makefile.in: Ditto.
3926 2001-01-04 Derek Price <derek.price@openavenue.com>
3928 * sanity.sh: use getopts rather than getopt for portability reasons
3930 2001-01-03 Derek Price <derek.price@openavenue.com>
3932 * Makefile.am (remotecheck): depend on 'all'
3933 * Makefile.in: regenerated
3935 2000-12-29 Derek Price <derek.price@openavenue.com>
3937 * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
3938 to the line following the 'for'. Apparently this is more portable.
3940 2000-12-29 Derek Price <derek.price@openavenue.com>
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
3946 2000-12-27 Derek Price <derek.price@openavenue.com>
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.
3951 2000-12-27 Derek Price <derek.price@openavenue.com>
3953 * Makefile.am (remotecheck): Make remotecheck dependant on all
3954 * Makefile.in: regenerated
3956 2000-12-26 Derek Price <derek.price@openavenue.com>
3958 * Makefile.in: update timestamp
3959 * stamp-h2.in: ditto
3962 2000-12-26 Derek Price <derek.price@openavenue.com>
3964 * Makefile.am: new target for version.c
3965 (EXTRA_DIST): add version.c.in & version.c so builds work when
3967 * Makefile.in: Regenerated
3968 * stamp-h2.in: update timestamp
3971 2000-12-26 Derek Price <derek.price@openavenue.com>
3973 * Makefile.am (INCLUDES): add zlib
3974 * Makefile.in: Regenerated
3976 2000-12-22 Derek Price <derek.price@openavenue.com>
3978 * Makefile.am (DISTCLEANFILES): added a few files
3979 (INCLUDES): commented
3980 * Makefile.in: Regenerated
3982 2000-12-21 Derek Price <derek.price@openavenue.com>
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
3990 2000-12-16 Derek Price <derek.price@openavenue.com>
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
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.
4003 2000-12-15 Larry Jones <larry.jones@sdrc.com>
4005 * error.c (error): Add %ld and %lu.
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.
4016 2000-12-07 Larry Jones <larry.jones@sdrc.com>
4018 * history.c (history): Allow multiple -m options as documented.
4020 2000-11-29 Derek Price <derek.price@openavenue.com>
4022 * root.c (parse_cvsroot): back out yesterday's redundant changes
4023 * main.c (main): fix CVSROOT trace message to look like other trace
4025 * sanity.sh (multiroot2-9): expect new trace message
4027 2000-11-28 Derek Price <derek.price@openavenue.com>
4029 * root.c (parse_cvsroot): add trace on this function
4030 * client.c (get_port_number): make trace print look like others
4032 2000-11-16 Derek Price <derek.price@openavenue.com>
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
4037 2000-11-16 Derek Price <derek.price@openavenue.com>
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
4043 2000-11-16 Derek Price <derek.price@openavenue.com>
4045 * filesubr.c (cvs_temp_file): fixed a garble or two, added some
4046 additional error checking, and added a comment
4048 2000-11-15 Derek Price <derek.price@openavenue.com>
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
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
4063 2000-11-14 Larry Jones <larry.jones@sdrc.com>
4065 * update.c, update.h (do_update): Add xdotemplate parameter.
4067 (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
4068 * checkout.c (checkout_proc): Don't create CVS/Template if
4070 (Reported by Andrey Podkolzin <mdh@zenon.net>.)
4072 2000-11-08 Larry Jones <larry.jones@sdrc.com>
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>.)
4079 2000-11-06 Jim Meyering <meyering@lucent.com>
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'.
4087 2000-11-03 Larry Jones <larry.jones@sdrc.com>
4089 * sanity.sh: Some versions of sed require a space between -e and
4092 2000-10-27 Larry Jones <larry.jones@sdrc.com>
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.
4099 2000-10-26 Larry Jones <larry.jones@sdrc.com>
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.)
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).
4109 * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
4111 2000-10-24 Jim Meyering <meyering@lucent.com>
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.
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.
4120 2000-10-23 Derek Price <derek.price@openavenue.com>
4121 James Youngman <jay@gnu.org>
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.
4126 2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
4128 * server.c (switch_to_user): Set CVS_USER. Patch from Sudish
4129 Joseph and popularized by dozens (e.g. mozilla.org, also others).
4131 2000-10-20 Derek Price <derek.price@openavenue.com>
4132 KOIE Hidetaka <hide@koie.org>
4134 * root.c (normalize_cvsroot): plug a memory leak. Thanks to
4135 KOIE Hidetaka <hide@koie.org>
4137 2000-10-18 Derek Price <derek.price@openavenue.com>
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.
4143 2000-10-18 Derek Price <derek.price@openavenue.com>
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
4149 2000-10-18 Derek Price <derek.price@openavenue.com>
4151 * root.c (normalize_cvsroot): remove calls to snprintf for
4152 compatibility with M$ Windoze.
4154 2000-10-18 Derek Price <derek.price@openavenue.com>
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.
4160 2000-10-17 Derek Price <derek.price@openavenue.com>
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
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
4180 * sanity.sh (crerepos-6): fix a test which was expecting an old error
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
4187 * login.c (login): Paranoiacly zero a password in memory.
4189 2000-10-12 Derek Price <derek.price@openavenue.com>
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
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
4199 * sanity.sh (crerepos): fix two tests which were now expecting the
4200 wrong error message.
4202 2000-10-11 Larry Jones <larry.jones@sdrc.com>
4204 * server.c (pserver_authenticate_connection): Fix stupid mistake
4207 2000-10-11 Derek Price <derek.price@openavenue.com>
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
4215 2000-10-10 Larry Jones <larry.jones@sdrc.com>
4217 * server.c (print_error): Make up a message if strerror fails.
4219 * server.c (pserver_authenticate_connection): Give a real error
4220 message for an invalid repository.
4222 2000-10-06 Derek Price <derek.price@openavenue.com>
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
4237 * sanity.sh (adderrmsg): Added some tests for the above behavior.
4239 2000-10-05 Larry Jones <larry.jones@sdrc.com>
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.
4246 2000-10-03 Larry Jones <larry.jones@sdrc.com>
4248 * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
4250 2000-10-02 Larry Jones <larry.jones@sdrc.com>
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.
4261 2000-09-29 Larry Jones <larry.jones@sdrc.com>
4263 * client.c (get_responses_and_close): Reset server_fd to -1 after
4265 (Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
4267 2000-09-27 Larry Jones <larry.jones@sdrc.com>
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.
4273 * sanity.sh (find_tool): Correct method of checking for GNU tools.
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.
4279 2000-09-19 Larry Jones <larry.jones@sdrc.com>
4281 * version.c: Push version number to 1.11.0.1.
4283 * version.c: Version 1.11.
4285 2000-09-07 Larry Jones <larry.jones@sdrc.com>
4287 * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
4290 2000-08-23 Larry Jones <larry.jones@sdrc.com>
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.
4296 2000-09-06 Jim Kingdon <jkingdon@dhcp-net200-89.su.valinux.com>
4298 * main.c (lookup_command_attribute): Add "release" to commands
4299 which can be done by a read-only user.
4301 2000-08-23 Larry Jones <larry.jones@sdrc.com>
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.
4308 2000-08-21 Larry Jones <larry.jones@sdrc.com>
4310 * rcs.c (expand_keywords): Handle the unusual case of log == NULL.
4311 (Reported by Craig Metz <cmetz@inner.net>.)
4313 2000-08-01 Larry Jones <larry.jones@sdrc.com>
4315 * subr.c (pathname_levels): Fix bug that miscounts adjacent
4317 (Patch submitted by Tanaka Akira <akr@m17n.org>.)
4319 * loginc.c (login): If available, use getpassphrase instead of
4320 getpass to support long passwords on Solaris.
4322 2000-07-28 Larry Jones <larry.jones@sdrc.com>
4324 * server.c (server_noop): Avoid do_cvs_command() overhead.
4325 (requests): Make noop RQ_ROOTLESS.
4327 2000-07-27 Noel Cragg <noel@red-bean.com>
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.
4333 2000-07-27 Larry Jones <larry.jones@sdrc.com>
4335 * lock.c (set_lock): Include actual lock directory in error message.
4336 * sanity.sh (multiroot3-10): Change to match.
4338 * sanity.sh (client-3): Allow for a potential "broken pipe".
4340 2000-07-26 Larry Jones <larry.jones@sdrc.com>
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.
4350 * admin.c (admin_usage): Add the supported options.
4352 * sanity.sh (info): Try to avoid out-of-order messages.
4354 * sanity.sh (info): Fix problems when running twice in a row.
4356 2000-07-17 Larry Jones <larry.jones@sdrc.com>
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).
4361 2000-07-19 Pavel Roskin <proski@gnu.org>
4362 and Larry Jones <larry.jones@sdrc.com>
4364 * mkmodules.c (config_contents): Add a commented out example for
4365 LockDir. Don't suggest PreservePermissions unless it's enabled.
4367 2000-07-17 Larry Jones <larry.jones@sdrc.com>
4369 * login.c (get_cvs_password): Handle malformed ~/.cvspass more
4372 2000-07-12 Larry Jones <larry.jones@sdrc.com>
4374 * sanity.sh (modules5): New tests for module programs.
4376 2000-07-11 Larry Jones <larry.jones@sdrc.com>
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.
4384 2000-07-10 Larry Jones <larry.jones@sdrc.com>
4386 * zlib.c (gunzip_and_write): Fix type clashes.
4388 * main.c (main): Remove unused variables.
4390 2000-07-10 Jim Meyering <meyering@lucent.com>
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.
4397 * update.c (join_file): Rename global-shadowing local `options'
4399 Set file-scoped global `options' to NULL just before
4401 * sanity.sh (join-admin): New test for this.
4403 2000-07-08 Larry Jones <larry.jones@sdrc.com>
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.
4411 2000-07-06 Karl Fogel <kfogel@red-bean.com>
4413 * sanity.sh (pserver-14): remove this test for portability
4414 reasons (it was only recently added for the 2000-07-04 change).
4416 2000-07-06 Larry Jones <larry.jones@sdrc.com>
4418 sanity.sh (modules-148): Don't test for specific revisions.
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.
4427 * fileattr.c (fileattr_write): Don't delete the unrecog_head list
4429 (fileattr_free): Delete it when freeing!
4431 2000-07-05 Larry Jones <larry.jones@sdrc.com>
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.
4437 2000-07-04 Karl Fogel <kfogel@red-bean.com>
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>.)
4445 * sanity.sh: new test pserver-14 for above.
4447 * myndbm.c: #include getline.h.
4448 (mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
4450 2000-07-03 Larry Jones <larry.jones@sdrc.com>
4452 * sanity.sh (modules): Rewrite using dotest. Add "modules-"
4453 prefix to test names.
4455 2000-06-28 Larry Jones <larry.jones@sdrc.com>
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 ().
4465 * client.c (handle_set_checkin_prog, handle_set_update_prog):
4466 Just ignore the request when exporting.
4468 2000-06-27 Larry Jones <larry.jones@sdrc.com>
4470 * create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
4472 * checkout.c (checkout_proc): Don't create CVS/Template if
4475 2000-06-26 Pavel Roskin <proski@gnu.org>
4476 and Larry Jones <larry.jones@sdrc.com>
4478 * server.c (switch_to_user): Only set CVS_Username if
4479 AUTH_SERVER_SUPPORT is defined.
4481 2000-06-23 Larry Jones <larry.jones@sdrc.com>
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.
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
4497 * server.c (pserver_authenticate_connection): Don't free null pointer.
4499 2000-06-21 Larry Jones <larry.jones@sdrc.com>
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.
4510 2000-06-20 Larry Jones <larry.jones@sdrc.com>
4512 * root.c (parse_cvsroot): Put the terminating NUL byte into the
4513 string *before* copying it, not after. :-(
4515 2000-06-19 Larry Jones <larry.jones@sdrc.com>
4517 * main.c (main): Plug memory leaks.
4518 * root.c (parse_cvsroot, set_local_cvsroot): Ditto.
4519 * server.c (serve_root): Ditto.
4521 2000-06-16 Larry Jones <larry.jones@sdrc.com>
4523 * fileattr.c (fileattr_read): Plug memory leak.
4524 * rcs.c (RCS_whatbranch): Ditto.
4525 * update.c (update_dirleave_proc): Ditto.
4527 * ignore.c (ign_dir_add): Duplicate string so caller can free.
4529 * modules.c (do_module): Don't write into dbm's memory!
4531 2000-06-15 Larry Jones <larry.jones@sdrc.com>
4533 * checkout.c (checkout_proc): Fix non-ANSI code in call to
4534 findslash(), minor cleanups.
4536 2000-06-14 Larry Jones <larry.jones@sdrc.com>
4538 * tag.c (val_direntproc): Return R_PROCESS instead of 0.
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
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.
4561 * checkout.c (findslash): Fix non-ANSI code.
4563 * sanity.sh (modes3): Fix test names.
4565 2000-06-13 Larry Jones <larry.jones@sdrc.com>
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.
4577 2000-06-12 Larry Jones <larry.jones@sdrc.com>
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).
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.
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.
4593 2000-06-09 Larry Jones <larry.jones@sdrc.com>
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
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.
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.
4616 2000-06-08 Larry Jones <larry.jones@sdrc.com>
4618 * main.c (usg): Update CVS home page URL.
4620 * main.c (main): Provide an actual error message for an unknown
4621 command in addition to the usage message.
4623 2000-06-07 Larry Jones <larry.jones@sdrc.com>
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>.)
4634 2000-06-03 Larry Jones <larry.jones@sdrc.com>
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.
4641 2000-05-26 Larry Jones <larry.jones@sdrc.com>
4643 * recurse.c (unroll_files_proc): Plug memory leak.
4645 * recurse.c (addfile): Fix nonportable pointer cast.
4647 * rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
4650 2000-05-25 Larry Jones <larry.jones@sdrc.com>
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
4655 (build_one_dir, checkout_proc): Don't allow export if CVSADM
4656 directory already exists.
4658 2000-05-23 Larry Jones <larry.jones@sdrc.com>
4660 * rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks. (Patch
4661 submitted by Chris G. Demetriou <cgd@sibyte.com>.)
4663 2000-05-20 Ian Lance Taylor <ian@zembu.com>
4665 * client.c (connect_to_gserver): Handle server error messages
4668 2000-05-19 Larry Jones <larry.jones@sdrc.com>
4670 * server.c (requests): Make Global_option RQ_ROOTLESS so it can be
4673 2000-05-18 Larry Jones <larry.jones@sdrc.com>
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.
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.
4684 2000-05-17 Larry Jones <larry.jones@sdrc.com>
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.
4692 * sanity.sh (conflicts-status): Fix tests so they work remotely, too.
4694 2000-05-17 Jim Meyering <meyering@lucent.com>
4696 * sanity.sh (TESTDIR): Fix braino in last change:
4697 cd to /tmp before invoking pwd.
4699 * sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
4701 (join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
4702 (conflicts-132): Remove unnecessary `rm aa'.
4704 2000-05-16 Jim Kingdon <kingdon@redhat.com>
4706 * cvs.h, checkout.c (safe_location): Make extern.
4707 * import.c (import): Call it rather than reimplementing
4708 (incompletely) the same check.
4710 2000-05-16 Larry Jones <larry.jones@sdrc.com>
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.
4718 2000-05-15 Larry Jones <larry.jones@sdrc.com>
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.
4729 2000-05-04 Larry Jones <larry.jones@sdrc.com>
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.
4736 2000-05-04 Larry Jones <larry.jones@sdrc.com>
4738 * server.c: More error messages.
4740 2000-05-02 Donald Sharp <sharpd@cisco.com>
4741 and Larry Jones <larry.jones@sdrc.com>
4743 * history.c (report_hrecs): Added code to print out year instead of
4745 * sanity.sh (basic2-64, history): Update to match.
4747 2000-04-19 Larry Jones <larry.jones@sdrc.com>
4749 * server.c (dirswitch): Set pending_error_text in addition to
4750 pending_error to aid in problem determination.
4752 2000-03-23 Larry Jones <larry.jones@sdrc.com>
4754 * mkmodules.c (mkmodules): Return without doing anything if noexec
4755 is set to avoid trashing existing files.
4757 2000-03-23 Larry Jones <larry.jones@sdrc.com>
4759 * main.c: Alphabetize cmds[] and cmd_usage[] and add server
4760 commands to cmd_usage[].
4762 2000-03-21 Larry Jones <larry.jones@sdrc.com>
4764 * sanity.sh (client-1): May get "Broken pipe" message from the
4765 "server" in addition to the expected output.
4767 2000-03-17 Larry Jones <larry.jones@sdrc.com>
4769 * server.c (switch_to_user): Set CVS_Username if it hasn't already
4770 been set elsewhere. (Patch submitted by Gordon Matzigkeit
4773 2000-03-13 Larry Jones <larry.jones@sdrc.com>
4775 * parseinfo.c: Add extern to logHistory declaration. (Reported by
4776 <John.Tytgat@aaug.net>.)
4777 (parse_config): Reformat logHistory code.
4779 2000-03-10 Larry Jones <larry.jones@sdrc.com>
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.
4784 2000-03-03 Larry Jones <larry.jones@sdrc.com>
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
4789 * sanity.sh (1a): New test for above.
4791 2000-03-02 Larry Jones <larry.jones@sdrc.com>
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.
4798 2000-03-01 Larry Jones <larry.jones@sdrc.com>
4800 * import.c (import): Don't allow importing the repository.
4801 * sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
4803 2000-03-01 Larry Jones <larry.jones@sdrc.com>
4805 * main.c (main): Update year in copyright message.
4807 2000-03-01 Larry Jones <larry.jones@sdrc.com>
4809 * logmsg.c (do_editor): Correct previous change.
4811 2000-02-29 Larry Jones <larry.jones@sdrc.com>
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.
4816 2000-02-28 Larry Jones <larry.jones@sdrc.com>
4818 * commit.c (commit): Use get_file() to read log file correctly
4819 and in text mode rather than binary mode.
4821 * subr.c (get_file): Ignore bufsize if buf is NULL. Include
4822 terminating NUL byte when estimating required buffer size.
4824 2000-02-28 Larry Jones <larry.jones@sdrc.com>
4826 * sanity.sh (find_tool): New function to replace duplicated code.
4828 2000-02-25 Larry Jones <larry.jones@sdrc.com>
4830 * import.c (add_rcs_file): Don't abort just because lstat fails.
4832 2000-02-16 Jim Meyering <meyering@lucent.com>
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.
4841 2000-02-21 Karl Fogel <kfogel@red-bean.com>
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).
4847 2000-02-21 K.J. Paradise <kj@sourcegear.com>
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>)
4853 2000-02-18 Karl Fogel <kfogel@red-bean.com>
4855 * history.c (history_write): don't die if history file not
4856 writable, just warn (unless `really_quiet') and skip out.
4858 * main.c (main): don't bother checking if history file is
4861 * server.c (serve_root): same.
4863 2000-02-17 Larry Jones <larry.jones@sdrc.com>
4865 * sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
4866 default since PreservePermissions code is now disabled.
4868 2000-02-17 Larry Jones <larry.jones@sdrc.com>
4870 * sanity.sh (import-113): Revise to match Jim Meyering's fix.
4872 2000-02-16 Larry Jones <larry.jones@sdrc.com>
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.
4878 2000-02-16 Jim Meyering <meyering@lucent.com>
4880 * update.c (join_file): Correct typo in diagnostic:
4881 change `file %s is present...' to `file %s is not present...'.
4883 2000-02-10 Larry Jones <larry.jones@sdrc.com>
4885 * parseinfo.c (Parse_Info): Treat matching lines with bad expansions
4886 as errors rather than just ignoring.
4888 2000-02-10 Larry Jones <larry.jones@sdrc.com>
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.
4894 2000-02-10 Larry Jones <larry.jones@sdrc.com>
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.
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.
4906 2000-01-29 Jim Kingdon <http://developer.redhat.com/>
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
4913 2000-01-26 Larry Jones <larry.jones@sdrc.com>
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
4919 2000-01-26 Larry Jones <larry.jones@sdrc.com>
4921 * sanity.sh: Make TESTDIR earlier then use it to check for versions
4922 of expr that don't work right with long expressions.
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.
4928 2000-01-24 K.J. Paradise <kj@sourcegear.com>
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.
4934 2000-01-22 Jim Kingdon <http://developer.redhat.com/>
4936 * sanity.sh (emptydir): Add a case in which one might hope for a
4937 non-Emptydir result, but which result?
4939 2000-01-18 Larry Jones <larry.jones@sdrc.com>
4941 * main.c (main): Allow -z0 to disable gzip compression.
4943 2000-01-17 Larry Jones <larry.jones@sdrc.com> for
4944 K.J. Paradise (kj@sourcegear.com)
4946 * version.c: Push version number to 1.10.8.1.
4948 * version.c: Version 1.10.8.
4950 2000-01-17 Larry Jones <larry.jones@sdrc.com>
4952 * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
4953 with users not having sufficient permissions to create it later.
4955 2000-01-04 Larry Jones <larry.jones@sdrc.com>
4957 * client.c (get_responses_and_close): Simplify time-stamp race
4959 * commit.c (commit): Ditto.
4960 * update.c (do_update): Ditto.
4961 (Prompted by patch submitted by Pavel Roskin
4962 <pavel_roskin@geocities.com>.)
4964 * hardlink.c: sizeof (char) is 1, by definition.
4968 2000-01-03 Karl Fogel <kfogel@red-bean.com>
4970 * filesubr.c, subr.c (backup_file): moved this function from
4971 filesubr.c to subr.c, at JimK's suggestion.
4973 2000-01-03 Jim Kingdon <http://developer.redhat.com/>
4975 * sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
4976 file, not just its existence.
4978 2000-01-03 Karl Fogel <kfogel@red-bean.com>
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.
4984 2000-01-03 Larry Jones <larry.jones@sdrc.com>
4986 * sanity.sh (clean): Fix up expected output.
4988 2000-01-02 John P Cavanaugh <cavanaug@sr.hp.com>
4989 and Karl Fogel <kfogel@red-bean.com>
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.)
4995 * client.h (BACKUP_MODIFIED_FILES): new #define.
4997 * client.c (struct send_data): new element `backup_modified'.
4998 (send_files): set above element if BACKUP_MODIFIED_FILES flag is
5001 * filesubr.c (backup_file): new function.
5003 * cvs.h: prototype for new function `backup_file'.
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().
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
5016 * sanity.sh: new test `clean', for update -C option.
5018 1999-12-29 Jim Kingdon <http://developer.redhat.com/>
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.
5024 * import.c (import_descend), ignore.c (ignore_files): Placate gcc
5025 -Wall by parenthesizing foo || (bar && baz).
5027 1999-12-24 Larry Jones <larry.jones@sdrc.com>
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>.)
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.
5038 1999-12-22 Larry Jones <larry.jones@sdrc.com>
5040 * history.c (history): For "modified" or "checkout", sort on
5041 file if user specified -l, even if user also specified a date-
5043 * sanity.sh (history): Update to match; add new tests.
5045 1999-12-15 Pavel Roskin <pavel_roskin@geocities.com>
5046 and Larry Jones <larry.jones@sdrc.com>
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
5052 1999-12-11 Karl Fogel <kfogel@red-bean.com>
5054 * Revert previous change -- it doesn't work remotely yet.
5056 1999-12-10 John P Cavanaugh <cavanaug@sr.hp.com>
5057 and Karl Fogel <kfogel@red-bean.com>
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().
5064 * sanity.sh: test new update -C option.
5066 1999-12-10 Larry Jones <larry.jones@sdrc.com>
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
5073 1999-12-09 K.J. Paradise (kj@sourcegear.com)
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
5080 1999-11-30 K.J. Paradise (kj@sourcegear.com)
5082 * history.c: fixed seg fault caused by 11-03 changes.
5083 off by one in block memory allocations.
5085 1999-11-29 Karl Fogel <kfogel@red-bean.com>
5087 * login.c (logout): free `tmp_name' when done.
5090 1999-11-29 Larry Jones <larry.jones@sdrc.com>
5092 * cvs.h, error.c, import.c: Rename fperror to avoid name clash
5093 on LynxOS. (Reported by Markus Braun <MarkusBraun@gmx.de>.)
5095 1999-11-23 Larry Jones <larry.jones@sdrc.com>
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.
5101 1999-11-19 Larry Jones <larry.jones@sdrc.com>
5103 * server.c (switch_to_user): Correct setgid error messages.
5105 1999-11-19 Karl Fogel <kfogel@red-bean.com>
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
5112 1999-11-19 Larry Jones <larry.jones@sdrc.com>
5114 * history.c: Move -e documentation from Flags to Reports.
5115 (history): Add -e to list of report types in error message.
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.)
5123 1999-11-19 Larry Jones <larry.jones@sdrc.com>
5125 * sanity.sh: Reestablish check for running as root (using ``id -u''
5126 instead of ``whoami'').
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.
5134 1999-11-19 Karl Fogel <kfogel@red-bean.com>
5136 * mkmodules.c (init): make history file world-writeable after
5137 creating it, since it needs to be writeable for virtually any
5140 1999-11-10 Jim Kingdon <http://developer.redhat.com/>
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)
5146 1999-11-08 Jim Kingdon <http://developer.redhat.com/>
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.
5155 1999-11-09 K.J. Paradise <kj@sourcegear.com>
5157 * admin.c: made the -H option do what it is documented to
5160 1999-11-08 Tom Tromey <tromey@cygnus.com>
5162 * client.c (connect_to_gserver): Print more error text if gssapi
5163 initialization fails. From Assar Westerlund <assar@sics.se>.
5165 1999-11-06 Larry Jones <larry.jones@sdrc.com>
5167 *sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
5168 more general pattern to match the assertion failure.
5170 1999-11-05 K.J. Paradise (kj@sourcegear.com)
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.
5178 1999-11-05 Jim Kingdon <http://developer.redhat.com/>
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.
5184 1999-11-05 Larry Jones <larry.jones@sdrc.com>
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
5191 1999-11-04 Karl Fogel <kfogel@red-bean.com>
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
5198 cvs log -d '>1999-03-01' > log-out.with-space
5200 and then run this (note there's no space after -d now):
5202 cvs log -d'>1999-03-01' > log-out.no-space
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.
5210 1999-11-04 Jim Kingdon <http://developer.redhat.com/>
5212 * log.c (log_usage): Revert Karl's change regarding -d and
5213 -s. A space is allowed (see sanity.sh for example).
5215 1999-11-03 K.J. Paradise (kj@sourcegear.com>
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.
5221 1999-11-04 Larry Jones <larry.jones@sdrc.com>
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.
5227 1999-11-04 Karl Fogel <kfogel@red-bean.com>
5229 Changes for empty/random passwords in anon pserver access:
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.
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.
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.
5245 * sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
5246 pserver-13): new tests, about empty-password pserver access.
5248 1999-11-03 K.J. Paradise (kj@sourcegear.com>
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.
5255 1999-11-03 Karl Fogel <kfogel@red-bean.com>
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.
5264 1999-10-22 Larry Jones <larry.jones@sdrc.com>
5266 * sanity.sh (dotest_sort): Old versions of tr don't understand \t
5267 so use a literal tab instead.
5269 1999-10-21 Larry Jones <larry.jones@sdrc.com>
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.
5275 1999-10-18 K.J. Paradise <kj@sourcegear.com>
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.
5284 1999-10-14 Larry Jones <larry.jones@sdrc.com>
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
5291 * sanity.sh (admin-19a-*): Test.
5293 1999-09-29 Larry Jones <larry.jones@sdrc.com>
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.
5300 1999-09-16 Larry Jones <larry.jones@sdrc.com>
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.
5308 1999-09-15 Larry Jones <larry.jones@sdrc.com>
5310 * sanity.sh (basica-8b1): New test to check fix for bad diff options
5311 causing cvs to crash.
5313 1999-09-02 Larry Jones <larry.jones@sdrc.com>
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.
5320 1999-08-26 Larry Jones <larry.jones@sdrc.com>
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>.)
5326 1999-08-25 Larry Jones <larry.jones@sdrc.com>
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>.)
5334 1999-08-24 Larry Jones <larry.jones@sdrc.com>
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.
5341 1999-08-18 Larry Jones <larry.jones@sdrc.com>
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>.)
5347 1999-08-17 Larry Jones <larry.jones@sdrc.com>
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>.)
5353 1999-08-17 Larry Jones <larry.jones@sdrc.com>
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>.)
5359 1999-08-16 Larry Jones <larry.jones@sdrc.com>
5361 client.c: Eliminate redundant #if. (Patch submitted by Assar
5362 Westerlund <assar@sics.se>.)
5364 1999-07-30 Larry Jones <larry.jones@sdrc.com>
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.
5370 1999-07-29 Larry Jones <larry.jones@sdrc.com>
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).
5376 1999-07-29 Eric Sink <eric@sourcegear.com>
5378 * version.c: Push version number to 1.10.7.1.
5380 * version.c: Version 1.10.7.
5382 1999-07-28 Eric Sink <eric@sourcegear.com>
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.
5389 1999-07-18 Karl Fogel <kfogel@floss.red-bean.com>
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.
5396 1999-07-19 Larry Jones <larry.jones@sdrc.com>
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>.)
5402 1999-07-16 Tom Tromey <tromey@cygnus.com>
5404 * admin.c (admin): Allow `-k' options to be used unrestricted.
5406 1999-06-23 Jim Kingdon <http://www.cyclic.com>
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.
5418 1999-06-18 Larry Jones <larry.jones@sdrc.com>
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).
5424 1999-06-08 Larry Jones <larry.jones@sdrc.com>
5426 * sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
5427 Use ${PROG} instead of "cvs".
5429 1999-06-05 Jim Kingdon <http://www.cyclic.com>
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
5436 1999-06-01 Jim Kingdon <http://www.cyclic.com>
5438 * sanity.sh: Add comment about rcs2-7 failures on certain days.
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
5444 * sanity.sh (rmadd2): New test rmadd2-16 tests the existing
5445 behavior with "cvs log"; new test rmadd2-17 tests the new behavior
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
5454 1999-05-28 Larry Jones <larry.jones@sdrc.com>
5456 * sanity.sh (server-4): Replace bogus directory with real one since
5457 the server now checks it.
5459 1999-05-27 Jim Kingdon <http://www.cyclic.com>
5461 * sanity.sh (spacefiles): Clean up -c, top, and -b at end.
5462 (spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
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.
5473 1999-05-26 Jim Kingdon <http://www.cyclic.com>
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
5485 1999-05-25 Jim Kingdon <http://www.cyclic.com>
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).
5495 * subr.c (xmalloc, xrealloc): The new error.c does not support
5496 %lu; use sprintf instead.
5498 1999-05-25 Derek Price
5499 <http://www-personal.engin.umich.edu/~oberon/resume.html>
5501 * sanity.sh (server): Escaped a few more newlines in
5502 another awk script. Solaris awk still don't like 'em.
5504 1999-05-25 Derek Price
5505 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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.
5513 1999-05-20 Larry Jones <larry.jones@sdrc.com>
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.
5519 1999-05-18 Derek Price
5520 <http://www-personal.engin.umich.edu/~oberon/resume.html>
5522 * sanity.sh (keyword2): Escaped a newline in an awk script.
5523 Apparently Solaris awk don't like 'em.
5525 1999-05-18 Jim Kingdon <http://www.cyclic.com>
5527 * sanity.sh (basicc): Allow the behavior whereby unlink(".")
5528 succeeds. Reported by Jeremy Buhler and Pavel Roskin.
5530 1999-05-17 Steve Cameron of Compaq
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]
5537 1999-05-17 Jim Kingdon <http://www.cyclic.com>
5539 * version.c: Push version number to 1.10.6.1.
5541 * version.c: Version 1.10.6.
5543 1999-05-16 Jim Kingdon <http://www.cyclic.com>
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.
5551 1999-05-12 Larry Jones <larry.jones@sdrc.com>
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.
5557 1999-05-12 Jim Kingdon <http://www.cyclic.com>
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.
5563 1999-05-11 Larry Jones <larry.jones@sdrc.com>
5565 * server.c (serve_notify): Allocate enough memory to hold the
5566 "misformed Notify request" message in pending_error_text.
5568 1999-05-11 Jim Kingdon <http://www.cyclic.com>
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.
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).
5581 1999-05-10 Jim Kingdon <http://www.cyclic.com>
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.
5588 * rcs.c (RCS_tag2rev): Also look for a physical branch with
5590 * sanity.sh (tagf): Adjust tagf-12 and following tests to test for
5591 the fixed behavior rather than the broken behavior.
5593 1999-05-07 Jim Kingdon <http://www.cyclic.com>
5595 * server.c (server_notify): Also set last_node to NULL.
5596 * sanity.sh (server): New tests server-6 and server-7, for this.
5598 1999-05-05 Jim Kingdon <http://www.cyclic.com>
5600 * rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
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
5607 1999-05-03 Jim Meyering <meyering@ascend.com>
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
5616 (rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
5617 free and NULL-out the global, rcs_lockfile.
5619 1999-04-30 Jim Kingdon <http://www.cyclic.com>
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).
5627 1999-04-29 Jim Kingdon <http://www.cyclic.com>
5629 * sanity.sh: If invoked without any arguments, print a usage
5630 message (thanks to Pavel Roskin for a report/patch).
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.
5637 1999-04-28 Jim Kingdon <http://www.cyclic.com>
5639 * sanity.sh (devcom3): Add some tests of the CVS/Notify file and
5640 disconnected "cvs edit".
5642 * main.c (opt_usage): Remove -b.
5644 1999-04-20 Derek Price
5645 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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]
5660 1999-04-21 Derek Price
5661 <http://www-personal.engin.umich.edu/~oberon/resume.html>
5664 * tag.c (tag_check_valid): A bug was causing CVS to spin
5665 indefinately when -j:<date> was specified. CVS now returns
5667 * sanity.sh: Added a test (tagdate-12) to test this.
5669 1999-04-19 Jim Kingdon <http://www.cyclic.com>
5671 * sanity.sh (backuprecover): Clean up the repository at the end.
5673 1999-04-18 Derek Price
5674 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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]
5682 1999-04-13 Derek Price
5683 <http://www-personal.engin.umich.edu/~oberon/resume.html>
5685 * sanity.sh (diff): Tests to verify correct operation of
5686 the --ifdef parameter to cvs diff.
5687 [indentation fixed -kingdon].
5689 1999-04-13 Derek Price
5690 <http://www-personal.engin.umich.edu/~oberon/resume.html>
5691 for Noah Friedman <friedman@splode.com>
5693 * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
5694 latter is confused by pserver for a date spec.
5696 1999-04-14 Jim Kingdon <http://www.cyclic.com>
5698 * fileattr.h: Adjust comments to reflect the official version of
5699 the fileattr format now being in cvs.texinfo.
5701 1999-04-05 Jim Kingdon
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.
5711 1999-04-05 Derek Price
5712 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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.
5721 1999-03-30 Larry Jones <larry.jones@sdrc.com>
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
5728 1999-03-26 Jim Kingdon <http://www.cyclic.com>
5730 * server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
5732 * sanity.sh (modules3-11b): Adjust exact text of error message to
5733 reflect 1999-03-24 change to dirswitch.
5735 1999-03-25 Jim Kingdon <http://www.cyclic.com>
5737 * admin.c (admin): Make argument to -e optional, to match the
5739 * sanity.sh (admin-19a-2): Test for this.
5741 * server.c (serve_root): Update comment about checking for missing
5744 1999-03-24 Jim Kingdon <http://www.cyclic.com>
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.
5750 1999-03-24 Derek Price
5751 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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.
5759 1999-03-24 Larry Jones <larry.jones@sdrc.com>
5761 * rcs.c: Change enum constants ADD and DELETE to something less
5762 likely to run into conflicts.
5764 1999-03-21 Jim Kingdon <http://www.cyclic.com>
5766 * sanity.sh (tagf): New test, tests for moving a branch tag to a
5767 non-branch tag and trying to recover.
5769 1999-03-12 Jim Kingdon <http://www.cyclic.com>
5771 * sanity.sh (branches): Tweak test branches-5 to test the case in
5772 which one modifies a file and then branches it.
5774 1999-03-09 John Bley of duke.edu
5776 * mkmodules.c (filelist): Missed a NULL in this struct (should
5777 have 3 members, only had 2).
5779 1999-03-07 Jim Kingdon <http://www.cyclic.com>
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.
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.
5790 1999-02-27 Derek Price
5791 <http://www-personal.engin.umich.edu/~oberon/resume.html>
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.
5797 Also, altered a few 'cvs commit' 's in regular expressions to
5798 fit the .${PROG} commit. portability syntax.
5800 * recurse.c: Stopped CVS from dumping core in the case tested
5803 * root.c: Fixed somebody's improper english.
5805 1999-02-25 Larry Jones <larry.jones@sdrc.com>
5807 * sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
5810 1999-02-24 Jim Kingdon <http://www.cyclic.com>
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.
5816 * sanity.sh (keyword2): Protect keywords against accidental
5817 expansion in sanity.sh itself (most occurrences had this, but not
5820 1999-02-23 Derek Price <http://www.cyclic.com>
5823 * sanity.sh (keyword2): New test, tests for merging with -kk.
5825 1999-02-22 Jim Kingdon <http://www.cyclic.com>
5827 * version.c: Ease version number to 1.10.5.1.
5829 * version.c: Version 1.10.5.
5831 1999-02-18 Jim Kingdon <http://www.cyclic.com>
5833 * sanity.sh (files): New test, for a relatively obscure spurious
5834 "Up-to-date check failed" in client/server.
5836 * main.c (lookup_command_attribute): Don't check for "history"
5839 1999-02-17 Jim Kingdon <http://www.cyclic.com>
5840 and Hallvard B Furuseth
5842 * root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
5843 warnings about statement not reached.
5845 1999-02-16 Jim Kingdon <http://www.cyclic.com>
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.
5859 1999-02-10 Jim Kingdon <http://www.cyclic.com>
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.
5865 1999-02-09 Jim Kingdon <http://www.cyclic.com>
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
5871 * lock.c (lock_wait, lock_obtained): Use sprintf.
5873 1999-02-08 Jim Kingdon <http://www.cyclic.com>
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).
5881 1999-02-04 Jim Kingdon <http://www.cyclic.com>
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.
5887 1999-02-01 Jim Kingdon <http://www.cyclic.com>
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
5894 1999-01-29 Jim Kingdon <http://www.cyclic.com>
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.
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
5905 * sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
5906 for the new behavior.
5908 1999-01-27 Jim Kingdon <http://www.cyclic.com>
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.
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
5921 * sanity.sh (client-9): Don't assume the time zone.
5923 1999-01-26 Jim Kingdon <http://www.cyclic.com>
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.
5931 1999-01-22 Jim Kingdon <http://www.cyclic.com>
5933 * sanity.sh (rmadd2): New tests, for undoing a commit.
5935 1999-01-21 Eric Mumpower <nocturne@cygnus.com>
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.)
5944 1999-01-15 Jim Kingdon <http://www.cyclic.com>
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.
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.
5955 1999-01-14 Jim Kingdon <http://www.cyclic.com>
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.
5962 1999-01-14 Larry Jones <larry.jones@sdrc.com>
5964 * client.c (recv_line): Handle EOF from server.
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.)
5970 1999-01-14 Jim Kingdon <http://www.cyclic.com>
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
5977 1999-01-13 Larry Jones <larry.jones@sdrc.com>
5979 * sanity.sh (dotest_fail): Handle spurrious output from assert better.
5981 * sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
5982 assertion failure message.
5984 1999-01-12 Larry Jones <larry.jones@sdrc.com>
5986 * sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
5987 just use echo instead.
5989 1999-01-11 Jim Meyering <meyering@ascend.com>
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.
5996 1999-01-11 Larry Jones <larry.jones@sdrc.com>
5998 * sanity.sh (rcs3-5a): Allow for multiple lines of output before the
5999 assertion failure message.
6001 * sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
6002 (doesn't allow anything to follow omitted permissions).
6004 1999-01-09 Jim Kingdon <http://www.cyclic.com>
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.
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
6014 1999-01-05 Jim Kingdon <http://www.cyclic.com>
6016 * client.c, update.c: Rename MD5* functions to cvs_MD5* per
6017 corresponding change to ../lib/md5.h.
6019 1999-01-03 Jim Kingdon <http://www.cyclic.com>
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
6025 1998-12-29 Jim Kingdon <http://www.cyclic.com>
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
6032 * sanity.sh (client): New tests client-8 and client-9 test for this.
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").
6039 1998-12-28 Larry Jones <larry.jones@sdrc.com>
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.
6048 1998-12-23 Larry Jones <larry.jones@sdrc.com>
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
6057 1998-12-23 Jim Kingdon <http://www.cyclic.com>
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.
6073 1998-12-22 Jim Kingdon <http://www.cyclic.com>
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.
6078 1998-12-22 Jim Kingdon
6080 * sanity.sh (rcs3): The assertion failure message varies slightly
6081 depending on whether CVS was built with srcdir != ".". Fix regexp.
6083 1998-12-21 Jim Kingdon
6085 * rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
6086 unused variable x_vers.
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
6091 * sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
6093 * sanity.sh (rcs3): New test, for some error handling cases
6094 involving parsing RCS files.
6096 1998-12-16 Jim Meyering <meyering@ascend.com>
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.
6102 1998-12-17 Jim Kingdon
6104 * server.c (serve_root): Pserver_Repos only exists if
6105 AUTH_SERVER_SUPPORT is defined.
6107 1998-12-12 Jim Kingdon, and Derek R. Price of Stortek.
6109 * sanity.sh (multiroot): Change + to ${PLUS}.
6111 1998-12-12 Jim Kingdon, and Gary Young of Motorola
6113 * sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
6114 allow 4 digit year in addition to 2 digit year.
6116 1998-12-12 Jim Kingdon
6118 * sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
6119 and for HEAD as (nonexistent) file name.
6121 1998-12-02 Jim Kingdon
6123 * version.c: Squish version number to 1.10.4.1.
6125 * version.c: Version 1.10.4.
6127 1998-11-24 Jim Kingdon
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.
6133 * sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
6135 * entries.c (Register): If we can't write Entries.Log, make it a
6137 * sanity.sh (dirs2): Test for this fix.
6139 * sanity.sh (dirs2): Clean up working directory at end of test.
6141 1998-11-23 Jim Kingdon
6143 * sanity.sh (dirs2): New test, for some more cases involving
6144 deleting directories and such.
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.
6150 1998-11-22 Jim Kingdon
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.
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.
6163 1998-11-18 Jim Kingdon
6165 * rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
6168 * sanity.sh (conflicts3): Tests conflicts3-24 through
6169 conflicts3-28 test for another case similar to conflicts3-22.
6171 1998-11-14 Jim Kingdon
6173 * sanity.sh (diff): New test, for now just tests for the "I know
6176 * sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
6177 tests; resurrecting doesn't work from one level up.
6179 * sanity.sh (mwrap-7): Remote prints the messages in a different
6182 1998-11-13 Jim Kingdon
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
6189 1998-11-12 Jim Kingdon
6191 * sanity.sh (mwrap-7): Update for the noexec fix.
6193 * server.c (server_copy_file): Add comment about noexec.
6195 * update.c (checkout_file): Handle noexec case involving revbuf
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.
6204 1998-10-20 Jim Kingdon
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,
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).
6223 1998-10-19 Jim Kingdon
6225 * sanity.sh (multiroot3): New test, tests for a few more
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
6234 1998-10-15 Jim Kingdon
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
6242 1998-10-14 Jim Kingdon
6244 * subr.c (expand_string): Tweak the algorithm so that the size
6245 that it allocates is generally a power of two.
6247 1998-10-14 Eivind Eklund and Jim Kingdon
6249 * commit.c (commit): For the client, don't worry about whether we
6252 1998-10-13 Jim Kingdon
6254 * server.h (struct request): Change status field to flags and add
6256 * client.c (handle_valid_requests, supported_request): Change
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.
6262 1998-10-12 Jim Kingdon
6264 * version.c: Slide version number to 1.10.3.1.
6268 * sanity.sh (modules2-17): Update for 9 Oct 1998 change to
6271 1998-10-11 Jim Kingdon
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).
6279 * sanity.sh (rmadd): New test, tests for various existing
6280 behaviors with "cvs ci -r".
6282 1998-10-09 Jim Kingdon
6284 * update.c (update_dirent_proc): For local CVS, if the directory
6285 does not exist in the working directory nor in the repository,
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.
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
6299 1998-10-07 Jim Kingdon <kingdon@harvey.cyclic.com>
6301 * diff.c (diff): Set variables to NULL at the start, and free
6303 * sanity.sh (multiroot2): Add tests for this (before the fix,
6304 multiroot2-12 would abort with "no more than two revisions/dates
6307 1998-10-06 Jim Kingdon <kingdon@harvey.cyclic.com>
6309 * Makefile.in (installcheck check): Remove references to RCSBIN;
6310 they don't do anything now that RCSBIN is ignored.
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
6318 * sanity.sh (dirs): New tests, tests for some cases involving
6319 admins who do surgery on the repository.
6321 1998-10-03 Johannes Stezenbach <johannes.stezenbach@propack-data.de>
6323 * vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
6324 necessary change the file to be writable temporarily to set its
6327 1998-10-03 Jim Kingdon <kingdon@harvey.cyclic.com>
6329 * client.c (handle_error): Add comment about indicating which
6330 errors are from the server.
6332 1998-10-01 Jim Kingdon <kingdon@harvey.cyclic.com>
6334 * sanity.sh (devcom-180): Allow one digit day.
6336 1998-09-30 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
6345 1998-09-28 Jim Kingdon <kingdon@harvey.cyclic.com>
6347 * sanity.sh (multiroot2): New test, tests some nested directory
6350 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
6352 * sanity.sh (multiroot): Change a few comments which said modules
6353 when they meant directories.
6355 1998-09-25 Jim Meyering <meyering@ascend.com>
6357 * sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
6360 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
6362 * sanity.sh (log2): New test log2-7a tests for one error handling
6363 case. Add a comment about another.
6365 1998-09-24 Jim Kingdon <kingdon@harvey.cyclic.com>
6367 * sanity.sh: Change crerepos test back to :ext: (for several
6368 reasons; see comments).
6370 1998-09-24 Noel Cragg <noel@swish.red-bean.com>
6372 * sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
6373 check the operation of "tag" when there are symlinks in the
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.
6381 * subr.c (resolve_symlink): new routine -- resolves a symbolic
6382 link chain to its destination.
6383 * cvs.h: add prototype.
6385 * sanity.sh (basica-6.2, basica-6.3): changed match expressions to
6386 reflect new diff output.
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
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.
6404 * client.c (connect_to_forked_server): new routine.
6405 (start_server): call the above when method is fork_method.
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:
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
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.
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().
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.
6436 * server.c (create_adm_p): use Emptydir as the placeholder
6437 directory instead of "." to avoid problems with "cvs update -d" et
6440 1998-09-22 Noel Cragg <noel@swish.red-bean.com>
6442 * sanity.sh (devcom-180): fixed typo in regexp.
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:
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.
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:
6456 cvs -d repository1 co a
6458 cvs -d repository2 co b
6459 cvs -d repository2 update b
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.
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.
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.
6480 1998-09-18 Jim Kingdon <kingdon@pennington.cyclic.com>
6482 * version.c: Advance version number to 1.10.2.1.
6486 1998-09-13 Jim Kingdon <kingdon@harvey.cyclic.com>
6488 * client.c: Refuse to Copy-file to another directory
6489 * sanity.sh (client): New test, tests for this.
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").
6496 * commit.c (check_fileproc): Don't allow commits in Emptydir.
6497 * sanity.sh (emptydir-8): Test for this change in behavior.
6499 * sanity.sh: Add some compatibility tests to TODO comments at end.
6501 1998-09-10 Jim Kingdon <kingdon@harvey.cyclic.com>
6503 * wrapper.c (wrap_add): Remove obsolete comment about -m.
6505 * server.c (server_updated): Check for error from CVS_UNLINK.
6507 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com>
6509 * server.c (serve_root): Allocate with malloc, not xmalloc.
6511 * root.c (set_local_cvsroot): Move memory allocation from here...
6512 * server.c (serve_root): ...to here. Fixes error handling.
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.
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).
6530 1998-09-09 Jim Kingdon
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).
6537 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com> and Michael Pakovic
6539 * edit.c (notify_do): Only free line if it is not NULL.
6541 1998-09-07 Jim Kingdon <kingdon@harvey.cyclic.com>
6543 * cvs.h: dirs_sent_to_server should not be inside
6544 AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
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.
6556 1998-09-03 Jim Kingdon <kingdon@harvey.cyclic.com>
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).
6562 * server.c (create_adm_p): Fix one "return" which didn't return a
6564 (dirswitch): Check for errors from create_adm_p.
6566 * sanity.sh: Set LC_ALL rather than just LC_COLLATE.
6568 Wed Sep 2 02:30:22 1998 Jim Kingdon <kingdon@pennington.cyclic.com>
6570 * version.c: Bump version number to 1.10.1.1.
6574 1998-09-01 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
6582 * main.c (set_root_directory): Fix whitespace.
6583 (main): Nuke new -m option and just have that message controlled
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.
6591 1998-09-01 Noel Cragg <noel@swish.red-bean.com>
6593 * server.c (do_cvs_command): add another environment variable,
6594 CVS_SERVER_SLEEP2, after forking to pause the program so one can
6597 * sanity.sh (crerepos): clean up crerepos-18 now that multiroot
6599 (multiroot): finalize tests for local vs. remote operation.
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.
6607 * main.c (main): re-initialize dirs_sent_to_server on each pass
6608 through the loop for each CVSROOT.
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.
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
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.
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.
6640 1998-08-31 Jim Kingdon <kingdon@harvey.cyclic.com>
6642 * sanity.sh: Remove "debug" function; it was apparently checked
6643 in accidentally by Norbert Kiesel's change.
6645 1998-08-31 Norbert Kiesel <nk@iname.com>
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.
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).
6655 1998-08-28 Noel Cragg <noel@swish.red-bean.com>
6657 * sanity.sh (crerepos-18): add new comment and change test
6658 slightly to support multiroot.
6659 (multiroot): add more tests.
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.
6668 * recurse.c (start_recursion): add large comment about the ideal
6669 solution to the "Argument xxx" problem.
6671 * main.c (main): move position of debugging comment for -m flag.
6673 * diff.c (diff): clear a static variable.
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
6680 (send_a_repository): change method of calculating toplevel_repos
6681 to support multiple CVSROOTs.
6682 (start_server): clear some static variables.
6684 1998-08-28 Jim Meyering <meyering@ascend.com>
6686 * sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
6687 `Operation not permitted'. Solaris2.5.1 gets a different error:
6690 1998-08-26 Eric M. Hopper
6692 * sanity.sh: Set LC_COLLATE to "C".
6694 1998-08-25 Noel Cragg <noel@swish.red-bean.com>
6696 * sanity.sh (multiroot): new set of tests to check the behavior of
6699 * diff.c (diff): set options value to NULL after freeing to reset
6700 the state for the next time around.
6702 1998-08-25 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
6708 1998-08-24 Jim Kingdon <kingdon@harvey.cyclic.com>
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.).
6720 * sanity.sh (basicc): Add tests for a serious bug in "cvs release
6723 More error handling fixes:
6724 * ignore.c (ignore_files): Check for errors from opendir and
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
6732 * commit.c (remove_file): Check for errors from CVS_MKDIR and
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.
6745 1998-08-21 Ian Lance Taylor <ian@cygnus.com>
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.
6755 1998-08-20 Ian Lance Taylor <ian@cygnus.com>
6757 * sanity.sh (import): Rewrite tests to use dotest.
6759 1998-08-20 Jim Kingdon <kingdon@harvey.cyclic.com>
6761 * sanity.sh: Add comments about binary files and cvs import.
6763 1998-08-19 Jim Kingdon <kingdon@harvey.cyclic.com>
6765 * sanity.sh (importc): Use ${username} in one place where I had
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
6782 (import): Don't send a -d option to the server.
6783 * sanity.sh (importc): Add tests for import -d.
6785 Wed Aug 19 15:19:13 1998 Larry Jones <larry.jones@sdrc.com>
6787 * sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
6788 of .* since we expect to match multiple lines.
6790 1998-08-19 Ian Lance Taylor <ian@cygnus.com>
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.
6798 Wed Aug 19 00:28:50 1998 Noel Cragg <noel@swish.red-bean.com>
6800 * recurse.c (do_dir_proc): don't muck with CVS/Root directories
6801 when running in server mode.
6802 (do_recursion): same.
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).
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.
6816 Tue Aug 18 14:30:59 1998 Noel Cragg <noel@swish.red-bean.com>
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.
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.
6834 * cvs.h: add prototypes for root_directories and current_root, two
6835 new globals for keeping track of multiple CVSROOT information.
6837 1998-08-18 Jim Kingdon <kingdon@harvey.cyclic.com>
6839 * sanity.sh: Don't assume that the shell leaves $^ unexpanded in
6840 an unquoted here-document (suggested by Bart Schaefer to help when
6843 1998-08-17 Ian Lance Taylor <ian@cygnus.com>
6845 * commit.c (checkaddfile): Don't call fix_rcs_modes.
6846 (fix_rcs_modes): Remove.
6848 1998-08-16 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
6854 * sanity.sh (binfiles3): New test, for yet another binary file
6855 bug (sigh). Thanks to Jason Aten for reporting this one.
6857 1998-08-15 Jim Kingdon <kingdon@harvey.cyclic.com>
6859 * rcscmds.c (call_diff_write_output): Update to reflect new
6860 calling convention for the write_output callback.
6862 1998-08-15 Jim Meyering <meyering@ascend.com>
6864 * update.c (merge_file): Warn about failed unlink when not due
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.
6877 1998-08-14 Jim Meyering <meyering@ascend.com>
6879 * hardlink.c (lookup_file_by_inode): Use existence_error rather than
6880 comparing errno to ENOENT directly.
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.
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.
6892 1998-08-14 Jim Kingdon <kingdon@harvey.cyclic.com>
6894 * version.c: Bump version number to 1.10.0.1.
6896 Thu Aug 13 11:15:24 1998 Noel Cragg <noel@swish.red-bean.com>
6898 * version.c: Change version number to 1.10 and name to `Halibut'.
6900 * sanity.sh (rcslib): new tests to check behavior of symlinks in
6903 Wed Aug 12 15:39:38 1998 Noel Cragg <noel@swish.red-bean.com>
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.
6909 Mon Aug 10 10:26:38 1998 Noel Cragg <noel@swish.red-bean.com>
6911 * version.c: Change version number to 1.9.30.
6913 Thu Aug 6 17:44:50 1998 Noel Cragg <noel@swish.red-bean.com>
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."
6919 * main.c (lookup_command_attribute): the `rdiff' command shouldn't
6920 require write access to the repository.
6922 1998-08-06 David Masterson of kla-tencor.com
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.
6929 1998-08-06 Jim Kingdon <kingdon@harvey.cyclic.com>
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
6937 1998-08-05 Jim Kingdon <kingdon@harvey.cyclic.com>
6939 * sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
6940 This makes it work with GNU expr 1.12 as well as 1.16.
6942 Sun Aug 2 20:27:44 1998 Noel Cragg <noel@swish.red-bean.com>
6944 * mkmodules.c: add comment about TopLevelAdmin for the initial
6945 contents of CVSROOT/config.
6947 1998-07-29 Jim Kingdon <kingdon@harvey.cyclic.com>
6949 * rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
6952 Tue Jul 28 19:33:08 1998 Noel Cragg <noel@swish.red-bean.com>
6954 * version.c: Change version number to 1.9.29.
6956 * rcs.c (RCS_checkin): add code to follow symbolic links in the
6959 Sun Jul 26 05:14:41 1998 Noel Cragg <noel@swish.red-bean.com>
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.
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.
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.
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.
6981 * parseinfo.c (parse_config): handle TopLevelAdmin option. Set
6984 * main.c: add new variable top_level_admin.
6985 * cvs.h: add extern definition for above.
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
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
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.
7014 1998-07-21 Jim Meyering <meyering@ascend.com>
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.
7021 1998-07-16 Jim Kingdon <kingdon@harvey.cyclic.com>
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
7026 1998-07-14 Jim Kingdon <kingdon@harvey.cyclic.com>
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
7035 * sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
7037 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
7039 * sanity.sh (ann-id): Write the test so that it tests for the
7040 current (buggy) behavior.
7042 * sanity.sh (taginfo): Also clean up cvsroot/first-dir.
7044 1998-07-12 Jim Meyering <meyering@ascend.com>
7046 * sanity.sh (ann-id): New (currently failing) test for bug in how
7047 rcs keywords are expanded in the output of `cvs annotate'.
7049 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7056 1998-07-11 Jim Kingdon <kingdon@harvey.cyclic.com>
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).
7063 1998-07-10 Jim Kingdon <kingdon@harvey.cyclic.com>
7065 * sanity.sh (unedit-without-baserev): Also clean up "2" directory.
7067 1998-07-08 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7074 1998-07-02 Jim Kingdon <kingdon@harvey.cyclic.com>
7076 * sanity.sh (unedit-without-baserev): Move the test itself to be
7077 in the same order as in the "tests" variable.
7079 1998-07-02 Ian Lance Taylor <ian@cygnus.com>
7081 * rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>. Don't
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.
7088 1998-07-01 Jim Meyering <meyering@ascend.com>
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.
7101 1998-07-01 Andy Mortimer of aeat.co.uk
7102 and Jim Kingdon <kingdon@harvey.cyclic.com>
7104 * server.c (server_updated): Use a prototype if we are using them
7107 1998-06-29 Jim Kingdon <kingdon@harvey.cyclic.com>
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).
7113 1998-06-27 Jim Meyering <meyering@ascend.com>
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.
7126 1998-06-25 Jim Kingdon <kingdon@harvey.cyclic.com>
7128 * update.c (patch_file): Update comments regarding context diffs
7129 to reflect diff library.
7131 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
7133 * sanity.sh (modules4): Add tests for reversing the order of the
7134 "!first-dir/sdir" and "first-dir".
7136 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
7137 and Dave Wolfe@Motorola.
7139 * sanity.sh (modes2): Touch the file before chmod'ing it.
7141 1998-06-21 Ian Lance Taylor <ian@cygnus.com>
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.
7149 1998-06-21 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7155 1998-06-19 Ian Lance Taylor <ian@cygnus.com>
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.
7161 1998-06-18 Ian Lance Taylor <ian@cygnus.com>
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
7174 (call_diff3): Likewise.
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
7181 (zlib.o): Depend upon zlib.h.
7183 1998-06-09 Mike Sutton@SAIC
7185 Make it compile with Sun's bundled K&R C compiler:
7186 * rcs.c (count_delta_actions): Change to static to match
7188 * client.c (handle_wrapper_rcs_option): Rename error label to
7189 handle_error to avoid clash with function name.
7191 1998-06-09 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7197 1998-06-04 Jim Kingdon <kingdon@harvey.cyclic.com>
7199 * add.c (add): Only send "Directory" requests if we need to.
7201 1998-06-02 Assar Westerlund <assar@sics.se>
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.
7207 1998-06-02 Jim Kingdon <kingdon@harvey.cyclic.com>
7209 * fileattr.c (fileattr_read): Check for NULL return from strchr.
7210 * sanity.sh (devcom3): New test devcom3-10 checks for this.
7212 1998-06-01 Assar Westerlund <assar@sics.se>
7213 and Ian Lance Taylor <ian@cygnus.com>
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.
7226 1998-06-01 Jim Meyering <meyering@ascend.com>
7228 * sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
7230 1998-05-26 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7236 1998-05-24 Jim Kingdon <kingdon@harvey.cyclic.com>
7238 * sanity.sh (importc): New tests importc-5 through importc-8 test
7239 for a (fairly obscure) regression from CVS 1.9.
7241 1998-05-23 Jim Kingdon <kingdon@harvey.cyclic.com>
7243 * sanity.sh (modules2): Add comment listing cvs release tests.
7244 (info): New test info-cleanup-0 tests "cvs -n release".
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.
7250 * version.c: Change version number to 1.9.28.1.
7254 1998-05-22 Jim Kingdon <kingdon@harvey.cyclic.com>
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
7260 * sanity.sh (modes2): New test, tests for this.
7262 1998-05-22 Ian Lance Taylor <ian@cygnus.com>
7264 * server.c (server_updated): Correct test for whether to unlink
7267 1998-05-20 Jim Kingdon <kingdon@harvey.cyclic.com>
7269 * wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
7270 serious bug can be fixed.
7272 1998-05-15 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7281 * sanity.sh (abspath): Also do the "cannot rename" work-around for
7284 1998-05-13 Jim Kingdon <kingdon@harvey.cyclic.com>
7286 * commit.c (commit_filesdoneproc): Free admin_dir when done with it.
7288 1998-05-13 Jim Meyering <meyering@ascend.com>
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.
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.
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.
7313 1998-05-12 Jim Kingdon <kingdon@harvey.cyclic.com>
7315 * commit.c (commit_filesdoneproc): #if 0 the new code until it can
7318 * commit.c (commit_filesdoneproc): Add comment explaining last
7321 1998-05-12 Jim Meyering <meyering@ascend.com>
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.
7327 1998-05-08 Jim Meyering <meyering@ascend.com>
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.
7334 1998-05-02 Jim Meyering <meyering@ascend.com>
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.
7340 1998-05-04 Jim Kingdon <kingdon@harvey.cyclic.com>
7342 * sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
7345 1998-05-02 Jim Kingdon <kingdon@harvey.cyclic.com>
7347 * rcs.c: Add comments about getting rid of rcsbuf_getid,
7348 rcsbuf_getword, and rcsbuf_getstring.
7350 * sanity.sh (abspath): Revise the workarounds to deal with exit
7353 1998-04-30 Jim Kingdon <kingdon@harvey.cyclic.com>
7355 * sanity.sh (abspath): Work around the "cannot rename" bug.
7357 1998-04-27 Jim Kingdon <kingdon@harvey.cyclic.com>
7359 * classify.c (Classify_File): Add comments about checking whether
7360 command name is "update".
7362 1998-04-22 Jim Kingdon <kingdon@harvey.cyclic.com>
7364 * version.c: Change version number to 1.9.27.1.
7368 1998-04-20 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7376 1998-04-19 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7382 1998-04-17 Petri Virkkula
7384 * server.c (mkdir_p): Ignore EROFS error (like for EACCES).
7386 1998-04-16 Jim Kingdon <kingdon@harvey.cyclic.com>
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
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).
7411 1998-04-14 Wilfredo Sanchez <wsanchez@apple.com>
7413 * rcs.c: variable "lockfile" was being referenced after being
7414 free'd. Bad. Moved the free() call down.
7416 1998-04-12 Jim Kingdon <kingdon@harvey.cyclic.com>
7418 * sanity.sh (rcs): Add test for annotate and the year 2000.
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
7425 1998-04-11 Jim Kingdon <kingdon@harvey.cyclic.com>
7427 * client.c (client_senddate): Pass SDATEFORM not DATEFORM to
7428 sscanf. This fixes a Y2K bug.
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).
7437 1998-04-11 Norbert Kiesel <nk@iname.com>
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
7446 1998-04-10 Jim Kingdon <kingdon@harvey.cyclic.com>
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).
7452 1998-04-09 Jim Kingdon <kingdon@harvey.cyclic.com>
7454 * filesubr.c, cvs.h (link_file): Remove; no longer used.
7456 1998-04-08 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7463 1998-03-27 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7469 1998-03-25 Loren J. Rittle
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).
7479 1998-03-18 Jim Kingdon <kingdon@harvey.cyclic.com>
7481 * error.c (error): Save and restore errno. Should fix test case
7482 conflicts3-23 on SCO 5.0.2. Reported by Steve Cameron.
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.
7488 1998-03-05 Dan Wilder <dan@gasboy.com>
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,
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.
7499 * Plug a small memory leak.
7501 * Add tests admin-26 through admin-29 to sanity.sh,
7502 to test "cvs admin -n".
7504 1998-03-17 Samuel Tardieu <sam@inf.enst.fr>
7506 * server.c (server_register): protect dereferencing timestamp in
7507 the trace message when it is null, to avoid a segmentation fault.
7509 1998-03-16 Jim Kingdon <kingdon@harvey.cyclic.com>
7511 * options.h.in (MY_NDBM): Rewrite the comment explaining this
7512 option. It was not clear to everyone who "my" referred to, for
7515 * hardlink.c (list_linked_files_on_disk): Remove unused variables
7517 (list_linked_files_on_disk): Add comment about memory allocation
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.
7524 1998-03-12 Tim Pierce <twp@skepsis.com>
7526 New functions for parsing and writing hardlink fields.
7527 * rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
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).
7536 * sanity.sh (hardlinks): Use uglier filenames. Checking out
7537 hardlinked files no longer produces the same spurious diagnostics,
7539 (hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
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
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
7550 (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
7551 vers->hardlinks list instead of vers->other_delta.
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):
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
7561 * hardlink.c (update_hardlink_info): Same.
7562 * update.c (get_linkinfo_proc): Same.
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.
7570 1998-03-16 Larry Jones <larry.jones@sdrc.com>
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.
7575 1998-03-07 Jim Kingdon <kingdon@harvey.cyclic.com>
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
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
7589 1998-03-07 Tim Pierce <twp@skepsis.com>
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.
7596 1998-03-04 Jim Kingdon <kingdon@harvey.cyclic.com>
7598 * version.c: Change version number to 1.9.26.1.
7602 * entries.c, cvs.h (Entries_Open): New argument update_dir; use it
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.
7611 * commit.c (commit): Only set up hardlist if preserve_perms.
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.
7618 * hardlink.c, hardlink.h: Use the 'standard' copyright (as found
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.
7627 1998-03-02 Tim Pierce <twp@skepsis.com>
7629 * update.c (special_file_mismatch): Compare the hard links of the
7632 * rcs.c (RCS_checkout):
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):
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.
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.
7663 1998-03-03 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7669 1998-02-26 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7675 Sun Feb 22 23:14:25 1998 Steve Cameron <steve.cameron@compaq.com>
7676 and Ian Lance Taylor <ian@cygnus.com>
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
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
7687 Sun Feb 22 13:31:51 1998 Ian Lance Taylor <ian@cygnus.com>
7689 * commit.c (lock_RCS): Don't call RCS_rewrite.
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}.
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.
7704 1998-02-21 Jim Kingdon <kingdon@harvey.cyclic.com>
7706 * rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
7707 means anything just because ferror is set.
7709 Sat Feb 21 20:02:24 1998 Ian Lance Taylor <ian@cygnus.com>
7711 * Makefile.in (clean): Change "/bin/rm" to "rm".
7713 * buffer.c (buf_append_buffer): Correct typo in comment.
7714 * rcs.c (RCS_putadmin): Likewise.
7716 Fri Feb 20 17:53:06 1998 Ian Lance Taylor <ian@cygnus.com>
7718 * rcs.c (rcs_internal_unlockfile): Pass errno when calling error
7719 because ferror is true.
7721 1998-02-20 Jim Kingdon <kingdon@harvey.cyclic.com>
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).
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).
7731 Fri Feb 20 12:47:14 1998 Larry Jones <larry.jones@sdrc.com>
7733 * admin.c (admin_fileproc): Better fix for -b.
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.
7739 1998-02-18 Jim Kingdon <kingdon@harvey.cyclic.com>
7741 * rcs.c (RCS_whatbranch): Fix indentation.
7743 * patch.c (patch_fileproc): Check for errors from fclose; check
7744 for errors from fopen properly.
7746 Wed Feb 18 16:03:37 1998 Larry Jones <larry.jones@sdrc.com>
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.
7755 * commmit.c (lock_RCS): Minor clean-up.
7757 * sanity.sh (abspath-6a): Don't depend on the sepcific contents of
7758 CVSROOT, it depends on which other tests have been run.
7760 Wed Feb 18 01:56:04 1998 Ian Lance Taylor <ian@cygnus.com>
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.
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
7777 (RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
7778 (RCS_rewrite): Likewise.
7779 (RCS_checkin): Call rcsbuf_cache_close.
7781 * rcs.c (RCS_copydeltas): Fix code which checks for an extra
7782 newline in buffered data.
7784 * rcs.c (rcsbuf_getkey): Save an indirection by using start rather
7785 than *valp when trimming trailing whitespace from value.
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.
7797 Tue Feb 17 18:34:01 1998 Ian Lance Taylor <ian@cygnus.com>
7799 * sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
7802 * import.c (expand_at_signs): Rewrite to use memchr and fwrite
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
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
7823 1998-02-17 Jim Kingdon <kingdon@harvey.cyclic.com>
7825 * sanity.sh (toplevel): Also clean up second-dir (not a new
7826 bug, but triggered by running tests as "toplevel abspath").
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.
7833 Tue Feb 17 02:32:21 1998 Noel Cragg <noel@swish.red-bean.com>
7835 [These mods make "checkout" work with "-d /absolute/pathname"
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
7845 (build_dirs_and_chdir): add a new argument that tells this routine
7846 whether or not to check before it creates and populates
7849 * filesubr.c (last_component): return the top-level directory when
7850 asked about the top-level directory.
7852 * sanity.sh (toplevel-12): change test to reflect the new style of
7855 * create_adm.c (Create_Admin): include the directory in the error
7858 1998-02-16 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7863 * patch.c (patch_fileproc): Check for errors from fclose; if we
7864 get -1 from getline check for end of file vs. error.
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.
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
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.
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
7886 * mkmodules.c (config_contents): Between two settings, use a blank
7887 line not a "#" line.
7889 1998-02-15 Tim Pierce <twp@skepsis.com>
7891 [This is the code as submitted. I'll be checking in my cleanups
7892 shortly. This work sponsored by Abbott Labs. -kingdon]
7894 Support for device special files, symbolic links, user and group
7895 ownerships, and file permissions.
7897 * parseinfo.c: (parse_config): Handle new config variable
7898 `PreservePermissions'.
7899 * mkmodules.c (config_contents): Add new PreservePermissions var.
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'.
7910 New metrics for deciding when two files are different:
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.
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.
7923 * rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
7924 special files, report no differences.
7926 Miscellaneous changes to make special file support possible:
7928 * commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
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).
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.
7938 * commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
7939 fopen/fclose calls. Copy_file no longer attempts to read data
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
7948 * classify.c (Classify_File): Doc fix.
7950 Fri Feb 13 17:07:32 1998 Eric Mumpower <nocturne@cygnus.com>
7951 and Ian Lance Taylor <ian@cygnus.com>
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.
7958 Thu Feb 12 15:15:33 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
7960 * import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
7962 11 Feb 1998 Andy Piper
7964 * server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
7966 Mon Feb 9 18:34:39 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
7976 Mon Feb 9 21:05:28 1998 Ian Lance Taylor <ian@cygnus.com>
7978 * rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
7979 Don't bother with ungetc.
7981 * rcs.c (getrcsrev): Rewrite to simply call getrevnum.
7983 Sun Feb 8 15:49:39 1998 Ian Lance Taylor <ian@cygnus.com>
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.
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.
8014 Sat Feb 7 16:27:30 1998 Ian Lance Taylor <ian@cygnus.com>
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.
8022 * rcs.c (STREQ): New macro. In all string equality tests in the
8023 file, replace strcmp with STREQ.
8025 Fri Feb 6 16:14:49 1998 Ian Lance Taylor <ian@cygnus.com>
8027 * update.c (checkout_file): If we've already removed the backup
8028 file once, don't try to remove it again.
8030 * filesubr.c (unlink_file_dir): Call stat rather than isdir, and
8031 don't call unlink if the file does not exist.
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.
8038 Fri Feb 6 13:23:46 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8040 * rcs.c (RCS_parsercsfile_i): Don't suppress errors on
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.
8048 Fri Feb 6 12:10:18 1998 Ian Lance Taylor <ian@cygnus.com>
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.
8059 * rcs.c (getrcskey): Correct comment describing return value.
8061 Thu Feb 5 22:51:13 1998 Ian Lance Taylor <ian@cygnus.com>
8063 * subr.c (getcaller): Cache the result, so that we don't keep
8064 searching the password file.
8066 Wed Feb 4 23:31:08 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8068 * rcs.c (max_rev): Don't prototype. Interesting that noone
8069 complained about this until now.
8071 4 Feb 1998 Jim Kingdon
8073 * rcs.c (RCS_checkin): When adding a new file, read it
8074 with "rb" if binary.
8076 Fri Jan 30 11:32:41 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8078 * sanity.sh: Also test "first-dir" as the regexp in loginfo in
8081 * main.c (main): Update year in copyright notice to 1998.
8083 Thu Jan 29 00:01:05 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8085 * version.c: Change version number to 1.9.25.
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.
8093 * mkmodules.c (cvswrappers_contents): Rewrite. The text didn't
8094 describe -k and had various other problems.
8096 28 Jan 1998 Karl Fogel and Jim Kingdon
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().
8119 Tue Jan 27 18:27:19 1998 Ian Lance Taylor <ian@cygnus.com>
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
8127 Thu Jan 22 10:05:55 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
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'.
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).
8142 Tue Jan 20 19:37:53 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8144 * client.c (send_dirent_proc): Don't send nonexistent directories
8146 * sanity.sh (modules2): New tests modules2-13 through modules2-18
8149 Mon Jan 19 11:17:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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"
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.
8166 Mon Jan 19 08:48:59 1998 Larry Jones <larry.jones@sdrc.com>
8168 * sanity.sh (errmsg1): Append test 168 output to log file.
8170 Sat Jan 17 08:01:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8172 * sanity.sh (ann-10, ann-11): Don't make assumptions about the
8173 number of characters in the username.
8175 Fri Jan 16 15:34:02 1998 Larry Jones <larry.jones@sdrc.com>
8177 * diff.c (diff_fileproc): Free label1 and label2 when finished.
8179 * edit.c (editor_set): Don't free edlist until after we're
8182 * rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
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.
8188 Fri Jan 16 12:41:03 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8190 * sanity.sh: Add keywordlog to list of tests run by default.
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
8199 Thu Jan 15 23:52:00 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
8205 Thu Jan 15 21:24:59 1998 Ian Lance Taylor <ian@cygnus.com>
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.
8213 * sanity.sh: (TESTSHELL): New variable.
8214 (editor, info, reserved): Use TESTSHELL in temporary script.
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.
8220 * sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
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.
8227 Thu Jan 15 16:07:36 1998 Larry Jones <larry.jones@sdrc.com>
8229 * sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
8231 Wed Jan 14 15:43:13 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8233 * Split ChangeLog into ChangeLog-97 and ChangeLog.
8234 * Makefile.in (DISTFILES): Add ChangeLog-97.
8236 13 Jan 1998 Jim Kingdon
8238 * client.c: Declare handle_mt.
8240 Tue Jan 13 22:21:30 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8242 * sanity.sh: Add comment about how pwd and /bin/pwd often differ
8243 in behavior (but are not guaranteed to).
8245 Tue Jan 13 13:49:53 1998 Ian Lance Taylor <ian@cygnus.com>
8247 * sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
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).
8255 Tue Jan 13 10:37:02 1998 Larry Jones <larry.jones@sdrc.com>
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.
8260 Tue Jan 13 10:33:02 1998 Larry Jones <larry.jones@sdrc.com>
8262 * zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
8264 Tue Jan 13 10:26:43 1998 Larry Jones <larry.jones@sdrc.com>
8266 * add.c, rcs.c: Plug memory leaks.
8268 Mon Jan 12 10:45:27 1998 Larry Jones <larry.jones@sdrc.com>
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.
8275 1998-01-11 enami tsugutomo <enami@but-b.or.jp>
8277 * rcs.c (linevector_copy): Delete lines before overwriting them.
8279 Sat Jan 10 11:05:40 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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.
8290 Fri Jan 9 14:38:54 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
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
8297 Thu Jan 8 12:56:55 1998 Yasutoshi Hiroe <hiroe@rgk.ricoh.co.jp>
8299 * import.c (import): Don't strcat on uninitialized memory. Fixes
8300 possible SIGSEGV with zero-length message.
8302 Tue Jan 6 22:56:29 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8304 * sanity.sh (crerepos): Fix mistaken variable name which caused us
8305 not to clean up at the end of the test.
8307 Mon Dec 22 01:40:57 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
8309 * add.c (add): Also look for .cvswrappers files.
8310 * sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
8313 Tue Jan 6 11:50:38 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8315 * sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
8316 test behaviors when mixing repositories.
8318 Sun Jan 4 17:40:22 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
8320 * version.c: Change version number to 1.9.23.
8325 For older changes see ChangeLog-97.