Merge branch 'mirbsd'
authormirabilos <m@mirbsd.org>
Sat, 12 Aug 2017 01:10:29 +0000 (03:10 +0200)
committermirabilos <m@mirbsd.org>
Sat, 12 Aug 2017 01:10:29 +0000 (03:10 +0200)
1  2 
src/ChangeLog
src/edit.c
src/server.c
src/watch.c

diff --cc src/ChangeLog
index cbfb1ac,0000000..029509d
mode 100644,000000..100644
--- /dev/null
@@@ -1,14075 -1,0 +1,14075 @@@
-       "misformed Notify request" message in pending_error_text.
 +2005-09-30  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * expand_path.c (expand_path): Fix memory leaks.
 +
 +2005-09-29  Mark D. Baushke  <mdb@gnu.org>
 +
 +      * main.c (main): Simplify commitid creation.
 +
 +      * main.c (main): Not all hosts support O_NOCTTY for open.
 +      Try to use more random data when time() returns -1.
 +      
 +2005-09-29  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Check for error return from time().
 +
 +2005-09-29  Paul Eggert  <eggert@CS.UCLA.EDU>
 +          Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (handle_m, handle_e): Remove incomplete workaround for
 +      O_NONBLOCK problem; no longer needed because of the fix below.
 +      * cvs.h (piped_child): New bool argument saying whether O_NONBLOCK
 +      fix is needed.  All uses changed.
 +      * rsh-client.c (start_rsh_server): We need the O_NONBLOCK fix,
 +      so pass 'true' to piped_child to enable the workaround.
 +      * run.c (work_around_openssh_glitch): New function.
 +      (piped_child): Use it if the fix is requested.  Avoid call call to
 +      vfork with undefined behavior.
 +
 +2005-09-29  Mark D. Baushke  <mdb@gnu.org>
 +
 +      * main.c (main): Rename N as COMMITID_RAW_SIZE.
 +      Use base62 encoding for non-urandom case.
 +
 +2005-09-29  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_input), client.c (handle_m, handle_e): Use new
 +      fd_select in place of select.
 +
 +      * subr.c: Remove select includes - the sleep functions are now in
 +      lib.
 +
 +2005-09-28  Mark D. Baushke  <mdb@gnu.org>
 +
 +      * main.c (N, RANDOM_BYTES): New constants for base62 conversion.
 +      (divide_by): Used in base62 conversion.
 +      (convert): Ditto.
 +      (main): Set global_session_id using more random data and the
 +      current time in base62 if possible, otherwise fallback to the old
 +      method.
 +
 +2005-09-25  Conrad T. Pino  <Conrad@Pino.com>
 +
 +      * rcs.c: Use "#ifdef HAVE_FSYNC" just like every where else.
 +
 +2005-09-25  Conrad T. Pino  <Conrad@Pino.com>
 +
 +      * buffer.c client.h socket-client.h:  Remove HAVE_WINSOCK_H macro &
 +      change <winsock.h> to <sys/socket.h> include.
 +
 +      * server.c:  Remove HAVE_WINSOCK_H and <winsock.h> include.
 +
 +2005-09-25  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (rcs_internal_unlockfile): Fsync files before renaming them.
 +      Patch from Rahul Bhargava <rahul@wandisco.com>.
 +
 +      * cvs.h, filesubr.c, main.c, server.c:
 +      s/push_cvs_tmp_dir/push_cvs_temp_dir/.
 +
 +      * main.c (get_cvs_temp_dir): Use new get_system_temp_dir function.
 +      (push_env_temp_dir): Move to...
 +      * filesubr.c (push_env_temp_dir): ...here to split from Windows.
 +      (get_system_temp_dir): New function.
 +      * cvs.h (get_cvs_temp_dir, push_env_temp_dir): Add protos.
 +
 +      * buffer.c (fd_buffer_input): Fix spelling in header comment block.
 +
 +2005-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * socket-client.c: Check HAVE_CONFIG_H, not HAVE_CONFIG.
 +
 +      * socket-client.c, socket-client.h: Minor cleanup.
 +
 +      * Makefile.am (cvs_SOURCES): Move socket-client.[ch] to...
 +      (EXTRA_cvs_SOURCES): ...here to avoid compiling them.
 +      * socket-client.c (init_sockaddr), socket-client.h (init_sockaddr):
 +      Move to...
 +      * client.c (init_sockaddr), client.c (init_sockaddr): ...here.
 +
 +      * socket-client.c (socket_buffer_input): Avoid overflow problems.
 +
 +      * socket-client.c: General cleanup.
 +
 +2005-09-23  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * checkout.c (export_usage): Note that -r requires a tag.
 +
 +2005-09-22  Derek Price  <derek@ximbiot.com>
 +
 +      * classify.c (Classify_File): Correct comment.
 +
 +2005-09-22  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * patch.c (patch_usage): Document -k option.
 +
 +2005-09-22  Derek Price  <derek@ximbiot.com>
 +
 +      * classify.c (Classify_File): If a file had a conflict and the
 +      timestamp hasn't changed, it still has a conflict.  Add comment about
 +      how T_MODIFIED could later turn out to have conflict markers and why
 +      it should not be checked in this function.
 +      * client.c (send_fileproc): Don't send contents for files known to have
 +      conflicts unless this is for `cvs diff'.
 +      * commit.c (check_fileproc): T_CONFLICT should be handled like
 +      T_MODIFIED, since force could be requested.  Simplify logic since
 +      T_CONFLICT can now be trusted.
 +      * rcs.c (RCS_Checkout): Comment noexec behavior in header block.
 +      * server.c (serve_unchanged, serve_is_modified): Handle conflicts.
 +      * status.c (status_fileproc): Trust T_CONFLICT to simplify.
 +      * subr.c (file_has_conflict): Removed.
 +      * subr.h (file_has_conflict): Remove proto.
 +      * update.c (update_fileproc): Trust T_CONFLICT.
 +      (RegisterMerge): New function factored from...
 +      (merge_file, join_file): ...these two functions.
 +      * vers_ts.c (time_stamp_server): Handle = conflict timestamps in server
 +      entdata.
 +      * sanity.sh (files-12): Account for slight behavior improvement.
 +      (status, conflicts, mwrap): Account for corrected behavior.
 +      (join-readonly-conflict-10): Correct comment.
 +      (binfiles-con1b): New test for correct behavior.
 +
 +      * classify.c (Classify_File): Consolidate redundant conditionals.
 +
 +2005-09-21  Derek Price  <derek@ximbiot.com>
 +
 +      * entries.c: Remove obsolete comment.
 +
 +2005-09-20  Derek Price  <derek@ximbiot.com>
 +
 +      * myndbm.c: #include getdelim.h for Windows.
 +
 +      * main.c: #include setenv.h for Windows.
 +
 +2005-09-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (modules5-8): Rename...
 +      (modules5-8r): ...to this and comment Mac OS X failure.
 +      Comment Solaris 9 failure below with a `FIXME?' tag.
 +
 +      * sanity.sh: Remove previous hack in favor of setting TESTDIR on
 +      Solaris (and Mac OS X) until problem is solved correctly.
 +
 +2005-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Use /bin/pwd to verify current dir since Solaris 9 is
 +      sometimes resolving symlinked paths.
 +
 +2005-09-14  Derek Price  <derek@ximbiot.com>
 +
 +      * edit.c (edit_usage, unedit_usage, editors_usage), watch.c
 +      (watch_usage, watchers_usage): Add quotes and reword for clarity and
 +      consistency.
 +
 +      * edit.c (edit_usage): Add missing syntax.  Reword description for
 +      clarity.  Mention default behavior.
 +
 +2005-09-13  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh ($anyusername): Reduce charset to that allowed on Linux.
 +
 +      * sanity.sh ($anyusername): Make more robust and expand comments.
 +      Reported by Mark D. Baushke <mdb@gnu.org>.
 +
 +      * sanity.sh: Split $username into $username & $username8.  Rename
 +      $author as $anyusername.
 +
 +2005-09-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (username): Cut $username down to 8 characters when longer,
 +      since that is all that appears in output.
 +
 +2005-09-11  Derek Price  <derek@ximbiot.com>
 +
 +      [bug #14504]
 +      * main.c (main): Set server_hostname before it is used by
 +      gserver_authenticate_connection.
 +      (Report from Serguei E. Leontiev <leo@sai.msu.ru>.)
 +
 +2005-09-08  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * server.c (parseServerOptions): getopt() returns int, not char.
 +
 +2005-09-07  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_parse): Minor reformatting.
 +
 +      Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14462>.
 +      * rcs.c (RCS_parse): Free variable *after* using it for the last time.
 +
 +2005-09-06  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (tempfile): All CVS temp files start with "cvs".
 +
 +      * sanity.sh (tempfile): New var.
 +      (tempname): Set to $TMPDIR/$tempfile after $TMPDIR is set.
 +      (info): s#$TMPDIR/##.
 +
 +      * rcs.c (RCS_putdtree): Remove unused variable.
 +
 +2005-09-06  Mark D. Baushke  <mdb@gnu.org>
 +
 +      Close <https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14435>.
 +      * rcs.c (RCS_putdtree): Avoid stack overflow which may be
 +      possible with excessive recursive calls to RCS_putdtree().
 +      (Patch from Serg Masyutin.)
 +
 +2005-09-06  Derek Price  <derek@ximbiot.com>
 +
 +      Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14448>.
 +      * kerberos-client.c (start_kerberos4_server): Pass new root arg to
 +      make_bufs_from_fds.
 +      (Patch from <Manuel.Guijarro.AT.cern.ch>.)
 +
 +      * server.c: Reorganize includes slightly and alphabetize sections.
 +
 +      * server.c: #include canon-host.h.
 +      (gserver_authenticate_connection): Print out canon-host errors.
 +      * subr.c: #include canon-host.h.
 +      (isThisHost): Print out canon-host errors.
 +
 +      * parseinfo.c (parse_config): Don't check hostname without client
 +      or server support.
 +
 +      * main.c (main): Set cvs_cmd_name before calling parseServerOptions.
 +
 +2005-09-05  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (Tmpdir): Remove global decl.
 +      (get_cvs_tmp_dir, push_env_tmp_dir): New protos.
 +      * filesubr.c (cvs_temp_file): Use get_cvs_tmp_dir.
 +      * main.c (Tmpdir): Remove global.
 +      (tmpdir_cmdline, tmpdir_env): New globals.
 +      (get_cvs_tmp_dir, push_env_tmp_dir): New functions.
 +      (main): Discard most tmpdir overhead in favor of new globals and
 +      functions.
 +      * parseinfo.c (parse_config): Parse TmpDir.
 +      * sanity.sh (config4): New tests.
 +      * server.c (serve_root): Set env TMPDIR after parsing config.  Create
 +      tmpdir here instead of...
 +      (serve_co, server): ...either of thse locations.
 +      (server_cleanup): Use new function in favor of obsolete Tmpdir.
 +
 +      * sanity.sh (config2): Don't overwrite potentially significant config.
 +
 +      * sanity.sh (info): Use $tempfile instead of reproducing the regex.
 +
 +      * sanity.sh (info): Accept `.' in temp file names.
 +
 +      * main (main): Set the actual PID, not a pointer to a string.
 +
 +2005-09-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (config3): Generalize.
 +
 +      * main.c (main), server.c (serve_root, switch_to_user): Replace putenv
 +      with GNULIB setenv.
 +      * sanity.config.sh.in (HAVE_PUTENV): Remove.
 +      * sanity.sh (env): Remove reference to $HAVE_PUTENV.
 +
 +      * sanity.sh (tests): Add config2 & config3.
 +
 +      * server.c (isSamePath, isThisHost): Move to...
 +      * subr.c (isSamePath, isThisHost): ...here.
 +      * subr.h (isSamePath, isThisHost): Add protos.
 +      * parseinfo.c (parse_config): Handle [rootspec] syntax.
 +      * main.c (main): Always set server_hostname.
 +      * sanity.sh (config3): New tests for same.
 +
 +      * server.c (gserver_authenticate_connection): Output hostname in
 +      error message.
 +
 +      * server.c (isThisHost): Fix typo.
 +
 +      * server.c (isThisHost, gserver_authenticate_connection): Simplify
 +      using canon_host().
 +
 +      * root.c (free_cvsroot_t): Update header comment.
 +
 +      * root.c (new_cvsroot_t): directory is not client-specific.
 +      (free_cvsroot_t): Declare static.
 +      * root.h (free_cvsroot_t): Remove proto.
 +      * server.c (server_init): Don't free cvsroot_t when finished with it.
 +
 +2005-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * root.h (cvsroot_t->isremote): Update comment.
 +
 +      * history.c (read_hrecs_file): Suppress signed/unsigned char warning.
 +
 +      * root.h (cvsroot_t->isremote): Declare bool.
 +      * root.c (new_cvsroot_t): Initialize isremote to false instead of 0.
 +
 +      * add.c (add_usage): Standardize usage message somewhat.
 +
 +2005-09-02  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * commit.c (checkaddfile): Improve error messages for lock_RCS failure.
 +      * release.c (release): Improve error message for pclose failure.
 +
 +      * root.h (struct cvsroot_s): Always declare isremote to simplify
 +      other code.  Simplify referencing code.
 +      * root.c (new_cvsroot_t): Always initialize isremote.
 +      * server.h: Always declare server_active to simplify other code.
 +      Simplify referencing code.
 +      * server.c: Always define server_active.
 +
 +2005-09-02  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * parseinfo.c (parse_config): Variable declarations must precede
 +      executable code for pre-C99 compilers.  Pass correct line number
 +      variable to expand_path.
 +
 +2005-09-01  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c: Update bug report email address.
 +
 +2005-08-31  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (expand_path): Update proto.
 +      * expand_path.c (expand_variable): Accept and use cvsroot arg inplace
 +      of global.
 +      (expand_path): Accept and pass through cvsroot arg.
 +      * main.c (main): Prescan args for config path before config options are
 +      used.  Pass config path on as needed.  Update comment. 
 +      * modules.c (do_module): Update expand_path call.
 +      * parseinfo.ci (Parse_Info): Ditto.
 +      (allowed_config_prefixes): New global.
 +      (parse_config): Accept configPath arg, update expand_path calls, and
 +      expand LockDir path.
 +      * parseinfo.h (parse_config): Update proto.
 +      * root.c (root_allow_add, get_root_allow_config): Accept new configPath
 +      arg and pass through to parse_config.
 +      * root.h (root_allow_add, get_root_allow_config): Update protos.
 +      * server.c (gConfigPath, server_usage): New globals.
 +      (parseServerOptions): New function.
 +      (server): Use new usage var.
 +      (pserver_authenticate_connection): Update get_root_allow_config call.
 +      * server.h (parseServerOptions): New proto.
 +      * wrapper.c (wrap_add): Update expand_path calls.
 +      * sanity.sh (server): New tests for setting config file path.
 +
 +2005-08-31  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (close-stdout): Remove archive dir when done.
 +
 +2005-08-31  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * import.c (import_descend): Lock repository directory during import.
 +
 +2005-08-31  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSamePath): Compare args rather than assuming values.
 +
 +2005-08-29  Derek Price  <derek@ximbiot.com>
 +
 +      Add %{sV} format string to verifymsg script.
 +      * logmsg.c (do_verify): Accept change list arg, pass through to...
 +      (verifymsg_proc): ...here, to pass through to format_cmdline.
 +      * commit.c (commit_fileproc, commit_direntproc), import.c (update):
 +      Update all callers of do_verify.
 +      * cvs.h (do_verify): Update proto.
 +      * sanity.sh (info): Test new verifymsg format strings.
 +
 +2005-08-09  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Remove debugging echo.
 +      (watch6, watch6-0): Clean up properly.
 +
 +2005-08-03  Jim Hyslop <jhyslop@dreampossible.ca>
 +
 +      * edit.c, watch.c, watch.h, sanity.sh: fixed problems with watch not
 +      setting default attributes, when directory specified.
 +
 +2005-07-20  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: s/cvshome.org/nongnu.org.etc.../.
 +
 +2005-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
 +      release.c: Add copyright notices.
 +
 +2005-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Update fwrite usage to use size & count in the standard
 +      order.
 +
 +2005-07-11  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
 +      release.c: Update license notices.
 +
 +2005-06-28  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_co): Remove obsolete support for Repository request.
 +
 +2005-06-10  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c, ignore.c, import.c, vers_ts.c: Include "lstat.h".
 +
 +2005-06-10  Derek Price  <derek@ximbiot.com>
 +
 +      * logmsg.c (logmsg_list_to_args_proc): Add format character for
 +      destination tag.
 +      (Original patch from Todd Vierling <tv@duh.org>).
 +
 +      * tag.c (pretag_list_to_args_proc): Likewise.
 +      (check_fileproc): Set destination tag name.
 +      (tag_delproc): Delete destination tag name.
 +      * sanity.sh (info, taginfo): Test new format strings.
 +
 +2005-06-08  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c: Restore comparison to NULL in assignment within
 +      conditional to placate non-GNU compilers.  Eliminate assignments in
 +      conditionals where possible by GNU coding standards.  Eliminate other
 +      comparisons to NULL where possible.
 +      (Parse_Info): Make int a true bool.
 +
 +2005-06-03  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (force_gzip): New static global.
 +      (handle_force_gzip): New function.
 +      (responses): Add `Force-gzip'.
 +      (start_server): Turn on encryption and compression before potentially
 +      sending other rooted requests.  Turn on compression when requested by
 +      the user or the server.
 +      * main.c (opt_usage):  Note that -z<level> *requests* compression
 +      <level> from the server.
 +      * parseinfo.c (new_config):  Initialize MaxCompressionLevel.
 +      (parse_config): Parse MinCompressionLevel & MaxCompressionLevel.
 +      * parseinfo.h (struct config): Add MinCompressionLevel &
 +      MaxCompressionLevel.
 +      * server.c (pending_warning_text):  New static global.
 +      (print_pending_error): Print pending warnings too.
 +      (warning_pending): New macro.
 +      (alloc_pending_internal): New function with much content...
 +      (alloc_pending): ...previously from here.
 +      (alloc_pending_warning): New function.
 +      (server_root, serve_gzip_contents, gzip_stream): Force gzip_level into
 +      configured restrictions.
 +      (serve_command_prep): Print pending errors.
 +      (requests): Make `Gzip-stream', `gzip-file-contents',
 +      `Kerberos-encrypt', `Gssapi-encrypt', & `Gssapi-authenticate' requests
 +      rootless to allow them before compression starts.
 +      (serve_valid_requests): Send `Force-gzip' response when needed.
 +      (server): Abort if a rootless compression request forced compression
 +      outside restricted levels.
 +      * zlib.c (struct compress_buffer, compress_buffer_initialize): Store
 +      compression level.
 +      (compress_buffer_output): Reset compression level when global
 +      gzip_level has changed.
 +      * sanity.sh (config2): New tests for compression restrictions.
 +
 +2005-06-03  Derek Price  <derek@ximbiot.com>
 +
 +      * zlib.c (compress_buffer_input): Update comment.
 +
 +2005-06-03  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (error): Correct spelling and grammar in comment.
 +
 +2005-06-03  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (my_module), wrappers.c (wrap_add): Use new expand_path
 +      API.
 +
 +2005-06-03  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (expand_path): Rearrange args and use bool for formatsafe flag.
 +      * expand_path.c: Globally: Remove init of globals to NULL by C89,
 +      reformat to CVS conventions, remove unnecessary comparisons to NULL and
 +      0, & remove unnecessary typecasts.
 +      (expand_variable): Remove proto and move function above first use.
 +      Make return value const.
 +      (expand_path): Don't refer to var when contents are known.  Rearrange
 +      args per cvs.h changes.  Improve header comment block.
 +      * parseinfo.c (Parse_Info): Use new expand_path API.
 +
 +2005-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Don't set NULL for globals by C89.  Globally remove
 +      comparisons to NULL or replace with !.  Similarly remove or replace
 +      comparisons of strcmp and strncmp return value to 0.  Remove some
 +      unneeded braces around single-element blocks.
 +      (handle_*): Remove unecessary protos.
 +      (handle_notified, notified_a_file): Move up before first use.
 +
 +2005-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (config): Simplify cleanup.
 +
 +2005-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * zlib.c (compress_buffer_input): Don't request more bytes from the
 +      underlying buffer than asked for.
 +      (compress_buffer_shutdown_input): Don't attempt to read EOF from the
 +      client during shutdown.  It might never be sent.
 +      * sanity.sh (abspath2): Test for this.
 +
 +2005-05-31  Derek Price  <derek@ximbiot.com>
 +
 +      * rcscmds.c (call_diff_argc_allocated): Rename to...
 +      (call_diff_arg_allocated): ...to match similar usage in other files.
 +
 +2005-05-31  Derek Price  <derek@ximbiot.com>
 +      for Alexander Taler <alex@0--0.org>
 +
 +      * rcscmds.c: Change type of call_diff_argc_allocated from int to
 +      size_t, to match the prototype of run_add_arg_p().  This fixes a
 +      bus error in OpenBSD 3.6 sparc64.
 +
 +2005-05-27  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_arg): Make arg const.  Remove unnecessary copy to
 +      buffer.
 +      (send_option_string): Rename to...
 +      (send_options): ...this and accept argc/argv in place of string.
 +      * client.h: Update protos to match the changes to client.c.
 +      * cvs.h (RCS_exec_rcsdiff, diff_exec): Update protos.
 +      (run_add_arg_p, run_arg_free_p): New protos.
 +      * diff.c (opts, opts_allocated): Replace with...
 +      (diff_argv, diff_argc, diff_arg_allocated): ...these.
 +      (add_diff_args): New convenience function.
 +      (diff): Use new constructs and APIs.
 +      * patch.c (patch_fileproc, RCS_checkin, RCS_delete_revs), rcscmds.c
 +      (call_diff_add_arg, call_diff_setup, RCS_merge, RCS_exec_rcsdiff,
 +      diff_exec, RCS_output_diff_options), update.c (patch_file): Use new
 +      APIs.
 +      * run.c (run_add_arg_p, run_arg_free_p): New functions.
 +      (run_argc_allocated): Make size_t.
 +      (run_setup, run_add_arg): Use new functions.
 +      * sanity.sh: Accomodate above changes.
 +      (rcslib-diffrgx-3): Slip in test for space splitting.
 +
 +2005-05-26  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (isabsolute), subr.h (isabsolute): Remove this function.
 +      * root.c: Likewise, plus some reformatting.
 +      * checkout.c, client.c, find_names.c, import.c, modules.c, parseinfo.c,
 +      repos.c, root.c, server.c, subr.c: s/isabsolute/ISABSOLUTE/.
 +
 +2005-05-26  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move "system.h" include before GNULIB includes.  Move some
 +      GNULIB includes from "system.h".
 +
 +2005-05-26  Conrad T. Pino <Conrad@Pino.com>
 +
 +      * buffer.c, buffer.h: Add & use typedefs for function pointer arguments
 +      and struct buffer function pointers.  New typedefs are useful in casts.
 +      * socket-client.c: Function pointers passed to buf_initialize use size_t
 +      not int arguments.  buf_initialize warnings are gone from Windows build.
 +
 +2005-05-24  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c, entries.c, filesubr.c, hardlink.c, ignore.c, import.c,
 +      lock.c, logmsg.c, mkmodules.c, rcs.c, rcscmds.c, server.c, subr.c,
 +      update.c, vers_ts.c: s/CVS_STAT/stat/ & s/CVS_LSTAT/lstat/.
 +
 +2005-05-23  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (xresolvepath): Move to...
 +      * subr.c (xcanonicalize_file_name): ...here and rename.  Use new
 +      GNULIB canonicalize module.
 +      * cvs.h (xresolvepath): Move proto...
 +      * subr.h (xcanonicalize_file_name): ...here.
 +      * checkout.c (safe_location), server.c (isSamePath): Use new function
 +      name.
 +
 +2005-05-23  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcslib-symlink-10): Accept empty result due to broken glob
 +      in glibc 2.3.5.
 +
 +2005-05-18  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (config-9): Split to local/remote tests to avoid unportable
 +      expr characters.
 +
 +2005-05-17  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Use a predictable umask.
 +
 +2005-05-13  Derek Price  <derek@ximbiot.com>
 +
 +      * login.c (password_entry_parseline): Placate gcc -Wall.
 +
 +2005-05-11  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (find_files): New proto.
 +      * find_names.c (find_files, strip_rcsext): New functions.
 +      (find_rcs): Make arg const.  Use new find_files.  Improve header
 +      comment block.
 +      * history.c (histfile): Remove global.
 +      (get_history_log_name): New function.
 +      (history, history_write): Use new functions.
 +      (read_hrecs_file): New function containing most content from...
 +      (read_hrecs): ...this function, which now accepts a file list and calls
 +      read_hrecs_file once for each file.
 +      * parseinfo.c (parse_config): Parse HistoryLogPath & HistorySearchPath.
 +      * parseinfo.h (struct config): Add HistoryLogPath & HistorySearchPath.
 +      * sanity.sh (basic2-64): Remove obsolete comment.
 +      (config): Test new history options.
 +      (crerepos): Cleanup.
 +
 +2005-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (error): Avoid unportable calls to vsyslog.
 +
 +2005-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * history.c (history_write): Add FIXME.
 +
 +2005-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * hash.c (removenode, mergelists): New function.
 +      (delnode): Use removenode.
 +      * hash.h (mergelists): New proto.
 +
 +2005-05-04  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (error): Avoid recursion and syslog the problem.
 +
 +2005-05-03  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c (is_in_val_tags): Remove unnecessary existance checking for the
 +      val-tags file and just rely on open() to create it when necessary.
 +
 +2005-05-03  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c (tag_check_valid): Don't verify the_val_args.found when it is
 +      not initialized.
 +
 +2005-05-03  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c: Update comment to include the -k option.  This resolves issue
 +      #226 on cvshome.org.
 +
 +2005-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      Remove unnecessary level of indirection.
 +      * lock.c (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): Remove macros.
 +      (internal_lock, internal_clear_lock): Accept lock as argument.
 +      (history_lock, clear_history_lock, val_tags_lock, clear_val_tags_lock):
 +      Replace old macro arg with an actual lock pointer.
 +
 +2005-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (internal_lock, internal_clear_lock): Add protos.
 +      (history_lock, val_tags_lock): Return the chartered true/false status.
 +
 +2005-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (CVSHISTLCK): Rename macro to...
 +      (CVSHISTORYLCK): ...this.
 +      (CVSVALTAGSLCK): New macro.
 +      (val_tags_lock, clear_val_tags_lock): New functions.
 +      * lock.c (global_val_tags_lock): New global.
 +      (Lock_Cleanup): Clean up after val-tags lock if necessary.
 +      (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): New local macros.
 +      (internal_lock, val_tags_lock, clear_val_tags_lock): New functions.
 +      (history_lock): Use new internal function.
 +      * tag.c (is_in_val_tags, add_to_val_tags): New functions using the
 +      write lock for val-tags and factored from...
 +      (tag_check_valid): ...this function.
 +      * sanity.sh (lockfiles-22): Add val-tags lock test.
 +
 +2005-04-30  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * lock.c (global_readlock, global_writelock, global_history_lock):
 +      Add missing alternatives for non-LOCK_COMPATIBILITY initialization.
 +
 +2005-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (history_lock, clear_history_lock): New protos.
 +      * lock.c (struct lock): Add lockdirname.
 +      (global_history_lock): New global.
 +      (global_read_lock): Initialize.
 +      (lock_name): Handle const args.
 +      (lock_simple_remove): Factor out code in favor of clear_lock call.
 +      (set_lock): Handle variable lockdirname.
 +      (lock_filesdoneproc): Set new lockdirname.
 +      (history_lock, clear_history_lock): New functions.
 +      (clear_lock): Avoid segfault on missing lock.
 +      (Lock_Cleanup): Clean up history locks when necessary.
 +      * history.c (history_write): Use new lock.
 +      * sanity.sh (lockfiles-20): Test new lock.
 +
 +2005-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (lockfiles): Port some locking tests over from 1.12.x.
 +
 +2005-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (clear_lock): Improve comment.
 +
 +2005-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (struct lock): Store lockdir name.
 +      (masterlock): Remove global.
 +      (remove_lock_files, clear_lock, set_lock): Update to compensate.
 +
 +2005-04-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c: Add support for <pam/pam_appl.h> to allow
 +      --enable-pam to work on MacOSX 10.2 and newer.
 +      (Pach from Moriyoshi Koizumi <moriyoshi@at.wakwak.com>.)
 +
 +2005-04-25  Derek Price  <derek@ximbiot.com>
 +
 +      * mkmodules.c (mkmodules): Remove `#if 0' and reformat comment.
 +
 +2005-04-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * expand_path.c (expand_variable): Add SESSIONID and COMMITID
 +      internal variables. Both return the unique global session id of
 +      the CVS process. Passing this information to administrative
 +      triggers seems reasonable. (The same feature exists in CVSNT and
 +      the names were chosen to be the same as the CVSNT names.)
 +
 +      * sanity.sh (info): Add a test for $COMMITID and $SESSIONID.
 +
 +2005-04-20  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (rcs4): Fix a typo.
 +
 +2005-04-20  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcs5): Minor cosmetic change.
 +
 +2005-04-20  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (tests): Add rcs4.
 +      (rcs5): Add comments.
 +
 +2005-04-20  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (expand_keywords): Avoid buffer overflow.
 +      (Original patch from Stewart Brodie <stewart@eh.org>.)
 +
 +      * sanity.sh (rcs5): New tests for the above.
 +
 +2005-04-08  Derek Price  <derek@ximbiot.com>
 +
 +      * edit.c (edit_fileproc, unedit_fileproc): s/GMT/-0000/.
 +      * rcs.c (RCS_getrevtime): Ditto, & replace a sprintf into a static
 +      buffer with an Xasprintf which creates a dynamic one.
 +      * sanity.sh: Update tests to compensate.
 +      (Original bug report from Ian Abbott <abbotti@mev.co.uk>.)
 +
 +2005-03-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * checkout.c (checkout_proc): Use Xasprintf/xstrdup instead of
 +      xmalloc/strcpy+strcat.
 +
 +2005-03-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * Makefile.in: Regenerated.
 +
 +2005-03-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (linevector_add): Use xnrealloc.
 +      * server.c (serve_argument): Ditto.
 +
 +2005-03-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (linevector_copy): Use xtimes in argument.
 +
 +      * patch.c (patch): Remove dead code.
 +
 +      * lock.c (set_readlock_name): Use Xasprintf instead of
 +      xmalloc/sprintf.
 +      (lock_exists, set_promotable_lock, lock_wait): Ditto.
 +      (lock_obtained, lock_dir_for_write): Ditto.
 +      * log.c (rlog_proc): Ditto.
 +
 +      * ignore.c (ign_dir_add): Use xnrealloc.
 +      * modules.c (save_d): Ditto.
 +      * rcs.c (linevector_copy): Ditto.
 +
 +      * add.c (add): Use xstrdup instead of xmalloc/strcpy.
 +      * client.c (client_process_import_file): Ditto.
 +      * kerberos4-client.c (start_kerberos4_server): Ditto.
 +      * logmsg.c (verifymsg_proc): Ditto.
 +      * log.c (log_expand_revlist): Ditto.
 +      * patch.c (patch_fileproc): Ditto.
 +      * rcs.c (RCS_tag2rev, RCS_nodeisbranch, RCS_getbranch): Ditto.
 +      (RCS_getdatebranch, expand_keywords, RCS_addbranch): Ditto.
 +      (RCS_checkin): Ditto.
 +      * remove.c (remove_fileproc): Ditto.
 +
 +2005-03-18  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Reindent pragmas.
 +      (become_proxy): Add parentheses for -Wall.
 +
 +2005-03-18  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (error): Simplify using vasnprintf.
 +
 +2005-03-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * admin.c (postadmin_proc): Cast NULL when it is an argument to
 +      stdarg function to ensure it is the correct type.
 +      * commit.c (precommit_proc): Ditto.
 +      * edit.c (notify_proc): Ditto.
 +      * fileattr.c (postwatch_proc): Ditto.
 +      * logmsg.c (logfile_write, verifymsg_proc): Ditto.
 +      * server.c (prepost_proxy_proc): Ditto.
 +      * subr.c (cmdlineescape): Ditto.
 +      * tag.c (posttag_proc): Ditto.
 +      (Thanks to a report from Derek Price <derek@ximbiot.com>.)
 +      
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.h (RCSNode): Improve comment.
 +      * rcs.c (RCS_head): Ditto, plus gratuitous reformatting.
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_deltas): Use rcs->print_path.
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * login.c (password_entry_parseline): Avoid using uninitialized
 +      variable.
 +      * rcs.c (RCS_deltas): Avoid buffer overflow.
 +      (RCS_checkout): Avoid using uninitialized loglen.
 +      * patch.c (patch_fileproc): Free original pointer, not one that may
 +      have been incremented.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
 +      response to a rare error.
 +      * admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
 +      (checkout_file), rcs.c (RCS_getdate, RCS_deltas, RCS_findlock_or_tip,
 +      RCS_tag2rev): Avoid dereferencing NULL pointer.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_reparsercsfile): Avoid memory leak.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * log.c (log_expand_revlist): Suppress message and not error handling
 +      when really_quiet.
 +
 +2005-03-16  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (fd_buffer_shutdown): Replace (int *) 0 with NULL.
 +      * server.c (do_cvs_command): Ditto.
 +
 +      * client.c (update_entries): Use xnmalloc.
 +
 +      * checkin.c (Checkin): Replace (char *) 0 with NULL.
 +      * patch.c (patch_fileproc): Ditto.
 +      * update.c (update_fileproc): Ditto.
 +      * no_diff.c (No_Difference): Ditto.
 +      * patch.c (patch_fileproc): Ditto.
 +      * rcscmds.c (call_diff_setup, call_diff_add_arg): Ditto.
 +
 +      * update.c (join_file): Replace (RCSCHECKOUTPROC)0 with NULL.
 +      * rcs.c (RCS_checkin, RCS_cmp_file, RCS_delete_revs) 
 +      (RCS_delete_revs): Ditto.
 +      * rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Ditto.
 +      
 +      * annotate.c, checkin.c, classify.c, fileattr.c, find_names.c,
 +      hash.c, lock.c, login.c, logmsg.c, main.c, modules.c, myndbm.c,
 +      no_diff.c, patch.c, rcs.c, rcscmds.c, remove.c, server.c,
 +      status.c, subr.c, tag.c, update.c, vers_ts.c: Avoid casting NULL.
 +
 +2005-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (call_in_directory): Put function call after var decls.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (call_in_directory), commit.c (commit_filesdoneproc), log.c
 +      (log_expand_revlist, log_version), logmsg.c (logfile_write), modules
 +      (my_module), no_diff.c (No_Difference), parseinfo.c (Parse_Info), rcs.c
 +      (RCS_deltas, RCS_checkin, RCS_addbranch, do_locks, do_symbols),
 +      rcscmds.c (RCS_merge), root.c (parse_cvsroot, normalize_cvsroot),
 +      update.c (merge_file): Verify assumptions via assertions.
 +      (Thanks to (probably) incorrect reports from Alen Zukich
 +      <alen.zukich@klocwork.com>.)
 +
 +2005-03-16  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (RCS_check_kflag): Use Xasprintf instead of
 +      sprintf/xstrdup.
 +
 +      * mkmodules.c (checkout_file): Use Xasprintf instead of
 +      xmalloc/strcpy+strcat.
 +      * wrapper.c (wrap_unparse_rcs_options): Ditto.
 +      (wrap_rcsoption): Ditto.
 +
 +      * subr.c (getcaller): Use Xasprintf instead of sprintf/xstrdup.
 +
 +      * history.c (history): Use Xasprintf instead of xmalloc/sprintf.
 +      * lock.c (lock_name, set_lockers_name): Ditto.
 +      * main.c (cmd_synonyms, main): Ditto.
 +      * mkmodules.c (rename_rcsfile, init): Ditto
 +      * modules.c (cat_module): Ditto.
 +      * parseinfo.c (Parse_Info): Ditto.
 +      * rcscmds.c (diff_exec, RCS_output_diff_options): Ditto.
 +      * recurse.c (start_recursion, do_dir_proc): Ditto.
 +      * remove.c (remove_fileproc): Ditto.
 +      * repos.c (Name_Repository): Ditto.
 +      * root.c (Name_Root, Create_Root): Ditto.
 +      * status.c (status_fileproc, tag_list_proc): Ditto. 
 +      * wrapper.c (wrap_setup, wrap_tocvs_process_file): Ditto.
 +
 +      * hash.c (sortlist): Use xnmalloc.
 +      * main.c (cmd_synonyms): Ditto.
 +      * server.c (cvs_pam_conv): Ditto.
 +
 +      * create_adm.c (Create_Admin): Clean up use of Xasprintf/xstrdup.
 +      * entries.c (WriteTag, base_walk): Ditto.
 +      * modules.c (my_module): Ditto.
 +
 +      * wrapper.c (wrap_fromcvs_process_file): Use Xasprintf instead of
 +      xmalloc/sprintf and clean up control flow.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * history.c (history_write): Remove test that always evaluates to
 +      false.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (become_proxy): Close pipe to primary when pipe from it
 +      closes.
 +
 +2005-03-16  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (debug-log-nonfatal): Only set CVS_CLIENT_LOG to the
 +      old value if it was previously set.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (create_adm_p, serve_entry), tag.c (rtag_proc): Avoid memory
 +      leaks.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * logmsg.c (do_verify): Don't check for NULL return from xfopen().
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (debug-log-nonfatal): New test.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy-ssh-noredirect): Don't unconditionally create
 +      a primary debug log.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (open_file): Move proto...
 +      * subr.h (xfopen): ...here and rename.
 +      * filesubr.c (open_file): Move function...
 +      * subr.c (xfopen): ...here, with additional commenting and minor
 +      cosmetic changes.
 +      * add.c, checkout.c, client.c, cvsrc.c, edit.c, entries.c, filesubr.c,
 +      logmsg.c, mkmodules.c, modules,c, patch.c, root.c, subr.c:
 +      s/open_file/xfopen/.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (setup_logfiles): Failure to open a debug log file
 +      should be non-fatal.
 +
 +2005-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (cvs_outerr): Quote error text in syslog messages.
 +
 +2005-03-15  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * history.c (select_hrec): Avoid possible memory leak.
 +
 +2005-03-15  Derek Price  <derek@ximbiot.com>
 +
 +      * patch.c (patch_proc): Avoid memory leak.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (receive_partial_file): Use ssize_t to deal with < 0
 +      return value from write().
 +
 +2005-03-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * history.c (save_file): Bug fix from last change.
 +
 +2005-03-11  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * update.c (get_linkinfo_proc): Use Xasprintf instead of
 +      xmalloc/sprintf.  Gratuitous reformatting.
 +      (update_ignproc, update_dirent_proc, checkout_file): Ditto.
 +      (patch_file, merge_file, join_file): Ditto.
 +      * modules.c (open_module): Ditto.
 +
 +      * modules (my_module): Use Xasprintf instead of xmalloc/sprintf
 +      and avoid possibility of trying to free(NULL).
 +
 +      * subr.c (backup_file): Use Xasprintf instead of xmalloc/sprintf.
 +      (cmdlinequote): Use Xasprintf instead of xmalloc/strcat+strlen.
 +      * modules.c (my_module): Ditto.
 +
 +      * client.c (handle_module_expansion): Use xnmalloc, xnrealloc,
 +      and xstrdup in place of xmalloc, xrealloc, and xmalloc/strcpy.
 +      (start_server): Do not assume gzip_level precision encoding.
 +      (send_modified): Do not assume 1024 bytes is sufficient for
 +      a temporary filename.
 +
 +      * modules.c (my_module): Use xnmalloc and xnrealloc. Gratuitous
 +      reformatting.
 +      * subr.c (line2argv): Ditto.
 +
 +2005-03-11  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * modules.c (my_module): Protect against free (NULL) code path.
 +
 +2005-03-11  Derek Price  <derek@ximbiot.com>
 +
 +      * annotate.c (rannotate_proc), fileattr.c (fileattr_write), rcs.c
 +      (RCS_deltas), server.c (check_repository_password), update.c (update):
 +      Avoid memory leaks.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +2005-03-10  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff_fileproc): Remove unnecessary check for NULL.
 +
 +2005-03-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * commit.c: Gratuitous reformatting.
 +      * entries.c: Ditto.
 +      * import.c (import, import_descend): Ditto.
 +
 +      * commit.c (commit): Use xnmalloc. Gratuitous reformatting.
 +      * history.c (save_user, save_file, save_module, read_hrecs): Ditto.
 +      * ignore.c (ign_add): Ditto.
 +
 +      * hardlink.c (lookup_file_by_inode): Use Xasprintf instead of
 +      xmalloc/sprintf.  Gratuitous reformatting.
 +      (update_hardlink_info, list_linked_files_on_disk): Ditto.
 +      (find_checkedout_proc): Ditto.
 +      * history.c (history, history_write, save_file): Ditto.
 +      (select_hrec): Ditto. 
 +      * ignore.c (ign_setup, ignore_files): Ditto.
 +      * import.c (process_import_file, import_descend_dir): Ditto.
 +
 +      * import.c (import_descend_dir): Use Xasprintf instead of
 +      xmalloc/strcpy+strcat+strcat.
 +
 +      * history.c (read_hrecs): Make function argument a const.
 +      
 +2005-03-10  Derek Price  <derek@ximbiot.com>
 +
 +      * fileattr.c (fileattr_read): Only eat a newline when it really is a
 +      newline.
 +
 +2005-03-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * zlib.c: Include "pagealign_alloc.h".
 +
 +2005-03-09  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add, add_directory), buffer.c (allocate_buffer_datas),
 +      client.c (update_entries), commit.c (checkaddfile), entries.c
 +      (Entries_Open), fileattr.c (fileattr_read), ignore.c (ign_add),
 +      import.c (import), main.c (main), parseinfo.c (parse_config), rcs.c
 +      (RCS_reparsercsfile, RCS_getbranchpoint, RCS_checkout,
 +      RCS_delete_revs, apply_rcs_changes): Avoid memory leaks.
 +      (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
 +
 +      * hardlink.c, hardlink.h: Avoid compiling entire contents of these
 +      files w/o preserve permissions support.
 +
 +2005-03-09  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * history.c (history, save_file): Cleanup the API to match the
 +      comments.
 +
 +2005-03-08  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c: Define MAP_FILE & MAP_FAILED when necessary.
 +
 +2005-03-08  Derek Price  <derek@ximbiot.com>
 +
 +      * zlib.c (compress_buffer_input): Use pagealign_xalloc when allocating
 +      buffer datas.
 +      (compress_buffer_output, compress_buffer_flush,
 +      compress_buffer_shutdown_output): Don't assume that BUFFER_DATA_SIZE is
 +      a constant.
 +      (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
 +
 +2005-03-08  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * release.c (release): Remove unneeded code.
 +
 +2005-03-07  Conrad T. Pino  <Conrad@Pino.com>
 +
 +      * buffer.h (buf_free_data): Compile with proxy disabled.
 +      (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
 +
 +2005-03-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * add.c (add_directory): Xasprintf instead of xmalloc/sprintf+strcat.
 +      * admin.c (arg_add): Ditto.
 +      (admin_fileproc, postadmin_proc, admin_fileproc): Gratuitous
 +      reformatting.
 +
 +      * client.c (mode_to_string): Use Xasprintf.
 +      
 +      * checkout.c (checkout): Xasprintf instead of xmalloc/sprintf.
 +      Gratuitous reformatting.
 +      * entries.c (WriteTag): Ditto
 +      (subdir_record, base_walk): Ditto.
 +      * fileattr.c (fileattr_read, fileattr_set, fileattr_write): Ditto.
 +      * filesubr.c (deep_remove_dir, cvs_temp_file): Ditto.
 +      (strcat_filename_onto_homedir): Ditto.
 +      * find_names.c (Find_Names): Ditto.
 +
 +      * filesubr.c (expand_wild): Use xnmalloc instead of xmalloc.
 +
 +2005-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_free_data): Compile with proxy disabled.
 +      (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
 +
 +2005-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (packetizing_buffer_input, packetizing_buffer_output): Don't
 +      assume BUFFER_DATA_SIZE is a constant.
 +      (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
 +
 +2005-03-03  Derek Price  <derek@ximbiot.com>
 +
 +      Use new pagealign_alloc() and pagealign_free() functions in
 +      lieu of maintaining pointers for reuse.  On most systems this should be
 +      faster.
 +      * buffer.c: Include "pagealign_alloc.h".
 +      (free_buffer_data): Remove this global.
 +      (allocate_buffer_datas): Remove this function.
 +      (buf_free, buf_send_output): Call buf_free_data().
 +      (get_buffer_data): Use pagealign_alloc().
 +      (buf_free_datas): New function.
 +      (buf_send_output, buf_free_data, buf_read_file, buf_read_file_to_eof,
 +      buf_read_short_line, buf_read_data, buf_copy_counted): Call
 +      buf_free_datas().
 +      * buffer.h: Include "getpagesize.h".
 +      (BUFFER_DATA_SIZE): Default to getpagesize ();
 +      * rcs.c: Lean on m4/mmap-anon.m4 to simplify mmap setup.
 +
 +2005-03-02  Jim Meyering  <jim@meyering.net>
 +
 +      Detect and report write failure for e.g., cvs up -p FILE > /dev/full
 +      * main.c: Include "closeout.h".
 +      (main): Arrange to close standard output upon exit.
 +      * sanity.sh (close-stdout): New test for this fix.
 +
 +2005-03-01  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * checkout.c (emptydir_name): Xasprintf instead of
 +      xmalloc/sprintf.
 +
 +      * add.c (add): Xasprintf instead of xmalloc/sprintf.
 +      Gratuitous reformatting.
 +      (add_directory, build_entry): Ditto.
 +      * annotate.c (rannotate_proc): Ditto.
 +      * checkout.c (checkout_proc): Ditto.
 +      * client.c (call_in_directory): Ditto.
 +      (template, send_dirent_proc): Ditto.
 +      (client_process_import_file): Ditto.
 +      * commit.c (check_fileproc, precommit_proc): Ditto.
 +      (commit_fileproc, finaladd): Ditto.
 +      (checkaddfile): Ditto.
 +      * create_adm.c (Create_Admin): Ditto.
 +      * edit.c (notify_do): Ditto.
 +
 +2005-03-01  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (get_date): Minor reformatting.
 +
 +2005-03-01  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (get_date): Replace obsolete timeb cruft in this stub.
 +
 +2005-02-28  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * admin.c (arg_add): Use xnmalloc and xnrealloc.
 +      (admin): Use xnmalloc. Minor reformatting.
 +      Xasprintf instead of xmalloc/strcpy+strcat.
 +      * client.c (client_expand_modules): Use xnmalloc.
 +      Minor reformatting.
 +      * cvsrc.c (read_cvsrc): Use xnmalloc and xnrealloc.
 +      Minor reformatting.
 +      * history.c (read_hrecs): Use xnrealloc. Minor reformatting.
 +      * ignore.c (ign_add): Use xnrealloc. Minor reformatting.
 +      * rcscmds.c (call_diff_add_arg): Use xnrealloc.
 +      * wrapper.c (wrap_add_entry): Use xnrealloc. Gratuitous
 +      reformatting.
 +
 +2005-02-28  Derek Price  <derek@ximbiot.com>
 +
 +      * edit.c (notify_proc), logmsg.c (logfile_write): Minor reformatting.
 +
 +2005-02-28  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_root): Trigger a later error message rather than
 +      maintaining two copies.
 +
 +2005-02-27  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c (connect_to_pserver): Use TRACE_FUNCTION, not 1 in
 +      TRACE() calls.
 +      (connect_to_pserver,send_modified): Ditto.
 +      * create_adm.c (Create_Admin): Ditto.
 +      * entries.c (Register, Scratch_Entry, WriteTemplate): Ditto.
 +      * filesubr.c (copy_file, xchmod, rename_file): Ditto.
 +      * history.c (history_write): Ditto.
 +      * kerberos4-client.c (start_kerberos4_server): Ditto.
 +      * no_diff.c (No_Difference): Ditto.
 +      * parseinfo.c (Parse_Info): Ditto.
 +      * rcs.c (RCS_checkout): Ditto.
 +      * server.c (server_register): Ditto.
 +      * update.c (join_file): Ditto.
 +
 +      * no_diff.c (No_Difference): Gratuitous reformatting.
 +      * kerberos4-client.c (start_kerberos4_server): Ditto.
 +
 +2005-02-27  Jim Meyering  <jim@meyering.net>
 +
 +      * login.c (password_entry_operation): Exit nonzero when
 +      failing to close a just-appended-to .cvspass file.
 +
 +2005-02-26  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c: Gratuitous reformatting.
 +
 +2005-02-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * root.c (parse_cvsroot): Handle another Bad CVSROOT.
 +      * sanity.sh (parseroot-8r): Test for it.
 +      (Problem report from Hiroyuki Ikezoe <poincare@ikezoe.net>.)
 +
 +2005-02-26  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Include netdb.h with server support.  Other reformatting.
 +
 +2005-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (multiroot2-9a): Correct for new TRACE message.
 +
 +2005-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (tag_check_valid): Declare NAME arg const.
 +      * tag.c (tag_check_valid): Ditto, update to account for this.
 +      Xasprintf instead of xmalloc/sprintf.
 +
 +2005-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_modified): Suppress a -Wall warning.
 +
 +2005-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (global_session_id): New global declaration.
 +      * import.c (add_rcs_file), rcs.c (RCS_checkin): Save commitid.
 +      * log.c (log_version), status.c (status_fileproc): Output commitid.
 +      * main.c (global_session_id): Define new global.
 +      (main): Create session ID.
 +      * sanity.sh: Update to compensate.
 +      (Original patch from Frank Hemer <frank@hemer.org>.)
 +
 +2005-02-24 Derek Price <derek@ximbiot.com>
 +
 +      * subr.h (cvs_trace, TRACE*): Move to...
 +      * server.h: ...here.
 +      * subr.c: Ditto, but to...
 +      * server.c: ...here, and print out 'P' instead of 'S' for traces from
 +      secondary (proxy) servers.
 +
 +2005-02-24 Derek Price <derek@ximbiot.com>
 +
 +      * admin.c (admin): Suppress warning with -Wall and --disable-client.
 +      * server.c: Don't declare functions that won't be defined when
 +      --disable-server.
 +
 +2005-02-24 Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (primary-wrapper): Rename CVS_SERVER_LOG for the primary in
 +      writeproxy mode to avoid overwriting.
 +
 +2005-02-24 Derek Price <derek@ximbiot.com>
 +
 +      * client.c (open_connection_to_server): Fail with an expressive error
 +      message when connection is attempted via an unsupported protocol since
 +      this is no longer caught in parse_root().
 +      * edit.c (edit_fileproc), import.c (import): Don't verify
 +      current_parsed_root->isremote without client support.
 +      * parseinfo.c (parse_config): Parse PrimaryServer without proxy
 +      support.  Postpone method verification until the connect phase.
 +      * parseinfo.h (struct config): Always include PrimaryServer.
 +      * root.c (primary_root_translate, primary_root_inverse_translate):
 +      Don't declare vars without PROXY_SUPPORT when they won't be used.
 +      (parse_cvsroot): Parse remote connection methods with server support
 +      for PrimaryServer/Redirects.  Delay method support verification until
 +      the connect phase.
 +      * root.h (cvsroot_t): Include remote elements with SERVER_SUPPORT.
 +      * server.c (isProxyServer): Delay method verification until the connect
 +      phase.
 +
 +2005-02-23 Derek Price <derek@ximbiot.com>
 +
 +      * tag.c (tag): Handle -r<tag>:<date>.
 +      * sanity.sh (tagdate-13.*): New tests.
 +
 +2005-02-23 Derek Price <derek@ximbiot.com>
 +
 +      * annotate.c (annotate), ls.c (ls): Handle -r<tag>:<date>.
 +
 +2005-02-23 Derek Price <derek@ximbiot.com>
 +
 +      * diff.c: Some reformatting.
 +      (diff): Handle -r<tag>:<date>.
 +      * sanity.sh (tagdate-13b): New test.
 +
 +2005-02-23 Derek Price <derek@ximbiot.com>
 +
 +      * checkout.c (checkout): Use parse_tagdate.
 +      * tag.c (tag_check_valid_join): Remove this function.
 +      * cvs.h (tag_check_valid_join): Ditto for the proto.
 +      (parse_tagdate): New proto.
 +      (Make_Date): Make arg const.
 +      * main.c (Make_Date): Ditto.
 +      (parse_tagdate): New function.
 +      * update.c (date_rev1, date_rev2): Rename these globals...
 +      (join_date1, join_date2): ...to this.
 +      (update): Use parse_tagdate.
 +      (do_update): Use new API.
 +      * update.h (do_update): Update proto.
 +      * sanity.sh: Misc reformatting.
 +      (tagdate-12): This test now passes.
 +      (tagdate-12b): New test.
 +      (multiroot-9a): Handle new TRACE.
 +
 +2005-02-23 Derek Price <derek@ximbiot.com>
 +
 +      * rsh-client.c (start_rsh_server): Update comment.  Replace
 +      malloc/sprintf combo with a call to Xasprintf.
 +
 +2005-02-22 Derek Price <derek@ximbiot.com>
 +
 +      * error.c (error): Handle unsigned int format char.
 +      * parseinfo.c (parse_error): New function.
 +      (parse_config): Keep track of line number and output it in error
 +      messages.
 +      * rcs.c (RCS_setlocalid): Accept file path and line number for error
 +      messages.  Add header comment block.
 +      * rcs.h (RCS_setlocalid): Update prototype to match.
 +      * parseinfo.h (parse_error): Declare new function.
 +      * sanity.sh: Accept new --noredirect argument.
 +      (checklongoptarg): Accept longoptmode as an argument
 +      rather than via an environment variable.
 +      (notnoredirect): New function.
 +      (newroot): Handle root options.
 +      (keywordexpand, config): Skip in noredirect mode.  Update for new
 +      config error messages.
 +      (multiroot): Some reformatting.
 +      (writeproxy, writeproxy-noredirect): Skip in noredirect mode.
 +      (commit, writeproxy-noredirect): Quote CVSROOT arguments since they
 +      might contain semicolons.
 +
 +2005-02-21  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * import.c (import): Avoid using assert with side effects it may
 +      be configured away using NDEBUG.
 +      (Patch from Frank Hemer <frank@hemer.org>.)
 +
 +2005-02-20  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * main.c (main): Check the results from xgethostname(). Print a
 +      message with the errno and use "localhost" if NULL is returned.
 +
 +2005-02-20 Derek Price <derek@ximbiot.com>
 +
 +      * cvs.h (run_arg): Rename to...
 +      (run_add_arg): New function.
 +      * run.c (run_arg): Remove.
 +      (run_add_arg): Remove static declaration.
 +      (run_piped): New function.
 +      * logmsg.c, modules.c: s/run_arg/run_add_arg/.
 +      * release.c (release): Replace use of piped_child with a call
 +      to run_piped to avoid quoting issues.
 +      * sanity.sh (info-cleanup-0): Expect success.
 +
 +2005-02-19 Derek Price <derek@ximbiot.com>
 +
 +      * edit.c (unedit_fileproc, mark_up_to_date): Replace xmallc/strcat
 +      sequence with single call to Xasprintf.
 +
 +2005-02-08 Derek Price <derek@ximbiot.com>
 +
 +      * rsh-client.c: Some reformatting.
 +
 +2005-02-04 Derek Price <derek@ximbiot.com>
 +
 +      * zlib.c (compress_buffer_input): Don't return EOF when there is data
 +      pending.
 +
 +2005-02-01 Derek Price <derek@ximbiot.com>
 +
 +      * main.c: Update year in copyright notice to match GNU standards.
 +      * sanity.sh (version-1): Update to match.
 +
 +2005-02-01  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * log.c (log_fileproc, log_expand_revlist): Add support for BASE tag.
 +      * sanity.sh (log): New tests for above.
 +
 +2005-01-31 Derek Price <derek@ximbiot.com>
 +
 +      * main.c: Rephrase --version message.
 +      * sanity.sh (version-1): Update to match.
 +
 +2005-01-31 Derek Price <derek@ximbiot.com>
 +
 +      * Makefile.am, add.c, admin.c, annotate.c, checkin.c, checkout.c,
 +      classify.c, commit.c, create_adm.c, cvs.h, cvsrc.c, diff.c, entries.c,
 +      find_names.c, hash.c, hash.h, history.h, import.c, lock.c, log.c,
 +      login.c, logmsg.c, main.c, mkmodules.c, modules.c, myndbm.c, no_diff.c,
 +      parseinfo.c, patch.c, rcs.c, rcs.h, rcscmds.c, recurse.c, remove.c,
 +      repos.c, root.c, root.h, server.h, stack.c, stack.h, status.c, subr.c,
 +      tag.c, update.c, vers_ts.c, version.c: Update copyright notices.
 +
 +2005-01-29 Derek Price <derek@ximbiot.com>
 +
 +      * log.c (log_usage): Add note about using -S with revision info
 +      supression and selection.
 +      (Suggestion from Dan Peterson <dbpete@aol.com>.)
 +
 +2005-01-29 Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy-ssh-noredirect): Remove some commented out
 +      code.
 +
 +2005-01-25  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * expand_path.c (expand_path): Rewrite using offsets instead of
 +      pointers to simplify and avoid reallocation bugs.
 +      (Inspired by Jeremy Bopp <jeremy@motive.com>.)
 +
 +2005-01-20 Brian Murphy <brian@murphy.dk>
 +
 +      * server.c fixing the style of the pam function calls and if
 +      statements
 +
 +2005-01-19 Brian Murphy <brian@murphy.dk>
 +
 +      * server.c (pam_username, pam_password) new global static
 +      variables to hold the username and pasword for cvs_pam_conv.
 +      (cvs_pam_conv) using pam_username and pam_password.
 +      (check_pam_password) set pam_username, pam_password before
 +      authentication and clear them when authentication is finished.
 +      (server, switch_to_user) Check for pamh being set before using
 +      pam functionality, NULL indicating that this user was authenticated
 +      using the repository password file.
 +
 +2004-12-09 Derek Price <derek@ximbiot.com>
 +
 +      * log-buffer.c (buf_count_mem): Compile this for PROXY_SUPPORT.
 +      (Report from Brad L. Chisholm <blc@bsdwins.com>.)
 +
 +2004-12-09 Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (modules7): New test group.
 +      (Based on a patch from Mark D. Baushke <mdb@cvshome.org>, based on a
 +      report from Richard Verhoeven <Richard_Verhoeven@WestLB.de>.)
 +
 +2004-12-09  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (start_server): Avoid advertising the Redirect response when
 +      the user asked us not to.
 +      * root.h (cvsroot_t): Add redirect field.
 +      * root.c (new_cvsroot_t): Init redirect field.
 +      (parse_cvsroot_t): Parse Redirect method option.
 +      * server.c (serve_command_prep): Don't throw proxy_log away when
 +      Redirect isn't supported and it might be needed later.
 +      * sanity.sh (parseroot): Improve comment, add a few new tests.
 +      (writeproxy-ssh): Specify Redirect=yes explicitly.
 +      (writeproxy-ssh-noredirect): New test group.
 +
 +2004-12-09  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * main.c (usg): Remove Dr. Pascal Molli's CVS URL from the
 +      documentation.
 +
 +2004-12-08  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (Name_Root): s/TRACE_FUNCTION/TRACE_FLOW/.
 +
 +2004-12-08  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): Suppress -Wall warning.
 +
 +2004-12-08  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): findnode() compares LIST to NULL w/o help.
 +
 +2004-12-08  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (Name_root), server.c (serve_referrer): Don't free cvsroot_t.
 +      * server.sh (reposmv): Reaccount for multiple potential warnings and
 +      comment.
 +
 +2004-12-07  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): Cache parsed values for efficiency and to
 +      avoid printing warnings about non-fatal parsing errors multiple times.
 +      * client.c,, login.c, main.c, recurse.c: Don't dispose of parsed roots,
 +      parse_cvsroot() has control.
 +      * sanity.sh (reposmv): Stop accounting for multiple warnings.
 +
 +2004-12-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * root.h (cvsroot_t): Add cvs_rsh and cvs_server for bookkeeping
 +      purposes.
 +      * root.c (new_cvsroot_t, free_cvsroot_t): Add support for case
 +      insensitive options CVS_RSH and CVS_SERVER.
 +      (parse_cvsroot): Ditto and make all keywords case insensitive.
 +      * client.c (connect_to_forked_server): Add support for the new
 +      "CVS_SERVER" option to CVSROOT.
 +      * rsh-client.c (connect_to_forked_server): Ditto
 +      (start_rsh_server): Ditto and add support for the new "CVS_RSH"
 +      option to CVSROOT.
 +      * sanity.sh (parseroot3): New tests for the new options to
 +      CVSROOT.
 +
 +2004-11-30  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * mkmodules.c (config_contents): Add LocalKeyword and KeywordExpand,
 +      misc. cleanup.
 +
 +2004-11-30  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c (readBool): Update quotes in error message for
 +      consistency.  Move function to...
 +      * subr.c (readBool): ...here.
 +      (*): Gratuitous reformatting.
 +      * cvs.h: Move all subr.c function prototypes to...
 +      * subr.h: ...this new file.
 +      * Makefile.am (cvs_SOURCES): Add subr.h.
 +
 +2004-11-30  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c (readBool): Reorder arguments to error() and improve
 +      header comment.
 +
 +2004-11-30  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (handle_referrer): New function.
 +      (handle_redirect): Handle possibility that CLIENT_REFERRER was set via
 +      a response.
 +      * server.c (serve_command_prep): Send a normalized Referrer response
 +      before a Redirect when the client supports it.
 +
 +2004-11-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (RCS_setlocalid): Do more configuration validation.
 +      Include some gratuitous reformatting.
 +      * sanity.sh (keywordexpand): Add tests for new validation code.
 +
 +2004-11-24  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (become_proxy): Note assumptions about syncronized primary
 +      and secondary versions with `FIXME?' note.
 +
 +2004-11-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (info): Ignore comments in verifymsg test.
 +
 +2004-11-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * mkmodules.c (loginfo_contents, verifymsg_contents,
 +      commitinfo_contents, taginfo_contents, preproxy_contents,
 +      postadmin_contents, postproxy_contents, posttag_contents,
 +      postwatch_contents, notify_contents): Add comments regarding the
 +      additional format strings that are available. Include some
 +      gratuitous reformatting.
 +
 +2004-11-19  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (Xasnprintf): Improve header comment block.
 +
 +2004-11-19  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (normalize_cvsroot): Improve header comment block.
 +
 +2004-11-19  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Misc reformatting and comment corrections.
 +
 +2004-11-19  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (hostname): Redeclare as pointer rather than array.
 +      * main.c: Include xgethostname.h.  Declare server_hostname.
 +      (main): Use xgethostname().  Set server_hostname.
 +      * server.c (MAXHOSTNAMELEN): Remove this macro.
 +      (isThisHost): Reference global HOSTNAME rather than looking it up.
 +      Improve header comment block.
 +      (gserver_authenticate_connection): Likewise.
 +      (serve_command_prep): Correct comment.
 +      (serve_hostname): Don't bother to validate hostname length.
 +
 +2004-11-19  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isThisHost): strcasecmp before consulting the DNS as an
 +      optimization.
 +
 +2004-11-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * checkout.c (checkout_proc): Passing the repository to
 +      tag_check_valid seems to stop the assertion failure in recurse.c
 +      do_recursion.
 +      * sanity.sh (basic2-21a): Removed.
 +      (basic2-21c): Fixed.
 +
 +2004-11-18  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (skip_always, notproxy): New functions.
 +      (skip, remoteonly, sshstdio, client): Use new functions.
 +
 +2004-11-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (basic2-21a): The val-tags file should have
 +      at least 'rtagged-by-head y' in it. Test from cvs 1.11.18 that
 +      shows fixed result.
 +      (basic2-21b, basic2-21c): New tests showing a cvs bug when
 +      val-tags is not present.
 +      (Report from "John Elgin" <John@JCElgin.com>.)
 +
 +      * sanity.sh (basicb-21): POSIX 1003.2 specifies 'illegal option'
 +      while lots of getopt implementations still use 'invalid option'.
 +      Allow either form for this test.
 +
 +2004-11-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (fd_buffer_block): Deal with BSD and BSDI problems to
 +      set block/nonblock on /dev/null.
 +
 +2004-11-17  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (distclean-local): Clean check.plog~.
 +
 +2004-11-11  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: s/cp -r/cp -R/ to meet POSIX specification.
 +      (Thanks to report from Paul Eggert <eggert@cs.ucla.edu>.)
 +
 +2004-11-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * ms-buffer.c (ms_buffer_input): Avoid UNICOS cc error where
 +      'Both sides of the assignment operator are not compatible.'
 +
 +      * sanity.sh (importc, rcs, rcs4, tagdate): Use TZ=UTC0 not TZ=UTC
 +      to get proper POSIX behavior on MacOS X.
 +
 +2004-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Actually parse -e option like we claim to.
 +
 +2004-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Maintain pass/skip/warn status and output at end.
 +      (usage): Note new functionality of -e.
 +      (warn): New function.
 +      (verify_tmp_empty): Warn instead of failing.  Delete turds if warn()
 +      doesn't exit.
 +
 +2004-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (verify_tmp_empty): New function.
 +      (dotest_internal_*): Call verify_tmp_empty as needed.
 +
 +2004-11-09  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (expr_tooltest3): Bugfix. Use $expr rather than $EXPR.
 +
 +2004-11-08  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (version_test): Echo good version data to the log, even
 +      when it went to stderr.  Don't echo bad version data.
 +
 +2004-11-08  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (tool_find): Rewrite. API changed to allow a list of
 +      tests to be used against a list of possible command names found on
 +      the SEARCHPATH.
 +      (version_test): Obtain the version of tools under test if
 +      possible.
 +      (id_tool_test): Check that 'id -u' and 'id -un' work.
 +      (expr_tooltest1): Check for NextStep 3.3 expr bug.
 +      (expr_tooltest2): Check for SunOS expr multi-line pattern bug.
 +      (expr_create_bar): Create a test file for expr testing.
 +      (expr_tooltest3): Use it and test for big multi-line identity
 +      matches.
 +      (expr_set_ENDANCHOR): Find and set the right value for ENDANCHOR.
 +      (expr_set_DOTSTAR): Find and set the right value for DOTSTAR.
 +      (expr_tooltest_DOTSTAR): Ensure that DOTSTAR works with big
 +      matches.
 +      (tr_tooltest1): Verify that tr handles NUL bytes.
 +      (ls_tooltest): See if /bin/ls returns true even if wildcard does
 +      not match any files.
 +      (awk_tooltest1): Verify that awk the BEGIN clause works properly.
 +      (awk_tooltest2): Verify that print %c format item works properly.
 +
 +2004-11-08  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (verify_tmp_empty): New function.
 +      (dotest_internal_*): Call verify_tmp_empty as needed.
 +
 +2004-11-08  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (run_filter): Add function header comment block.
 +
 +2004-11-07  Larry Jones  <lawrence.jones@ugs.com>
 +
 +      * sanity.sh: Remove trailing / from cp -r commands.
 +
 +2004-11-04  Derek Price  <derek@ximbiot.com>
 +
 +      * gssapi-client.c (connect_to_gserver): Silence gcc -Wall.
 +
 +2004-11-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (set_bad_tool): Remove unnecessary quotes.
 +
 +2004-11-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: s/depends_on_/require/.
 +
 +2004-11-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (find_tool): Eliminate variable with single reference.
 +
 +2004-11-04  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (SEARCHPATH): Unify the PATHs that are to be searched.
 +      (Which,find_tool): Use SEARCHPATH.
 +      (LS): Use default $SEARCHPATH for Which.
 +      (depend_on_rsync): Use default $SEARCHPATH for Which.
 +
 +2004-11-04  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (depends_on_rsync): Do not echo rsync information to
 +      stdout. Look for rsync in more directories.
 +
 +2004-11-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (depends_on_rsync): Minor simplifications.  Make sure that
 +      an rsync that doesn't understand `--version' sends its error message to
 +      the log file too.
 +
 +2004-11-04  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (set_bad_tool, is_bad_tool): Avoid printing errors
 +      about the same tool multiple times.
 +
 +2004-11-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (depends_on_rsync): Deal with missing rsync.
 +
 +2004-11-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (depends_on_rsync): Include rsync version information
 +      in output.
 +
 +2004-11-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (depends_on_rsync): More rigorous tests for rsync
 +      2.3.1 problems with --delete --include dir --exclude '*/.
 +
 +2004-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (depends_on_rsync): Verify that `rsync --delete' actually
 +      does what it is supposed ot do.
 +
 +2004-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (Xreadlink): Remove MAXSIZE macro.  Minor reformatting.
 +
 +2004-11-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * filesubr.c (xreadlink): Remove and use GNULIB version.
 +      (islink): Return ssize_t instead of bool.
 +      (copy_file): Use Xreadlink().
 +      * cvs.h: Add include "xreadlink.h"
 +      (islink): Return ssize_t instead of bool.
 +      * import.c (preserve_initial_permissions): Use Xreadlink.
 +      * rcs.c (RCS_checkin): Ditto.
 +      * update.c (special_file_mismatch): Ditto.
 +      * subr.c (get_file): Ditto.
 +      (resolve_symlink): Ditto.
 +      (Xreadlink): New interface to xreadlink(), never return NULL.
 +
 +2004-11-02  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * filesubr.c (MAXSIZE): New macro.
 +      (xreadlink): Ensure initial buffer size does not exceed MAXSIZE.
 +      Avoid cast. If readlink fails with buffer size just under MAXSIZE,
 +      try again with MAXSIZE.
 +
 +2004-11-02  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * filesubr.c (xreadlink): AIX and HP-UX readlink() returns ERANGE
 +      when there is not enough room in the buffer.
 +
 +2004-11-01  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Remove getdate proto in favor of including getdate.h.
 +      * client.c (handle_mod_time), history.c (history), main.c (Make_Date,
 +      format_date_alloc), rcs.c (RCS_getrevtime), server.c
 +      (serve_checkin_time): Use new get_date API.
 +
 +2004-11-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcslib): Fix typo in path.
 +
 +2004-11-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcslib): Test a link to a path longer than 128
 +      characters.
 +
 +2004-10-30  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * patch.c (patch_cleanup): Add signal argument and use it.
 +
 +2004-10-30  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c: Adjust include files to avoid problems with incomplete
 +      types under --disable-client.
 +      * msg-buffer.c: Deal with --disable-client --disable-server
 +      implicitly meaning --disable-proxy.
 +      * server.c: Adjust include files to avoid problems with incomplete
 +      types under --disable-server.
 +
 +2004-10-30  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (isThisHost): Deal with possibility of a missing
 +      hstrerror() function.
 +
 +2004-10-29  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server_root, move_file_offset, replace_file_offset):
 +      Remove dead code.
 +
 +2004-10-29  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (xreadlink): Make sure allocation is tried once at the
 +      maximum buffer size.  Protect against overflow.
 +
 +2004-10-29  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSameHost): Handle gethostname & gethostbyname errors.
 +
 +2004-10-29  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSameHost): Use strcasecmp to compare host names.
 +
 +2004-10-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c: Need to #include <netdb.h> for either PROXY_SUPPORT or
 +      HAVE_GSSAPI to get gethostbyname() declarations for
 +
 +2004-10-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * filesubr.c (SIZE_MAX, SSIZE_MAX): Use #include "xsize.h" instead.
 +      (xreadlink): Use xrealloc instead of xmalloc/free.
 +
 +2004-10-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * filesubr.c (SIZE_MAX, SSIZE_MAX): New constants.
 +      (xreadlink): Deal with symlinks longer than 127 bytes.
 +      (Problem reported as issue 190 by Gottfried Ganssauge
 +      <gotti@cvshome.org>.)
 +
 +2004-10-29  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSameHost): New fuction.
 +      (same_path): Rename to...
 +      (isSamePath): ...this.
 +      (isProxyServer): Use new functions/names.
 +
 +2004-10-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (writeproxy): Use DOTSTAR to avoid problems with
 +      a missing Gssapi-authenticate in Valid-requests.
 +
 +2004-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (same_path): New function.
 +      (isProxyServer): Use new function.
 +      * sanity.sh (writeproxy): Test that server resolves symlinks when
 +      deciding whether it is a primary server.
 +
 +2004-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (isdir, isfile, islink, isdevice, isreadable, iswritable,
 +      isaccessible, isabsolute): Return boolean rather than int.
 +      * filesubr.c (isdir, isfile, islink, isdevice, isreadable, iswritable,
 +      isaccessible), subr.c (isabsolute): Ditto.  Some reformatting.
 +      * filesubr.c (xresolvepath): Use save_cwd in place of xgetwd.  Some
 +      reformatting.
 +
 +2004-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (handle_redirect): Detect redirect loops.
 +      * sanity.sh (client-20): Test that client detects redirect loops.
 +
 +2004-10-28  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * release.c (release): Allow builds of cvs with --disable-server
 +      --disable-client both used for local installation configuration.
 +      * root.c (Name_Root): Ditto.
 +      * update.c (checkout_file): Ditto.
 +      * edit.c (edit_fileproc): Ditto.
 +      * import.c (import): Ditto.
 +      (Problem reported by Jean Olivier Caron <jecar@mlab.t.u-tokyo.ac.jp>.)
 +
 +2004-10-27  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * cvs.h (RCS_FLAGS_USETIME): New flag.
 +      * rcs.c (RCS_checkin): Add citime argument.
 +      * rcs.h (RCS_checkin): Ditto.
 +      * checkin.c (Checkin): Pass new RCS_checkin argument.
 +      * commit.c (remove_file, checkaddfile): Ditto.
 +      * import.c (add_rev): Ditto.
 +
 +      * sanity.sh (tagdate): Delete tagdate-19b as an incorrect test.
 +
 +2004-10-27  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (tagdate): Provide more output.
 +
 +2004-10-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * commit.c (checkaddfile): Create a dead version for a new file
 +      added to a branch. Fixes FIXCVS for tagdate tests.
 +      * sanity.sh (tagdate): Update to expect correct results.
 +      (death2, branch-after-import, join, ignore-on-branch): Ditto.
 +
 +2004-10-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (isProxyServer): Fix hostname setup.
 +
 +2004-10-26  Derek Price  <derek@ximbiot.com>
 +
 +      Call all exit handlers via atexit() & exit().  Signal handlers exit().
 +      Eliminates a compiler warning.
 +
 +      * exithandle.c (cleanup_register): Don't register a signal handler.
 +      Register a function to block signals before the exit handler is called.
 +      * lock.c (Lock_Cleanup): Remove never_run_again cruft and assoc. cmts.
 +      * rcs.c (rcs_cleanup), server.c (server_cleanup): Ditto, plus assume
 +      signals are blocked.
 +      * main.c (main_cleanup): Declare noreturn attribute.
 +
 +2004-10-26  Derek Price  <derek@ximbiot.com>
 +
 +      * gssapi-client.c (connect_to_gserver): Avoid truncating error messages
 +      from the GSSAPI server.
 +      (Report from Dan Peterson <dbpete@aol.com>.)
 +
 +2004-10-26  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (import-quirks): Test an even branch number.
 +
 +2004-10-25  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Repair regex for regressions introduced in last
 +      commit.
 +      * sanity.sh (import-quirks): Test a few branch numbers import shouldn't
 +      have a problem with.
 +
 +2004-10-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (modes3): Quiet rsync messages in proxy mode when
 +      permissions are removed. They are expected and not a problem here.
 +
 +2004-10-25  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Anchor and simplify branch verification regex.
 +      * sanity.sh (import-quirks): Test another pattern that should fail.
 +
 +2004-10-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (yesno): Remove prototype.
 +      * edit.c, release.c: Include yesno.h.  Flush output before calling
 +      yesno().
 +
 +2004-10-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (tagdate): Added some additional tests and FIXCVS
 +      comments for dealing properly with a 'cvs add' of a file to
 +      a branch that already exists on the mainline.
 +      (Problem reported by Renny Barrett <rbarrett@curamsoftware.com>.)
 +
 +      * sanity.sh (getrlogdate): New shell function.
 +      (tagdate-{13,14,16}): Use it to avoid 'sleep 60' by using
 +      the exact 1.1.4.1 timestamp for tagdate-14 and tagdate-16.
 +
 +2004-10-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (depends_on_rsync): Redirect rsync output to /dev/null when
 +      just testing.
 +
 +2004-10-23  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * socket-client.c (socket_buffer_initialize): Drop obsolete
 +      arguments to buf_initialize().
 +
 +2004-10-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c (handle_m, handle_e): Winsock is returning
 +      SOCK_ERRNO == WSAENOTSOCK for select() problems and not
 +      setting errno. Do not bother with printing an error from a
 +      select() that is not returning an non-zero errno.
 +      (Report from Conrad T. Pino <Conrad@Pino.com>.)
 +
 +2004-10-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (proxy): proxycheck depends on rsync, but skip all if
 +      no rsync is found rather than generate an error return.
 +
 +2004-10-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * Makefile.am (proxycheck): New test target.
 +      * sanity.sh: Keep one more level of check.log backup.
 +      * Makefile.in: Regenerated.
 +
 +2004-10-22  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c, update.c: Use new MD5 interface.
 +
 +2004-10-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (find_tool): Search /usr/pkg/bin for NetBSD tools
 +      like rsync.
 +
 +2004-10-22  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (tagdate): Fix typo.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c: #include vasnprintf.h to avoid compiler warning.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (error_use_protocol): Move decl here from lib/error.h so that
 +      we may use an unforked error.h from GNULIB.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: #include strftime.h.
 +      (format_time_t, gmformat_time_t): Supply missing args to my_strftime.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c: Don't maintain last_index & last_count for buffers.
 +      * buffer.h (struct buffer): Update struct.
 +      (buf_initialize): Update proto.
 +      * log-buffer.c, ms-buffer.c, zlib.c: Update all callers.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Fail gracefully in proxy mode when rsync is defective.
 +      (depends_on_rsync): New function.
 +      (writeproxy, writeproxy-noredirect, writeproxy-ssh): Skip these tests
 +      gracefully when rsync is missing.
 +
 +2004-10-21  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * add.c (add): Pay attention to cvswrite mode when resurrecting a
 +      file that was not yet committed.
 +      (Report from Frank Hemer <frank@hemer.org>.)
 +      * sanity.sh (resurrection): Add new tests to deal with read-only
 +      mode on a cvs add durring a resurrection. Verify that -r is not
 +      honored when the resurrected file must be committed to be seen.
 +
 +2004-10-21  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (ls_fileproc): Deal with files specified on the command line.
 +      (ls_delproc): Move to a more accessible location.
 +
 +2004-10-20  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Avoid unnecessary typecast.
 +
 +2004-10-20  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * Makefile.in: Regenerate for new configure.in.
 +
 +2004-10-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * add.c (add): Backout last typecasts cleanup.
 +
 +2004-10-19  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Avoid attempting to resurrect a dead rev 1.1.
 +      * sanity.sh (resurrection): Add test for the above.
 +      (Report from Dan Peterson <dbpete@aol.com>.)
 +
 +2004-10-19  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Avoid unnecessary typecasts.
 +
 +2004-10-19  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Prototype new function.
 +      * subr.c (Xasnprintf): New function.
 +      * root.c (primary_root_translate, primary_root_inverse_translate):
 +      s/asnprintf/Xasnprintf/.
 +      * client.c (connect_to_pserver): Store line length for efficiency.
 +
 +2004-10-19  Derek Price  <derek@ximbiot.com>
 +
 +      * history.c: Remove unecessary typecasts.  Some reformatting.
 +
 +2004-10-18  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_modified): Eliminate >= 0 check since size_t may not
 +      be negative.
 +      (Originally reported by Martin Neitzel <neitzel@sco.gaertner.de>.)
 +
 +2004-10-18  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (DEVNULL): This is system dependant.  Move it to lib/system.h.
 +      * client.c (copy_a_file): Consolidate USE_VMS_FILENAMES stuff under a
 +      single #ifdef.
 +
 +2004-10-15  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Don't include vasnprintf.h.
 +      (Xasprintf): New prototype.
 +      * client.c, edit.c, history.c, import.c, ls.c, main.c, parseinfo.c,
 +      recurse.c, release.c, repos.c, root.c, server.c, status.c, subr.c,
 +      vers_ts.c: s/asnprintf/Xasprintf/.
 +      * root.c: Include vasnprintf.h.
 +      (primary_root_translate, primary_root_inverse_translate): Use
 +      asnprintf() properly.
 +      * subr.c: Include vasprintf.h.
 +      (Xasprintf): New function.
 +
 +2004-10-14  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Remove an unecessary level of nesting.  Simplify
 +      xmalloc/sprintf with asnprintf.  Remove useless comment.
 +
 +2004-10-14  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Verify branch specifications more thoroughly.
 +      * sanity.sh (importb): Adapt to new error message.
 +      (import-quirks): New test.
 +
 +2004-10-14  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (server_pause_check, do_cvs_command, server_cleanup):
 +      Avoid typecasts.
 +
 +2004-10-14  Derek Price  <derek@ximbiot.com>
 +
 +      * gssapi-client.c: Use new size_t buffer APIs.
 +
 +2004-10-11  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.h, buffer.c (buf_output, buf_input_data, buf_read_line,
 +      buf_read_data, struct packetizing_buffer,
 +      packetizing_buffer_initialize) Use size_t instead of int.
 +      Silences warnings in buffer.c, server.c, and zlib.c on OpenBSD
 +      sparc64 where sizeof(int) is not the same as sizeof(size_t).
 +      * client.c (read_line_via, read_line, try_read_from_server,
 +      get_server_response, handle_ok, handle_error,
 +      handle_valid_requests, handle_checked_in, handle_new_entry,
 +      handle_checksum, handle_copy_file, handle_updated, handle_merged,
 +      handle_patched, handle_rcs_diff, handle_removed,
 +      handle_remove_entry, handle_set_static_directory,
 +      handle_clear_static_directory, handle_set_sticky,
 +      handle_clear_sticky, handle_clear_template,
 +      handle_module_expansion, handle_wrapper_rcs_option, handle_m,
 +      handle_e, handle_f, handle_notified): Ditto
 +      * client.h (struct response): Ditto.
 +      * server.c (receive_partial_file, receive_file, serve_modified,
 +      do_cvs_command): Ditto.
 +      * zlib.c (compress_buffer_input, compress_buffer_shutdown_input):
 +      Ditto.
 +      (Patch from Alexander Taler <dissent@cvshome.org>.)
 +
 +2004-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_args): Carry through a const to silence gcc -Wall.
 +      * hardlink.c (delhardlist): New function.
 +      (lookup_file_by_inode): Use new function as delproc since it should
 +      work.  Carry through a const to silence gcc -Wall.
 +      * ms-buffer.c (ms_buffer_initialize): Use a working delproc.
 +
 +2004-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (open_connection_to_server, close_connection_to_server,
 +      handle_redirect): Add traces.
 +
 +2004-10-07  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_SOURCES): Add parseinfo.h.
 +
 +2004-10-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * vers_ts.c (entries_time): Use size_t pointers. sizeof(int)
 +      may not be the same as sizeof(size_t) on OpenBSD sparc64.
 +      (Patch from Alexander Taler <dissent@cvshome.org>.)
 +
 +      * wrapper.c (wrap_clean_fmt_str): Make static.
 +
 +2004-10-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.h (struct response): Make name a const.
 +      * cvs.h (RETSIGTYPE): Use a full prototype.
 +      * hash.h (struct node): Use a full prototype for delproc.
 +
 +      * client.c (send_arg, send_option_string, option_with_arg): Make
 +      args of function const.
 +      * client.h (send_arg, send_option_string, option_with_arg): Ditto.
 +
 +      * checkout.c (checkout): Make valid_options const.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * release.h: Silence gcc -Wall.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move include of getopt.h to system.h with similar headers.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * login.c: Include getpass.h.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Include strcase.h.
 +      (cvs_casecmp): remove proto.
 +      * subr.c (cvs_casecmp): Remove function.
 +      * parseinfo.c: s/cvs_casecmp/strcasecmp/.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move getopt.h and regex.h into the GNULIB include section.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (cmds): Release calls unedit, to it modifies the repository.
 +      (struct cmd): Add const and full prototype where needed.
 +      * sanity.sh (edit-check): Use modify_repo where needed.
 +      (release): No more special case for release in proxy mode.
 +      (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
 +
 +      * release.c (release): Simplify login in if statement.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_file_names): Back out broken portion of previous
 +      change.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (call_in_directory): Make args of function arg const.
 +      * client.h, client.c, edit.h, edit.c, server.h, zlib.c: Carry change
 +      through to called functions and functions passed in as args.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c, commit.c, edit.c, rcs.c: Avoid typecasts.  Some
 +      reformatting.
 +
 +2004-10-06  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Avoid more typecasts.  Some reformatting.
 +
 +2004-10-06  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c (send_file_names): Use new save-cwd API.
 +      (connect_to_pserver): Use a union to avoid incompatible pointer
 +      type warnings.
 +
 +2004-10-05  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (Xstrdup): New proto mapped via define to xstrdup.
 +      * subr.c (Xstrdup): New function.
 +
 +2004-10-05  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c, client.c, history.c, import.c, mkmodules.c, modules.c,
 +      recurse.c, release.c, tag.c, update.c: Use new save-cwd API.
 +
 +2004-10-05  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c, client.c, commit.c, create_adm.c, cvs.h, filesubr.c,
 +      hardlink.c, history.c, logmsg.c, main.c, recurse.c, update.c:
 +      s/xgetwd/xgetcwd/.
 +
 +2004-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (responses): Add "Edit-file".
 +      (handle_edit_file): New function.
 +      * commit.c (usage): Add -c option.
 +      (check_fileproc): Check for edit when requested.
 +      (commit_fileproc): Use new notify_do API.
 +      * edit.c (check_edited): New global.
 +      (setting_tedit, setting_tunedit, setting_tcommit): s/int/bool/.
 +      (ncheck_fileproc): Use new notify_do API.
 +      (send_notifications): Remove redundant proto.  Remove unnecessary
 +      repository lock.
 +      (editors_output, find_editors_and_output, edit_file): New functions.
 +      edit_file() factored from...
 +      (edit_fileproc): ...here.  Skip files with existing editors when
 +      requested.
 +      (usage): Add -c and -f.
 +      (edit): Handle new -c and -f options.
 +      (notify_do): Accept update_dir as an argument for user messages.
 +      (editors_fileproc): Factor most content to find_editors_and_output()
 +      and edit_file().
 +      * edit.h (notify_do): Proto new API.
 +      (editors_output, edit_file): New functions.
 +      * rcs.c (RCS_unlock): Use new notify_do() API.
 +      * sanity.sh: Update assorted tests to compensate for new output.
 +      (edit-check): New tests.
 +      * server.c (gupdate_dir): New global.
 +      (struct notify_note): Keep track of update_dir.
 +      (serve_notify): Use update_dir.
 +      (serve_hostname, serve_localdir, serve_edit, server_edit_file): New
 +      functions.
 +      (server_notify): Use new notify_do() API.
 +      (requests): Add Hostname, LocalDir, and edit.
 +      * server.h (server_edit_file): New proto.
 +      (Note: Original design of new advisory lock behavior came from Noel Yap
 +      <yap_noel@yahoo.com>'s original advisory locks patch, originally ported
 +      forward and enhanced by Matthew Ogilvie <mmo9317bd@mailcan.com>.)
 +
 +2004-10-04 Derek Price <derek@ximbiot.com>
 +
 +      * admin.c (postadmin_proc), edit.c (notify_proc), fileattr.c
 +      (postwatch_proc), logmsg.c (logfile_write, verifymsg_proc), server.c
 +      (prepost_proxy_proc), tag.c (pretag_proc, posttag_proc): Pass referrer
 +      to called scripts when possible.
 +      * client.c (handle_redirect): Save the original server.
 +      (start_server): Send referrer to the new server if possible.
 +      * sever.c (referrer): New global.
 +      (serve_referrer): Save referrer.
 +      (requests): Add "Referrer" response.
 +      * server.h (referrer): Add extern decl.
 +      * sanity.sh (ssh-wrapper): Use in remote mode too.
 +      (writeproxy-ssh): New tests.
 +
 +2004-10-04 Derek Price <derek@ximbiot.com>
 +
 +      * cvs.h (CVSROOT_DFLT): Undef rather than defining to NULL.
 +      * main.c (main): Untangle parsing of CVSROOT, eliminating several
 +      variables in the process.  Simplify xmalloc/sprintf with asnprintf.
 +
 +2004-10-04 Derek Price <derek@ximbiot.com>
 +
 +      * root.c (primary_root_translate, primary_root_inverse_translate,
 +      get_local_root_dir, local_cvsroot): Simplify logic without proxy
 +      support.
 +
 +2004-10-02  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * root.c (primary_root_translate, primary_root_inverse_translate,
 +      get_local_root_dir): Protect PrimaryServer with #ifdef
 +      PROXY_SUPPORT
 +
 +2004-10-01  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * main.c (main): Initialize CVSroot before it is used.
 +      (Report and patch by Martin Neitzel <neitzel@sco.gaertner.de>.)
 +      * sanity.sh (status): Test it.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * checkout.c (checkout_proc), fileattr.c (fileattr_read), find_names.c
 +      (Find_Names), myndbm.c (mydbm_open, mydbm_load_file), parseinfo.c
 +      (Parse_Info), rcs.c (RCS_parsercsfile_i, rcsbuf_getkey,
 +      rcsbuf_getrevnum, rcsbuf_valword): Root translation functions no longer
 +      allocate.
 +      * commit.c (commit): Use send_a_repository rather than reimplementing.
 +      * main.c (main): Remove --primary-root option.
 +      * root.c (primary_root_add): Remove this function.
 +      (primary_root_in, primary_root_out): Remove globals.
 +      (primary_root_translate, primary_root_inverse_translate): Return const.
 +      Don't allocate return value.  Rely on parsed root and confg's
 +      PrimarServer rather than separately maintained globals.
 +      (get_local_root_dir): New function.
 +      (local_cvsroot): Translate requests for primary roots when necessary.
 +      * root.h (primary_root_add, primary_root_translate,
 +      primary_root_inverse_translate): Update protos to match.
 +      * sanity.sh (top level, writeproxy): Simplify $proxy setup.
 +      (client): Don't execute $proxy.  Simplify skips and reindent.
 +      (writeproxy-noredirect): Use --allow-root in place of --primary-root.
 +      Save and restore $PRIMARY_CVSROOT*.
 +      * server.c (serve_root): Rely on local_cvsroot() to do any necessary
 +      root translation.
 +      (serve_directory): Root translation functions no longer allocate.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * client.c (arg_should_not_be_sent_to_server), create_adm.c
 +      (Create_Admin), recurse.c (start_recursion, do_recursion, do_dir_proc),
 +      release.c (release), repos.c (Name_Repository, Short_Repository),
 +      update.c (update_filesdone_proc):
 +      s/original_root/original_parsed_root->MEMBER/.
 +      * main.c (set_root_directory): Set original_parsed_root when setting
 +      current_parsed_root.
 +      (main): s/original_root/original_parsed_root->MEMBER/.
 +      * root.c (original_root): Make cvsroot_t and rename to...
 +      (original_parsed_root): ...this.
 +      * root.h: Update extern decl to match.
 +      * server.c (serve_root): Set original_parsed_root.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * server.c (serve_questionable): Use pending errors per API.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * repos.c (Name_Repository): asnprintf, not sprintf.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (ignore-11r): Rename second occurance to...
 +      (ignore-11ar): ...this.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (1): Rename to...
 +      (init-1): ...this.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * repos.c (Name_Repository): Simplify string construction with
 +      asnprintf().  Improve comment.  Some reformatting.
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * release.c (release): Simplify string construction with asnprintf().
 +
 +2004-10-01  Derek Price <derek@ximbiot.com>
 +
 +      * recurse.c (do_file_proc): Improve header comment.  Replace
 +      xmalloc()/strcat() combination with asnprintf().
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (config): Handle $SECONDRY_ROOT_DIRNAME output in $proxy
 +      mode.
 +
 +2004-09-29  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh: Workaround MacOS X '/bin/ls' is not returning false
 +      when no files are listed.  Label some old tests.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * cvs.h: Include parseinfo.h.
 +      (top_level_admin, UseNewInfoFmtStrings,
 +      ImportNewFilesToVendorBranchOnly, PrimaryServer, MaxProxyBufferSize,
 +      MaxCommentLeaderLength, UseArchiveCommentLeader, RereadLogAfterVerify,
 +      lock_dir, UserAdminOptions):  Move extern decls for global config opts
 +      to config struct in parseinfo.h.
 +      (config): New global.
 +      (parse_config): Move proto to...
 +      * parseinfo.h: This new file.
 +      * parseinfo.c (parse_config): Return struct config.
 +      (new_config): New function.
 +      * admin.c: Remove global UserAdminOptions.
 +      (admin): Don't check config on client.
 +      * checkin.c (Checkin), checkout.c (checkout_proc), filesubr.c (xchmod),
 +      import.c (import, add_rcs_file, expand_and_copy_contents):
 +      Use config instead
 +      of globals.  Some reformatting.
 +      * history.c (logHistory): Move to struct config.
 +      (history_write): Use config instead of globals.
 +      * lock.c (lock_dir): Move global to struct config.
 +      (lock_name): Use config instead of globals.
 +      * logmsg.c (RereadLogAfterVerify): Move global to struct config.
 +      (do_verify, logfile_write, verifymsg_proc): Prefer config to globals.
 +      * main.c (top_level_admin, UseNewInfoFmtStrings, PrimaryServer,
 +      MaxProxyBufferSize, MaxCommentLeaderLength, UseArchiveCommentLeader,
 +      ImportNewFilesToVendorBranchOnly): Move globals to struct config.
 +      (config): New global.
 +      (main): Use new parse_config API.
 +      * rcs.c (preserve_perms, keywords): Move globals to struct config.
 +      (keyword_local): Move to struct rcs_keyword.
 +      (new_keywords, free_keywords): New functions.
 +      (expand_keywords, RCS_setlocalid, RCS_setincexc): Prefer config to
 +      globals.
 +      * rcs.h (free_keywords): New proto.
 +      (RCS_setincexc, RCS_setlocalid): Accept opaque keywords element.
 +      * root.c (delconfig, get_root_allow_config): New functions.
 +      * root.h (get_root_allow_config): New proto.
 +      * server.c (system_auth): Move global to struct config.
 +      (isProxyServer, become_proxy, serve_command_prep): Prefer config to
 +      globals.
 +      (serve_root): Ditto.  Set config.
 +      * server.h (system_auth): Move extern decl for global moved to config.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * history.h: Protect against multiple include.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * root.c (root_allow_count, root_allow_vector, root_allow_size):
 +      Replace with...
 +      (root_allow): ...this single List *.
 +      (root_allow_add, root_allow_free, root_allow_ok): Use new List API.
 +      Make args const.  Return bool rather than int when necessary.
 +      * root.h (root_allow_add, root_allow_ok): Update protos to match.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * admin.c (admin): s/int/bool/ as appropriate.  Some reformatting.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * history.c (history_write): Use asnprintf().  Some reformatting.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * import.c (killnew): s/int/bool/.
 +      (add_rcs_file): Ditto for do_killnew.
 +      * rcs.h (add_rcs_file): Change proto to match.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * client.c (start_server): Use bool in place of int.
 +
 +2004-09-29  Derek Price <derek@ximbiot.com>
 +
 +      * subr.c (cvs_trace): Correct header comment.  Some reformatting.
 +
 +2004-09-28  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (ssh-wrapper-env): New script to avoid the assumption
 +      that the remote end of a $CVS_RSH is running a bourne shell.
 +      (ssh-wrapper): Use it.
 +
 +2004-09-28  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy): Remove some setup obsoleted by redirects.
 +
 +2004-09-27  Derek Price <derek@ximbiot.com>
 +
 +      Use original_root for client comparisons with CVS/Root since
 +      current_parsed_root may be the product of a redirect.
 +
 +      * client.c (handle_redirect): Don't free current_parsed_root.  Validate
 +      new roots.
 +      (args_should_not_be_sent_to_server):
 +      s/current_parsed_root->original/original_root/.
 +      * create_adm.c (Create_Admin): Likewise.
 +      * cvs.h (current_parsed_root): Move extern decl...
 +      * root.h: ...here.  Decl original_root extern.
 +      * main.c (set_root_directory): Store original_root.
 +      (main): s/current_parsed_root->original/original_root/.
 +      * recurse.c, release.c, update.c: Likewise.
 +      * root.c: Declare original_root.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (parseroot2): Correct two test names.  Restore CVSROOT.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): Use TRACE_FLOW, not TRACE_FUNCTION since this
 +      routine is called repeatedly by the recursion routines.
 +      * sanity.sh (multiroot2): Adjust to compensate.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (parseroot2): Use remoteonly.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (tests): Add parseroot2.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * recurse.c (do_recursion, do_dir_proc): Make process_this_directory a
 +      boolean.
 +
 +2004-09-24  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (parseroot2): New test for root parsing consistency.
 +      (Original patch from Alexander Taler <dissent@cvshome.org>.)
 +
 +      * cvs.h (Name_Root, free_cvsroot_t, parse_cvsroot, local_cvsroot,
 +      Create_Root, root_allow_add, root_allow_free, root_allow_ok): Move
 +      these protos to...
 +      * root.h: ...here.
 +      * client.c (arg_should_not_be_sent_to_server), recurse.c
 +      (start_recusrion, do_recursion): Use new Name_Root API.
 +      * main.c (current_root): Remove global.
 +      (set_root_directory): Set current_parsed_root directly.
 +      (main): Use new Name_Root API.  Restore deletion of root directories
 +      list.
 +      * root.c (Name_Root): Return a parsed cvsroot_t rather than a string.
 +
 +2004-09-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (buf_append_buffer): Fix typo in comment.
 +
 +2004-09-23  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (buf_read_file): Fix typo in comment.
 +      (buf_read_file_to_eof): Ditto.
 +      * server.c (serve_command_prep): Ditto.
 +
 +2004-09-23  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (depends_on_ssh, sshstdio): Don't use skip() to skip
 +      remote-only tests.
 +
 +2004-09-23  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (crerepos, sshstdio): Minor modifications to make use of
 +      the new depends_on_?sh API.
 +
 +2004-09-23  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh: Accept new -e option to interpret non-fatal calls to skip
 +      as errors.
 +      (skip, depends_on_rsh, depends_on_ssh): New functions.
 +
 +2004-09-23  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (cvs_output, cvs_output_binary): fflush (stderr)
 +      here to avoid problems with 'cvs status 2>&1'.
 +      (Report by Frank Hemer <frank@hemer.org>.)
 +
 +2004-09-17  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c, buffer.h, log-buffer.c, log-buffer.h, main.c, mkmodules.c,
 +      parseinfo.c, server.c: Remove TRUST_OS_FILE_CACHE.
 +
 +2004-09-17  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_set_block): Ignore FreeBSD /dev/null problem.
 +
 +2004-09-17  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (strip_trailing_slashes): Remove proto in favor of including
 +      dirname.h from GNULIB.
 +      * sever.c (dir_name): Rename to...
 +      (gDirname): ...this to avoid conflicts with the GNULIB function.
 +
 +2004-09-16  Derek Price  <derek@ximbiot.com>
 +
 +      * expand_path.c (expand_path): Silence `gcc -Wall'.  Reformat some
 +      comments to fit in 80 characters.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (sync-secondary, writeproxy, writeproxy-noredirect): Remove
 +      redundant checks for $RSYNC readability.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Only find $RSYNC once.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy, writeproxy-noredirect): Find $RSYNC in a
 +      portable manner.
 +
 +2004-09-15  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh: Find $RSYNC in a portable manner.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c (parse_config): Complete parsing of the remainder of the
 +      config file when errors are encountered.  Accept and ignore
 +      UseNewInfoFmtStrings=yes when !SUPPORT_OLD_INFO_FMT_STRINGS.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_copy_data): Pass args to buf_append_data correctly.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Set $RSYNC in proxy mode.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: Fix typo in comment.
 +
 +2004-09-15  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c: s/abort/assert/.  Reformat function headers.  Remove
 +      unnecessary typecasts & prototypes.
 +
 +2004-09-14  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * parseinfo.c (readBool): Remove dead code.
 +
 +      * filesubr.c (cvs_casecmp): Move to...
 +      * subr.c (cvs_casecmp): ...here.
 +      * cvs.h (cvs_casecmp): No longer ifdef under SERVER_SUPPORT
 +
 +      * parseinfo.c (readBool): Return false when there was no boolean
 +      found.
 +
 +2004-09-14  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (top_level_admin, ImportNewFilesToVendorBranchOnly):
 +      s/int/bool/.
 +      (MaxCommentLeaderLength, UseArchiveCommentLeader): New vars.
 +      * main.c: Ditto, for all four vars above.
 +      * mkmodules.c (config_contents): Add default info for
 +      MaxCommentLeaderLength & UseArchiveCommentLeader.
 +      * parseinfo.c (readBool, readSizeT): New functions.
 +      (parse_info): Use new functions.  Parse MaxCommentLeaderLength &
 +      UseArchiveCommentLeader.
 +      * rcs.c (expand_keywords): Limit the size of the comment leader to
 +      MaxCommentLeaderLength & fall back to the comment leader specified in
 +      the RCS archive when requested.
 +      (preserve_perms): s/int/bool/.
 +      * rcs.h (preserve_perms), server.c (system_auth), server.h
 +      (system_auth): Likewise.
 +      * sanity.sh (keywordlog): Add new tests for the above.
 +
 +2004-09-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (RCS_checkout): Allow noexec to do checkouts when
 +      server_active is true.
 +      * sanity.sh (join7): Test above change (fixes a FIXCVS).
 +
 +2004-09-09  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (stuct packetizing_buffer): Use size_t & bool as appropriate
 +      in preference to int.
 +      (packetizing_buffer_output): s/int/size_t/ as appropriate.
 +
 +2004-09-09  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (packetizing_buffer_input): s/int/size_t/ as appropriate.
 +
 +2004-09-09  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * root.c (primary_root_inverse_translate): No longer inline.
 +
 +2004-09-09  Conrad T. Pino  <Conrad@Pino.com>
 +
 +      * server.c: Add comment before #if at line 5580 to move it further
 +      into the file which seems to work around an apparent buffer managment
 +      bug in Microsoft Visual C++ 6.0 compiler.
 +
 +2004-09-08  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (join7): Fix if-then-else conditional.
 +
 +      * sanity.sh (join7): Re-order join7-5 and join7-6 tests.
 +
 +2004-09-08  Conrad T. Pino  <Conrad@Pino.com>
 +
 +      * server.c: Remove extra token in conditional compile line 5580
 +      causing error in Windows Visual C++ 6.0 compile.
 +
 +2004-09-08  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (fd_buffer_block): Protect fcntl calls when F_GETFL,
 +      O_NONBLOCK and F_SETFL are not available.
 +      * server.c (move_file_offset): Ditto.
 +      (set_nonblock_fd): Ditto.
 +
 +      * buffer.c (packetizing_buffer_input): Use size_t rather than int.
 +      (struct packetizing_buffer): Ditto.
 +
 +2004-09-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (server_updated): Deal with cvs -n update -jt1 -jt2
 +      "protocol error: uncounted data discarded" problem.
 +      * sanity.sh (join7): New test for this case.
 +
 +2004-09-04  Derek Price  <derek@ximbiot.com>
 +
 +      * socket-client.c (socket_client_initialize): Pass new args to
 +      buf_initialize.
 +
 +2004-09-04  Derek Price  <derek@ximbiot.com>
 +
 +      Silence `gcc -Wall'.
 +
 +      * buffer.c (buf_initialize): Remove unnecessary typecasts by using
 +      size_t instead of int or bool as args.
 +      * buffer.c, import.c, log-buffer.c, ms-buffer.c, zlib.c: Change all
 +      callers.
 +      * buffer.h, cvs.h: Update protos.
 +      * client.c, ls.c, main.c, rcs.c, root.c, server.c: Remove unused vars,
 +      add parens, as requested by `gcc -Wall'.
 +
 +2004-09-04  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (writeproxy-noredirect): Between "Set" and
 +      "expand-modules" are the optional Kerberos-encrypt, Gssapi-encrypt
 +      and Gssapi-authenticate entries. Use ${DOTSTAR} to deal with
 +      these optionally configured requests.
 +
 +2004-09-04  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * import.c (expand_at_signs): Typecasting for fwrite results.
 +      * log-buffer.c (log_buffer_input, log_buffer_output,
 +      log_buffer_initialize): Ditto.
 +
 +      * log-buffer.c (log_buffer_initialize): Protect reference to
 +      fatal_errors.
 +
 +      * parseinfo.c (parse_config): Protect reference to PrimaryServer
 +      using #ifdef PROXY_SUPPORT.
 +
 +      * ls.c (ls_fileproc): Remove unused variables.
 +      * subr.c (increment_revnum): Ditto.
 +      * vers_ts.c (time_stamp): Ditto.
 +
 +2004-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_checkin), commit.c (remove_file): Accept UPDATE_DIR
 +      argument and use it to output full relative path on commit.
 +      * rcs.h (RCS_checkin): Update prototype.
 +      * checkin.c, commit.c, import.c: Change all callers.
 +      * sanity.sh: Adjust to compensate.
 +
 +2004-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (call_in_directory): Change passed in function to accept
 +      void * to avoid typecasting.  Change all functions using this API.
 +
 +2004-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (secondary-wrapper, writeproxy-secondary-wrapper): Improve
 +      comments.  Use exec to launch server.
 +      (writeproxy-noredirect): New tests for writeproxy functionality in
 +      conjunction with clients that cannot handle the `Redirect' response.
 +
 +2004-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c, rsh-client.c, client.c: Reformat function headers.
 +      Remove unnecessary typecasts and prototypes.
 +      * client.h: Remove unnecessary extern declarations on protos.
 +
 +2004-09-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (skip): New function.
 +      (sshstdio): Use new function.
 +      (writeproxy): Skip test when rsync isn't found.
 +
 +2004-09-02  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (serve_directory): C89 compilers do not like mixed
 +      declarations and code.
 +
 +2004-08-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (sync-secondary): 'dirname -b' fails during the
 +      spacefiles-5 test on FreeBSD, so use 'dirname -- "\$dir"' for now
 +      and look to AS_DIRNAME at some future date.
 +
 +2004-08-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (ssh-wrapper): Create for $proxy mode too & forward CVS_PID
 +      for crerepos.
 +
 +2004-08-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (writeproxy): Use CVS_PID instead of PPID as the
 +      former environment variable is set by cvs and the latter is
 +      NOT set by all bourne shells.
 +
 +2004-08-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * log-buffer.c (log_buffer_rewind): Avoid FreeBSD compilation
 +      error for dereferencing a void * pointer tmp as well as using it
 +      as a buffer pointer under some conditions.
 +
 +2004-08-17  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isProxyServer): Always compile.  Cache hostname lookup.
 +      (serve_notify): Ignore notifications in conjunction with redirects.
 +      (do_cvs_command): Send an error when !PROXY_SUPPORT and a client does
 +      not support redirects.  Only close proxy logs when they exist.
 +      (serve_command_prep): New function.
 +      * sanity.sh (secondary-wrapper, writeproxy): Dynamically switch the
 +      servers proxy/primary status for testing.
 +      (basica): Gratuitous reformatting.
 +      (devcom3, config, release): Handle some new proxy/redirect error
 +      messages.
 +
 +2004-08-17  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (PrimaryServer): Include without PROXY_SUPPORT to support
 +      redirects.
 +      (main): Handle --primary-root without PROXY_SUPPORT.
 +      * mkmodules.c (PrimaryServer), parseinfo.c (parse_config), root.c
 +      (primary_root_add, primary_root_translate,
 +      primary_root_inverse_translate): Likewise.
 +
 +2004-08-17  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Misc reformatting.
 +      (handle_redirect, close_connection_to_server): New functions.
 +      (failure_exit,*): s/int/bool/.
 +      (responses): Add `Redirect'.
 +      (get_server_responses): Handle response_type_redirect.
 +      (get_responses_and_close): Use close_connection_to_server().
 +      (supported_request): Change API to use bool & const.
 +      (start_server): Handle response_type_redirect.
 +      * client.h (supported_request): Update proto.
 +      (type): Add response_type_redirect.
 +      * main.c (lookup_command_attribute): Declare arg const.
 +      * cvs.h (lookup_command_attribute): Ditto.
 +      * sever.c (requests): Create dummy `Command-prep' request.
 +
 +2004-08-12  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Don't process --primary-root without PROXY_SUPPORT.
 +      * root.c (primary_root_translate, primary_root_inverse_translate):
 +      Declare inline.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * ms-buffer.h, ms-buffer.c: Disable contents without PROXY_SUPPORT.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isProxyServer): Declare inline.
 +      (reprocess_proxy_log): Rename to...
 +      (rewind_buf_from_net): ...this and change all callers.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (sync-secondary): Don't bother to log sync activity.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_copy_data), buffer.h (buf_copy_data), log-buffer.c
 +      (log_buffer_initialize, log_buffer_input, log_buffer_output,
 +      log_buffer_rewind, log_buffer_closelog), log-buffer.h
 +      (log_buffer_initialize), main.c (MaxProxyBufferSize), mkmodules.c
 +      (config_contents), parseinfo.c (parse_config), server.c (server):
 +      Switch eariler support for logs in memory buffers on
 +      TRUST_OS_FILE_CACHE.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_free_data, buf_copy_data): Only compile with proxy
 +      support.
 +      * buffer.h: Ditto for including the protos.
 +
 +2004-08-11  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_input): Bracket misguided attempt at improved
 +      I/O efficiency with TRUST_OS_FILE_CACHE pragmas.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h, main.c, mkmodules.c, parseinfo.c, server.c:
 +      s/MaxSecondaryBufferSize/MaxProxyBufferSize/.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sever.c (secondary_log, secondary_log_out): Rename globals everywhere
 +      to...
 +      (proxy_log, proxy_log_out): ...these.
 +      (isSecondaryServer): Rename function...
 +      (isProxyServer): ...to this.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c: #ifdef PROXY_SUPPORT in appropriate places.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h, log-buffer.h, main.c, mkmodules.c, parseinfo.c, server.c:
 +      s/SECONDARY_SUPPORT/PROXY_SUPPORT/.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSecondaryServer): Declare static.
 +      * server.h (isSecondaryServer): Remove proto.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.h (log_buffer_rewind, log_buffer_closelog): Don't define
 +      protos without SECONDARY_SUPPORT.
 +      * server.c (*): #ifdef correctly for !SECONDARY_SUPPORT.
 +      * version.c (version): Remove unused code.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server_cleanup): Remove unused variable.
 +
 +2004-08-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (buf_from_net_save): Remove obsolete variable.
 +      (server_cleanup): Don't close BUF_FROM_NET_SAVE.
 +
 +2004-08-09  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (sync-secondary, *info): Sync only the updated directories
 +      rather than the entire repository after a write for a minor efficiency
 +      improvement.
 +      (info, taginfo): Hack *info to sync all dirs for these tests rather
 +      than rewriting the sync-secondary script to handle old-style *info
 +      format strings.
 +
 +2004-08-05  Derek Price  <derek@ximbiot.com>
 +
 +      Beginnings of support for turning off writeproxy support (still broke.)
 +      * cvs.h (PrimaryServer, MaxSecondaryBufferSize), main.c (PrimaryServer,
 +      MaxSecondaryBufferSize), mkmodules.c (config_contents), parseinfo.c
 +      (parse_config): Switch off when writeproxy support disabled.
 +      * server.c (replace_file_offset, move_file_offset): Comment out
 +      temporarily.
 +
 +2004-08-05  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (copy_file): Don't fsync.  It's slow.
 +
 +2004-08-05  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_copy_data): New function.
 +      * buffer.h: Proto new function.
 +      * cvs.h (MaxSecondaryBufferSize): Declare new config global.
 +      * log-buffer.c: Allow file-backed memory buffers for "speed".
 +      (struct log_buffer): Add new fields.
 +      (log_buffer_force_file): New function.
 +      (log_buffer_initialize): Initialize new fields.
 +      (log_buffer_input, log_buffer_output): Handle logging to memory when
 +      asked.
 +      (log_buffer_disable): Remove function, moving much functionality...
 +      (log_buffer_rewind): ...to this new function and expanding.
 +      (log_buffer_closelog): Handle new fields and structs.
 +      (log_buffer_get_fd): Remove function.
 +      (setup_logfiles): Use new _initialize API.
 +      * log-buffer.h: Update protos to match.
 +      * main.c (MaxSecondaryBufferSize): Init new config global.
 +      * mkmodules.c (config_contents): Add comments 4 MaxSecondaryBufferSize.
 +      * parseinfo.c (parse_config): Parse MaxSecondaryBufferSize..
 +      * server.c (secondary_log_name, secondary_log_out_name): Remove unused
 +      globals.
 +      (read_secondary_log): Remove function.
 +      (reprocess_secondary_log): Use log_buffer_rewind() instead of the above.
 +      (become_proxy): Ditto.
 +      (server_cleanup): No need to clean up logfiles any longer.
 +      (server): Use new log_buffer_initialize API.
 +
 +2004-08-04  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_read_data): s/abort/assert/.
 +
 +2004-08-04  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (loop_over_inputs): Remove function, moving contents back...
 +      (server): ...to here.
 +
 +2004-08-03  Derek Price  <derek@ximbiot.com>
 +
 +      Checking in IO changes intended to improve speed for posterity since
 +      they actually increase CPU usage by about .2% in remote mode and 5% in
 +      writeproxy mode.
 +      * Makefile.am (cvs_SOURCES): Add ms-buffer.c & ms-buffer.h.
 +      * buffer.c (buf_free_data): New function.
 +      (buf_read_data): s/abort/assert/.
 +      (fd_buffer_input): Try to improve efficiency of blocking read.
 +      * buffer.h (buf_free_data): New proto.
 +      * server.c (reprocess_secondary_log): Only reopen log and attach to
 +      BUF_FROM_NET - don't actually loop over inputs.
 +      (become_proxy, serve_co, do_cvs_command): Use new log from above.
 +      * ms-buffer.c, ms-buffer.h: New files.
 +
 +2004-08-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (TIMING): Make this work when not in $remotehost mode.
 +      (reserved-13b): Use sorted output.
 +
 +2004-08-03  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c: Improve comments.
 +
 +2004-08-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (ssh-wrapper): Export CVSUMASK to remote host.
 +      (*): Remove some hacks that were needed because CVSUMASK was not
 +      exported to the remote host.  Misc cleanup.
 +
 +2004-07-28  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (pserver-auth-no-dos): ENOMEM on Solaris 7, 8, 9, and
 +      AIX 4.3 all use the text "Not enough space" instead of the text
 +      "Cannot allocate memory" as is printed on GNU/Linux, NetBSD, and
 +      FreeBSD systems.
 +
 +2004-07-28  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (ssh-wrapper): Export CVS_RSH on remote host.
 +
 +2004-07-28  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (secondary-wrapper): Not all $TESTSHELL shells
 +      are able to set a variable and export it at the same time.
 +      Separate the value assignment from the export statement.
 +      (writeproxy-secondary-wrapper): Ditto.
 +
 +2004-07-28  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSecondaryServer): Fix array out of bounds problem.
 +      * sanity.sh (ssh-wrapper): Wrap any rsh implementation we are handed to
 +      forward variables relevant to testing.  Add new $TIMING variable to
 +      allow timing of processes on a remote host.
 +      (*): Gratuitous reformatting.
 +
 +2004-07-26  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (read_secondary_log): Minor comment corrections.
 +
 +2004-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_output): Don't fsync.  It is unneeded and slow.
 +      * server.c (move_file_offset, replace_file_offset): Ditto.
 +      * log-buffer.c (log_buffer_flush_log): Remove function.
 +
 +2004-07-19  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (log_buffer_disable): Return log FILE *.  Don't close
 +      log.  Fix header comment.
 +      (log_buffer_closelog): New function.
 +      * log-buffer.h: Update protos to match.
 +      * server.c (read_secondary_log): Rewind file pointer rather than
 +      closing and reopening file for speed.
 +      (serve_root): Close secondary log rather than just disabling when not
 +      running in secondary mode.
 +
 +2004-07-19  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_flush): Replace abort w/assert.
 +      * log-buffer.c (log_buffer_flush_log): New function for syncing a log.
 +      (log_buffer_flush, log_buffer_flush): Don't sync log for speed.
 +      * log-buffer.h (log_buffer_flush_log): New proto.
 +      * sanity.sh: Tidy.
 +      (run_filter): Accept file name to filter as argument.
 +      (dotest_*): pass new arg to run_filter.
 +      * server.c (read_secondary_log): Sync log before reopening.
 +
 +2004-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_input): Back out previous two changes due to
 +      incompatibility with current state of write proxies.
 +      * log-buffer.c (log_buffer_initialize): Handle new buffers which
 +      already have some data in them.
 +      (log_buffer_input): Don't fsync here.  It is slow.
 +      * server.c (serve_root): Disable the secondary output log too.
 +      (serve_noop, pserver_authenticate_connection): Misc cleanup.
 +      * sanity.sh: Misc gratuitous cleanup.
 +
 +2004-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_input): Don't overwrite the input buffer the
 +      second time through the blocking read loop.
 +
 +2004-07-15  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (fd_buffer_input): Improve efficiency.
 +      * sanity.sh (modify_repo): Move timestamp race avoidance to...
 +      (sync-secondary): This script.
 +      (big): Misc cleanup.
 +
 +2004-07-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Misc gratuitous cleanup.
 +      (modify_repo): Sleep 1 before rsync to avoid timestamp comparison
 +      issues.
 +
 +2004-07-15  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (log_buffer_output): Remove extremely slow fsync call.
 +      (log_buffer_disable): Move to here so log files are sync'd before
 +      close.
 +      * sanity.sh (run_filter): New function to allow for filtering of cruft
 +      output by Rational Quantify or other profilers.
 +      (dotest_*): Call new function.
 +
 +2004-07-13  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (prepost_proxy_proc): Add the CVSROOT string for the primary
 +      server, as documented.
 +
 +2004-07-13  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c (tag_filesdoneproc): Don't track posttag errors.
 +      (cvstag): Move addition of successful tags to val-tags to...
 +      (tag_fileproc): ...here and...
 +      (rtag_fileproc): ...here.  Consolidate returns at single location.
 +      (*): Misc reformatting.
 +      * sanity.sh (sync-secondary): Include more data in the update-log.
 +
 +2004-07-13  Derek Price  <derek@ximbiot.com>
 +
 +      * .cvsignore: Ignore coverage data generated by GCC.
 +
 +2004-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Watch $servercvs and other minor fixes.
 +
 +2004-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Gratuitous reformatting.
 +      * sanity.sh: Misc write proxy accommodations.
 +
 +2004-07-11  Derek Price  <derek@ximbiot.com>
 +
 +      * log.c (log_fileproc, log_expand_revlist, log_fix_singledate,
 +      log_count_print, log_tree, log_abranch, log_version), parseinfo.c
 +      (Parse_Info, parse_config), rcs.c (RCS_fully_parse, rcsbuf_getkey,
 +      rcsbuf_getrevnum, rcsbuf_valword, RCS_getbranchpoint, RCS_getdate,
 +      RCS_getrevtime, RCS_checkout, RCS_findlock_or_tip, RCS_addbranch,
 +      RCS_cmp_file, RCS_lock, RCS_unlock, RCS_delete_revs, RCS_deltas,
 +      RCS_getdeltatext, RCS_putdtree): Print primary path.
 +      * server.c (serve_kopt): Handle secondary log.
 +      * sanity.sh: Misc accommodations.
 +
 +2004-07-11  Derek Price  <derek@ximbiot.com>
 +
 +      * checkin.c (checkout_proc): Correct vi induced typo.
 +
 +2004-07-11  Derek Price  <derek@ximbiot.com>
 +
 +      * admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
 +      (notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
 +      server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
 +      default %c format string.
 +      * client.c, edit.c, lock.c, fileattr.c, mkmodules.c, myndbm.c,
 +      parseinfo.c, recurse.c: Misc gratuitous cleanup.
 +      * commit.c (commit_filesdoneproc): Move loginfo call to after CVSROOT
 +      sync.
 +      * checkout.c (checkout_proc), fileattr.c (fileattr_read), myndbm.c
 +      (mydbm_open, mydbm_load_file): Print primary path.
 +      * server.c (serve_checkin_time): Handle secondary log.
 +      (prepost_proxy_proc): Move before first call.
 +      (become_proxy): Move before first call.
 +      (serve_notify): Become proxy for this request.
 +      * sanity.sh: Misc accommodations.
 +
 +2004-07-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_notify): Handle secondary_log.
 +
 +2004-07-08  Derek Price  <derek@ximbiot.com>
 +
 +      Intermediate checkin.  Adds some new server requests and test fixes.
 +      * sanity.sh: Update tests to handle proxies and new hooks.
 +      * cvs.h (CVSROOTADM_PREPROXY): Alphebetize & sub correct name.
 +      * mkmodules.c (filelist): Alphabetize.
 +      * server.c (serve_max_dotdot, serve_static_directory, serve_argumentx):
 +      Handle secondary_log.
 +      * tag.c (*): Misc gratuitous cleanup.
 +
 +2004-07-08  Derek Price  <derek@ximbiot.com>
 +
 +      Intermediate checkin.  Adds preproxy, & postproxy hooks and some test
 +      cruft to test everything.
 +
 +      * cvs.h (CVSROOTADM_*): Add new hook config files.
 +      * log.c (log_fileproc): Print primary path.
 +      * mkmodules.c (*_content): Add init content for new files.
 +      (filelist): Add new files.
 +      * rcs.c (RCS_parsercsfile_i): Set print_path.  Misc gratuitous cleanup.
 +      (freercsnode): Free print_path.
 +      * rcs.h (struct rcsnode): Add print_path.
 +      * rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Print primary path.
 +      * server.c (isSecondaryServer): No longer static.
 +      (serve_sticky, serve_argumentx): Handle secondary logging.
 +      (prepost_proxy_proc): New function.
 +      (become_proxy): Call pre & post proxy hooks.  Handle IO closing better.
 +      * server.h (isSecondaryServer): No longer static.
 +      * status.c (status_fileproc): Print primary path.
 +      * sanity.sh: Accept --proxy argument and run in write proxy mode when
 +      seen.  Misc fixes to account for other changes.  Misc gratuitous
 +      cleanup.
 +
 +2004-07-02  Derek Price  <derek@ximbiot.com>
 +
 +      Woo-hoo!  Write proxies work!
 +      * client.c (open_connection_to_server): Set up log files...
 +      (start_server): ...here.
 +      * server.c (secondary_log_out_name, secondary_log_out): New globals.
 +      (argument_cound, argument_vector, argument_vector_size): Move before...
 +      (reprocess_secondary_log): ...referencing here.  Assume secondary_log.
 +      (read_secondary_log): Accept buf & name args.
 +      (serve_modified, serve_unchanged, serve_is_modified, serve_entry):
 +      Handle logging pass.
 +      (become_proxy): Use new output-to-client-log.  Verify buffers still
 +      exist before using.
 +      (output_dir): Translate paths to the client on the secondary.
 +      (serve_co): Only reprocess the secondary log when one exists.
 +      (server_cleanup): Free buf after shutdown.  Dispose of client output
 +      log.
 +      (server): Create client output log.
 +      (*): Misc reformatting & detypecasting.
 +      * log-buffer.c (log_buffer_output): Handle fatal_errors.
 +      (log_buffer_flush): Don't operate on NULL streams.
 +      (log_buffer_disable): Reformat so as not to confuse the optimizer.
 +      * root.c (primary_root_translate): Remove unused variable and redundant
 +      slash.
 +      (primary_root_inverse_translate): New function.
 +      * root.h: Add new proto.
 +      * sanity.sh (writeproxy): Wrap server executables to set args and
 +      server variables properly.  Fill in some test gaps.  Correct `cd' args.
 +      Clean up wrappers.
 +
 +2004-06-30  Derek Price  <derek@ximbiot.com>
 +
 +      * root.h (primary_root_add, primary_root_translate): New protos.
 +      * root.c (primary_root_add, primary_root_translate): New functions.
 +      * main.c (long_options): Add --primary-root.  Handle --primary-root
 +      and --allow-root only with SERVER_SUPPORT.
 +      (main): Ditto.
 +      * server.c (move_file_offset): Set block before fsync.  Report
 +      ftruncate errors.  Force sync after rearranging data.
 +      (replace_file_offset): Force sync after replacing data.
 +      (serve_directory): Translate roots based on --primary-root arg.
 +      (serve_root): Likewise & don't rewrite the log file.
 +      (become_proxy): Increment select's N arg because it is required.
 +      (do_cvs_command): Use MAX macro appropriately.
 +      * sanity.sh (writeproxy): Wrap the secondary server in such a way that
 +      it gets the --primary-root option and the primary does not.  Move the
 +      primary root out of the way for the read operations to prove only the
 +      secondary was accessed.
 +
 +2004-06-30  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
 +      soon as they are written to better diagnose hangs.
 +
 +2004-06-30  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (connect_to_forked_server): Compile for SERVER_SUPPORT.
 +
 +2004-06-30  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_append_buffer): Handle NULL from->data.
 +
 +2004-06-28  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (log_buffer_flush): Sync all, not just data.
 +      * buffer.c (fd_buffer_flush): Ditto.  Ignore problems synchronizing
 +      unsynchronizable descriptors.
 +
 +2004-06-28  Derek Price  <derek@ximbiot.com>
 +
 +      Intermediate checkin on the way to enabling the write proxy.
 +
 +      * server.c (isSecondaryServer): Handle forked primary.
 +      (read_secondary_log, move_file_offset, replace_file_offset,
 +      become_proxy): New functions.
 +      (reprocess_secondary_log): Use new read_secondary_log().
 +      (serve_root): Replace `Root' request with new version for primary.
 +      (do_cvs_command): Use new become_proxy() function.
 +      (*): Gratuitous reformatting.
 +      (server): Open new logs and avoid opening pipes to pserver twice.
 +      * buffer.c (buf_initialize): Handle new LAST_INDEX & LAST_COUNT
 +      initializers.
 +      (*): Remove unnecessary typecasts.  Gratuitous reformatting.  Use
 +      assert() rather than if()/abort().
 +      (buf_append_buffer, buf_read_data, buf_copy_lines, buf_copy_counted):
 +      Track LAST_INDEX & LAST_COUNT.
 +      (buf_read_short_line): Track LAST_INDEX & LAST_COUNT.
 +      * buffer.h (struct buffer): Add LAST_INDEX & LAST_COUNT.
 +      * cvs.h: Include minmax.h.
 +      * root.h (enum CVSmethod): Force null_method to 0.
 +      * zlib.c: Remove unnecessary typecasts.  Gratuitous reformatting.  Use
 +      assert() rather than if()/abort().
 +
 +2004-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      Checkout and probably other read-only commands now work.
 +
 +      * server.c (serve_expand_modules): Discard arguments even when
 +      reprocessing.
 +      (serve_argument): Always process arguments.
 +      (serve_wrapper_sendme_rcs_options): Process in first pass.
 +
 +2004-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      Operate correctly in non-write proxy mode, delaying processing of most
 +      commands until after the `Root' request is received.
 +
 +      * server.c (buf_from_net_save): New global variable to store the input
 +      buffer from the client while the secondary log is being reprocessed.
 +      (reprocessing): Global to track whether we are reprocessing.
 +      (various redundant prototypes): Removed.
 +      (fd_buffer_*): Remove unneeded typecasts.
 +      (serve_valid_responses, serve_global_option, serve_set,
 +      serve_valid_requests): Avoid processing twice.
 +      (command_pid, outbuf_memory_error, input_memory_error): Moved above new
 +      references.
 +      (server): Factor loop over the client inputs to...
 +      (loop_over_inputs): ...this new function.
 +      (serve_root): Loop over secondary log of client inputs when we
 +      discover we are not the secondary.
 +      (*): Add !secondary_log assertions to verify that certain code paths
 +      are not yet taken.
 +      (do_cvs_command, serve_init): Add switch and pseudo-code comments about
 +      what will need to be done on secondary servers.
 +      (seve_noop): Print errors & "ok" in the first pass, skip "ok" but
 +      restore handling of entries and notification in the second.
 +      (serve_co): Note what will need to be done on secondaries.
 +      (server_cleanup): Deal with buf_from_net_save when necessary.
 +
 +2004-06-22  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server): Move previously fatal error on failure to open a
 +      secondary log to...
 +      (serve_root): ...here, and only when we discover we are actually a
 +      secondary server.
 +      (server): Ensure an interrupt cannot dump core.
 +
 +2004-06-22  Derek Price  <derek@ximbiot.com>
 +
 +      Enable the writeproxy log and turn it off when we determine we are not
 +      running as a secondary server.
 +
 +      * log-buffer.c: Compile log buffer routines in server mode for write
 +      proxy.
 +      (struct log_buffer): Add fatal_error member.
 +      (log_buffer_initialize, log_buffer_input): Allow for fatal write errors
 +      for writeproxy.
 +      (log_buffer_disable): Turn off the log when asked.
 +      (log_buffer_shutdown): Close log via log_buffer_disable.
 +      (log_buffer_input, log_buffer_output, log_buffer_flush): Don't operate
 +      on the log when it doesn't exist.
 +      (*): Misc gratuitous cleanup.
 +      (setup_logfiles): Use new log_buffer_initialize API.
 +      * log-buffer.h (log_buffer_initialize, log_buffer_disable): New
 +      prototypes.
 +      (log_buffer_initialize): Update prototype.
 +      * server.c: Include log-buffer.h.  Gratuitous reformatting of pragmas.
 +      (secondary_log_name, secondary_log): New globals.
 +      (server): Set up recording for writeproxy.
 +      (serve_root): Turn off recording when we determine that we are not a
 +      secondary.
 +
 +2004-06-21  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy): Verify that secondary is updated after a
 +      commit.  Comment test that verifies that commit took place on primary.
 +
 +2004-06-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (writeproxy): Test response to a failing rsync.
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (isSecondaryServer): New function.
 +      (MAXHOSTNAMELEN): Move to top of file and improve comment.
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c (parse_config): Get my enum references correct.
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * parseinfo.c (parse_config): Verify that the ProxyServer connection
 +      method is valid.
 +
 +2004-09-02  Derek Price <derek@ximbiot.com>
 +
 +      * server.c (do_cvs_command): Pass new args to fd_buffer_initialize().
 +      (server): Don't initialize BUF_TO_NET & BUF_FROM_NET when
 +      pserver_authenticate already did.
 +      (pserver_read_line): New function to access pserver auth dialogue via
 +      buffers.
 +      (pserver_authenticate_connection): Init buffers to/from net and access
 +      via pserver_read_line() and the buffer output functions.
 +      (fd_buffer_*): Move to...
 +      * buffer.c (fd_buffer_*): ...here.  Handle blocking input more
 +      efficiently.
 +      (buf_initialize): Handle get_fd() argument.
 +      (buf_nonio_initialize, packetizing_buffer_initialize): Pass new
 +      get_fd() argument.
 +      (buf_copy_data, buf_free_data, buf_read_short_line, buf_get_fd,
 +      packetizing_buffer_get_fd): New functions.
 +      (bufread_line): Wrap buf_read_short_line().
 +      (stdio_buffer_*): Remove these functions.
 +      (*): Some reformatting of function headers.
 +      * buffer.h (struct buffer, buf_initialize): Add get_fd().
 +      (buf_read_short_line, buf_get_fd, buf_copy_data, buf_free_data,
 +      fd_buffer_initialize): New prototypes.
 +      * client.c (get_port_number, get_cvs_port_number,
 +      get_proxy_port_number): Compile with SERVER_SUPPORT.
 +      (make_bufs_from_fds): Likewise, and accept new ROOT arg and pass on to
 +      fd_buffer_initialize().
 +      (connect_to_pserver, connect_to_forked_server): Pass ROOT to
 +      make_bufs_from_fds().
 +      (start_server): Factor much functionality into...
 +      (open_connection_to_server): ...this new function.
 +      * client.h (make_bufs_from_fds): Update proto.
 +      (open_connection_to_server): New proto.
 +      * log-buffer.c (log_buffer_initialize): Handle get_gd().
 +      (log_buffer_get_fd): New function.
 +      * zlib.c (compress_buffer_initialize, compress_buffer_get_fd): Ditto
 +      twice.
 +      * rsh-client.c (start_rsh_server): Pass ROOT to make_bufs_from_fds().
 +      * sanity.sh (pserver): Expect new error messages.
 +
 +2004-09-01  Derek Price <derek@ximbiot.com>
 +
 +      * run.c: Remove unneeded typecasts.  Reformat function headers.  Fix
 +      trace.
 +
 +2004-08-31  Derek Price <derek@ximbiot.com>
 +
 +      * subr.c (format_cmdline), cvs.h (format_cmdline): Accept bool rather
 +      than int.
 +      * admin.c, commit.c, edit.c, fileattr.c, logmsg.c, tag.c: Change all
 +      callers.
 +      * main.c (UseNewInfoFmtStrings), cvs.h (UseNewInfoFmtStrings):
 +      s/int/bool/.
 +      * parseinfo.c: Change all references.
 +
 +2004-08-31  Derek Price <derek@ximbiot.com>
 +
 +      * checkout.c: Reformat function headers.  Remove unnecessary typecasts
 +      and prototypes.  Some other reformatting for legibility.
 +
 +2004-08-31  Derek Price <derek@ximbiot.com>
 +
 +      * buffer.c: Gratuitous reformatting of header comments.
 +      s/abort/assert/.  Remove unnecessary typecasts.
 +      * buffer.h: Remove unnecessary "extern" decls.  Some reformatting.
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Don't shorten //. to / (use //).
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Strip trailing CWD indirections on
 +      repository.
 +      * sanity.sh (rstar-toplevel): Update to account for new behavior.
 +      (Report from Dan Peterson <dbpete@aol.com>.)
 +
 +2004-08-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * recurse.c (do_recursion): Correct test for calling
 +      server_pause_check to occur when locktype != CVS_LOCK_WRITE.
 +      (Patch suggested by Ian Lance Taylor <ian@wasabisystems.com>
 +      in bug#198).
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh: Update a few tests to account for the recent error message
 +      changes.
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_valid_rev): Declare arg const.
 +      * rcs.h: Likewise.
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * rcs.c (translate_symtag): Prevent infinite loop.
 +      * tag.c (tag_check_valid): Check tag syntax before searching for tags.
 +      * sanity.sh (tag-space): Some tests for the above.
 +      (Report from Dan Peterson <dbpete@aol.com>.)
 +
 +2004-08-24  Derek Price <derek@ximbiot.com>
 +
 +      * tag.c (tag_check_valid): Use RCS_valid_rev() rather than duplicating
 +      code.  Misc error message improvements.
 +
 +2004-08-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * ignore.c (ignore_directory): Include the terminating NUL
 +      character in the directory name comparison to avoid matching
 +      substrings of directories by accident.
 +      (Report and suggested fix from James E Wilson
 +      <wilson@specifixinc.com>.)
 +      * sanity.sh (modules4): Add some more tests testing the above
 +      change.
 +
 +2004-08-20  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (binfiles): Cleanup the 2a temporary directory.
 +
 +2004-08-20  Derek Price <derek@ximbiot.com>
 +
 +      Cache tags in val-tags on successful creation to avoid problems with
 +      write proxies.  Merged from `writeproxy2' branch.
 +
 +      * tag.c (tag_filesdoneproc): Don't track posttag errors.
 +      (cvstag): Move addition of successful tags to val-tags to...
 +      (tag_fileproc): ...here and...
 +      (rtag_fileproc): ...here.  Consolidate returns at single location.
 +      (*): Misc reformatting.
 +
 +      * tag.c (add_val_tag): New function with content factored from...
 +      (tag_check_valid): ...here.
 +      (cvstag): Call add_val_tag() when needed.
 +      * annotate.c, checkout.c, commit.c, diff.c, ls.c, patch.c, recurse.c,
 +      tag.c, update.c: Pass new args to tag_check_valid.
 +
 +      Merge of postadmin, posttag, and postwatch functionality from
 +      `writeproxy2' branch.
 +
 +      * admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
 +      (notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
 +      server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
 +      default %c format string.
 +
 +      * cvs.h (CVSROOTADM_POSTWATCH): New macro.
 +      * fileattr.c (*): Misc cleanup.
 +      (postwatch_proc): New function.
 +      (fileattr_write): Call watch proc when done writing fileattr.
 +      * mkmodules.c (postwatch_contents): New var.
 +      (filelist): Add postwatch.
 +      * watch.c (addremove_filesdoneproc): Remove function.
 +      (watch_addremove): Don't call above function.
 +      (*): Misc cleanup.
 +      * watch.h: Remove some unnecessary "extern" decls.
 +
 +      * admin.c (postadmin_proc, admin_filesdoneproc): New functions.
 +      (admin): Pass admin_filesdoneproc() to start_recursion().
 +      (*): Misc gratuitous cleanup.
 +      * cvs.h (CVSROOTADM_*): Alphabetize, add new hook config files.
 +      (format_cmdline): Fix proto to match change below.
 +      * mkmodules.c (*_content): Add init content for new files.  Misc
 +      cleanup.
 +      (filelist): Add new files.
 +      * tag.c (struct pretag_proc_data): Move before first use.
 +      (posttag_proc, tag_filesdoneproc): New functions.
 +      (rtag_proc): Pass new procs to start_recursion().
 +      (*): Misc gratuitous cleanup.
 +      * sanity.sh: Misc accommodations.
 +
 +2004-08-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * log-buffer.c (log_buffer_output): Protect call to fsync()
 +      with #ifdef HAVE_FSYNC.
 +
 +2004-08-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * log-buffer.c (log_buffer_input): Protect call to fsync()
 +      with #ifdef HAVE_FSYNC.
 +
 +2004-08-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (sshstdio): Fix comment typo plus gratuitous
 +      reformatting.
 +
 +      * client.c (handle_m): Workaround to deal with stdio getting put
 +      into non-blocking via redirection of stderr and interaction with
 +      ssh on some platforms. On those boxes, stdio can put stdout
 +      unexpectedly into non-blocking mode which may lead to fwrite() or
 +      fflush() failing with EAGAIN, but cvs not checking for the error.
 +      (Patch suggested by Frank Hemer <frank@hemer.org>.)
 +
 +      * client.c (handle_e): Similar fix for stderr.
 +      * sanity.sh (sshstdio): New test for non-blocking stdio via ssh.
 +
 +2004-08-11  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (basicc): Work around a problem in Linux 2.2 & Bash 2.05b
 +      which prevents a `cd ..' from a deleted directory from working.
 +      (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
 +
 +2004-07-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (newb-123j0): Use DOTSTAR at end of response.
 +
 +2004-07-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * main.c (ImportNewFilesToVendorBranchOnly): New variable.
 +      * cvs.h (ImportNewFilesToVendorBranchOnly): Declare new variable.
 +      * import.c (import): Respect setting of
 +      ImportNewFilesToVendorBranchOnly.
 +      * mkmodules.c (config_contents): Document the default
 +      ImportNewFilesToVendorBranchOnly=no option in newly generated
 +      config files.
 +      * parseinfo.c (parse_config): Parse
 +      ImportNewFilesToVendorBranchOnly option.
 +      * sanity.sh (importX2): New test, to test
 +      ImportNewFilesToVendorBranchOnly config file option.
 +      (New feature from Chris Demetriou <cgd@broadcom.com>.)
 +
 +2004-07-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (basic2-14): Use DOTSTAR to be more portable.
 +
 +      * status.c (status_fileproc): Print datetimes using output_cvs_tagged.
 +      * sanity.sh (basic2-14): Allow for an extra blank line at the end.
 +
 +2004-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (pamh): New global static to hold the PAM handle.
 +      (server): Close the PAM session so that logging works properly.
 +      (switch_to_user): Opens a PAM session and gets credentials from PAM so
 +      that PAM modules can change group permissions.  Get the username from
 +      PAM so that PAM modules can modify the final local username.
 +      (cvs_pam_conv): Changed the assertions to allow PAM to output text to
 +      the user.
 +      (check_system_password): Renamed to...
 +      (check_pam_password): ...this.  Changed argument type for username so
 +      that PAM modules can modify the username under authentication.  Setting
 +      a terminal so some PAM modules which expect it to be set work, it is
 +      set to the pam servicename which defaults to the binary name.  Set the
 +      username from PAM after authentication if a module has changed it.
 +      (check_password): Calls check_pam_password if PAM is enabled otherwiseu
 +      calls check_system_password.
 +      (Patch from Brian Murphy <brian@murphy.dk>.)
 +
 +2004-07-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (run_filter): New function to allow for filtering of cruft
 +      output by Rational Quantify or other profilers.
 +      (dotest_*): Call new function.
 +
 +2004-07-13  Derek Price  <derek@ximbiot.com>
 +
 +      * .cvsignore: Ignore GCC profiling data.
 +
 +2004-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Misc reformatting.
 +
 +2004-07-12  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: fix format_time_t to call localtime
 +      (Patch from Bart Robinson  <lomew@pobox.com>.)
 +
 +2004-07-02  Derek Price  <derek@ximbiot.com>
 +
 +      * vers_ts.c: Gratuitous reformatting & detypecasting.
 +
 +2004-06-30  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
 +      soon as they are written to better diagnose hangs.
 +
 +2004-06-29  Derek R. Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (toplevel-12): Handle new error output.
 +
 +2004-06-29  Derek R. Price  <derek@ximbiot.com>
 +
 +      * subr.c (xrealloc_and_strcat): Use bool in place of short.
 +
 +2004-06-29  Derek R. Price  <derek@ximbiot.com>
 +
 +      * client.c: Gratuitous reformatting.
 +      (send_repository): Send relative Directory when server reports it is
 +      able to handle it.
 +      * server.c (serve_directory): Handle relative directories.
 +      (output_dir): Send relative directories.
 +      (requests): Add `Relative-directory' request.
 +
 +2004-06-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * import.c (import_usage): Add new -X flag.
 +      (import): Handle new -X flag.
 +      (process_import_file): Handle new -X flag.
 +      (killnew): New static flag variable to indicate use of -X flag.
 +      (preserve_initial_permissions): New function, extracted from
 +      add_rcs_file().
 +      (expand_and_copy_contents): Likewise.
 +      (add_rcs_file): New argument, do_killnew, to cause "import -X" flag
 +      processing.  Implement -X flag, and use newly abstracted functions.
 +      * rcs.h (add_rcs_file): Update prototype for do_killnew argument.
 +      * commit.c (checkaddfile): Update for add_rcs_file function change.
 +      * mkmodules.c (init): Likewise.
 +      * client.c (handle_mt): Handle an importmergecmd tag without
 +      any conflicts (for 'import -X' support).
 +      * sanity.sh (importX): New test.
 +      (New feature from Chris Demetriou <cgd@broadcom.com>.)
 +
 +2004-06-22  Derek Price  <derek@ximbiot.com>
 +
 +      * wrapper.c: Add explicit "void" return type to "wrap_clean_fmt_str"
 +      definition.
 +      (Patch from Conrad T. Pino <Conrad@Pino.com>.)
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (entries, serve_is_modified): Reorder to remove prototypes.
 +      (supported_response): Remove prototype.
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
 +      security fixes.
 +      (Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
 +      Krahmer <krahmer@suse.de>.)
 +
 +      * cvs.h: Include xsize.h.
 +
 +2004-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
 +      against malformed entries.
 +      * sanity.sh (server): Tests for same.
 +
 +2004-06-07  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * sanity.sh (basica): More tests for string-based revision inc.
 +
 +2004-06-04  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * subr.c (increment_revnum): Rewrite ala RCS to work directly on
 +      the string rather than converting to int to avoid overflow.
 +      * sanity.sh (basica): New tests for above, update others to match.
 +
 +2004-06-04  Derek Price  <derek@ximbiot.com>
 +
 +      Preliminary writeproxy functionality.
 +      * main.c: Declare PrimaryServer.
 +      * cvs.h: Likewise, but extern.
 +      * mkmodules.c: Add PrimaryServer to default CVSROOT/config content.
 +      * parseinfo.c: Handle PrimaryServer line.
 +      * sanity.sh: (Failing) tests for writeproxy functionality.
 +
 +2004-05-28  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (format_time_t, gm_format_time_t): Use my_strftime from
 +      GNULIB rather than the system-dependant strftime.
 +
 +2004-05-20  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: s/GMT/UTC/ where appropriate.
 +
 +2004-05-20  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (cvs_output_tagged): Move new server code inside a
 +      SERVER_SUPPORT block.
 +
 +2004-05-19  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (gmformat_time_t, entries_time, unix_time_stamp): New protos.
 +      * ls.c (struct long_format_data): New structure.
 +      (ls_print): Print datetimes using cvs_output_tagged.
 +      (long_format_data_delproc): New function.
 +      (ls_fileproc, ls_direntproc): Keep track of long_format_data.
 +      * main.c (Make_Date): Use standard quotes.
 +      (format_time_t, gmformat_time_t): New functions.
 +      (format_date_alloc): Use new functions.  Improve comments.
 +      * server.c (cvs_output_tagged): Only output in localtime in local mode.
 +      * vers_ts.c (entries_time, unix_time_stamp): New functions.
 +      (time_stamp): Use new functions.
 +      * sanity.sh (ls, branches2): Use $ISO8601DATE where applicable.
 +
 +2004-05-19  Derek Price  <derek@ximbiot.com>
 +
 +      Output `cvs log' times in the local timezone.
 +
 +      * client.c (handle_mt): Handle the new "date" MT response
 +      * server.c (cvs_output_tagged): Likewise
 +      * cvs.h: Proto for format_date_alloc
 +      * main.c (format_date_alloc, tm_diff): Added.
 +      * log.c (log_version): Use MT response to tag date output.
 +      (Original patch from Bart Robinson <lomew@pobox.com>.)
 +
 +      * sanity.sh (importc, rcs, rcs4): Use TZ=GMT for the duration of these
 +      tests to obtain consistent times in output.
 +      (ISO8601DATE, ISO8601DATE1971, ISO8601DATE2034): Use more precise
 +      regex.
 +
 +2004-05-19  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_unchanged, serve_is_modified): Overwrite existing
 +      data in timefields.  Fixes CAN-2004-0396.
 +
 +2004-05-15  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
 +      (server_cleanup):  Clean up inchoherent comment.
 +
 +2004-05-15  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h, client.c, history.c, main.c, rcs.c, sanity.sh, server.c:
 +      Back out get_date() changes from 2004-04-28.
 +
 +2004-05-14  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (trailingslashes): During cleanup remove topfile,v to
 +      avoid problems in later tests (editor-1).
 +
 +2004-05-13  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
 +
 +2004-05-13  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (trailingslashes): New tests to expose a bug in CVS when
 +      paths are specified with trailing slashes.  This relates to TODO #205.
 +
 +2004-05-13  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * ls.c (ls): Use client_senddate() so the server is able to parse
 +      the date/time.
 +
 +2004-05-12  Derek Price  <derek@ximbiot.com>
 +
 +      * entries.c, subr.c: Gratuitous reformatting.
 +
 +2004-05-12  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Only
 +      special case "=" when it is the only character in a timestamp field.
 +      Gratuitous reformatting.
 +      * vers_ts.c (time_stamp_server): Check for NULL in a consistent manner.
 +      Gratuitous reformatting.
 +
 +2004-05-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (ls): Add some new tests of the ls command with dates
 +      specified and show an assertion error when an existing file is
 +      specifically requested.
 +      (Original patch from Alexander Taler <dissent@cvshome.org>.)
 +
 +2004-05-11  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (RCSKEYDATE): New regular expression to match the rcs
 +      keyword date format.
 +      (keyword,keywordlog): Use it.
 +      (RCSDELTADATE): New regular expression to match the internal rcs
 +      file format delta.
 +      (admin): Use it.
 +      (RCSDATE): Deleted.
 +      (ISO8601DATE}: A more exact regular expression for cvs log date
 +      output than the previous RCSDATE variable.
 +      (basica,basic2,branches,branches3,multibranch,import,importb,importc,
 +      join,modules,editor,binfiles,log,log2,keyword,multibranch2,admin,
 +      reserved,recase,multiroot,trace):
 +      Use ${ISO8601DATE} for cvs log output date patterns.
 +      (TOUCH1971,ISO8601DATE1971): New variables for test importc.
 +      (TOUCH2034,ISO8601DATE2034): Ditto.
 +      (importc): Use them. Isolate the touch commands in a sub-shell
 +      with TZ=GMT to make the time more predictable.
 +      (RAWRCSDATE2000A,RAWRCSDATE1996A,RAWRCSDATE1996B): New date variables.
 +      (ISO8601DATE2000A,ISO8601DATE1996A,ISO8601DATE1996B): Regexps to match.
 +      (rcs): Use them.
 +      (rcs4): Put the touch commands into sub-shells for temporary
 +      TZ=GMT use.
 +
 +2004-05-11  Derek Price  <derek@ximbiot.com>
 +
 +      * checkin.c (Checkin), commit.c (commit_filesdoneproc, remove_file,
 +      checkaddfile), rcs.c (RCS_checkin): Remove redundant commit messages.
 +      Suppress output when really_quiet.
 +      * sanity.sh: Update to match.
 +
 +2004-05-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (top-level): Rename to...
 +      (rstar-toplevel): ...this for clarity.
 +
 +2004-05-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
 +
 +2004-05-08  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * log.c (log_expand_revlist): Suppress warnings if really_quiet.
 +
 +2004-05-08  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Gratuitous reformatting.  Remove unnecessary prototype &
 +      unnecessary type cast.
 +
 +2004-05-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (basica): Remove unnecessary empty arguments.
 +
 +2004-05-07  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (fopen_case): Remove obsolescent prototype.
 +
 +2004-05-05  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Wait a second and retry if cvs-serv* directories are
 +      discovered to avoid race conditions on some systems.
 +      (Patch from Pavel Roskin <proski@gnu.org>.)
 +
 +2004-05-05  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c: Some gratuitous reformatting.
 +
 +2004-05-04  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c: Some gratuitous reformatting.
 +
 +2004-05-04  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Remove obsolete FIXME comment.
 +      (*): Some gratuitous reformatting.
 +
 +2004-05-03  Derek Price  <derek@ximbiot.com>
 +
 +      * src/sanity.sh (branches2-14-ls-4): Change expectations due to new -d
 +      flag.
 +
 +2004-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (ls): Add some new tests of ls -d flag.
 +      (Original patch from Alexander Taler <dissent@cvshome.org>.)
 +
 +      * ls.c (ls): Accept -d to show dead files.
 +      (ls_proc): Add W_ATTIC to start_recursion flags when user requests dead
 +      files.
 +      (ls_fileproc): Don't show dead files with -d.  Print "dead" in long
 +      listings for dead files.
 +
 +2004-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (ls_dirleaveproc): Return err.
 +      (Original patch from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-05-02  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (ls_print): Return 0.
 +      (Patch from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c (tag_check_valid): Treat a NULL repository the same as an empty
 +      one.
 +      * sanity.sh (branches2-ls-7): Verify absence of assertion failure.
 +
 +2004-04-29  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (branches2-rls-1): Reformat comment.
 +
 +2004-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcs2-5): Update to cope with new getdate.y.
 +
 +2004-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_LIBADD): Use libs for nanosleep & clock_gettime when
 +      necessary.
 +      * cvs.h: Remove get_date() proto and #include getdate.h.
 +      * client.c, history.c, main.c, rcs.c, server.c: Use new form of
 +      get_date().
 +      * Makefile.in: Regenerated.
 +
 +2004-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (set_lock), subr.c (sleep_past): Assume we have nanosleep.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (normalize_cvsroot): Use asnprintf in preference to other
 +      indirections.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      Add dirname module from GNULIB.
 +
 +      * add.c, client.c, commit.c, find_names.c, import.c, lock.c, ls.c,
 +      repos.c, server.c, subr.c: s/ISDIRSEP/ISSLASH/.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c, create_adm.c, entries.c, filesubr.c, hash.c, update.c:
 +      Gratuitious reformatting.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (ls_direntproc): Remove unneeded assertion.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (ls): Set client_prune_dirs in order to delete any directories
 +      created by the server.
 +      (ls_dirleaveproc): Always delete directories created by
 +      ls_direntproc().
 +      * sanity.sh (ls): Update to match.
 +
 +2004-04-27  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c: Remove unneeded prototypes.  Add `prune' option.
 +      (dircount): Remove static global.
 +      (set_tag, created_dir, ls_prune_dirs): New static globals.
 +      (ls): Handle new prune option.
 +      (ls_print_dir): Don't count directories, just remember not to print a
 +      blank line in front of the first one.  Don't list empty directories
 +      when prune is specified.
 +      (ls_delproc): New function to dispose of dirlist.
 +      (ls_direntproc): Reorganize to assume a directory without a parent must
 +      be listed.  Create missing directories a la update and checkout so that
 +      they may be processed.  Use new delproc when creating new list nodes.
 +      (ls_dirleave_proc): New function to remove directories created by
 +      ls_direntproc.
 +      (ls_proc): Call start_recursion() once for each argument so that
 +      ls_direntproc() may assume that any directory without a parent in the
 +      dirlist must be listed and others must not unless recursing.
 +      * sanity.sh (ls): New tests.
 +      (Thanks to a report from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-04-26  Derek Price  <derek@ximbiot.com>
 +
 +      * rsh-client.c (start_rsh_server): Don't rely on GNU argument
 +      processing capabilities in the RSH command.
 +      (Report from Mark Andrews <Mark_Andrews@isc.org>.)
 +
 +2004-04-26  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (dircount): s/long long/long/ for Windows.
 +
 +2004-04-23  Derek Price  <derek@ximbiot.com>
 +
 +      * ls.c (usage): Sync with manual.
 +
 +2004-04-23  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_SOURCES): Add ls.c.
 +      * client.c, subr.c: Move #include vasnprintf.h to...
 +      * cvs.h: ...here.
 +      (ls): Add prototype.
 +      * ls.c: New file.
 +      * main.c (cmds): Add ls & rls entries.
 +      * server.c (serve_ls, serve_rls): New functions.
 +      (requests): Add list, ls, rlist, & global-list-quiet.
 +      * sanity.sh (branches2): Test new cvs ls & rls commands.
 +      * Makefile.in: Regenerated.
 +      (Thanks for patches from Alexander Taler <dissent@cvshome.org>
 +      and Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-04-23  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (AM_CPPFLAGS): No, really, $(top_builddir)/lib.
 +      * Makefile.in: Regenerated.
 +
 +2004-04-23  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (AM_CPPFLAGS): Add the builddir/lib directory for
 +      generated header files.
 +      * Makefile.in: Regenerated.
 +
 +2004-04-22  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move include of fnmatch.h into lib/system.h with the other
 +        GNULIB headers.
 +
 +2004-04-22  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c: Use bool where appropriate.  Some gratuitous reformatting.
 +
 +2004-04-19  Derek Price  <derek@ximbiot.com>
 +
 +      * ignore.c: Gratuitous reformatting.
 +
 +2004-04-16  Derek Price  <derek@ximbiot.com>
 +
 +      * tag.c: Gratuitous reformatting.
 +
 +2004-04-16  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (connect_to_pserver): Use size_t instead of int as argument
 +      to asnprintf.  Some gratuitous reformatting.
 +      (Report from Mark <cm_mark@yahoo.com>.)
 +
 +2004-04-15  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c, commit.c, server.c: Gratuitous reformatting.
 +
 +2004-04-11  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (call_in_directory): Check paths the server sends us to make
 +      sure they are within a sandbox the user requested be updated.
 +      (is_valid_client_path, path_list_prefixed): New functions.
 +
 +2004-04-11  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_module): Don't allow up-level references in paths to
 +      step out of the repository.
 +      * sanity.sh (multiroot3): Update tests and add a few more.
 +
 +2004-04-11  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (get_proxy_port_number): Use CVS_PROXY_PORT as the default
 +      proxy port rather than CVS_AUTH_PORT.
 +
 +2004-04-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c (get_cvs_port_number): Use CVS_AUTH_PORT as the default
 +      for "cvspserver" rather than the CVS_PROXY_PORT.
 +      (Fixes parseroot-3r on machines without "cvspserver" in
 +      their /etc/services file.)
 +
 +2004-04-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (parseroot): s/oberon/$username/.
 +
 +2004-04-06  Derek Price  <derek@ximbiot.com>
 +
 +      Import Jim Kingdon's old, old patch which allows CVS to work via a
 +      web proxy server.
 +      * client.c (*): Some gratuitous restyling.
 +      (get_proxy_port_number): New function.
 +      (connect_to_pserver): Connect via proxy.
 +      * client.h (CVS_PROXY_PORT): Define.
 +      * root.c (parse_cvsroot): Parse method options.
 +      * sanity.sh (parseroot): Add new tests.
 +
 +2004-04-06  Derek Price  <derek@ximbiot.com>
 +
 +      * root.h (cvsroot_t): Move username, password, hostname, port inside
 +      CLIENT_SUPPORT ifdefs.
 +      * buffer.c, gssapi-client.c, root.c, sever.c: Add #ifdefs as necessary
 +      so that this will compile without client support and the root.h change.
 +      Some gratuitous restyling.
 +
 +2004-04-06  Derek Price  <derek@ximbiot.com>
 +
 +      * log.c, tag.c: Gratuitous restyling.
 +
 +2004-04-04  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (isabsolute): Move...
 +      * subr.c: ...here and use new ISABSOLUTE macro.
 +
 +2004-04-04  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_file_names): Cast out an unneeded const to avoid a
 +      warning.
 +
 +2004-04-03  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * cvsrc.c: Remove unused declarations.
 +      * run.c: Ditto.
 +      * server.h (gunzip_and_write): Declare.
 +
 +      * client.c (send_file_names): Remove unused variables.
 +
 +2004-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (client): Honor $keep.
 +
 +2004-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * log.c, patch.c, rcs.c: Gratuitous restyling.
 +
 +2004-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Use ISDIRSEP rather than testing paths against `/'
 +      directly.  Some gratuitos reformatting.
 +
 +2004-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
 +      running status.
 +
 +2004-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_file_names): Move code which calculates and sends
 +      Max-dotdot...
 +      (send_max_dotdot): ...to this new function.
 +      (send_files): Call send_max_dotdot.
 +      * sanity.sh (files-14): Expect .. in paths to work now.
 +      (status): Add a few new tests using `..'.
 +
 +2004-04-01  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c: Gratuitous restyling.
 +
 +2004-04-01  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c, cvs.h, server.c: Gratuitous restyling.
 +      * run.c (run_exec): Ditto, plus call cvs_flush{out,err}() instead of
 +      flushing stderr & stdout directly.
 +
 +2004-03-29  Derek Price  <derek@ximbiot.com>
 +
 +      * login.c, server.c: Gratuitous restyling.
 +
 +2004-03-25  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_file_names): Initialize string to NULL rather than to
 +      a single byte string containing only a null byte.
 +      * subr.c (xrealloc_and_strcat): If the destination string is NULL,
 +      simply allocate a new string.
 +      (Original report from Chris Bohn <cbohn@rrinc.com>.)
 +
 +2004-03-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (ISODATE): Fix ISO 8601 format comment.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (toplevel): Remove FIXME type comment and unneeded
 +      Emtptydir removal.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c: Some minor style cleanup.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c: Some minor style cleanup.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (top-level): Don't match most of the assertion since this
 +      string is often system dependent.
 +      (Thanks to Larry Jones <lawrence.jones@ugsplm.com>.)
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (top-level): Don't match the assertion's line number.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (top-level): New test to confirm assertion failure.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Only verify argument to -f when -f was passed.  Check for
 +      $TMPDIR/cvsXXXXXX temp files after each test.
 +
 +2004-03-22  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Verify that the argument to -f is really a test.
 +
 +2004-03-20  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * cvs.h: Change command_name to cvs_command_name to avoid conflict
 +      on HP-UX (incredibly, it declares a global command_name in prot.h,
 +      which is included from shadow.h, which we include in server.c).
 +      Change all references.
 +
 +      * subr.c (previous_rev): Fix == vs = typo.
 +
 +      * buffer.h: Add prototype for buf_empty.
 +
 +      * add.c (add): Remove unused variable.
 +
 +2004-03-20  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add, add_directory, build_entry), admin.c (admin_dirproc),
 +      checkin.c (Checkin), checkout.c (safe_location, build_dirs_and_chdir),
 +      client.c (add_prune_candidate, send_repository, send_a_repository,
 +      send_to_server, start_rsh_server, send_arg, send_modified,
 +      send_ignproc, send_filesdone_proc, send_dirent_proc,
 +      send_dirleave_proc, client_notify), commit.c (check_direntproc,
 +      check_filesdoneproc, checkaddfile, commit_direntproc,
 +      commit_dirleaveproc, lock_RCS, precommit_proc, find_data,
 +      find_dirent_proc, find_ignproc, find_filesdoneproc), create_adm.c
 +      (Create_Admin), cvsrc.c (read_cvsrc), diff.c (diff_dirproc,
 +      diff_filesdoneproc, diff_dirleaveproc), edit.c (onoff_filesdoneproc,
 +      mark_up_to_date, editor_set, notify_proc_args, notify_proc, notify_do,
 +      notify_check), entries.c (Scratch_Entry, Register, WriteTag),
 +      expand_path.c (expand_variable, expand_path), fileattr.c
 +      (fileattr_startdir), filesubr.c (mkdir_if_needed, xchmod,
 +      last_component), history.c (history_write), ignore.c (ignore_directory,
 +      ignore_files), import.c (get_comment, add_rcs_file, expand_at_signs),xi
 +      lock.c (lock_filesdoneproc), log.c (log_dirproc), logmsg.c
 +      (logfile_write, rcsinfo_proc, update_logfile_proc, editinfo_proc,
 +      verifymsg_proc, do_editor, do_verify, Update_Logfile), main.c (main
 +      program_name, program_path, command_name), parseinfo.c (Parse_Info),
 +      patch.c (patch_dirproc), rcs.c (RCS_getdatebranch, rcs_lockfilename,
 +      RCS_parse, RCS_setattic, RCS_getversion, RCS_gettag, RCS_getbranch,
 +      RCS_getdate, RCS_datecmp, RCS_getrevtime, RCS_setexpand,
 +      expand_keywords, RCS_checkout, RCS_addbranch, RCS_checkin, RCS_lock,
 +      RCS_cmp_file, RCS_deltas, rcs_lockfilename, make_file_label),
 +      rcscmds.c (RCS_output_diff_options, call_diff, RCS_merge,
 +      RCS_exec_rcsdiff, diff_exec), recurse.c (start_recursion, do_recursion,
 +      do_file_proc), remove.c (remove_dirproc), repos.c (Name_Repository,
 +      Short_Repository), root.c (Name_Root, Create_Root), run.c
 +      (piped_child), server.c (output_dir, server_register,
 +      server_checked_in, server_update_entries, server_copy_file,
 +      server_set_entstat, server_clear_entstat, server_set_sticky,
 +      server_template, cvs_output_tagged), status.c (status_dirproc), subr.c
 +      (make_message_rcslegal), tag.c (pretag_proc, tag_dirproc,
 +      check_fileproc, check_filesdoneproc, tag_fileproc, val_direntproc),
 +      update.c (update_dirent_proc, update_dirleave_proc, update_ignproc,
 +      update_filesdone_proc, isemptydir), vers_ts.c (time_stamp_server,
 +      time_stamp), watch.c (watch_modify_watchers, addremove_filesdoneproc),
 +      zlib.c (read_and_gzip): Make most string args const, mainly in the
 +      interest of preserving repository & updatedir but including some
 +      collateral damage.  Update a few functions to comply with new
 +      requirement.  Some style fixes.
 +      * client.h, cvs.h, edit.h, fileattr.h, rcs.h, server.h, update.h,
 +      watch.h: Update prototypes to match.
 +
 +2004-03-20  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (conflicts2): s/cvs/$testcvs/.
 +
 +2004-03-20  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Correct longstanding resurrection bugs.  Remove FIXME
 +      comment to this effect.  Set mode and Entries timestamps of resurrected
 +      files correctly.
 +      * sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
 +      update-p): Update tests to compensate.  Remove FIXCVS comments.
 +
 +2004-03-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (gserver_authenticate_connection): Handle large
 +      GSSAPI packets dynamically.
 +      (Bug report from Douglas Engert <DEEngert@anl.gov>)
 +
 +2004-03-19  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
 +      prototype arguments to avoid potential conflicts with implementations.
 +
 +2004-03-18  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (pathname_levels): Make string argument const.
 +      * subr.c (pathname_levels): Simplify function.
 +
 +2004-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (precommit_list_to_args_proc), logmsg.c (do_editor), subr.c
 +      (format_cmdline), tag.c (pretag_list_to_args_proc):
 +      s/atribute/attribute/.
 +      (Report from Matthew Doar <matt@trpz.com>.)
 +
 +2004-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (pathname_levels): Get it right this time.
 +
 +2004-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (pathname_levels): Remove incorrect assertion and just
 +      return 0 when pathname is NULL.
 +
 +2004-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
 +      and remove FIXME comment to that effect.
 +
 +2004-03-16  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Update the --version Copyright (c) string to
 +      include 2004.
 +
 +2004-03-15  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * release.c (release): Add missing xmalloc of update_cmd.
 +
 +2004-03-15  Derek Price  <derek@ximbiot.com>
 +
 +      * release.c (release): Enable authentication and encryption for a child
 +      update process when necessary.
 +      (Original patch from Dan Russell <russelld@aol.net> via Hal Mahaffey
 +      <HMahaffey@aol.com>.)
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Only call server_updated() when we actual have a new
 +      resurrected file for the client.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (previous_rev, write_letter): New prototypes.
 +      (struct file_info): Move to before the write_letter prototype.
 +      * add.c (add): Allow resurrection of files which used to exist on a
 +      branch.
 +      * subr.c (previous_rev): New function.
 +      * update.c: Consolidate like pragmas.
 +       (write_letter): Remove prototype.  Remove static declaration.
 +      * sanity.sh (resurrection): New tests.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (remove_file): Print the actual previous revision instead of
 +      a branch number.
 +      * sanity.sh: Update to match.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
 +      open in the error message.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff_fileproc): Allow diffing of new files against arbitrary
 +      revisions instead of assuming that there is no RCS archive file.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Update serveral tests to use $CPROG & $SPROG correctly.
 +
 +2004-03-14  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Update file resurrection messages for consistency.
 +      * sanity.sh: Update to match.
 +
 +2004-03-13  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server_updated): Fix header comment.
 +
 +2004-03-13  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_SOURCES): Remove error.h since it is now included in
 +      lib.
 +      * Makefile.in: Regenerated.
 +
 +2004-03-09  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * run.c: Move #includes required for cmdline_escape and friends...
 +      * subr.c: ...to here.
 +
 +2004-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * run.c (struct cmdline_bindings, cmdline_bindings_hash_node_delete,
 +      cmdline_escape, cmdline_quote, format_cmdline): Move...
 +      * subr.c: ...here so they will compile under Windows.
 +
 +2004-03-03  Derek Price  <derek@ximbiot.com>
 +
 +      * import.c (import): Check that the module name specified by the user
 +      does not contain `CVS' as a directory name.
 +      * ignore.c (ign_add): Never cease ignoring "CVS" - it is a reserved
 +      name.
 +      (Original patch from Dan Peterson <dbpete@aol.com>.)
 +
 +      * sanity.sh (import-CVS): New tests for the above.
 +
 +2004-02-29  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * import.c (expand_at_signs): Change type of len to size_t.
 +      * subr.c (resolve_symlink): Move declaration of newname inside
 +      #ifdef, clean up coding style.
 +      * zlib.c (gunzip_and_write): Fix up potential overlow problems.
 +      (read_and_gzip): Add explicit casts to placate paranoid compilers.
 +
 +2004-02-28  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * sanity.sh (join6): New tests for previous fix.
 +
 +      * update.c (join_file): One more fix to avoid dereferencing NULL.
 +      (Reported by Steve McIntyre <steve@einval.com>.)
 +      * sanity.sh (join6): New tests for above.
 +
 +2004-02-25  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * update.c (join_file): Fix optimization to avoid dereferencing NULL.
 +      (Reported by Steve McIntyre <steve@einval.com>.)
 +
 +2004-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      No longer require directories specified to `checkout -d' to exist.
 +
 +      * checkout.c (safe_location): Only confirm that destination is a safe
 +      location for directories that already exist since we can assume that
 +      creating directories under such a safe directory is acceptable.
 +      (dir_to_build): Remove just_chdir member.
 +      (checkout_proc): Add trace.  No longer set dir_to_build->just_chdir.
 +      Minor reformatting.
 +      (build_dirs_and_chdir): Don't create or register directories that are
 +      not created.
 +      * sanity.sh (*): Update tests to account for new behavior.
 +
 +2004-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (buf_empty): New function.
 +      * server.c (server): Check for unread data in buffer before closing.
 +
 +2004-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * release.c (release): Restore the initial directory before and after
 +      calling various sections of code that expect it to prevent corruption
 +      of CVS/Entries files on release of a subdir and tell unedit() what to
 +      release.
 +      * sanity.sh: Add test case for release.c fix.
 +      (Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
 +
 +      * client.c (last_entries): Move global variable...
 +      (call_in_directory): ...here (now a local variable).  Remove test that
 +      always evaluates to true.
 +      (last_dir_name): Remove unused global variable.
 +
 +2004-02-24  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * filesubr.c (xresolvepath): Fix crash in error case.
 +      (Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
 +
 +2004-02-24  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (crerepos): Fix it so that it ignores the user's
 +      .cvsrc file (.cvsrc "checkout -r" used to cause the "rm -r 1"
 +      command to print warnings and wait for input).
 +      (Original patch from Matthew Ogilvie  <mmo9317bd@mailcan.com>.)
 +
 +      * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
 +      s/_SAVED\>/_save/ for consistency.
 +
 +2004-02-24  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (taginfo-newfmt-examine-2): Correct expected results.
 +
 +2004-02-23  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * sanity.sh (taginfo-examine-1): Correct expected results.
 +
 +2004-02-20  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (expand_string): Use x2realloc() from GNULIB for core
 +      functionality.
 +
 +2004-02-20  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (set_nonblock_fd): Move back to...
 +      * server.c: ...here.
 +      * cvs.h: Remove protos for the above two functions.
 +      * buffer.c (stdio_buffer_shutdown): Remove unexessary and possibly
 +      dangerous check for unread data on a pipe with a nonblock read.
 +
 +2004-02-20  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * tag.c (check_fileproc): Remove unused variable.
 +
 +2004-02-20  Derek Price  <derek@ximbiot.com>
 +
 +      * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
 +      update.c: Remove VIM editor commands.
 +
 +2004-02-20  Derek Price  <derek@ximbiot.com>
 +
 +      Import xalloc module from GNULIB, as well as its remaining unimported
 +      dependency, the exitfail module.
 +
 +      * cvs.h: #include "xalloc.h".
 +      * subr.c (xmalloc, xrealloc, xstrdup): Remove these functions.
 +
 +2004-02-20  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * hash.h (struct node): Change data from char * to void *, change
 +      all callers.
 +
 +      * run.c (cmdlinequote, cmdlineescape): Use prototype in definition
 +      to match cvs.h.
 +      (format_cmdline): UNIQUE_*_TYPE_* macros imply HAVE_*, so no need
 +      to check for both.  Remove duplicate code for size_t and ptrdiff_t.
 +
 +      * tag.c (check_fileproc): Remove spurious invalid cast, clean up
 +      coding style.
 +
 +      * commit.c (precommit_list_proc): Remove vestigial prototype.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * run.c (format_cmdline): Don't accept printf `L' modifier at all when
 +      long doubles are not available.  Allow UNIQUE_FLOAT_TYPE_LONG_DOUBLE to
 +      imply HAVE_LONG_DOUBLE.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * run.c: Remove include of stddef.h - it is already included via
 +      lib/system.h.
 +
 +2004-02-19  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * run.c: Include the appropriate headers for wchar_t and wint_t,
 +      create a typedef for convproc and use it (required for va_arg),
 +      add explicit comparisons to keep gcc -Wall happy, remove unused
 +      variables.
 +      (format_cmdline): Fix bugs and portability problems.
 +      * tag.c: Remove unused global variable.
 +      (pretag_proc): Correct call to format_cmdline: %hhc is not a valid
 +      printf format (should just be %c) and NULL must be cast to the correct
 +      type in a varargs call.
 +      (pretag_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
 +      remove unused variable, add auxiliary variable to simplify code,
 +      clean up coding style.
 +
 +      * commit.c (precommit_list_to_args_proc): Initialize arg to keep
 +      gcc -Wall happy, remove unused variable, clean up coding style.
 +      (precommit_proc): Cast NULL to the correct type in varargs call.
 +      * edit.c (notify_proc): Remove unused variables.
 +      * expand_path.c (expand_path): Initialize inquotes, add explicit
 +      comparison to keep gcc -Wall happy.
 +      * logmsg.c: Remove unused global variables and function decl.
 +      (do_verify): Add explicit comparison to keep gcc -Wall happy,
 +      clean up coding style.
 +      (logmsg_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
 +      remove unused variable.
 +      (logfile_write): Cast NULL to the correct type in varargs call.
 +      (verifymsg_proc): Cast NULL to the correct type in varargs call.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * run.c (format_cmdline): Correct some typos and cut/paste errors.
 +      Switch on HAVE_WINT_T for Solaris.  Switch on HAVE_INTMAX_T for other
 +      pre-C99 platforms.
 +
 +2004-02-19  Derek Price <derek@ximbiot.com>
 +
 +      * sanity.sh (crerepos): Correct comment.
 +
 +2004-02-19  Derek Price <derek@ximbiot.com>
 +
 +      * logmsg.c (verifymsg_proc), run.c (format_cmdline): Plug memory leak.
 +      (Report from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +      * run.c (format_cmdline): Simplify two expressions.
 +
 +2004-02-19  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * login.c (password_entry_operation): Initialize line.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (tests): Add errmsg3.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (errmsg3): Don't create directories named `tmp' in
 +      $TESTDIR to avoid conflicts with the default value of $TMPDIR.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (crerepos): Don't create directories named `tmp' in
 +      $TESTDIR to avoid conflicts with the default value of $TMPDIR.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
 +      dotest functions.
 +
 +2004-02-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: No longer allow user override of $tmp.  Set $TMPDIR to a
 +      directory under $TESTDIR, as for $HOME, but still allowing for user
 +      override.  Check for cvs-serv* directories under $TMPDIR rather than
 +      $tmp at the end of the script.
 +
 +2004-02-19  Derek Price <derek@ximbiot.com>
 +
 +      * run.c (cmdline_quote): Plug memory leak.
 +      (format_cmdline): Don't bother with freeing memory before a call to
 +      error() which will exit.  Plug memory leak.
 +      (Report from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-02-18  Derek Price <derek@ximbiot.com>
 +
 +      * run.c (format_cmdline): Move variable declaration to a position more
 +      acceptable to the ANSI C standards.
 +
 +2004-02-17  Derek Price <derek@ximbiot.com>
 +
 +      * commit.c (precommit_proc): Installed new format_cmdline() instead
 +      of the old, nonuniform info file interpreter.  Support for new user
 +      data field in Parse_Info() callbacks.  Use cmdlinequote() instead of c.
 +      10 lines of quote processing.
 +      * cvs.h (expand_path):  Update proto.
 +      (UseNewInfoFmtStrings): New global variable to keep track of the config
 +      option of the same name.
 +      (format_cmdline): Added function prototypes and type definitions to
 +      support this new function.
 +      * edit.c (notify_proc):  Added the formatsafe flag to an
 +      expand_path() call.  Installed new format_cmdline() instead of the old,
 +      nonuniform info file interpreter.  Support for new user data field in
 +      Parse_Info() callbacks.
 +      * expand_path.c (expand_path):  Added the formatsafe flag to and some
 +      code to double up '%'s in variable subs if formatsafe is set on the
 +      presumption that the variables that expand_path() subs into the string
 +      are already working paths to files or whatever.  It should be quoting
 +      too but I haven't done that yet.
 +      * logmsg.c (title_proc, logmsg_list_to_args_proc, update_logfile_proc,
 +      rcsinfo_proc, editinfo_proc, verifymsg_proc, logfile_write): Installed
 +      new format_cmdline() instead of the old, nonuniform info file
 +      interpreter.  Support for new user data field in Parse_Info()
 +      callbacks.
 +      * main.c:  Added global UseNewInfoFmtStrings variable to keep track
 +      of the config file option of the same name (see above).
 +      * mkmodules.c (commitinfo_contents, editinfo_contents,
 +      taginfo_contents, verifymsg_contents, loginfo_contents: Document new
 +      format string features.
 +      (config_contents): Added new UseNewInfoFmtStrings option with default
 +      of yes.
 +      * modules.c (do_module):  Added the formatsafe flag to an
 +      expand_path call.
 +      * parseinfo.c (Parse_Info, parse_config):  Added the formatsafe flag
 +      to an expand_path() call.  Added handling for UseNewInfoFmtStrings
 +      option in the config file.  Set to no, modifications needed to set to
 +      yes are harmless.  Set to yes, modifications needed for full
 +      compatibility cause deprecation warnings.  Eliminating deprecation
 +      warnings should allow executable to be compile with
 +      --disable-old-info-format-support passed into configure.  Added user
 +      data field (closure) which is passed through into callproc to
 +      Parse_Info().
 +      * run.c (format_cmdline): New function to provide uniform handling of
 +      *info file scripting hook lines.
 +      (cmdline_bindings_hash_node_delete,
 +      (cmdlineescape, cmdlinequote): New functions to "quote" and "escape"
 +      strings like you would to get them past a command line parser as an
 +      argument.
 +      (run_setup): Made quote aware
 +      * sanity.sh (info, taginfo, config, pserver, lockfiles, reserved):
 +      New tests for the new format string functionality as well as the
 +      support of backwards compatibility.  Had to alter a few of the tests to
 +      not care which version of some of the (shared) config files they'd just
 +      checked in so that the tests can be run in any order.
 +      (taginfo): Add tests for file names with spaces in them.
 +      * server.c (template_proc): Support for new user data field in
 +      Parse_Info() callbacks.
 +      * tag.c (pretag_proc): Installed new format_cmdline() instead of the
 +      old, nonuniform info file interpreter.  Add support for new user data
 +      field in Parse_Info() callbacks.
 +      (check_fileproc): Add proper tag_info struct as node data rather than a
 +      single revision number in a string and pass tlist properly rather than
 +      in a global variable.
 +      (check_filesdone_proc): Altered to use non-global tlist.
 +      (tag_delproc): Handle new tag_info struct data members.
 +      (pretag_list_to_args_proc): Ditto.
 +      (pretag_list_proc): Deleted.
 +      * wrapper.c (Parse_Info): Added the formatsafe flag to an expand_path()
 +      call.
 +
 +2004-02-17  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Check for $PWD != $TESTDIR after each set of tests rather
 +      than once at the end.  Check that there are no cvs-serv* directories in
 +      $tmp after each set of remote tests.
 +
 +2004-02-17  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Don't check for an empty $TESTDIR - if $TESTDIR was empty
 +      then the preceding call to mkdir would have failed anyhow.
 +
 +2004-02-17  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * log.c (rlog_proc): Fix (harmless) uninitialized variable.
 +
 +      * sanity.sh (basicc): Add tests pointing out defective handling
 +      of the Entries file.
 +
 +2004-02-17  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (build_dir_and_chdir): Expand header comment.
 +
 +2004-02-15  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * annotate.c (rannotate_proc): Plug a memory leak.
 +      * log.c (log_fileproc): Ditto.
 +      * tag.c (tag_fileproc): Ditto.
 +      * update.c (checkout_file): Ditto.
 +      * server.c (server_updated): Do not buf_free (filebuf) here.
 +
 +2004-02-15  Derek Price  <derek@ximbiot.com>
 +
 +      Make error() accessible to the GNULIB functions.
 +
 +      * error.h: Move into the ../lib directory.
 +
 +2004-02-13  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (Reader_Lock, lock_dir_for_write): Plug memory leaks.
 +      (Report from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2004-02-13  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (remove_lock_files): Minor refactoring.
 +
 +2004-02-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * lock.c (lock_exists): Plug a memory leak.
 +
 +2004-02-12  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c: Reformat comment and line to fit in 80 chars.
 +
 +2004-02-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (do_cvs_command): Plug a memory leak.
 +      (Use buf_free() rather than free().)
 +
 +2004-02-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (lockfiles): Reformat a comment for 80 characters.  Fix a
 +      few minor issues that caused tests to fail in remote mode.  Clean up
 +      after test.
 +
 +2004-02-12  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (unlock_proc): Don't expect an int in closure as it is not
 +      condoned in the C standard.  For now, just assume zero since this
 +      function is currently only called from one location.
 +      (remove_locks): Pass NULL for the closure argument to unlock_proc().
 +
 +2004-02-12  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (unlock_proc): Use closure as true/false free_repository
 +      free_repository argument to remove_lock_files.  Move to a position
 +      above remove_locks and delete prototype.
 +      (remove_locks): Don't free storage, as specified in our header comment,
 +      in order to avoid a seg fault that could otherwise occur after waiting
 +      on a lock.
 +      * sanity.sh (lockfiles): Add tests for all operation (read, read
 +      promotably, or write) and lock combinations.
 +      (Original report from Mark <cm_mark@yahoo.com>.)
 +
 +2004-02-12  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * modules.c (_do_module): Rename to my_module to avoid reserved name.
 +      * stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
 +
 +2004-02-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * commit.c (find_fileproc): Plug a memory leak.
 +
 +2004-02-12  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * lock.c (_lock_simple_remove): Rename to remove_lock_files to avoid
 +      reserved name.  Fix typo (free => free_repository).
 +      (lock_simple_remove): Delete; use remove_lock_files directly.
 +      (lock_simple_remove_and_free): Ditto.
 +      (_lock_exists): Rename to lock_exists.
 +
 +2004-02-11  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * root.c (parse_cvsroot): Set hostname in fork mode for error messages.
 +      * buffer.c (stdio_buffer_shutdown): Undo previous change.
 +
 +2004-02-11  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * buffer.c (buf_free): Plug a memory leak.
 +      * commit.c (checkaddfile): Ditto.
 +
 +      * server.c (fd_buffer_shutdown): Avoid a double free().
 +
 +      * parseinfo.c (parse_config): Fix comments.
 +
 +2004-02-11  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
 +      print current_parsed_root->hostname when using the fork method.
 +
 +2004-02-11  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (do_cvs_command): Simplify stream & pipe closing.
 +      (Suggestion from Eric Siegerman <erics@telepres.com>.)
 +
 +      * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
 +
 +2004-02-11  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (checkout_proc): Remove unneeded variable and enclosing
 +      block.
 +      * modules.c (_do_modules): Minor whitespace change.
 +
 +2004-02-10  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (lock_simple_remove): Move core functionality...
 +      (_lock_simple_remove): ...here.
 +      (lock_simple_remove_and_free): New function.
 +      (set_promotable_lock): Use new function to avoid freeing data that will be
 +      reused.
 +
 +2004-02-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
 +      (set_block_fd, set_nonblock_fd): Move to...
 +      * subr.c: ...here.
 +      * cvs.h: Add protos for the above two functions.
 +      * buffer.c (stdio_buffer_shutdown): Replace fgetc() which checked for
 +      unread data on a pipe with a nonblock read.
 +
 +2004-02-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (do_cvs_command): Have the server child close all the pipes
 +      but the flow control pipe and wait on an EOF on the flow control pipe
 +      from the parent when done to avoid a race condition that could
 +      otherwise generate a SIGPIPE for the parent before the SIGCHILD when
 +      the other pipes were so full after a child exited that the parent
 +      attempted to write a stop byte to the flow control pipe.
 +      (Original report from <jesse_off@stchome.com>.)
 +
 +2004-02-10  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (lock_simple_remove): Add comments.  Use critical sections to
 +      set some variables that might otherwise cause trouble.
 +      (struct lock): Correct comment.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      Attempt to improve readability of code.
 +
 +      * lock.c (promotable_lock): Rename to...
 +      (set_promotable_lock): ...this.
 +      (set_promotablelock_proc): Expand header comment.
 +      (Promotable_Lock): Rename to...
 +      (lock_tree_promotably): ...this.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (set_writelock_proc): Remove unused prototype.
 +      (promotable_lock): Remove unneded whitespace.
 +      (Promotable_Lock): Correct comments.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (co-d): Update comments and tests to reflect the current
 +      state of my side of my discussion with Larry Jones on how these
 +      commands should behave.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (emptydir): Add two new tests for how modules -d behaves
 +      when a directory already exists in the user's workspace.
 +      (emptydir): Add --keep functionality.
 +
 +2004-02-09  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (co-d): New test to prove `co -d' failure case.
 +
 +2004-02-05  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (recase): Fix typo that creeped in somehow between my last
 +      test run and my commit.
 +
 +2004-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_modules): Move content to and make this function a
 +      wrapper for...
 +      (_do_modules): ...this new function which can watch for infinite loops
 +      in alias modules.
 +      * stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
 +      unshift_string, shift_string): New
 +      functions.
 +      * stack.h (push_string, pop_string, unshift_string, shift_string: New
 +      prototypes.
 +      * sanity.sh (modules): Add check for nested alias loops.
 +
 +2004-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (recase): Update test names and comments for clarity and
 +      consistency.
 +
 +2004-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (recase): Restore some cruft necessary when clients know
 +      they are on case insensitive systems.
 +
 +2004-02-03  Derek Price  <derek@ximbiot.com>
 +
 +      Preserve the case of checked out directories in a path as well as file
 +      names for client communication with the server.
 +
 +      * Makefile.am (cvs_SOURCES): Add stack.c & stack.h.
 +      * stack.c, stack.h: New files.
 +      * cvs.h: Include stack.h.
 +      * client.c (send_file_names): Preserve the case of directories in a
 +      path as well as file names for communication with the server.
 +
 +      * Makefile.in: Regenerated.
 +
 +2004-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (find_fileproc): Update error message for consistency.
 +      * sanity.sh (basica): Update to compensate.
 +
 +2004-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * classify.c (Classify_File): Update header comment block and reformat
 +      prototype for readability in 80 character widths.
 +
 +2004-02-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (*): Update tests for the new status message from update.c.
 +
 +2004-02-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (join-rm): New test for issue #104 & #159.
 +
 +2004-02-02  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (join_file): Correct status message for consistency.
 +
 +2004-02-02  Derek Price  <derek@ximbiot.com>
 +
 +      Continue removal from server of handling of case insensitive clients.
 +
 +      * cvs.h: Remove extern declaration of ign_case.
 +      * ignore.c (ign_case): Remove declaration.
 +      (ign_name): Remove support for ign_case.
 +      * server.c (serve_case): Ditto.
 +      (requests): No longer support the "Case" request.
 +      * rcs.c (locate_rcs): Remove reference to GLOBAL in function header
 +      comment.
 +
 +2004-02-02  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_file_names): Restore prescribed client handling of the
 +      FILENAMES_CASE_INSENSITIVE switch.
 +
 +2004-01-25  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (kserver_authenticate_connection): Fix call to
 +      switch_to_user().
 +      (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2004-01-22  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_module): Strip trailing slashes before checking for
 +      infinite alias loops.
 +      * sanity.sh (modules): Tests for response to infinite alias loops.
 +
 +2004-01-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * logmsg.c (do_verify): Eliminate double-free bug.
 +      (Original patch from Gerald Combs.)
 +
 +2004-01-12  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * lock.c (lock_name): Deal with potentially NULL string pointers
 +      in calls to TRACE.
 +      (promotable_lock): Ditto.
 +      (set_lock): Ditto.
 +      * sanity.sh (trace): Update to latest patterns.
 +
 +2004-01-07  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * checkout.c (safe_location): Remove unused variable(s).
 +      * lock.c (lock_tree_for_write): Ditto.
 +      * rcs.c (RCS_checkin): Ditto.
 +      * subr.c (compare_revnums): Ditto.
 +      * tag.c (tag_check_valid): Ditto.
 +      * mkmodules.c (init): Initialize err and return it rather than 0.
 +      * server.c (do_cvs_command): Only define and set max_command_fd if
 +      we're actually going to use it.
 +
 +2004-01-06  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * socket-client.c (socket_buffer_initialize): Fix argument
 +      declaration for VMS compiler.
 +      (Patch submitted from Michael Lemke
 +      <ai26@sternwarte.uni-erlangen.de>.)
 +
 +2004-01-01  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
 +      overruns, use names for magic numbers.
 +      (Original patch from Jeff Downs <heydowns@borg.com>.)
 +
 +2003-12-17  Larry Jones  <lawrence.jones@ugsplm.com>
 +
 +      * main.c (main): Don't reference isremote without CLIENT_SUPPORT.
 +      (Patch from Jim Salter <jsalterjim@earthlink.net>.)
 +
 +2003-12-18  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (switch_to_user): SysLog attempts to root from pserver.
 +
 +2003-12-18  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (switch_to_user): Don't allow CVS to run as root in pserver
 +      mode.
 +      (Original patch from Wichert Akkerman via Bradley M Kuhn
 +         <bkuhn@fsf.org>.)
 +      * sanity.sh (pserver): Check for bad root error message.
 +
 +2003-12-17  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * run.c (close_on_exec): fcntl is not documented to return 0 for
 +      success (and QNX doesn't), only -1 for error.
 +      (Patch from George Refseth <george.refseth@arxi.no>.)
 +
 +2003-12-10  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcs.c: Cleanup HAVE_MMAP code in preparation for falling back to
 +      stdio if mmap fails on large files.
 +
 +2003-12-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * tag.c (tag_check_valid): Fix typo.
 +      (Patch from Rob Clevenger <rob@robsite.org>.)
 +
 +2003-12-09  Derek Price  <derek@ximbiot.com>
 +
 +      Rewrite code to use promotable write locks to avoid locking more than a
 +      directory at a time for a full write.
 +
 +      * cvs.h (lock_tree_for_write): Rename to...
 +      (lock_tree_promotably): ...this.
 +      (Simple_Lock_Cleanup): New prototype.
 +      * lock.c: Remove some unneeded prototypes.  Some function
 +      reorganization.
 +       (struct lock): Make repository const.  Add file1 & file2 to
 +      track lock names.  Keep track of when repository needs to be freed.
 +      (promotablelock, global_writelock): New globals.
 +      (locked_dir, locked_list): Remove unneeded globals.
 +      (lock_name): Take const args.
 +      (remove_locks): Update comment.  Move readlock cleanup...
 +      (Simple_Lock_Cleanup): ...to this new function which also cleans up
 +      writelocks.
 +      (Lock_Cleanup): No need to clean up after the obsolete locked_dir &
 +      locked_list.
 +      (lock_simple_remove): Use new lock name cache.  Set lock->repository to
 +      NULL to show locks are removed.  Free repository name when necessary.
 +      (Reader_Lock): Copy xrepository argument so we do not need to trust the
 +      caller not to dispose of it.  Use lock name cache.  Factor code to set
 +      the global readlock variable...
 +      (set_readlock_name): ...to this new function so it can be used by
 +      promotable_lock too.
 +      (readers_exist): Factor common code and make wrapper for...
 +      (_lock_exists): ...this new function.
 +      (promotable_exists): Wrapper for _lock_exists().
 +      (write_lock): Rename to...
 +      (promotable_lock): ...this and tweak for new behavior.
 +      (set_writelock_proc): Rename to...
 +      (set_promotablelock_proc): ...this and tweak for new functionality.
 +      (Write_Lock): Rename to...
 +      (Promotable_Lock): ...this and tweak for new functionality.
 +      (set_lock): Add trace.
 +      (lock_tree_for_write): Rename to...
 +      (lock_tree_promotably): ...this and tweak for new functionality.
 +      (lock_dir_for_write): Lock only one directory at a time in a promotable
 +      lock aware fashion using new interfaces.
 +      * admin.c, commit.c, edit.c, watch.c:
 +      s/lock_tree_for_write/lock_tree_promotably/.
 +      s/CVS_LOCK_NONE/CVS_LOCK_WRITE/ in calls to start_recursion that used
 +      to rely on lock_tree_for_write() to obtain their write locks.  Remove
 +      some unnecessary typecasting.
 +      * recurse.c (do_recursion): Use Simple_Lock_Cleanup() rather than
 +      Lock_Cleanup to avoid removing promotable locks.
 +      * server.c (do_cvs_command): Add traces.
 +      (server): Add new way to sleep the parent server process for connecting
 +      a debugger.
 +      * sanity.sh (lockfiles, multiroot2): Update tests to accomodate minor
 +      trace inconsistencies.
 +
 +2003-12-09  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (trace): Remove trace from the set of tests to run.
 +      The regexps used take an excessive amount of time and need to
 +      be simplified.
 +
 +2003-12-08  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (rcsbuf_ftell): Rename to...
 +      (rcsbuf_ftello): this.
 +      (rcsbuf_cache_open): Use off_t rather than long as the pos
 +      argument. Use fseeko rather than fseek and ftello rather than
 +      ftell.
 +      * rcs.h (struct rcsnode): delta_pos is now an off_t type.
 +
 +2003-12-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (recase): Add some clarifying comments.
 +
 +2003-12-03  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * expand_path.c (expand_variable): Expand ${CVSROOT} to just the
 +      directory like it's supposed to be.
 +      (Reported by Michael S. Tsirkin <cvs1@misha.eml.cc>.)
 +
 +2003-11-26  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
 +
 +2003-11-26  Derek Price  <derek@ximbiot.com>
 +
 +      Remove server support for case insensitive clients.  Includes some
 +      merges from 1.11.x.
 +
 +      * add.c, client.c, cvs.h, rcs.c, subr.c: Remove unnecessary support for
 +      case insensitive clients.
 +      * sanity.sh (tests): Add recase.
 +      (recase): New test of cases that might be expected to cause problems
 +      with a heterogeneous mix of case sensitive and case insensitive clients
 +      and servers.
 +
 +2003-11-26  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
 +      intermittent conniptions.
 +
 +2003-11-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (binfiles2): Correct yet another Cygwin difficulty.
 +
 +2003-11-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (release): Perform forgotten cleanup.
 +
 +2003-11-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (env): Enable to work with $remotehost.
 +
 +2003-11-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (trace-19): Separate stdout and stderr to workaround
 +      problems on SGI IRIX.
 +      (crecrepos): Use 'unset DISPLAY' to avoid problems with ssh
 +      X11Forwarding configurations.
 +
 +2003-11-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (pserver, server, server2): Save $servercvs and use the
 +      local $testcvs for these tests.
 +
 +2003-11-25  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (commit_fileproc): Reword comment.
 +
 +2003-11-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
 +      considerably between platforms.
 +
 +2003-11-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (CVS_RSH): Read config file sooner to pickup RSH_DFLT
 +      for use in setting CVS_RSH variable.
 +      * sanity.config.sh.in (RSH_DFLT): Use new substitution variable.
 +      * Makefile.am (localcheck, remotecheck): Depend on sanity.config.sh.
 +      * Makefile.in: Regenerate for new Makefile.am.
 +
 +      * update.c (join_file): Deal with rev1 == NULL due to rev1 merge tag
 +      being missing from the current file.
 +      * sanity.sh (join6): New tests for this case.
 +      (trace): Renumber test cases.
 +
 +2003-11-24  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * diff.c (diff_file_nodiff): use_rev1 does *not* imply that diff_rev1
 +      is not null, diff_date1 could be set instead (ditto for use_rev2).
 +      (Reported by <jnelson-cvsbug@jamponi.net>.)
 +
 +2003-11-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * client.c (connect_to_forked_server): Avoid passing NULL strings
 +      to TRACE. Calling printf("%s",NULL) is not defined and may
 +      segfault on some systems.
 +      * diff.c (diff_file_nodiff): Ditto.
 +      * main.c (main): Ditto.
 +      * modules.c (do_module): Ditto.
 +      * patch.c (patch_proc): Ditto.
 +      * rcs.c (RCS_cmp_file): Ditto.
 +      * recurse.c (start_recursion): Ditto.
 +      * root.c (parse_cvsroot): Ditto.
 +      * server.c (dirswitch, server_pathname_check, dirswitch,
 +      serve_directory):  Ditto.
 +      * tag.c (rtag_proc, check_fileproc, tag_check_valid): Ditto.
 +      * sanity.sh (trace): New testcase to test the -t option.
 +      (RCSDATE, ISODATE, PFMT): New variables in aid of the trace tests.
 +      (dotest_fail_sort): New function in aid of the trace tests.
 +      (template): Fix cleanup.
 +
 +2003-11-24  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (modes3): Skip modes3-5 entirely under Cygwin since
 +      permisions are broken there.  This change removes most of the earlier
 +      Cygwin differentiation in this test ($cygwin_hack & $cygwin_hack2) in
 +      favor of skipping the test entirely.
 +
 +2003-11-24  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Add `-h <hostname>' option to enable testing across a
 +      :ext: connection to another host.  Warn when `-h' is specified without
 +      $TESTDIR.  Leave $TESTDIR intact when it looks absolute since it may
 +      contain symlinks.  Allow $CVS_SERVER to be overridden via the
 +      environment for `-h'.  Default $CVS_RSH to `ssh'.
 +      (*): Use $CVS_RSH to perform certain commands on the remote host (esp.
 +      `ln -s' and `chmod') when `-h' is specified to work around
 +      incompatibilities with CygWin & Samba.  Add a few other minor
 +      workarounds for Cygwin bugs.
 +
 +      (newroot): New function.
 +      (*): Use newroot when appropriate.
 +
 +2003-11-21  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * hash.c (printnode, printlist): Cast %p arguments to void * as
 +      required by the C standard.
 +
 +2003-11-21  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * recurse.c (start_recursion, do_recursion): Cast %p arguments to
 +      void * as required by the C standard.
 +
 +2003-11-19  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcs.c (RCS_getrevtime): Add error checking; cleanup.
 +
 +2003-11-18  Derek Price  <derek@ximbiot.com>
 +
 +      * socket-client.c (socket_buffer_initialize): Rename poorly named `n'
 +      to a slightly more descriptive `sbuf'.
 +      (Suggestion from Larry Jones  <lawrence.jones@eds.com>.)
 +
 +2003-11-18  Derek Price  <derek@ximbiot.com>
 +
 +      * socket-client.c (socket_buffer_initialize): Pass in the socket
 +      closure we allocate.
 +      (Report from Larry Jones  <lawrence.jones@eds.com>.)
 +
 +2003-11-18  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_module): Reject absolute paths.
 +      (Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
 +
 +      * sanity.sh (abspath2): Check for the above.
 +      (spacefiles): Remove tests that expect absolute paths to files in the
 +      top level repository directory to work.
 +      (tests): Add abspath2.
 +
 +2003-11-18  Derek Price  <derek@ximbiot.com>
 +
 +      * socket-client.c (socket_buffer_initialize): Correct a typo that
 +      happened to compile.
 +      (Report and suggested fix from Patrick Brown <BrownP@symbol.com>.)
 +
 +2003-11-13  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_delete_revs): It's `&&', not `and'.
 +
 +2003-11-13  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Create the empty log to make it easier to tail immediately
 +      after the script is started.
 +
 +2003-11-13  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
 +      the help option.
 +
 +2003-11-13  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_delete_revs): Don't use the WOE32 kludge which refuses to
 +      delete revisions from bvinary files on Cygwin.  I'm not sure what the
 +      kludge was trying to avoid, but commenting it out causes the test suite
 +      to pass.
 +
 +2003-11-12  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Remove a trailing newline from the version string.
 +      Replace multiple calls to fputs to a single call reformated to C89
 +      specifications.  Remove some typecasts unecessary under C89.
 +      * sanity.sh (version): Remove trailing newline from the version string.
 +
 +2003-11-12  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Allocate more space for the string I added characters
 +      to.
 +      (Report from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2003-11-11  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add), classify.c (Classify_File), client.c (update_entries),
 +      repos.c (Name_Repository): Use consistent quoting in error messages.
 +      Misc reformatting.
 +      * sanity.sh: Update to match.
 +
 +2003-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (find_fileproc, check_fileproc):  Refuse to remove files
 +      when the file exists in the sandbox.  This used to cause data loss.
 +      (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
 +
 +      * sanity.sh (rmadd3): Update to match.  Expand comments.
 +
 +2003-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rmadd3): Test the behavior of commit after the
 +      add/replace.
 +      (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
 +
 +2003-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rmadd3): Fix another typo.
 +
 +2003-11-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * recurse.c (do_dir_proc): Set xframe.repository to NULL after a
 +      call to free().
 +
 +2003-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rmadd3): Fix typo.
 +
 +2003-11-10  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rmadd3): New tests that confirms that CVS refuses to
 +      delete a file it thinks was already removed.
 +      (Report and test from Andreas Reifschneider
 +      <andyreif@studcs.uni-sb.de>.)
 +
 +2003-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (server): Test that the global `-l' option is ignored
 +      nonfatally.
 +
 +2003-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (serve_global_option): Warn that -l is being ignored rather
 +      than exiting fatally due to backwards compatibility complaints from
 +      administrators.
 +
 +2003-11-01  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
 +      (Reported by Paul Edwards <kerravon@nosppaam.w3.to>.)
 +
 +2003-10-31  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
 +
 +2003-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (devcom): Renumber tests and use dotest function.
 +
 +2003-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * sever.h: Add the standard copyright notice.
 +
 +2003-10-28  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c: Remove some suggestions which have already been implemented
 +      or which have become obsolete from the header comment.
 +
 +2003-10-26  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (join6): Fix a few typos in the last test and remove a
 +      misplaced test.
 +
 +2003-10-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (parseroot): Use dokeep function.
 +
 +      * sanity.sh (parseroot): Perform this test in a subdirectory.
 +      It should avoid problems on case-insensitive systems where
 +      CVSROOT and cvsroot are the same directory (eg, MacOS X).
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (join_file): Restore the optimization Mark recently removed,
 +      but fix it.  Move one other optimization up since it needs to be
 +      checked for first.  Add bew status messages like merge_file produces
 +      when the requested diff has already been applied to the destination.
 +      Expand header comment.
 +      * sanity.sh (join6): Add tests for the new error messages.
 +      (import-113, join-admin-2, diffmerge1): Fix collateral damage.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (merge_file): Optimize & eliminate code.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (do_recursion): Assert that ignoring the return value of
 +      Name_Repository is not a memory leak.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * repos.c (Name_Repository): Replace a FIXME with the improved error
 +      message it requested.
 +      * sanity.sh (errmsg3): New test for the above.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * patch.c (patch_proc): Avoid memory leak.
 +      (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
 +      (patch_proc): Reformat a few long lines for readability.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * vers_ts.c (Version_TS): Move variable declaration inside the only
 +      block where it is used and remove uneeded reinitialization.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * server.h: s/^extern// off of function declarations per HACKING.
 +      Reformat protos for readability.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * vers_ts.c (Version_TS): Reformat declaration and expand header
 +      comment.
 +
 +2003-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (merge_file): Remove code that hasn't been used since CVS
 +      used an external RCS (1.9.something).
 +
 +2003-10-23  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * update.c (join_file): Do the -jrev1 -jrev2 merge even when
 +      the file is already at rev2.
 +      * sanity.sh (join6): New testcase for above.
 +      (Suggested by Paul Edwards, from somewhere in Australia.)
 +      (import): Fix collateral damage.
 +
 +2003-10-23  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
 +      on failure.
 +
 +2003-10-22  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Reformat function declaration and
 +      expand comments.
 +      (Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
 +
 +2003-10-22  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_LDADD): Add $(LIBINTL) for gettext.
 +      * Makefile.in: Regenerated.
 +
 +2003-10-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (admin-31): Fix more typos.
 +
 +2003-10-18  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (admin): Fix a typo.
 +
 +      * admin.c (admin_fileproc): Restore the ':' character in the
 +      -mtag:message admin argument even if the tag does not exist so
 +      that other files with the tag will be found. Also, be more
 +      paranoid that a symbolic tag actually points to a version that
 +      exists.
 +      (Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
 +      * sanity.sh (admin): Test these changes.
 +
 +2003-10-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * admin.c (admin_fileproc): Force tag match on admin
 +      -mversion:message rather than altering the wrong log message.
 +      (Patch from "Rodolfo Schulz de Lima" <rodsoft@uol.com.br>.)
 +      * sanity.sh (admin): Test case for it.
 +
 +2003-10-15  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
 +      if the RCS file didn't get created at all.
 +      (Reported by David Wood <David.Wood@thestreet.com>.)
 +
 +2003-10-14  Derek Price  <derek@ximbiot.com>
 +
 +      Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
 +      testing with _POSIX2_VERSION=200112 in the environment.
 +
 +      * sanity.sh: Use 'sed 1q', not 'head -1'.
 +      (Patch from Paul Eggert <eggert@twinsun.com>.)
 +
 +2003-10-10  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (set_lock): Clarify comment.
 +
 +2003-10-11  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (server_cleanup): Replace CVS_CHDIR call: some systems
 +      won't allow you to delete a directory tree containg your working
 +      directory.
 +
 +2003-10-10  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (cvs_output, cvs_outerr): Protect calls to syslog()
 +      with the usual preprocessor condition: HAVE_SYSLOG_H.
 +      (Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
 +
 +2003-10-09  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: s/^extern// off of function declarations per HACKING.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (cvs_SOURCES): Add history.h.
 +      * history.c: Include history.h.  Add the `P' record types to more
 +      comments. s/ALL_REC_TYPES/ALL_HISTORY_REC_TYPES/.
 +      (usage): Reference ALL_HISTORY_REC_TYPES rather than using a separate
 +      string literal.
 +      (report_hrecs): Handle `P' record type.
 +      (ALL_REC_TYPES): Rename and move...
 +      * history.h (ALL_HISTORY_REC_TYPES): ...here.
 +      * mkmodules.c: Include history.h.
 +      (config_contents): Update contents of and references to LogHistory
 +      records to use ALL_HISTORY_REC_TYPES.
 +      * sanity.sh (basic2-64): Update to include history records of type `P'.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (patch_file): Correct spelling and punctuation in comment.
 +      Update some lines to fit in 80 characters.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (remove_locks): Copy global struct and set status variable to
 +      NULL before calling disposal functions that might try to access it
 +      during calls to error(1,...).
 +
 +2003-10-08  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * history.c (history): Don't conflate -e with -x since the client's
 +      idea of what -e means may not match the server's.
 +      (Reported by Frank Hemer <frank@hemer.org>.)
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
 +      (server_cleanup): Expand comments about the never_run_again variable
 +      and its interoperation with critical sections, exit, and interrupts.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (remove_locks): Reduce TRACE level since this function is
 +      rarely called and we can usually rely on tracing higher level
 +      functions.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (lock_name, lock_simple_remove),
 +      server.c (server_pathname_check, dirswitch): Add TRACE.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: Reformat header comment to fit in 80 chars.
 +
 +2003-10-08  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh: Use dotest_fail instead of dotest_status for diff tests
 +      since CVS only returns success/fail rather than 0/1/2 like diff does.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      Fix a client/server bug introduced via the data loss fix of 2003-03-17.
 +      Basically, the server was reporting ambiguous filename requests when it
 +      should have been trusting the user to type the intended case or using
 +      the case the client preserved in CVS/Entries before it tried to look
 +      anything up in case insensitive mode.
 +
 +      * rcs.c (locate_rcs): Use the filename exactly as cased before
 +      investigating a case insensitive lookup, per the client/server protocol
 +      specification.  Expand comments.
 +      * subr.c (locate_file_in_dir): This function only needs to locate files
 +      case insensitively.  Expand comments.
 +      * cvs.h (locate_file_in_dir): Only prototype when servers which need to
 +      handle case insensitivity are being compiled.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (locate_rcs): Declare static.  Move to an earlier location in
 +      file to avoid prototyping.
 +      * rcs.h (locate_rcs): Remove proto.
 +
 +2003-10-08  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (lock_filesdoneproc): Reformat long function prototype.
 +
 +2003-10-07  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (server_cleanup): Remove old code that was commented out
 +      with //, which isn't valid in C.
 +
 +2003-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * exithandle.c: New file.
 +      * Makefile.am (cvs_SOURCES): Add exithandle.c.
 +      * cvs.h (cleanup_register, signals_register): New prototypes.
 +      * lock.c (Lock_Cleanup, remove_locks), rcs.c (rcs_cleanup),
 +      server.c (server_cleanup): Avoid calling twice when called from a
 +      signal handler and then exit.  Avoid being interrupted while globals
 +      that the signal handler might touch are in inconsistent states.  Expand
 +      comments.
 +      * rcs.c (rcs_internal_lockfile): Ditto. Use cleanup_register rather
 +      than calling atexit() directly.
 +      * main.c (main): Consolidate signal stuff into a call to
 +      signals_register().  Call cleanup_register to register cleanup
 +      functions rather than calling atexit() directly.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c, error.h: Remove error_exit() function.
 +      * add.c, client.c, history.c, import.c, main.c, mkmodules.c, modules.c,
 +      rcscmds.c, recurse.c, release.c, root.c, server.c, socket-client.c,
 +      tag.c, update.c: s/\<error_exit *();$/exit (EXIT_FAILURE);/.  Remove
 +      related comments.
 +
 +2003-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c: Reformat a few long function prototypes and lines.
 +
 +2003-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * hash.c (dellist): Immediately set input pointers to NULL in case they
 +      are references to global variables which might be accessed by interrupt
 +      handlers.
 +
 +2003-10-04  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (rcs_cleanup): Declare static.
 +      * rcs.h (rcs_cleanup): Remove prototype.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      Move calls to Lock_Cleanup to the atexit handler.
 +
 +      * commit.c (commit): Don't call Lock_Cleanup on error exit.
 +      * error.c (error_exit): Don't call Lock_Cleanup.
 +      * lock.c (Lock_Cleanup): Don't worry about recursive calls now that we
 +      are using atexit for calls on exit.  Dispose locklist storage after the
 +      locks are removed.  Expand comments.
 +      * main.c (main): Move Lock_Cleanup call into atexit(Lock_Cleanup).
 +      * server.c (server_notify): Add TRACE.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Remove unnecessary typecasts.
 +      (do_recursion): Ditto.  Add TRACE.  Expand comments.  Remove unneeded
 +      parens.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Dispose of old Tmpdir and Editor when specified
 +      multiple times between the command line & the ~/.cvsrc file.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (remove_locks): Eliminate unecessary typecasting.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      Move calls to rcs_cleanup to the atexit handler.
 +
 +      * error.c (error_exit): Don't call rcs_cleanup.
 +      * rcs.c: Initialize global RCS_LOCKFILE to NULL.
 +      (rcs_internal_lockfile): Use atexit (rcs_cleanup) rather than
 +      setting up signal handlers.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_module): Format prototype.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server_cleanup): Skip BUF_TO_NET checks as an optimization
 +      when ERROR_USE_PROTOCOL is set.
 +
 +2003-10-03  Derek Price  <derek@ximbiot.com>
 +
 +      * modules.c (do_module): Use TRACE.
 +
 +2003-10-02  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Don't free globals that might be needed by the cleanup
 +      functions.
 +      * server.c (server_cleanup): Only clean up when called in the parent
 +      process.  Set buffers to NULL before shutting down and freeing in case
 +      we are interrupted.  Improve comments.  Add TRACE.
 +
 +2003-10-01  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Use symbolic name for trace level.
 +
 +2003-10-01  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (connect_to_forked_server): Use TRACE macro rather than the
 +      old style.
 +
 +2003-10-01  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (protocol): Initialize the protocol buffer to NULL so that
 +      use before initialization may be detected.
 +      (cvs_output, cvs_outerr): Syslog messages when the appropriate buffers
 +      are not available.
 +      (server_cleanup): Reorganize for a single exit point and to eliminate
 +      duplicated code.  Set buf_to_net to NULL before calling the buffer
 +      shutdown functions in order to force error messages into the syslog.
 +      * buffer.c (stdio_buffer_close): Remove FIXME comment re syslog since
 +      the calls to error should go through the cvs_outerr function anyhow.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * entries.c (WriteTemplate): TRACE on entrance to a function, not exit.
 +      Don't worry about checking noexec without server support since this
 +      function will then do nothing.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * update.c (do_update): Reformat function decl.  Move and merge
 +      comment.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * client.h (buf_output, buf_outerr): Check that our buffers exist
 +      before sending them data.
 +      (buf_output_binary): Assert that the output buffer is not NULL.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * client.h, rcs.c, rcs.h, server.h: Assume __STDC__ since it is
 +      defined as part of the C89 spec.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (commit): Optimize function towards a single exit point.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (error_exit): Remove call to SYSTEM_CLEANUP.
 +      * main.c (main): Set up atexit(SYSTEM_CLEANUP) rather than calling it
 +      explicitly before exit.
 +      * server.c (pserver_authenticate_connection): Don't call SYSTEM_CLEANUP
 +      before exiting.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * error.c (exit_error): Remove call to server_cleanup.
 +      * main.c (main): Call atexit(server_cleanup).  Let server_cleanup turn
 +      server_active off.
 +      * server.c (server_cleanup): Don't require an argument.  Fill out
 +      header comment.  Unset server_active when done.
 +      (server): Don't call server_cleanup - let it be called via the atexit
 +      handler.
 +      * server.h (server_cleanup): Update proto.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (buf_output): Don't check that the buffers exist before
 +      using them since cvs_outerr does this without problems.
 +
 +2003-09-30  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Remove some unecessary function prototypes.
 +
 +2003-09-29  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (make_file_label): Make a failure to stat a file a fatal error
 +      since it signals that a later read will also fail.
 +
 +2003-09-29  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff_fileproc): Optimize the check for labels set by the
 +      user.
 +
 +2003-09-26  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff): Add a FIXME re spaces in diff arguments.
 +
 +2003-09-25  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * rcs.c (make_file_label): Do not return an uninitialized label.
 +      (Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
 +
 +2003-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c (lock_name): Remove useless prototype.
 +
 +2003-09-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (mkmodules): Correct comments.
 +
 +2003-09-12  Derek Price  <derek@ximbiot.com>
 +
 +      * mkmodules.c (mkmodules): Do not pass a string which came from the
 +      checkoutlist file directly to error as a format string since we don't
 +      want to trust any user with access to checkoutlist with creating printf
 +      format strings.  I already claimed I did this in the NEWS file.
 +      (Thanks to Larry Jones for spotting my mistake.)
 +      * sanity.sh (mkmodules): Test for the above.
 +
 +2003-09-12  Derek Price  <derek@ximbiot.com>
 +
 +      * mkmodules.c (checkoutlist_contents): Document the optional portions
 +      of this file format more accurately.
 +      (mkmodules): Ditto, in comments.  Fix bug that always failed to ignore
 +      whitespace before error messages.
 +      * sanity.sh (mkmodules-temp-file-removal): Rename to...
 +      (mkmodules): ...this and add a test of the checkoutlist error message.
 +      Add cleanup step to restore checkoutlist.
 +
 +2003-09-08  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (cvs_temp_file): Replace a chmod 0600, which shouldn't
 +      really be necessary and which provided a false sense of security, with
 +      an informative comment.
 +      (Thanks to Paul Eggert <eggert@cs.ucla.edu> for his educational
 +      advice.)
 +
 +2003-08-29  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Delete reference to CVSADMROOT_EDITINFO.
 +      * logmsg.c (editinfo_proc): Delete function and proto.
 +      (do_editor): Don't look for editinfo script.
 +      * mkmodules.c (editinfo_contents): Delete.
 +      * sanity.sh (*): Remove references to editinfo in updates of the
 +      CVSROOT module.
 +
 +2003-08-29  Derek Price  <derek@ximbiot.com>
 +
 +      * remove.c (cvsremove): Update quotes for consistency.
 +
 +2003-08-27  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * history.c: 'P' is a valid record type and has been for a long time.
 +      Add it to the comments, usage message, and, most important,
 +      ALL_REC_TYPES so it gets recorded by default.
 +      * server.c (do_cvs_command): Set global command_name to the real
 +      command name rather than leaving it set to "server".
 +      * sanity.sh: Update to match.
 +      (Reported by Dmitry Ryzhkov <rdim_outside@softhome.net>.)
 +
 +2003-08-19  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (cvs_temp_file): Expand comments.  Check for glibc version
 +      before compiling chmod command.  Remove FIXME to this effect.
 +
 +2003-08-19  Derek Price  <derek@ximbiot.com>
 +
 +      * logmsg.c (do_editor): Use cvs_temp_file rather than cvs_temp_name to
 +      create and open the temporary file.  Remove FIXME to this effect.
 +
 +2003-08-19  Derek Price  <derek@ximbiot.com>
 +
 +      * logmsg.c (do_editor): Move editinfo processing to before creation of
 +      the temp file so that it may be skipped when no editor is defined.
 +      Remove related FIXME.  Add comments.  Remove some processing of
 +      editinfo_editor rendered obsolete when editinfo_editor ceased to be a
 +      global.
 +
 +2003-08-19  Derek Price  <derek@ximbiot.com>
 +
 +      * (*.c): Move some includes to lib/system.h.
 +
 +2003-08-18  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Use consistent quoting style in user messages.
 +      * sanity.sh (*): Ditto.
 +
 +2003-08-13  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (server_cleanup): Don't shutdown buf_from_net if it's
 +      null.
 +      (Reported by Scott Mitchell <scott@fishballoon.org>.)
 +
 +2003-08-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * lock.c: Do not include xtime.h (already included via system.h).
 +      * subr.c: Ditto.
 +      (Original patch from Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
 +      to fix IRIX 5.3 problem.)
 +
 +2003-08-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (join5): Use $SPROG rather than $PROG.
 +
 +2003-08-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (join5): Use $PROG consistently and escape a `.'.
 +
 +2003-08-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
 +
 +2003-07-31  Derek Price  <derek@ximbiot.com>
 +
 +      * rcscmds.c (RCS_merge): Pass `--' before the filename arguments to
 +      diff so that filenames starting with `-' can be merged.
 +      * sanity.sh (join5): New test for same.
 +
 +2003-07-31  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add_directory): Don't print status information in really_quiet
 +      mode.
 +
 +2003-07-29  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (checkaddfile): Simplify the logic here, using assumptions
 +      already made later in the function to remove calls to locate_rcs and
 +      some conditionals.  Use same assumptions to remove some variables.
 +
 +2003-07-29  Derek Price  <derek@ximbiot.com>
 +
 +      * login.c: Remove GETPASS & HAVE_GETPASSPHRASE cruft in favor of always
 +      using the GNULIB getpass since the system getpass was removed from the
 +      POSIX.2 specification.
 +
 +2003-07-28  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (strip_trailiing_newlines): Use size_t rather than int to
 +      count string length.
 +      (Suggestion from Paul Edwards, who provides a broken return email
 +      address in Tonga.  I believe he is actually from Australia.)
 +
 +2003-07-28  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
 +      and Update.prog.
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_parsercsfile): Declare rcsfile argument as const.
 +      * rcs.h (RCS_parsercsfile): Update prototype to match.
 +      * commit.c (fixaddfile): Accept a single path to an rcs file as an
 +      argument rather than trying to look it up again when it is not
 +      necessary.
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (finaladd): But don't free variables we no longer allocate.
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * checkin.c (Checkin): The rcs argument is unecessary since we know
 +      that the parsed RCS data always exists as part of finfo by the time
 +      this function gets called.
 +      * commit.c (commit_fileproc, finaladd):  Use new Checkin() API.
 +      * cvs.h (Checkin): Update prototype.
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (strip_trailing_newlines): Check len b4 str[len] to avoid
 +      exceeding the array bounds when the string length == 0.
 +      (Report from John Tytgat <JoTy@esko-graphics.com>.)
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (strip_trailing_newlines): Generalize this function to watch
 +      len so that it cannot walk past the beginning of the string passed in.
 +      (Report from John Tytgat <JoTy@esko-graphics.com>.)
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
 +      branch.
 +
 +2003-07-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (strip_trailing_newlines): Update prototype.
 +      * subr.c (strip_trailing_newlines): Return true when newlines are
 +      removed.
 +      * server.c (pserver_authenticate_connection): Don't give a DOS attack a
 +      chance to authenticate accidentally because I like to be paranoid.
 +      * sanity.sh (pserver): New test for same.
 +
 +2003-07-24  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (check_system_password): Cleanup pam_* return code
 +      checking. (Original patch from Brian Murphy <brian@murphy.dk>.)
 +
 +2003-07-24  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: But the GNULIB gethostname accepts an int not ssize_t.
 +
 +2003-07-24  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c: Don't declare gethostname when we already have it to avoid
 +      decl conflicts.
 +
 +2003-07-24  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c (server_directory): Add a TRACE for OS X debugging.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Avoid some warning from gcc -Wall.
 +      * lock.c: Ditto.
 +      * login.c: Ditto.
 +      * modules.c: Ditto.
 +      * server.c: Ditto.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (isaccessible): Correct some double const warnings from
 +      protoize.
 +      * login.c (password_entry_parseline): Ditto.
 +      * server.c (kserver_authenticate_connection): Remove a multi-line
 +      string along with the warning from GCC.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * *.{c,h}: Back out the indent run.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move some includes into lib/system.h.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * *.{c,h}: Run these through GNU indent as per the NEWS file to fix
 +      some of the long function decls which came out of protoize.
 +
 +2003-07-23  Derek Price  <derek@ximbiot.com>
 +
 +      * *.c: Run these through GCC's protoize to convert the pre-ANSI C
 +      function decls to C89 compliance.
 +
 +2003-07-22  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Remove support for the PTR macro, since we can assume void *
 +      under C89.  It also was not being made use of in very many places so
 +      even most K&R compilers must have supported it, or nobody was using
 +      K&R compilers.  We can also assume <stdarg.h> under C89, but move the
 +      include...
 +      * error.c: ...here, de-macro VA_START, and...
 +      * subr.c: ...put a copy here too, as well as de-macroing VA_START.
 +      * history.c: s/PTR /void */g;
 +      * modules.c: Ditto.
 +
 +2003-07-22  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Include GNULIB exit.h.
 +
 +2003-07-20  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Add PAM support.
 +      (cvs_pam_userinfo): New data type for PAM conversations.
 +      (cvs_pam_conv): New function.
 +      (check_password): Add PAM support.
 +      (Original patch from Brian Murphy <brian@murphy.dk>.)
 +
 +2003-07-20  Derek Price  <derek@ximbiot.com>
 +
 +      * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
 +      a comment.
 +
 +2003-07-18  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (release): Add new tests for release with unrecognized
 +      recognized directories.
 +
 +2003-07-18  Derek Price  <derek@ximbiot.com>
 +
 +      * vers_ts (Version_TS): Don't allow command line keyword expansion
 +      modes to override binary mode.
 +      * sanity.sh (): Tests for the above.
 +      (Original patch from Dieter Maurer <dieter@handshake.de>.)
 +
 +2003-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c: s/PROTO//.
 +      * admin.c: Ditto.
 +      * annotate.c: Ditto.
 +      * buffer.c: Ditto.
 +      * buffer.h: Ditto.
 +      * checkout.c: Ditto.
 +      * classify.c: Ditto.
 +      * client.c: Ditto.
 +      * client.h: Ditto.
 +      * commit.c: Ditto.
 +      * cvs.h: Ditto.
 +      * diff.c: Ditto.
 +      * edit.c: Ditto.
 +      * edit.h: Ditto.
 +      * entries.c: Ditto.
 +      * error.c: Ditto.
 +      * error.h: Ditto.
 +      * expand_path.c: Ditto.
 +      * fileattr.c: Ditto.
 +      * fileattr.h: Ditto.
 +      * filesubr.c: Ditto.
 +      * find_names.c: Ditto.
 +      * gssapi-client.c: Ditto.
 +      * gssapi-client.h: Ditto.
 +      * hardlink.h: Ditto.
 +      * hash.c: Ditto.
 +      * hash.h: Ditto.
 +      * history.c: Ditto.
 +      * import.c: Ditto.
 +      * kerberos4-client.h: Ditto.
 +      * lock.c: Ditto.
 +      * log-buffer.c: Ditto.
 +      * log-buffer.h: Ditto.
 +      * log.c: Ditto.
 +      * login.c: Ditto.
 +      * logmsg.c: Ditto.
 +      * mkmodules.c: Ditto.
 +      * modules.c: Ditto.
 +      * myndbm.c: Ditto.
 +      * myndbm.h: Ditto.
 +      * patch.c: Ditto.
 +      * rcs.c: Ditto.
 +      * rcs.h: Ditto.
 +      * rcscmds.c: Ditto.
 +      * recurse.c: Ditto.
 +      * release.c: Ditto.
 +      * remove.c: Ditto.
 +      * root.c: Ditto.
 +      * rsh-client.h: Ditto.
 +      * run.c: Ditto.
 +      * server.c: Ditto.
 +      * server.h: Ditto.
 +      * socket-client.c: Ditto.
 +      * socket-client.h: Ditto.
 +      * status.c: Ditto.
 +      * subr.c: Ditto.
 +      * tag.c: Ditto.
 +      * update.c: Ditto.
 +      * update.h: Ditto.
 +      * vers_ts.c: Ditto.
 +      * watch.c: Ditto.
 +      * watch.h: Ditto.
 +      * wrapper.c: Ditto.
 +      * zlib.c: Ditto.
 +
 +2003-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Include pathmax.h.
 +
 +2003-07-16  Derek Price  <derek@ximbiot.com>
 +
 +      * myndbm.c: Use the GNU getdelim function rather than our package
 +      getstr.
 +      * server.c: Use the (hopefully) GNULIB and more appropriately named
 +      getnline function rather than our getline_safe function.
 +
 +2003-07-12  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh (diffnl): New tests for diff on files with no newline
 +      at end.
 +      (Patch from Andrew Moise <chops@demiurgestudios.com>.)
 +
 +2003-07-11  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * Makefile.am (cvs_DEPENDENCIES): Include the libraries.
 +      * Makefile.in: Regenerated.
 +
 +      * diff.c (diff_file_nodiff): Fix -Wall complaints.
 +      * log.c (rlog_proc): Ditto.
 +      * rcs.c (RCS_setlocalid): Ditto.
 +      * recurse.c (start_recursion): Handle null repository_in in TRACE.
 +
 +2003-07-09  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh: Use ${CPROG} instead of ${PROG} so that changes merged
 +      from cvs1-11-x-branch without updating won't appear to work.
 +
 +      * sanity.sh (keywordexpand): Use ${SPROG} instead of ${PROG} as
 +      required.
 +
 +      * add.c (add): Update "re-adding" message to have quotes around
 +      the file name like all the other similar messages.
 +      * sanity.sh: Update to match.
 +
 +      * update.c (join_file): Handle locally removed but not yet committed
 +      files.
 +      (Reported by Larry Lords <LordsLL@ldschurch.org>.)
 +      * sanity.sh (join, join4): New tests for above.
 +
 +2003-06-28  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * commit.c (fixaddfile): Bail out if locate_rcs() fails.  Make
 +      parameters const.
 +
 +      * add.c (add): Fix -Wall complaints.
 +      * diff.c (diff_file_nodiff): Ditto.
 +      * filesubr.c (cvs_casecmp): Ditto.
 +      * patch.c (patch_fileproc): Ditto.
 +      * rcs.c (RCS_cmp_file): Ditto.
 +      * root.c (parse_cvsroot): Ditto.
 +      * subr.c (locate_file_in_dir): Ditto.
 +      * cvs.h (cvs_casecmp, locate_file_in_dir): Update prototypes.
 +
 +2003-06-27  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * lock.c (readers_exist): Use LockDir rather than always looking
 +      in the repository.
 +      (Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
 +      Remove vestigial lock promotion code.
 +
 +2003-06-27  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (safe_location): Don't try and print from a NULL pointer.
 +      (Report and original patch from Sampo Kellomaki <sampo@symlabs.com>.)
 +
 +2003-06-26  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * hash.c (sortlist): Avoid crash when list is null.
 +
 +2003-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      * patch.c (patch_fileproc): Output revision number of the original
 +      revision in the removed case.
 +      (Idea from Paul Edwards <kerravon@w3.to>.)
 +
 +      * sanity.sh (rdiff-add-remove-nodiff): Rename to...
 +      (rdiff-short): ...this.  Test for the above changes.  Add some tests
 +      for when rev2 defaults to the trunk.  Expand comments.
 +
 +2003-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Reapply Alexey's changes to client.c from three commits
 +      back they were left out of the diff.
 +
 +2003-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Fix xmalloc's strlen() of wrong variable.
 +      * checkout.c (safe_location): leak: reused where_location without free.
 +      * log.c (rlog_proc): leak: free where before exit.
 +      * logmsg.c (do_verify): leak: free verifymsg_script before exit.
 +      (Original patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Remove silly comment.
 +      (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
 +
 +2003-06-23  Derek Price  <derek@ximbiot.com>
 +
 +      * kerberos4-client.h, kerberos4-client.c, client.c: Rename
 +      start_tcp_server() to start_kerberos4_server().
 +      (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
 +
 +2003-06-20  Derek Price  <derek@ximbiot.com>
 +
 +      * kerberos-client.c, kerberos-client.h, client.c: Split out
 +      Kerberos 4 code to separate files.
 +
 +      * Makefile.am: Mention new files.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-06-16  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Comment an #endif.
 +
 +2003-06-13  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (cvs_temp_name): Remove portability cruft obsoleted by the
 +      import of GNULIB's mkstemp().
 +
 +2003-06-13  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (file_has_conflict): Fix comment.
 +      (Patch from Paul Edwards <kerravon@w3.to>.)
 +
 +2003-06-13  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (xrealloc): Trivial comment fix.
 +      (Patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-06-13  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff_fileproc): Fix memory leak.
 +      (Patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-06-12  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot, local_cvsroot): Parse trailing '/'s off the
 +      end of cvsroots.  Make arguments const.
 +      * cvs.h: Update prototypes to match.
 +      (Idea from Miles Zarathustra <shiva@aranyaka.org>.)
 +
 +2003-06-12  Derek Price  <derek@ximbiot.com>
 +
 +      * checkout.c (safe_location): Fix memory leak.
 +      (Patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-06-11  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * filesubr.c (xresolvepath): Fix memory leak.
 +      (Original patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-06-11  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c: Change Parse_Info calling convention to include void *
 +      suggested in HACKING file and generalize all argument to opt.
 +      * cvs.h: update defs for Parse_Info and its callproc.
 +      * edit.c: Change Parse_Info calls for new calling convention.
 +      * logmsg.c: Ditto.
 +      * parseinfo.c: Change Parse_Info for new calling convention.
 +      * server.c: Change Parse_Info calls for new calling convention.
 +      * tag.c: Ditto.
 +      (Original patch from Ken Lorber <keni@his.com>.)
 +
 +2003-06-11  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.in: Regenerate for new configure.in.
 +
 +2003-06-11  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh: Change warning messages to note that defective tools
 +      can result in defective results, both pass and fail.  Also change
 +      "which" to "that" for errant grammar pedants.
 +
 +2003-06-10  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Avoid unneeded allocation.
 +
 +2003-06-10  Mark D. Baushke  <mdb@gnu.org>
 +
 +      * rcs.c (RCS_setlocalid,RCS_setincexc): New functions to support
 +      LocalKeyword and KeywordExpand config keywords.
 +
 +      * rcs.h (RCS_setlocalid,RCS_setincexc): New prototypes.
 +
 +      * parseinfo.c (parse_config): Added LocalKeyword
 +      and KeywordExpand keywords.
 +
 +      * sanity.sh (keywordexpand): New CVSROOT/config tests for
 +      LocalKeyword and KeywordExpand options.
 +
 +2003-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_delete_revs): Reference WOE32 rather than WIN32 in
 +      accordance with the GNU convention to avoid implying that we consider
 +      the Microsoft Windows Operating Environment any sort of "win".
 +
 +2003-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c (cvs_temp_file): Tidy a comment.
 +
 +2003-06-09  Derek Price  <derek@ximbiot.com>
 +
 +      * patch.c (patch_fileproc): Don't assume the content of files is
 +      different just because the revision number is different.
 +      * sanity.sh (rdiff-add-remove-nodiff): New tests for the above.
 +      (Report & original patches from Paul Edwards <kerravon@w3.to>.)
 +
 +2003-06-04  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (locate_file_in_dir): New proto.
 +      (locate_rcs): Move proto...
 +      * rcs.h: ...here.
 +      * filesubr.c (locate_rcs): Move function...
 +      * rcs.c: ...here for Windows.
 +      * filesubr.c (locate_file_in_dir): Move function...
 +      * subr.c: ...here for Windows.
 +
 +2003-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Add comments re portability of test -x & test -e.  Don't
 +      bother with quotes in arguments to test when we have laready checked
 +      the variables for empty content.
 +
 +2003-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Don't use `test -x' since BSD 4.3 doesn't like it.  Minor
 +      reorganization for clarity.  Don't check for $server = false after we
 +      set its default.  Use </dev/null with calls to $prog --version when we
 +      don't know what $prog does for sure.
 +
 +2003-06-02  Derek Price  <derek@ximbiot.com>
 +
 +      * diff.c (diff_file_nodiff): Don't assume that because two specified
 +      revision numbers are different, the contents are different.
 +      (Original report & patch from Paul Edwards <kerravon@w3.to>.)
 +
 +      * diff.c (diff_file_nodiff): Pass through rev1_cache to be filled in
 +      by RCS_cmp_file when it needs to check out revision 1 into a file.  Add
 +      some more informative error messages.  Cleanup for efficiency &
 +      readability.
 +      (diff_fileproc): Pass the cached revision to RCS_exec_diff().  Clean up
 +      the error exit code.  Remove code killed by the changes to
 +      diff_file_nodiff().
 +      * rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
 +      if present.
 +      * rcs.c (RCS_cmp_file): Accept a second revision number and cache the
 +      first revision if it needs to be checked out.
 +
 +      * checkin.c (Checkin): Use new RCS_cmp_file().
 +      * import.c (update_rcs_file): Ditto.
 +      * no_diff.c (No_Difference): Ditto.
 +
 +      * cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
 +      * rcs.h (RCS_cmp_file): Ditto.
 +
 +      * sanity.sh: Minor corrections to handle the above changes.
 +
 +2003-05-31  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): Refuse :fork: only in client mode, not
 +      server.
 +      * client.c (connect_to_forked_server): Die without SERVER_SUPPORT when
 +      CVSSERVER isn't supplied in the environment.
 +      * sanity.sh: Default $servercvs to $testcvs.  Add SPROG so that testing
 +      a client and server with different names works in order to test the
 +      above changes.  s/PROG/SPROG/ almost everywhere.  Misc corrections to
 +      tests when ${PROG} is required not to use [a-z]*.  Misc uniqifications
 +      of test names.  Misc replacement of CVS_SERVER=${testcvs} with
 +      CVS_SERVER=${servercvs}.  Confirm ${testcvs} & ${servercvs} exist and
 +      are executable.  Set testcvs_server_support=true if the ${testcvs}
 +      executable has server support.  Misc comment corrections.
 +      (pserver): s/\$\{testcvs\}/${servercvs}/ for invocations of pserver.
 +      (server): Ditto for invocations of `cvs server'.
 +      (fork): Accept the `was not compiled with server support' error
 +      message.
 +
 +2003-05-29  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (start_server): Don't send -l to server.
 +      * history.c (history_write): Fix comment.
 +      * main.c (main): Don't process -l.
 +      * server.c (serve_global_option): Ditto.
 +      (Suggestion from Rob Lanphier <robla@real.com>.)
 +
 +2003-05-29  Derek Price  <derek@ximbiot.com>
 +
 +      * log-buffer.c, rsh-client.c, socket-client.c: Allow compilation
 +      with --disable-client.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-29  Derek Price  <derek@ximbiot.com>
 +
 +      * gssapi-client.h: Move contents of lib/xgssapi.h here.
 +      * server.c: xgssapi.h is no more.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-28  Derek Price  <derek@ximbiot.com>
 +
 +      * server.c: Use standard PROTOTYPES symbol instead of non-standard
 +      USE_PROTOTYPES.
 +      * error.h, cvs.h: Use PROTO.h.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-23  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh (info-cleanup-verifymsg): Avoid race in output.
 +
 +      * sanity.sh (template): Fix unintended duplicate DEFAULT lines,
 +      duplicate test names.
 +
 +2003-05-22  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * commit.c (commit): Fix leading zero stripping code to not strip
 +      unless there's a following digit.
 +
 +      * parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
 +      * sanity.sh (info): New test for above.
 +
 +2003-05-21  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.in: Regenerate with Automake version 1.7.5.
 +
 +2003-05-20  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * parseinfo.c (Parse_Info): Fix stupid memory management error.
 +
 +      * logmsg.c (do_verify): Treate Parse_Info errors as failure.
 +      * parseinfo.c (Parse_Info): Don't call expand_path until executing
 +      the command so that errors in unexecuted commands aren't reported.
 +      * sanity.sh (info): New tests for above.
 +
 +2003-05-20  Derek Price  <derek@ximbiot.com>
 +
 +      * mkmodules.c (config_contents): Add missing newline.
 +      (Patch from Kenneth Lorber <keni@his.com>.)
 +
 +2003-05-20  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am: Macro subsitution for zlib include path and library
 +      location
 +      * zlib.c: #ifdef inclusion of <zlib.h> versus "zlib.h"
 +      (Original patch from Anthon Pang <apang@telus.net>.)
 +
 +      * Makefile.in: Regenerated
 +
 +2003-05-20  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move the standard includes into lib/system.h.
 +      * subr.c: s/malloc/CVS_MALLOC/;s/realloc/CVS_REALLOC/.
 +
 +2003-05-19  Derek Price  <derek@ximbiot.com>
 +
 +      * filesubr.c: s/\bstat\b/CVS_STAT/g;s/\blstat\b/CVS_LSTAT/g
 +      * hardlink.c: Ditto.
 +      * ignore.c: Ditto.
 +      * rcs.c: Ditto.
 +      * update.c: Ditto.
 +
 +2003-05-18  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * checkout.c (safe_location): Remove unused variable.
 +      * hash.c (walklist, printnode, printlist): Use %p to print pointers
 +      if available, convert to unsigned long if not.
 +      * recurse.c (start_recursion, do_recursion): Ditto.
 +      * tag.c (rtag_proc, tag_check_valid): Ditto.
 +
 +2003-05-18  Mark D. Baushke  <mdb@gnu.org>
 +
 +      * Makefile.am (localcheck,remotecheck): Use cvs$(EXEEXT) not cvs.
 +      * Makefile.in: Regenerated.
 +      * sanity.sh (status-init-7): Use ${PROG} not cvs in tests.
 +      (branch-after-import-5): Ditto.
 +      (keywordname-update-11): Ditto.
 +
 +2003-05-18  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.h (kserver_authenticate_connection,
 +      pserver_authenticate_connection): Add prototypes.
 +
 +      * client.c (update_entries): Set file's access time to the current
 +      time rather than the same as the modification time.
 +      * vers_ts.c (Version_TS): Ditto.
 +
 +2003-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: #ifdef inclusion of gssapi-client.h.
 +      * server.c: Ditto.
 +      (Reported by Boyd Lynn Gerber <gerberb@zenez.com>.)
 +
 +2003-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * client.h: Move some of the GSSAPI stuff...
 +      * gssapi-client.h: ...to this new file.
 +      * client.c (start_server): Use new initialize_gssapi_buffers().
 +      (*): Move most of the GSSAPI stuff from here and...
 +      * server.c (*): ...here...
 +      * gssapi-client.c: ...to this new file.
 +      * Makefile.am (EXTRA_cvs_SOURCES, cvs_DEPENDENCIES, cvs_LDADD): Support
 +      $(cvs_client_objects).
 +      (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-05-09  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c: Reindent some compiler directives in order to make nesting
 +      clearer.
 +
 +2003-05-08  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (log_buffer*): Move...
 +      * log-buffer.c (log_buffer*): ...to this new file.
 +      * log-buffer.h (setup_logfiles): New file to share prototype.
 +      * Makefile.am: Add log-buffer.c & log-buffer.h.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-05-08  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (init_sockaddr): Move...
 +      * socket-client.c (init_sockaddr): ...here.
 +      * socket-client.h (init_sockaddr): Prototype.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-08  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_to_server): Move most of the functionality to and
 +      wrap...
 +      (send_to_server_via): ...this new function which accepts the buffer
 +      pointer as an argument.
 +      (read_line): Ditto, but to...
 +      (read_line_via): ...here.
 +      (auth_server): Rename lto_server & lfrom_server to s/^l//.  Remove
 +      ugly code which sets the global versions of these variables
 +      temporarily for function calls.
 +      s/send_to_server(/send_to_server_via(to_server,/g,
 +      s/read_line(/read_line(from_server,/g,
 +      Remove emotional FIXME comment to the effect that all this is
 +      necessary.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-07  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (from_server, to_server): Rename these global buffer
 +      pointers to...
 +      (global_from_server, global_to_server): ...this in order to avoid
 +      confusion.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-05-07  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (make_bufs_from_fds, connect_to_forked_server,
 +      start_tcp_server): Rename struct buffer ** arguments to s/$/_p/ in an
 +      attempt to denote their pointerness more clearly.
 +      * rsh-client.c (start_rsh_client): Ditto.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * client.h (make_bufs_from_fds): Sanitize prototype so that the
 +      argument name change doesn't clash.
 +
 +2003-05-07  Derek Price  <derek@ximbiot.com>
 +
 +      * client.h (make_bufs_from_fd): Prototype in order to make available to
 +      rsh-client.c.
 +      * client.c (start_rsh_server): Moved most of the RSH (:ext:) client
 +      stuff to...
 +      * rsh-client.h: ...here...
 +      * rsh-client.c: ...and here.
 +      * Makefile.am (cvs_SOURCES): Add new source files.
 +      (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-05-06  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (socket_buffer_*): Moved most of the socket stuff to...
 +      * socket-client.h: ...here...
 +      * socket-client.c: ...and here.
 +      * Makefile.am (cvs_SOURCES): Add new source files.
 +      (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-05-05  Derek Price  <derek@ximbiot.com>
 +
 +      * hash.c (findnode): Document behavior of this function when its list
 +      argument is NULL and document this behavior.  Remove FIXME comment to
 +      the effect that this is necessary.
 +
 +2003-05-01  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
 +      (Report from Jim Salter <jsalterjim@earthlink.net>.)
 +
 +2003-05-01  Derek Price  <derek@ximbiot.com>
 +
 +      * repos.c (Sanitize_Repository_Name): Remove some old comments about
 +      the defunct RELATIVE_REPOS macro.
 +      * server.c (outside_root): Ditto.
 +
 +2003-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * vers_ts.c (Version_TS): Minor optimization.
 +
 +2003-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
 +
 +2003-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c: Free vers in single place
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2003-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am: Get rid of $includeopt, using $CPPFLAGS as intended by
 +      the Autoconf folk.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-04-30  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
 +
 +2003-04-28  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (save_prog): Remove unneeded struct.
 +      (checkin_progs, update_progs): Remove these unneeded globals.
 +      (handle_set_checkin_prog, handle_set_update_prog, do_deferred_progs):
 +      Remove these functions.
 +      (send_repository): Remove checkin and update prog support.
 +      (responses): Remove Set-checkin-prog and Set-update-prog.
 +      (get_responses_and_close): Don't call do_deferred_prog().
 +      * commit.c (commit_usage): Remove reference to -n.
 +      (commit): Don't set and send run_module_prog via -n.  Don't run
 +      Checkin.prog or Checkout.prog in local mode.
 +      * modules.c (CVSMODULE_OPTS): Remove -i and -u.
 +      (do_module): Don't process -i and -u options to set checkin and update
 +      progs, respectively.
 +      * server.c (server_prog, serve_checkin_prog, server_update_prog):
 +      Remove unused functions.
 +      (requests): Remove Checkin-prog and Update-prog.
 +      * update.c (update_dirleave_proc): Remove update prog functionality.
 +
 +      * cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
 +      * server.h (server_prog): Remove proto.
 +      (progs): Remove enum.
 +
 +      * sanity.sh (modules5): Remove tests for checkin and update programs.
 +
 +2003-04-15  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (*): Shrink the yucky case statement using sed's transform
 +      functionality.
 +      (getlongoptarg): Convert this function to only confirm the arg and move
 +      it...
 +      (checklongoptarg): ...here.
 +
 +2003-04-10  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-04-04  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh (branches4-15): New test.
 +
 +      * error.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
 +      versions < 3.0.
 +
 +2003-04-03  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am (DISTCLEAN_FILES): Move the contents of this variable...
 +      (distclean-local): ...to this target now that Automake supports it.
 +
 +2003-04-03  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
 +      versions < 3.0.
 +
 +2003-04-02  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * update.c (update, update_fileproc, update_filesdone_proc,
 +      update_dirent_proc, update_dirleave_proc): Keep track of whether
 +      a tag is both a revision tag and a branch tag and warn the user.
 +      * sanity.sh (branches4): New tests for above.
 +
 +2003-04-02  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (do_recursion): Use strstr("/./") rather than strchr('.')
 +      to catch only indirections in paths and not directory names with dots
 +      in them.
 +      (Report from Pavel Roskin <proski@gnu.org>.)
 +
 +      * sanity.sh (multiroot): Put a dot in the CVSROOT_DIRNAMEs.
 +      (dottedroot): New test.
 +      (Based on a script from Pavel Roskin <proski@gnu.org>.)
 +
 +2003-04-01  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (multiroot2-9): Add newly TRACEd parse_cvsroot() to
 +      expected output.
 +
 +2003-03-31  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (freercsnode): Revert an accidental change from the previous
 +      commit.
 +
 +2003-03-31  Derek Price  <derek@ximbiot.com>
 +
 +      * recurse.c (start_recursion): Accept new repository argument so that
 +      the working directory may be tracked by do_recursion without using
 +      xgetwd(), which returned a value different from the one the user
 +      requested when symlinks were in use.  Add TRACE.  Pass repository_in
 +      to do_recursion() as part of the recursion frame.
 +      (do_recursion): Default srepository to NULL and only set when we set
 +      repository.  Keep track of repository using xframe.repository for the
 +      r* commands rather than xgetwd(), which used to break when CVSROOT was
 +      a symlink to a real root.
 +
 +      * cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
 +      (xresolvepath): New proto.
 +      (start_recursion): Add repository to proto.
 +      (*): Define some more abstract TRACE levels.
 +      * update.h (do_update): Add repository argument to proto.
 +
 +      * checkout.c (safe_location): Add more complete header comment.  Add
 +      TRACE.  Use new xresolvepath() function.  Always return true in
 +      client mode since checking our destination path against the CVSROOT
 +      path is usually meaningless in client/server mode.
 +      (checkout_proc): Pass repository to do_update() for later use with
 +      start_recursion().
 +      (*): s/<chdir>/CVS_CHDIR/.
 +      * filesubr.c (xreadlink): #ifdef HAVE_READLINK this function.  Add more
 +      complete header comment.
 +      (xresolvepath): New function.
 +      * hash.c (walklist): Add TRACE.
 +      * main.c (main): Don't copy and dispose of CVSRoot_cmdline twice.
 +      * patch.c (patch_proc): Add TRACE.  Pass repository to
 +      tag_check_valid() for r* commands.
 +      * root.c (parse_cvsroot): Add TRACE.
 +      * tag.c (rtag_proc): Add TRACE.
 +      (check_fileproc): Ditto.
 +      (tag_check_valid): Ditto.
 +      * update.c (do_update): Accept new repository argument for co.
 +      (update): Pass NULL repository to do_update().
 +
 +      * admin.c (*): Use new definition of start_recursion().
 +      * annotate.c (*): Ditto.
 +      * client.c (*): Ditto.
 +      * commit.c (*): Ditto.
 +      * diff.c (*): Ditto.
 +      * edit.c (*): Ditto.
 +      * lock.c (*): Ditto.
 +      * log.c (*): Ditto.
 +      * patch.c (*): Ditto.
 +      * remove.c (*): Ditto.
 +      * status.c (*): Ditto.
 +      * tag.c (*): Ditto.
 +      * update.c (*): Ditto.
 +      * watch.c (*): Ditto.
 +
 +      * sanity.sh: Add new -l option to test symlinked roots.
 +      (abspath-3.2): Use [a-z]* rather than "checkout".
 +      (check_repository-1): Add server error messages about absolute paths
 +      since the client now skips destination validity checks.
 +      (check_repository-2): Process client error messages about CVSROOT
 +      files being in the way since the client skips destination validity
 +      checks since it should be rare that a client is running in
 +      client/server mode on the server and CVS has no current way to check if
 +      it is runnning on the server.
 +
 +2003-03-27  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (rdiff2): Add new test case for SEGV problem reported
 +      against cvs 1.11.5.
 +      (Report from James Cribb)
 +
 +2003-03-26  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
 +      and HAVE_GSSAPI.
 +      * client.h: Ditto.  Remove some unecessary server function prototypes.
 +
 +2003-03-26  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Include the net headers for HAVE_GSSAPI.
 +      (Report from Jim Salter <jsalterjim@earthlink.net>.)
 +
 +2003-03-26  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Verify the argument to -z when running without
 +      CLIENT_SUPPORT since Eric Siegerman complained about being bit
 +      by a run of `cvs -z -n up' which parsed the -n as the argument to
 +      -z.
 +      * sanity.sh (opterrmsg): New tests for -z argument checking.
 +
 +2003-03-26  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * main.c (main): Use strtol() instead of atoi() when parsing -z
 +      to detect errors.
 +      (Reported by Eric Siegerman <erics@telepres.com>.)
 +
 +2003-03-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Disable GNU attributes as part of PROTO behavior.
 +      * error.h: Mirror GNU attribute definitions from cvs.h.
 +
 +2003-03-25  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (cvs_trace): #ifdef use of server_active.
 +      (Report from Jim Salter <jsalter@proofpoint.com>.)
 +
 +      * cvs.h (xmalloc, xrealloc, xstrdup, parse_cvsroot,
 +      local_cvsroot, normalize_cvsroot): Use GNU attributes.
 +      * error.h (error_exit): Fix PROTO/__attribute__ specification.
 +      * root.c (new_cvsroot_t): Add GNU attribute.
 +
 +2003-03-24  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am: Update copyright notice.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-03-24  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.h (server_clear_template): Add declaration.
 +      (server_template): Add parameter names to prototype.
 +
 +2003-03-20  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (env): Try more than one ps command if the first one
 +      fails. This may let the test succeed on more platforms. Also,
 +      keep the ps output that was processed for the error report.
 +
 +2003-03-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh (env): Use 'ps -el' rather than 'ps -l' so that
 +      crontab jobs that might be running these tests without a
 +      controlling terminal work properly.
 +
 +      * client.c (start_rsh_server): Use new definition of RSH_DFLT to
 +      allow "rsh" to be configured to default to "ssh" or some other
 +      local remote transport program.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-03-19  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
 +      (Patch from Brian Poole <raj@cerias.purdue.edu>.)
 +      * sanity.sh (abspath-4): Update to match.
 +
 +      * filesubr.c (locate_rcs): Fix gcc warning.
 +
 +2003-03-19  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c (add_directory): Only call WriteTemplate when the server is
 +      active.
 +      * create_adm.c (Create_Admin): Don't call WriteTemplate here since
 +      Create_Admin is only called from the client.
 +      * commit.c (commit_dirleaveproc): Don't call WriteTemplate here.  I'm
 +      a little confused as to why since update_direntproc works for update.c,
 +      but I can't come up with a test case that fails when this call is
 +      missing.  Nor can I come up with a test case that passes when this call
 +      is present and the one in commit_filesdoneproc is removed.
 +      * sanity.sh (template): Tidy, minimize, and add some extra tests.
 +
 +2003-03-19  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * .cvsignore: Added sanity.config.sh, a new auto-generated file.
 +
 +      * cvs.h (CVS_PID_ENV): New environment variable CVS_PID has the
 +      pid of the parent cvs process.
 +      * main.c (main): Initialize it.
 +      * sanity.sh (env): Test it.
 +
 +2003-03-19  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.config.sh.in: New file.
 +      * sanity.sh: Source new config file when available.  Accept alternate
 +      config file as an argument to a -c option.  Accept long options with
 +      arguments.
 +      (getlongoptarg): New function.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-03-18  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_root): Add some more comments and expand
 +      #ifdef CLIENT_SUPPORT pragmas.  Rearrange sanity checks slightly.
 +
 +2003-03-18  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Output -R warning in quiet mode and correct spelling
 +      in this warning message.
 +      * sanity.sh (commit-readonlyfs-2r4): Correct cascaded spelling mistake
 +      in test.
 +
 +2003-03-17  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c: Correct comment.
 +      * client.c: Ditto.
 +      * checkin.c (Checkin): Pass work file name to RCS_checkin so that this
 +      function works properly in the case insensitive mode.
 +      * commit.c (checkaddfile): Fix and factor add logic so that the
 +      correct files and directories are created in the case insensitive mode.
 +      Reuse code in RCS_parse() below.  This avoids a problem that could
 +      cause corrupted RCS files to be created on an add from a case
 +      insensitive system.  Corrupted RCS files could cause later assertion
 +      failures for everyone.
 +      (locate_rcs): Move this function...
 +      * filesubr.c (locate_rcs): ...here and rewrite it.
 +      (fopen_case): Remove this function.
 +      (locate_file_in_dir): New function.
 +      * cvs.h (locate_rcs): Prototype new function.
 +      * rcs.c (RCS_parse): Factor out file location into locate_rcs.
 +
 +2003-03-17  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * main.c (main): Issue a warning about readonlyfs options unless
 +      quiet or really_quiet is set.
 +      * lock.c (Writer_Lock): Modify readonlyfs error message text.
 +      * sanity.sh (commit-readonlyfs): Adjust test for new messages.
 +
 +2003-03-17  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (switch_to_user): Add syslog calls for setgid/setuid
 +      failure.
 +
 +2003-03-16  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * cvs.h (CVSREADONLYFS_ENV): New macro to support new environment
 +      variable "CVSREADONLYFS" for read-only file-system repository mode.
 +      * lock.c (Reader_Lock, Writer_Lock): Add support for new read-only
 +      file-system repository mode.
 +      * main.c (main, opt_usage): Ditto.
 +      * root.c (parse_cvsroot): Ditto.
 +      * sanity.sh (commit-readonlyfs): Test new read-only file-system
 +      repository mode.
 +
 +2003-03-14  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * server.c (template_proc): Fix broken Template protocol code.
 +      Must call send buf_send_counted() for Template files to avoid
 +      "Protocol error: uncounted data discarded" messages in some
 +      circumstances.
 +      * sanity.sh (template): Test case to verify fix this fix.
 +
 +2003-03-10  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * cvs.h (WriteTemplate): Add missing prototype.
 +
 +2003-03-07  Mark D Baushke <mdb@cvshome.org>
 +
 +      * sanity.sh: Fix broken setting of the servercvs variable.
 +
 +2003-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
 +      consistency.
 +
 +2003-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (usage): Show users long --help rather than less
 +      informative -h.
 +
 +2003-03-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh: Add support for long options.
 +      (exit_usage): Move the actual generation of usage text to...
 +      (usage): ...this new function and improve the usage message.
 +      (exit_help): New function.
 +
 +2003-03-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanity.sh: Drop the clientcvs option. Add usage info for
 +      the -s servercvs option.
 +
 +2003-03-07  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * commit.c (check_fileproc): Remove unused variables.
 +
 +      * patch.c (patch): Pass local to do_module so that -l actually works.
 +      (Reported by John Coers <coers@intrinsity.com>.)
 +      (patch_fileproc): Fix uninitialized variables.
 +      * sanity.sh: Define a DATE pattern for rdiff and use it.
 +      (basic2-24a): New test for above.
 +
 +2003-03-07  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * entries.c (WriteTemplate): New function to control updates to
 +      the CVS/Template file or its removal.
 +      * create_adm.c (Create_Admin): Use the new WriteTemplate function.
 +      * add.c (add_directory): Add a WriteTemplate() call
 +      when a new directory is added to the repository.
 +      * commit.c (commit_filesdoneproc): Ensure that the CVS/Template is
 +      updated at the end of a commit -- mostly to remove it if it is not
 +      relevant.
 +      (commit_dirleaveproc): Ensure that the CVS/Template gets updated
 +      when the directory is left.
 +      * update.c (update_dirent_proc): Update CVS/Template file.
 +      * server.c (server_clear_template): New protocol response to
 +      remove existing CVS/Template files.
 +      * client.c (clear_template): New function to remove or truncate a
 +      CVS/Template file.
 +      (handle_clear_template): New function. Handle Clear-template
 +      protocol response message.
 +      (save_prog): Add new Clear-template response line.
 +      * sanity.sh (template): Test the CVS/Template creation with
 +      the remote protocol. Nothing gets created locally.
 +      (multiroot2): Fix for minor changes to trace output.
 +      (getopts): Allow tests to be run with specified client and server
 +      cvs commands to allow for interoperatbility testing.
 +      (check_keep): New shell function for --keep processing.
 +
 +2003-03-06  Derek Price  <derek@ximbiot.com>
 +
 +      * subr.c (file_has_conflict): New file.
 +      * commit.c (check_fileproc): Factor code into new file_has_conflict()
 +      function.
 +      * update.c (update_fileproc): Ditto.
 +      * status.c (status_fileproc): Use new file_has_conflict() function.
 +      (Report from Bernd Kuemmerlen <bkuemmer@mevis.de>.)
 +
 +      * sanity.sh (status): New test for same.
 +
 +2003-03-06  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh (branches3-4): Set and export CVS_LOCAL_BRANCH_NUM
 +      to be sure it really gets into the environment, then unset it
 +      when finished (ala CVSWRAPPERS et al).
 +
 +2003-03-03  Mark D. Baushke  <mdb@cvshome.org>
 +
 +      * sanith.sh (branches3): Localize the setting of
 +      the CVS_LOCAL_BRANCH_NUM environment variable.
 +
 +      * rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
 +      Port of the FreeBSD hack for setting the next magic branch number
 +      to be used. The original patch was written by Peter Wemm
 +      <peter@FreeBSD.org> and may be found by visiting the URL:
 +      http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
 +      Implement a horrible (but simple) hack to allow some control over the
 +      branch number that is assigned. This is specifically to support the
 +      local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
 +      (say) 1000 then branches the local repository, the revision numbers
 +      will look like 1.66.1000.xx. This is almost a dead-set certainty that
 +      there will be no conflicts with version numbers.
 +      (This needs to be something more than an option to 'cvs tag' or 'cvs
 +      rtag' as various parts of cvs "know" how to automatically branch files
 +      (eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
 +      * sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
 +
 +2003-03-04  Derek Price  <derek@ximbiot.com>
 +
 +      * history.c (history_write): Remove unneeded O_CREAT in the call to
 +      open() since we abort a few lines earlier if the file doesn't exist.
 +      Add a comment to the effect that this is not the optimal method of
 +      doing things and needs fixed.
 +
 +2003-02-28  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c (parse_cvsroot): Set no_password for :gserver: and :kserver:
 +      as tokens should already be obtained via external sources.
 +      * update.c (update_fileproc): Remove redundant code.
 +
 +2003-02-28  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * lock.c (set_lock): If possible, try a short wait with no message
 +      before calling lock_wait() to optimize master lock contention.
 +
 +2003-02-26  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * checkout.c (checkout): Send "--" before file names.
 +      * sanity.sh (spacefiles): Remote now works just like local.
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcs4): Use UTC to work across timezones.
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_getdate): Fix a bug that shows up when checking out
 +      files by date with the "-D date" command line option. There is
 +      code in the original to handle a special case. If the date search
 +      finds revision 1.1 it is supposed to check whether revision
 +      1.1.1.1 has the same date stamp, which would indicate that the
 +      file was originally brought in with "cvs import". In that case it
 +      is supposed to return the vendor branch version 1.1.1.1.
 +
 +      However, there was a bug in the code. It actually compares the date
 +      of revision 1.1 for equality with the date given on the command
 +      line -- clearly wrong. This commit fixes the coding bug.
 +
 +      Note: There is an additional bug which is _not_ fixed in this
 +      commit. The date comparison should not be a strict equality test.
 +      It should allow a fudge factor of, say, 2-3 seconds. Old versions
 +      of CVS created the two revisions with two separate invocations of
 +      the RCS "ci" command. We have many old files in the tree in which
 +      the dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
 +
 +      This bug was discovered and fixed for FreeBSD cvs. See v 1.21 of
 +      <http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff>
 +        for more information.
 +
 +      * sanity.sh (rcs4): Tests for same.
 +      (Patch from Mark D. Baushke <mdb@cvshome.org>.)
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * logmsg.c (logfile_write): Do not pass a NULL pointer to
 +      fprintf() when we have an empty log message.
 +      * sanity.sh (editor): Add new tests to verify correct behavior of
 +      empty log messages.
 +      (Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
 +      Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (user_admin_options): Rename to...
 +      (UserAdminOptions): ...this to match the convention set by
 +      of RereadLogAfterVerify.
 +      * admin.c (admin): Ditto.
 +      * parseinfo.c (parse_config): Ditto.
 +
 +      * mkmodules.c (config_contents): Update with UserAdminOptions
 +      information.
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvsbug.in: Import use of mktemp function from RedHat 8.0's
 +      CVS 1.11.2 RPM.  Use new MKTEMP configure variable.  Use new
 +      SENDMAIL from configure.
 +
 +      * Makefile.in: Regenerated.
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h (user_admin_options): New global config option.
 +      * admin.c (admin): Handle user_admin_options.
 +      * parseinfo.c (parse_config): Handle UserAdminOptions.
 +      (Original patch from Dan Peterson <dbpete@aol.com>.)
 +
 +2003-02-25  Derek Price  <derek@ximbiot.com>
 +
 +      * watch.c (watch_usage): Use {} rather than () for literals.
 +
 +2003-02-21  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (switch_to_user): Update comment, change error message
 +      so it's not an exact duplicate of the one in check_password.
 +      (check_repository_password): Add syslog call for password mismatches.
 +      (check_password): Add syslog call for password mismatches, rearrange
 +      code to simplify and eliminate redundancy.
 +      (pserver_authenticate_connection): Remove syslog call, now done by
 +      lower-level routines.
 +
 +2003-02-19  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh (admin-10): Add test for repository files not in
 +      working directory.
 +
 +      * admin.c (admin_fileproc): Fix crash when no rcs file, return
 +      failure status for bogus files.
 +      * sanity.sh (admin-4a): Test for above.
 +      (Original patch submitted by Mark D. Baushke <mdb@cvshome.org>).
 +
 +2003-02-14  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * log.c (log_expand_revlist): Fix crashes in error cases.
 +      (Reported by Bart Santy <Bart.Santy@switch.be>.)
 +      * sanity.sh (log): New tests for above.
 +
 +2003-02-14  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.h (RCSNode): Add a field for the original path to print with
 +      error messages.
 +      * rcs.c (RCS_parsercsfile_i): Keep track of the original path for error
 +      messages.
 +      (freercsnode): Free the origpath.
 +
 +2003-02-14  Derek Price  <derek@ximbiot.com>
 +
 +      * watch.c (watch_usage): Make the repeatability of -a part of the
 +      usage spec.
 +
 +2003-02-14  Derek Price  <derek@ximbiot.com>
 +
 +      * watch.c (watch_usage): Mention default for -a.  Mention multiple
 +      invocations of -a.  Mention -R as default.  Use required () rather than
 +      optional [] around watch subcommand list in invocation spec.  Use
 +      `path' instead of `file'.  Put variable <> around `action' and `path'.
 +
 +2003-02-12  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Update copyright message to 2003.
 +
 +2003-02-08  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_checkout): Supply the full function name in the TRACE
 +      output.
 +      * update.c (checkout_file, join_file): Supply tag properly to
 +      RCS_checkout more often.
 +      (patch_file): Ditto.  Fill out comments.
 +      * sanity.sh (keyword, keywordname): Some changes to accomodate the fact
 +      that the above changes cause patches generated by patch_file to fail
 +      occassionally.
 +
 +2003-02-07  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (*): Don't keep running after a test when --keep has been
 +      supplied.  That was kind of silly, wasn't it?
 +
 +2003-02-07  Derek Price  <derek@ximbiot.com>
 +
 +      * rcscmds.c (RCS_merge): Add a FIXME.
 +
 +2003-02-07  Derek Price  <derek@ximbiot.com>
 +
 +      * commit.c (checkaddfile): Do not lose the vendor branch when
 +      adding files to a new branch. Avoids extranious conflicts for
 +      future vendor imports. This was found and fixed in FreeBSD cvs.
 +      See http://www.freebsd.org/cgi/query-pr.cgi?pr=4033 for details.
 +      * sanity.sh (branch-after-import): New test.
 +      (Thanks to Mark D Baushke <mdb@cvshome.org> for forwarding the
 +      patch and writing the test cases!)
 +
 +      * sanity.sh (branch-after-import): Misc portablility and standard
 +      changes.
 +
 +2003-02-07  Derek Price  <derek@ximbiot.com>
 +
 +      * add.c: Exercise the pet peeve Karl Fogel, I think, infected me with
 +      about using the word invalid rather than illegal and reserving illegal
 +      for use when actually discussing laws and governmentally enforced
 +      restrictions:
 +      s/illegal/invalid/g;s/legality/validity/g;s/legal/valid/g;
 +      * admin.c: Ditto.
 +      * cvs.h: Ditto.
 +      * expand_path.c: Ditto.
 +      * log.c: Ditto.
 +      * modules.c: Ditto.
 +      * rcs.c: Ditto.
 +      * rcs.h: Ditto.
 +      * repos.c: Ditto.
 +      * root.c: Ditto.
 +      * sanity.sh: Ditto.
 +      * scramble.c: Ditto.
 +      * server.c: Ditto.
 +      * subr.c: Ditto.
 +
 +2003-02-06  Derek Price  <derek@ximbiot.com>
 +
 +      * rcs.c (RCS_getdatebranch): Update header comment to reflect the state
 +      of the docs and the code's operation.
 +
 +2003-02-06  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c: Use the complete path to the CVSADM_TEMPLATE file in
 +      error messages.  Remove related FIXME.
 +
 +2003-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * status.c (status_fileproc): Add a FIXME comment.
 +
 +2003-02-04  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (conflicts2- c. 142d): New test for double add and two
 +      attempted commits of files with the same name.  Fill out some comments
 +      and change one FIXME to a FIXCVS THEN FIXME.
 +
 +2003-02-03  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (start_Server): Send multiple trace options when
 +      necessary.
 +      * server.c (server): Update trace option processing to accept multiple
 +      -t arguments.
 +      * *: Use new TRACE macro.
 +
 +2003-02-02  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * error.c: Update to match error.h.
 +
 +      * cvs.h (cvs_trace): Add attribute for GNU printf format checking.
 +      * error.h: Use same check for prototypes as cvs.h.  Use PROTO
 +      macro rather than #ifdef for error and error_exit.
 +
 +2003-02-01  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
 +      (Patch from Johannes Grødem <johs+n@ifi.uio.no>.)
 +
 +2003-02-01  Derek Price  <derek@ximbiot.com>
 +
 +      * lock.c: Remove extra line feed on TRACE output.
 +
 +2003-01-31  Derek Price  <derek@ximbiot.com>
 +
 +      * cvs.h: Move header includes in from...
 +      * error.c: ...here.  Remove checks for definition of vprintf().
 +      Since our error() function was making assumptions about the definition
 +      of VA_START, we must not have been compiling on platforms without
 +      vprintf for quite awhile and I've heard no complaints.
 +      (fperrmsg): Assume vprintf().
 +      * subr.c (cvs_trace): Don't assume ANSI C function declarations.
 +
 +2003-01-31  Derek Price  <derek@ximbiot.com>
 +
 +      * main.c (main): Allow multiple -t options.
 +      (opt_usage): Correct usage.
 +      * cvs.h (TRACE): New macro.
 +      * subr.c (cvs_trace): New function.
 +      (Thanks to the team at the CVSNT project.)
 +
 +      * lock.c (*): Use new TRACE macro.
 +
 +2003-01-31  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
 +
 +2003-01-30  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (keywordname): New test.
 +
 +2003-01-23  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * diff.c (diff_fileproc): Restructure code to simplify and eliminate
 +      redundant tests.
 +
 +      * server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
 +      coding test for core file.
 +
 +2003-01-21  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * root.c (method_name): Redefine as a 2D array.
 +      * root.h (method_name): Ditto.
 +
 +2003-01-21  Jim Meyering  <jim@meyering.net>
 +
 +      * add.c (add): Rename local-shadowing `i' to `j'.
 +
 +      * root.c (method_names): Declare to be a const array of const strings.
 +      (Name_Root): Save errno so it doesn't get clobbered
 +      by the intervening error call.
 +      Use getline's return value, mainly to save a call to strrchr.
 +
 +2003-01-20  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
 +      it parses correctly.
 +      (Reported by Andres Bertens <abertens@entelchile.net>.)
 +
 +2003-01-15  Karl Fogel  <kfogel@collab.net>
 +
 +      * server.c (dirswitch): Don't free dir_name until right before
 +      allocating it again.  This removes a potential double-free
 +      problem, whereby this function could free dir_name and then
 +      immediately return due to invalid directory syntax (without ever
 +      reassigning dir_name), then reenter and free dir_name again.
 +
 +        Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
 +
 +2003-01-08  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * client.c (update_entries): Only "0" is a special version number;
 +      other numbers starting with 0 (like 0.1) are normal version numbers.
 +      * commit.c (find_fileproc): Ditto.  Also reorganize the code to
 +      simplify the conditions.
 +      (Reported by Michele Zamparelli <michele.zamparelli@eso.org>.)
 +
 +2003-01-02  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
 +
 +2002-12-27  Derek Price  <derek@ximbiot.com>
 +
 +      * admin.c: s/LOCK_(NONE|WRITE|READ)/CVS_$&/g; since the definition of
 +      LOCK_WRITE clashes with a definition in objidl.h on Windoze platforms.
 +      * annotate.c: Ditto.
 +      * client.c: Ditto.
 +      * commit.c: Ditto.
 +      * cvs.h: Ditto.
 +      * diff.c: Ditto.
 +      * edit.c: Ditto.
 +      * lock.c: Ditto.
 +      * log.c: Ditto.
 +      * patch.c: Ditto.
 +      * recurse.c: Ditto.
 +      * remove.c: Ditto.
 +      * status.c: Ditto.
 +      * tag.c: Ditto.
 +      * update.c: Ditto.
 +      * watch.c: Ditto.
 +      * myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
 +      Windoze.
 +      (Thanks to Stephane Rouleau <s.rouleau@videotron.ca>,
 +       Cristopher Seawood <cls@seawood.org>, and
 +       Frederico Costa <frederico.costa@tiscali.no> for all their hints,
 +       tips, and patches for this problem.)
 +
 +2002-12-20  Derek Price  <derek@ximbiot.com>
 +
 +      * client.c (send_a_repository): Suppress a warning under Windoze.
 +
 +2002-12-19  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.am: Remove reference to options.h.
 +      * cvs.h: Ditto.
 +      * options.h: Remove this obsolete file.
 +      * sanity.sh: Remove comment about external diffs causing tests to fail
 +      since CVS hasn't used external diffs in years.
 +
 +      * Makefile.in: Regenerated.
 +
 +2002-12-16  Derek Price  <derek@ximbiot.com>
 +
 +      * admin.c: Disable cvsadmin group checking on the client.
 +      (Reported by Dan Peterson <dbpete@aol.com>.)
 +
 +2002-12-06  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c: Replace calls to malloc with calls to xmalloc and calls to
 +      realloc with calls to xrealloc.
 +      * parseinfo.c: Ditto.
 +      * root.c: Ditto.
 +      * server.c: Ditto.
 +      * zlib.c: Ditto.
 +      * scramble.c: Change some comments to refer to xmalloc rather than
 +      malloc.
 +      (Reported by Dan Peterson <dbpete@aol.com>.)
 +
 +2002-12-04  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Remove CVS_ADMIN_GROUP.
 +
 +2002-12-02  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * commit.c (commit): Strip leading zeros from numeric revision
 +      in addition to trailing dots.
 +      (Reported by Peter Meszaros <pme@prolan.hu>.)
 +
 +2002-11-22  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh: Note that the tests run for a long time.
 +
 +      * checkout.c (safe_location): Use xstrdup, not strdup.
 +      (Reported by Terrence Enger <tenger@iSeries-guru.com>.)
 +
 +2002-11-19  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * log.c (log_expand_revlist): Fix cross-branch correction code.
 +
 +      * sanity.sh: Set $LANG for systems that ignore $LC_ALL.
 +      (rcs2-7): Change date offset from 100 months to 96 months to reduce
 +      periodic problems with invalid dates.
 +
 +2002-11-12  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcslib-symlink): Use rm -f rather than a simple rm when
 +      removing links because under some configurations of RH Linux 8.0 the
 +      script pauses to ask for removal approval.
 +
 +2002-11-08  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (importc): Update the use of the touch command to be
 +      compliant with POSIX 1003.1-2001, SUS2, and SUS3 now that GNU touch
 +      supports this.  If this breaks any test platforms we should test
 +      the behavior of touch like we do for other tools.
 +
 +2002-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
 +
 +2002-11-03  Derek Price  <derek@ximbiot.com>
 +
 +      * sanity.sh (rcs2-7): Notate with three more failure dates.
 +
 +2002-10-25  Derek Price  <derek@ximbiot.com>
 +
 +      * root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
 +      more appropriate calls to error_exit().
 +      * server.c: Ditto.
 +      * tag.c: Ditto.
 +
 +2002-10-24  Derek Price  <derek@ximbiot.com>
 +
 +      * buffer.c (stdio_buffer_shutdown): Remove the getc() call used to
 +      detect spurious output from clients since getc() would sometimes
 +      block and hang indefinately if the client kept the conection open but
 +      sent no data.  Bug reports state that this hapened frequently with
 +      older clients connecting to 1.11.2 servers, especially when
 +      compression is enabled.
 +      (Original report from Mark D. Baushke <mdb@juniper.net>.
 +       Original patch from Ralf S. Engelschall <rse@engelschall.com>
 +       via Peter Wemm <peter@freebsd.org>.)
 +
 +2002-10-05  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * recurse.c (start_recursion, do_recursion): Allow write locking
 +      in addition to read locking.  Change all callers.
 +      * cvs.h: Change prototype to match, add lock types.
 +      * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Have start_recursion
 +      use write locks rather than calling lock_dir_for_write to avoid deadly
 +      embrace.
 +
 +2002-10-04  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * client.c (get_responses_and_close, connect_to_pserver): Set
 +      to_server and from_server to NULL after freeing.
 +      * main.c (main): Clear server_active when finished.  Also neaten
 +      up the SERVER_SUPPORT ifdef's.
 +      * server.c (do_cvs_command): Set protocol_inbuf, stderrbuf, and
 +      stdoutbuf to NULL after freeing.
 +      (server_cleanup): Free buf_from_net and buf_to_set and set to NULL.
 +      Also reset error_use_protocol.
 +      (server): Don't SIG_register server_cleanup.  main_cleanup (which
 +      is already registered) outputs a fatal error which causes it to
 +      be called; registering it directly results in it being called twice.
 +      (cvs_output): Don't try to use buf_to_net or protocol if they're NULL.
 +
 +2002-10-03  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * lock.c (readers_exist): Ignore our own read lock, if any, to
 +      allow upgrading an existing read lock to a write lock.
 +      * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Rather than
 +      locking the entire tree, have start_recursion establish read
 +      locks and then upgrade the read lock to a write lock (so only
 +      one directory is locked at a time).
 +
 +2002-09-27  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * add.c (add): Send "--" before file names.
 +      * admin.c (admin): Ditto.
 +      * annotate.c (annotate): Ditto.
 +      * commit.c (commit): Ditto.
 +      * diff.c (diff): Ditto.
 +      * edit.c (watch_onoff, editors): Ditto.
 +      * log.c (cvslog): Ditto.
 +      * remove.c (cvsremove): Ditto.
 +      * status.c (cvsstatus): Ditto.
 +      * tag.c (cvstag): Ditto.
 +      * update.c (update): Ditto.
 +      * watch.c (watch_addremove, watchers): Ditto.
 +
 +      * sanity.sh (client-9): Update to match.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Remove prototype of STDC exit() function.  If this breaks
 +      a build, this should be detected in configure.in somehow rather than
 +      restoring the line to this file.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of UMASK_DFLT into configure.in.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * Makefile.in: Regenerated using Automake 1.6.3.
 +
 +2002-09-24  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * filesubr.c, history.c, import.c, rcs.c, update.c: Use
 +      HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV instead of
 +      the obsolete HAVE_ST_BLKSIZE and HAVE_ST_RDEV.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of TMPDIR_DFLT into configure.in.
 +
 +2002-09-24  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move defininition of EDITOR_DFLT into configure.in.
 +
 +      * Makefile.in: Regenerated.
 +
 +2002-09-23  Jim Meyering  <meyering@lucent.com>
 +
 +      If `cvs -d REPO commit ...' was used to override CVS/Root,
 +      then modified files in the directory from which cvs is invoked
 +      would not be committed.
 +      * client.c (arg_should_not_be_sent_to_server): The above would happen
 +      because this function would throw out a file name when CVS/Root
 +      did not match the current server.  Fix by allowing the command-line-
 +      specified repository to take precedence over the value returned
 +      by Name_Root.  Patch by Simon Walton <simonw@lucent.com>.
 +      * sanity.sh (commit-d): New tests for the above.
 +      Patch by Simon Walton <simonw@lucent.com>.
 +
 +2002-09-20  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
 +      and SERVER_LO_WATER into configure.in.
 +
 +2002-09-20  Derek Price  <derek@ximbiot.com>
 +
 +      * options.h: Move definition of PATCH_PROGRAM to configure.in.
 +
 +2002-09-18  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * client.c (call_in_directory): Don't create admin directory when
 +      exporting into an existing directory.
 +      (Reported by Jens Engel <Jens.Engel@marconi.com>.)
 +      * sanity.sh (basic2): New tests for above.
 +
 +2002-09-16  Jim Meyering  <meyering@lucent.com>
 +
 +      * server.c (do_cvs_command): Move declarations of locals, timeout and
 +      timeout_ptr, `up', out of enclosing `#ifdef SERVER_FLOWCONTROL' block.
 +      Otherwise, this file would not compile with SERVER_FLOWCONTROL
 +      turned off.  Patch by Ed Santiago <esm@ascend.com>.
 +
 +2002-09-15  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * myndbm.c (mydbm_open): Open the file read/write rather than read-
 +      only if that's what the user asked for to ensure that the later open
 +      for write will succeed.
 +      (Patch submitted by Josh Lehan <cvs@krellan.com>.)
 +
 +2002-08-28  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
 +      (Reported by Eric Siegerman <erics@telepres.com>.)
 +
 +2002-08-16  Derek Price  <derek@ximbiot.com>
 +
 +      * create_adm.c (Create_Admin): Assume RELATIVE_REPOS is set.
 +      * server.c (outside_root): Add comment.
 +      * options.h: Remove RELATIVE_REPOS & CVS_BADROOT.
 +      * sanity.sh: Remove a lot of !RELATIVE_REPOS cruft from tests.
 +
 +2002-08-14  Derek Price  <oberon@umich.edu>
 +
 +      * server.c (server): Dispose of the correct pointer.  Tidy comment.
 +
 +2002-08-13  Derek Price  <oberon@umich.edu>
 +
 +      * client.c (get_cvs_port_number): Fix typo in comment.  Add comments.
 +      * server.c (server): Fix a FIXME.  Remove an errant "const" directive.
 +      Remove some redundant memory allocation and error handling code.
 +
 +2002-08-08  Derek Price  <oberon@umich.edu>
 +
 +      * import.c (import): Surrounded `server_active' with
 +      #ifdef SERVER_SUPPORT/#endif.
 +      * commit.c (commit_fileproc, commit_direntproc): Likewise.
 +      (Patch from John Tytgat  <John.Tytgat@aaug.net>.)
 +
 +2002-07-31  Derek Price  <oberon@umich.edu>
 +
 +      * filesubr.c: Add a line so VIM can determine tab stops and shift widths.
 +      * root.c: Ditto.
 +      * (parse_cvsroot): Add comments and tidy slightly.
 +
 +2002-07-31  Derek Price  <oberon@umich.edu>
 +
 +      * sanity.sh: Add another date to the comment about rcs2-7 failing.
 +
 +2002-07-26  Jim Meyering  <meyering@lucent.com>
 +
 +      * commit.c (find_fileproc): When committing in client mode,
 +      arrange to fail if a `cvs add'ed file no longer exists in the
 +      working directory.
 +      * sanity.sh (commit-add-missing): New test for above.
 +
 +2002-07-25  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * sanity.sh: Set $TMPDIR if it's not already set and use it rather
 +      than /tmp for the expected server temp directory path.
 +
 +2002-07-09  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
 +      struct_tm copying.
 +
 +      * lock.c (lock_wait, lock_obtained): Display time in UTC if possible
 +      to reduce confusion in client/server mode.
 +      (Original patch from Eduardo Perez Ureta <eperez@it.uc3m.es>.)
 +
 +2002-06-26  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
 +      is also a valid status.
 +      (Reported by David Everly <David.Everly@wcom.com>.)
 +      * sanity.sh (tagc): New tests for above.
 +
 +2002-06-18  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * update.c (patch_file): Don't patch if diff bigger than file.
 +      Don't bother adjusting the permission on the diff output if
 +      we're not going to use it.
 +
 +
 +2002-06-18  Derek Price  <oberon@umich.edu>
 +
 +      * server.c: Handle HPUX password expiration fields in the passwd
 +      string in case we are set up on a server with NIS passwords served
 +      from HPUX.
 +      (Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
 +
 +2002-06-17  Larry Jones  <lawrence.jones@eds.com>
 +          and Jonathan Kamens  <jik@kamens.brookline.ma.us>
 +
 +      * commit.c (commit_fileproc, commit_direntproc): Don't try to call
 +      an editor to get the log message if running as a server.  Instead,
 +      just use an empty log message.
 +      * import.c (import): Ditto.
 +
 +      * import.c (import): In client mode, always send a message to the
 +      server, even if it's empty (this parallels a change made by Larry
 +      Jones to commit.c on May 7).
 +
 +2002-05-31  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcs.c: Conditionally define MAP_FAILED for old systems that don't
 +      have it in <mman.h>.
 +      (Reported by jeremy brand <jeremy@earth.care2.com>.)
 +
 +2002-05-24  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcscmds.c (diff_exec): Add a -- before the first file name just
 +      in case it looks like an option.
 +      (Reported by Zooko <zooko@zooko.com>.)
 +
 +      * rcscmds.c (diff_execv): Remove -- same as diff_exec.  Change
 +      only caller.
 +      * cvs.h: Ditto.
 +
 +2002-05-23  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * cvs.h (strcat_filename_onto_homedir): Make arguments const.
 +      * filesubr.c (strcat_filename_onto_homedir): Make arguments const,
 +      move more code here from callers, change all callers.
 +
 +2002-05-22  Derek Price  <oberon@umich.edu>
 +
 +      * cvs.h: Add prototype for this...
 +      * filesubr.c (strcat_filename_onto_homedir): new function.
 +      * login.c (): Use new function.
 +
 +      * cvsrc.c (read_cvsrc): Use new function due to problems on VMS.
 +      * ignore.c (ign_setup): Ditto.
 +      * wrapper.c (wrap_setup): Ditto.
 +      (Original patch from Karsten Spang <ksp@dannet.dk>.)
 +
 +2002-05-21  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
 +      and add a similar assertion for ptrend.
 +      (Reported by Rebecca Young <raygirl@cvshome.org>.)
 +      (rcsbuf_fill): Remove redundant code.
 +
 +2002-05-20  Derek Price  <oberon@umich.edu>
 +
 +      * buffer.h: New prototype for...
 +      * buffer.c (stdio_buffer_get_file): this new function to abstract
 +      access to a buffer's file descriptor.
 +      * client.c (auth_server): Use the new function.
 +      (Original patch from Jonathan Kamens <jik@kamens.brookline.ma.us>.)
 +
 +2002-05-20  Derek Price  <oberon@umich.edu>
 +
 +      * main.c (main): Add 2002 to the copyright years output with the
 +      version string.
 +
 +2002-05-15  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * log.c (log_parse_list): Fix off-by-one error which caused
 +      incorrect handling of 'cvs log -wuser1,user2 foo.c' command.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>,
 +      reported by Alex Morozov <morozov@novosoft.ru>.)
 +
 +2002-05-09  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * login.c (password_entry_operation): Get cvsroot_canonical before
 +      trying to read the user's password file so we have it even if the
 +      file doesn't exist.
 +      (Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
 +
 +2002-05-08  Derek Price  <oberon@umich.edu>
 +
 +      * Makefile.am (cvs_SOURCES): Add options.h explicitly - since we
 +      stopped generating it dynamically, Automake stopped noticing it and
 +      including it in dists.  See TODO item #214 for notes.
 +
 +2002-05-08  Derek Price  <oberon@umich.edu>
 +
 +      * cvs.h: Use the HAVE_CONFIG_H define.
 +
 +2002-05-07  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * filesubr.c (isaccessible): Set errno before returning failure
 +      in the SETXID_SUPPORT code.
 +
 +      * logmsg (do_verify): Avoid even more work if there's no verifymsg
 +      script to run.
 +
 +      * logmsg: Use fputs/putc rather than fprintf where appropriate.
 +      (do_verify): Run the verifymsg script even if there's no log
 +      message.  (Reported by Andy Baker <Andy.Baker2@t-mobile.co.uk>.)
 +      Don't reread the log message unless a verifymsg script was run.
 +
 +      * commit.c (commit): Always send -m to the server, even if there's
 +      no message.
 +
 +      * create_adm.c (Create_Admin): Add dotemplate parameter to trace.
 +      Remove unreachable code.
 +
 +2002-05-03  Larry Jones  <lawrence.jones@eds.com>
 +
 +      * server.c (serve_watch_on, serve_watch_off, serve_watch_add,
 +       serve_watch_remove): Just pass "watch" as the command name
 +       to do_cvs_command to avoid unknown command errors.
 +       (Reported by Gary Hennigan <gary@ieee.org>.)
 +
 +      * rcs.c (RCS_checkin): Fix bad call to error () in buggy
 +      PRESERVE_PERMISSIONS code.
 +      (rcs_internal_unlockfile): Include current value of errno in error
 +      message even though it may well be irrelevant (it's still better
 +      than nothing).
 +
 +2002-05-02  Derek Price  <oberon@umich.edu>
 +
 +      * .cvsignore: Remove lines for files obsoleted by new autotools.
 +
 +2002-05-02  Derek Price  <oberon@umich.edu>
 +
 +      * stamp-h2.in: Remove this uneeded file.
 +
 +2002-05-01  Derek Price  <oberon@umich.edu>
 +
 +      * options.h.in: Move to...
 +      * options.h: here.
 +
 +2002-04-30  Derek Price  <oberon@umich.edu>
 +
 +      * version.h.in: Remove this file.
 +      * version.h: Ditto.
 +
 +      * Makefile.am: Remove references to version.h.
 +      * cvs.h: Use <> rather than "" around the config.h #include.  I didn't
 +      quite bother to understand why, but autoconf recommends it.
 +      * cvsbug.in: Use PACKAGE_BUGREPORT defined by configure for the bug
 +      report email address.
 +      * version.c (version): Use PACKAGE_STRING defined in config.h instead
 +      of the version_string that used to be defined in version.h.
 +
 +      * Makefile.in: Regenerated with automake 1.6.
 +
 +2002-04-28  Derek Price  <oberon@umich.edu>
 +
 +      * cvs.h: Use `"'s around includes when we mean a local file.
 +
 +2002-04-28  Derek Price  <oberon@umich.edu>
 +
 +      * cvs.h: #define new names for functions and variables when they
 +      might conflict with system definitions (namely on Mac OS X 10.1 with
 +      the most recent dev packages - This should be removable after the Mac
 +      dev packages are fixed.).
 +
 +2002-04-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
 +      (Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
 +
 +2002-04-19  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_expand_revlist): First cut at code to allow logging
 +      between a revision and *any* ancestor, not just one explicitly on
 +      the same branch (e.g., from 1.1 to 4.1.2.3.6.1).
 +
 +      * subr.c (gca): Simplify and optimize.
 +
 +2002-04-19  Jim Meyering  <meyering@lucent.com>
 +      and Ed Santiago <easm@lucent.com>
 +
 +      * classify.c (Classify_File): Fix it so that `cvs update -p -r...'
 +      works, even under some slightly unusual (though perfectly legitimate)
 +      circumstances.
 +      * sanity.sh (update-p): New tests for this.
 +
 +2002-04-18  Derek Price  <oberon@umich.edu>
 +
 +      * sanity.sh: Move test for regex metacharacters in username until
 +      after we're sure we found the version of expr that we're going to use.
 +
 +2002-04-18  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * admin.c (admin_fileproc): Allow admin to be used on RCS files with
 +      no local version (e.g., removed files) like most other subcommands.
 +
 +      * wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
 +
 +2002-04-18  Derek Price  <oberon@umich.edu>
 +
 +      * version.h: Regenerated for 1.11.2.1 version update.
 +
 +2002-04-17  Derek Price  <oberon@umich.edu>
 +
 +      * version.h: Regenerated for 1.11.2.
 +
 +2002-04-03  Derek Price  <oberon@umich.edu>
 +
 +      * stamp-h2.in: Regenerate with recent version of Autoconf.
 +
 +2002-04-03  Derek Price  <oberon@umich.edu>
 +
 +      * sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
 +      to /dev/null to avoid spurious output on some operating systems
 +      (notably Mac OS X).
 +
 +2002-03-22  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
 +      of cvs.
 +
 +2002-03-21  Derek Price  <oberon@umich.edu>
 +
 +      * vers_ts.c (time_stamp): Return the timestamp for the newer of the
 +      link and the link's source when the file is a link.
 +      (Patch from RedHat cvs-1.11.1p1-7 SRPM.)
 +
 +      * sanity.sh (rcslib): Test for same.
 +
 +2002-03-17  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (cvslog, log_fileproc): Add -S option to suppress head or
 +      file name if no revisions selected.
 +      * sanity.sh (log): New tests for above.
 +
 +2002-03-13  Derek Price  <oberon@umich.edu>
 +
 +      * main.c (usg): Correct a spelling mistake in a comment.
 +      (Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
 +
 +2002-03-09  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * import.c (import): Change the suggested merge message to use
 +      rev tags instead of the branch tag with a date.
 +      * sanity.sh (import, importb): Change to match.
 +
 +      * remove.c (remove_fileproc): Disallow removing files with sticky
 +      dates for the same reason we already disallow sticky numeric tags.
 +      * sanity.sh (sticky): New test for above.
 +
 +2002-02-27  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
 +
 +2002-02-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * diff.c (diff): Remove -V and --paginate options: they aren't valid.
 +      (diff_usage): Document all the diff options.
 +
 +2002-02-13  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
 +      else does and I don't see any documentation that says it should).
 +      (translate_symtag): Break out of loop at end of symbols to prevent
 +      looping forever when tag is "".
 +      (Reported by Alain ENOUT <aln00@udcast.com>
 +      via Eric Gillespie <epg@pretzelnet.org>.)
 +
 +2002-02-11  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * server.c (server_cleanup): Set buf_to_net back to blocking mode
 +      and flush it (in case there are any error messages pending) before
 +      shutting down buf_from_net and again right before shutting it down.
 +
 +2002-02-08  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * main.c (lookup_command_attribute): Throw a fatal error if the
 +      command is not found.
 +      * server.c (server_tag): Use the correct command name.
 +
 +2002-01-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * error.h (error_exit): Remove unintended prototype.
 +
 +      * server.c (serve_root): Remove check for impossible condition.
 +      (serve_init): Save and restore current_parsed_root.
 +
 +2002-01-29  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * error.h (error_exit): Declare __noreturn__ to avoid spurious
 +      warnings.
 +
 +      * server.c (serve_root): If the specified root doesn't match the
 +      pserver root, return before changing current_parsed_root to prevent
 +      subsequent commands from accessing an unchecked root directory.
 +      (server_init): Check specified root against the pserver root and
 +      complain if they don't match.  Also, if there are pending errors,
 +      print them and return before changing current_parsed_root to prevent
 +      subsequent commands from accessing an unchecked root directory.
 +      * sanity.sh (pserver): New tests for above.
 +
 +2002-01-10  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_version_requested): Change :: in revision spec to be
 +      exclusive just on the low end (so -r tag1::tag2 gives revisions
 +      after tag1 but up to and including tag2), which is much more useful
 +      than the previous (exclusive at both ends) behavior.
 +      (log_usage): Update to match.
 +      * sanity.sh (log): Update to match.
 +
 +2002-01-02  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * server.c (LOG_DAEMON): Define if needed.
 +      (Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
 +
 +      * server.c (pserver_authenticate_connection): Add a specific error
 +      message for EOF at protocol start and syslog if available.
 +      * sanity.sh (pserver-bufinit): Update to match.
 +
 +2001-12-10  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_usage): Note that -r and -d take lists, not just a
 +      single specification.
 +      (log_expand_revlist): Don't dereference null pointers when one end
 +      of a revision range is a non-existent tag.
 +
 +2001-12-03  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * annotate.c (annotate, annotate_fileproc): Don't annotate binary
 +      files unless new -F option given.
 +      * sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
 +      to match.
 +
 +2001-11-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
 +
 +2001-10-25  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_expand_revlist): Make erroneous or inconsistent revision
 +      specs select no revisions rather than all revisions.
 +
 +2001-10-23  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * import.c (add_rcs_file): Don't put an expand entry into the file
 +      for the default expansion mode (kv).
 +      * wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
 +      with default expansion mode since they may be needed to avoid matching
 +      a more general entry later.
 +      (wrap_add): Set rcsOption to NULL for default (kv).
 +      (wrap_add_entry): Use structure assignment to copy entries rather
 +      that copying members by hand.
 +      * sanity.sh (binwrap3): Revise to test wrapper entries that don't
 +      specify any non-default options but just prevent matching later,
 +      more general entries.
 +
 +2001-10-02  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_fully_parse): Add revision number to more error messages.
 +
 +2001-09-27  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
 +      number to the "mismatch" error message.
 +
 +      * sanity.sh (multiroot2-9a): Update to match changes to lock.c.
 +
 +2001-09-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
 +
 +2001-09-24  Derek Price  <dprice@collab.net>
 +
 +        * find_names.c (add_entries_proc): Leave closure specified as such in the
 +      function definition for clarity.
 +
 +        * find_names.c (Find_Names): Use 'closure' feature of walklist()
 +        to eliminate the static variable.
 +      (add_entries_proc): Expect closure to be the file list.
 +      (Patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
 +
 +2001-09-19  Derek Price  <dprice@collab.net>
 +
 +      * rcs.c (rcsbuf_valpolish_internal): Restore one of the
 +      "if ( ... ) abort();" sequences since it seems to check the validity of
 +      the RCS file rather than for a programming error.  Also added a FIXME
 +      comment to the effect that we should explain the RCS file error to the
 +      user as such if it is such.
 +      (Thanks to Larry Jones  <scjones@sdrc.com>.)
 +
 +2001-09-19  Derek Price  <dprice@collab.net>
 +
 +      * rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
 +      of the form "if ( ... ) abort();" with equivalent calls to assert().
 +
 +2001-09-17  Derek Price  <dprice@collab.net>
 +
 +      * myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
 +      messages more informative.
 +      * sanity.sh (modules6): New test.
 +      (Original report from Taska <taska@collab.net> and others.)
 +
 +2001-09-14  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c (do_verify): Dispose memory when finished with it.
 +
 +2001-09-07  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * mkmodules.c (notify_contents): In the example, move the %s to
 +      the end since many, if not most, versions of mail insist on
 +      options coming before addresses.
 +
 +2001-09-06  Derek Price  <dprice@collab.net>
 +
 +      * login.c (login): Deal with NULL return value from getpass.
 +
 +2001-09-04  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Regenerated with automake 1.5.
 +      * stamp-h2.in: Ditto.
 +
 +2001-09-04  Derek Price  <dprice@collab.net>
 +
 +      * main.c (main): Fix empty CVSROOT message to specify `valid' instead
 +      of `legal'.
 +
 +2001-09-04  Derek Price  <dprice@collab.net>
 +
 +      * server.c (pserver_authenticate_connection): Back out changes from the
 +      30th and...
 +      * getline.c (getstr): init the buffer instead.
 +
 +2001-08-31  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Backed out accidental commit from yesterday.
 +
 +2001-08-30  Derek Price  <dprice@collab.net>
 +
 +      * server.c (pserver_authenticate_connection): Don't print from the
 +      NULL pointer in the error message string in the case where the client
 +      didn't send any data.
 +      * sanity.sh (pserver): Test for this case.
 +      (Report from Mark Welch <mark@collab.net>).
 +
 +2001-08-24  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c (do_editor): Add comment and assertion.
 +      * import.c (import): Don't call do_editor with a repository argument
 +      in client mode.
 +      (Report and original patch from darkness <darkness@invado.com>.)
 +
 +2001-08-24  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_expand_revlist): Arrange for nil revision specs to
 +      select nothing instead of everything.
 +      * sanity.sh (log): New tests for above.
 +
 +2001-08-24  Derek Price  <dprice@collab.net>
 +
 +      * parseinfo.c (Parse_Info): Change the function name in the trace
 +      and add the client/server string.
 +
 +2001-08-24  Derek Price  <dprice@collab.net>
 +
 +      * Implement RereadLogAfterVerify CVSROOT/config option to control
 +      FreeBSD read-write of log messages in the verification script.
 +      * logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
 +      to preserve the status quo.
 +      * parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
 +      option. Possible values are: no | never | yes | always | stat
 +      * cvs.h: Add extern for RereadLogAfterVerify and new value macros
 +      LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
 +      its values.
 +      (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
 +
 +      * Apply changes from FreeBSD cvs sources to implement a read-write
 +      user-defined verification script.
 +      * logmsg.c (do_verify): Update do_verify to expect a pointer
 +      to the saved message. The log file passed to the verifymsg_script
 +      should be re-read after the user-defined verification script has
 +      been run. The user-defined verification script is allowed to
 +      modify the message.  This allows the script to add extra
 +      information to the log message or to remove template lines that
 +      are not needed.
 +      * cvs.h: Update prototype for do_verify prototype to expect a
 +      pointer to the saved_message.
 +      * commit.c (commit, commit_fileproc, commit_direntproc): Update
 +      calls to do_verify as the saved_message arg is now read-write.
 +      * import.c (import):  Update calls to do_verify as the
 +      saved_message arg is now read-write.
 +      * sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
 +      and add a new info-v4 test case have the verification script
 +      modify the log message to test the above changes.
 +      (Patch from Mark D. Baushke  <mdb@cvshome.org>.)
 +
 +      * logmsg.c: Change RereadLogAfterVerify default to always.
 +      (do_verify): Reformat and make minor fixes to Mark's patch.
 +      * mkmodules.c (config_constants): Add comment about
 +      RereadLogAfterVerify.
 +      * sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
 +      reformat them a bit.
 +
 +2001-08-23  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (info): Demonstrate that the verifymsg scripts can
 +      sometimes, but not always, retreive information on which directory is
 +      being committed to.
 +
 +2001-08-22  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c: Back out the last change - the repository which is passed
 +      in is actually the directory and changes with each call to do_verify.
 +      If a verifymsg script is using `pwd`, this could change the operation.
 +      * cvs.h: Ditto.
 +      * commit.c: Ditto.
 +      * import.c: Ditto.
 +
 +2001-08-22  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c (do_editor): Return reused_message.
 +      (do_verify): Don't verify the same log message more than once.
 +      * cvs.h: Update prototypes for do_verify and do_editor.
 +      * commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
 +      * import.c (import): Ditto.
 +
 +2001-08-22  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c (do_verify): Remove an unecessary "else" clause following an
 +      exit and unindent the former contents.
 +
 +2001-08-22  Derek Price  <dprice@collab.net>
 +
 +      * commit.c (commit): Don't call do_verify in client mode since we know
 +      do_verify will just return anyhow.
 +
 +2001-08-20  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.am (cvs_SOURCES): Add version.c and version.h.
 +      (BUILT_SOURCES): Add version.h.
 +      (Maintainer Targets): Remove version.h.
 +      * version.c: Remove @VERSION@ dependant bits.
 +      * version.c.in: Removed.
 +      * version.h.in: New file.
 +      (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +      * Makefile.am: Various modifications to make Automake, make dist, and
 +      windows targets work like they are supposed to.
 +      * version.h: New (generated) file.
 +
 +      * Makefile.in: Regenerated.
 +
 +2001-08-09  Derek Price  <dprice@collab.net>
 +
 +      * client.c (socket_buffer_shutdown): Use recv instead of read and
 +      return 0 on success.
 +      (Patch from "Manfred Klug" <manklu@web.de>.)
 +
 +2001-08-09  Derek Price  <dprice@collab.net>
 +
 +      * buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
 +      when NO_SOCKET_TO_FD is defined.
 +      * client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
 +      call and reference to S_ISSOCK since these functions aren't available
 +      under Windows.
 +      (connect_to_forked_server, connect_to_pserver, start_tcp_server,
 +      start_server, start_rsh_server): Use new argument.
 +      (Patch from "Manfred Klug" <manklu@web.de>.)
 +
 +      * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
 +      where rsh pipes weren't being closed.
 +
 +2001-08-09  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (rmadd, rm-update-message, join-two-branch,
 +      ignore-on-branch): Change a few references to `cvs' to `$PROG'.
 +
 +2001-08-07  Derek Price  <dprice@collab.net>
 +
 +      * build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
 +      * patch.c: VMS time_t appears to be unsigned.   Add a cast when testing
 +      for (time_t)-1.
 +      * subr.c: #else,#endif for no symlinks should be moved.
 +      (Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
 +
 +2001-08-06  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Regenerated.
 +
 +2001-08-01  Derek Price  <dprice@collab.net>
 +
 +      * diff.c (diff): Send long option for side-by-side diffs to the server
 +      rather than '-y', for backwards compatibility with old servers.
 +      (Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
 +
 +2001-07-19  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
 +      disabled in wrapper.c.
 +
 +      * checkout.c (checkout): Don't complain about checking out into the
 +      repository when piping output.
 +      (Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
 +      * sanity.sh (checkout_repository): New tests for above.
 +
 +2001-07-10  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (importc-7): Now works correctly in local mode.
 +
 +      * commit.c (commit_dirleaveproc): We're still in the directory when
 +      this is called, so the first argument to Name_Repository needs to
 +      be NULL, not dir.
 +      * sanity.sh (rmadd): New tests for above.
 +
 +      * commit.c (commit): Reword error messages for committing as root.
 +
 +2001-07-08  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
 +      NUL terminator.
 +      * update.c (special_file_mismatch): Ditto.
 +      (Reported by Pekka Savola <pekkas@netcore.fi>.)
 +
 +2001-07-05  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * client.c, root.c: Fix -Wall warnings.
 +
 +      * buffer.c: #include socket header to declare shutdown().
 +
 +      * rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
 +      portability.
 +      (RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
 +
 +2001-07-04  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Regenerated with new Automake release candidate 1.4h.
 +
 +2001-07-03  Derek Price  <dprice@collab.net>
 +
 +      * rcs.c (rcsbuf_open): Reduce memory consumption still further by not
 +      mmapping the entire file when pos is specified.
 +      (rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
 +      caching.
 +
 +2001-07-03  Derek Price  <dprice@collab.net>
 +
 +      * rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
 +      consumption, especially with large (e.g. binary) files.
 +      (rcsbuf_close): Call munmap.
 +      (rcsbuf_getkey): Remove the buffer fill code when using mmap.
 +      (rcsbuf_getrevnum): Ditto.
 +      (rcsbuf_fill): Remove this function when using mmap.
 +      (rcsbuf_cache_open): Mostly don't use this function with mmap.
 +      (RCS_copydeltas): Don't depend on the file pointer with mmap.
 +
 +      * stamp-h2.in: Regenerated.
 +
 +2001-07-03  Derek Price  <dprice@collab.net>
 +
 +      * update.c: Indent compiler directives.
 +
 +2001-07-02  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * import.c (update_rcs_file): Use -kb instead of -ko when comparing
 +      binary files.
 +      (Reported by Gyula Faller <gfaller@graphisoft.hu>.)
 +
 +2001-06-28  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * checkout.c (checkout): Explicitly initialize all the static options
 +      so that multiple calls work right.  Also fix potential memory leaks.
 +      (Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
 +
 +2001-06-28  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Regenerated with new version of Automake.
 +
 +2001-06-28  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * checkout.c (checkout): Set history_name for export as well as
 +      checkout.
 +      (checkout_proc): Use it.
 +
 +      * checkout.c (safe_location): Add missing argument in error message.
 +
 +2001-06-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * recurse.c (start_recursion): Use strip_trailing_slashes instead
 +      of doing it by hand.
 +
 +      * server.c (pserver_authenticate_connection): Don't clear out
 +      descrambled_password until *after* it's (potentially) logged.
 +      (Reported by Eric Hanchrow <offby1@blarg.net>.)
 +
 +2001-06-25  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * recurse.c (start_recursion): Deal with at least some of the cases
 +      where trailing slashes cause confusion.
 +      (Reported by Malcolm Fernandes <fernande@redback.com>.)
 +      * sanity.sh (basica, basicb): Tweak existing tests to check this.
 +
 +2001-06-22  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (modules5): New tests with -d on command line.
 +
 +2001-06-21  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * modules.c (do_module): Use run_module_prog and server_active to
 +      determine when to call server_prog instead of using server_expanding
 +      so that we get the right paths in the replies as long as we take
 +      mwhere into account in addition to where.
 +      (Reported by Pascal Bourguignon <pjb@informatimago.com>.)
 +      * server.c (server_prog): Use protocol pipe instead of buf_to_net.
 +      * sanity.sh (modules5): Remove FIXCVS comment and update to match.
 +      * server.c, server.h: Remove server_expanding since now unused.
 +
 +2001-06-21  Larry Jones  <larry.jones@sdrc.com>
 +        for Stephen Rasku  <stephen@tgivan.com>
 +
 +      * admin.c: Corrected spelling mistakes in help.
 +
 +2001-06-20  Derek Price  <dprice@collab.net>
 +
 +      * client.c (socket_buffer_shutdown): Fix untested typos.
 +      (Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
 +
 +      * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
 +      the correct place.
 +
 +2001-06-20  Derek Price  <dprice@collab.net>
 +
 +      * logmsg.c (do_editor): Abort in the case that the file has only
 +      comment lines.
 +      (Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
 +
 +      * logmsg.c (do_editor): Fix rare memory leak.
 +      * sanity.sh (editor): Add tests for aborted log messages.
 +
 +2001-06-20  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * server.c (switch_to_user): Only set $CVS_USER if
 +      AUTH_SERVER_SUPPORT is defined.
 +      (Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
 +
 +2001-06-13  Derek Price  <dprice@collab.net>
 +
 +        * client.c: Fix incorrect fixed-size buffer usage in
 +        connect_to_gserver().
 +      (Minor changes to a patch from Alexey Mahotkin  <alexm@hsys.msk.ru>.)
 +
 +2001-06-11  Derek Price  <dprice@collab.net>
 +
 +      * main.c (main): Always print $CVSROOT when parse_cvsroot fails.
 +      * root.c (parse_cvsroot): Tidy error messages and provide more
 +      consistent behavior.
 +      * sanity.sh (crerepos): Adapt to new error messages.
 +      (Suggested by  Alexey Mahotkin <alexm@hsys.msk.ru>.)
 +
 +2001-06-08  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
 +
 +2001-06-07  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
 +      should never break locks, you have to specify a specific revision
 +      to do that.  Also add an informative message for a bare -u when
 +      the user doesn't hold any locks.
 +      * commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
 +      * sanity.sh (rmadd-24): Update to match.
 +
 +      * sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
 +      dotest_fail.  Allow for "broken pipe" rather than "end of file".
 +
 +2001-06-07  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
 +      /tmp/cvs-sanity/cvsroot.
 +
 +2001-06-06  Derek Price  <dprice@collab.net>
 +
 +      (Reformatting, bug fixes, tests, and comments to a
 +      patch from Stephen Cameron <steve.cameron@compaq.com>.)
 +
 +      * tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
 +        Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
 +        and "cvs rtag -d" so that they will not disturb existing
 +        branch tags unless a new "-B" option is given.
 +      * sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
 +        to "cvs tag" and "cvs rtag"
 +
 +2001-06-06  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
 +      test call at Larry's suggestion.  Also, test the error message since
 +      it's fixed now.
 +
 +2001-06-05  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_unlock): Note when breaking someone else's lock.
 +      (Reported by MURVAI-BUZOGANY Laszlo
 +      <Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
 +      * sanity.sh (reserved-14): Update to match.
 +
 +2001-06-05  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false...  this is a local
 +      mode only test anyhow.
 +      (Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
 +
 +2001-05-31  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
 +      in the hopes that the data will eventually prove useful to someone
 +      motivated enough to fix the problem.
 +
 +2001-05-30  Derek Price  <dprice@collab.net>
 +
 +      * stamp-h2.in: Regenerated.
 +
 +2001-05-30  Derek Price  <dprice@collab.net>
 +
 +      * *: Various bug fixes and comments for the following
 +      patch from Donald Sharp <sharpd@cisco.com>:
 +
 +      * checkout.c (safe_location): cvs co -d <directory> still had
 +      failure modes from the way the -d option works.
 +      * sanity.sh: Misc error message resynching.
 +
 +2001-05-29  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.am (cvs_SOURCES): Add root.h.
 +
 +      * Makefile.in: Regenerated.
 +      * stamp-h2.in: Regenerated.
 +
 +2001-05-29  Derek Price  <dprice@collab.net>
 +
 +      * checkout.c (safe_location): Correct formatting.
 +
 +2001-05-29  Derek Price  <dprice@collab.net>
 +
 +      * root.c (parse_cvsroot): Fix a comment.
 +
 +2001-05-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * checkout.c (safe_location): Use old-style definition to keep
 +      non-ANSI compilers happy.
 +
 +      * sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
 +      of /tmp/cvs-sanity/cvsroot.
 +
 +2001-05-25  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (modules5): Add sleep to script to help avoid out of
 +      order messages.
 +
 +      * filesubr.c (mkdir_if_needed): Return 1 if the directory exists
 +      reguardless of what errno is set to.
 +      (Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
 +
 +2001-05-25  Derek Price  <dprice@collab.net>
 +      for Donald Sharp  <sharpd@cisco.com>
 +
 +      * checkout.c:  Modified safe_location() to refuse checkout if
 +      the -d option to co specifies inside of the repository.
 +      * import.c:  New parameter to safe_location needed to be added.
 +      * cvs.h:  New parameter to safe_location needed to be added.
 +      * sanity.sh:  Test case to test for failure mode.
 +
 +2001-05-23  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * checkout.c (checkout_proc): Don't build top_level_admin directory
 +      when exporting.
 +      (Reported by Tony Byrne <tonyb@directski.com>.)
 +
 +2001-05-21  Derek Price  <dprice@collab.net>
 +
 +      * client.c: Fix a mispelling in a comment.
 +      (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
 +
 +2001-05-05  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * login.c (password_entry_operation): Only warn if unable to open
 +      .cvspass for reading: may be initial login and it doesn't exist yet.
 +
 +2001-05-15  Derek Price  <dprice@collab.net>
 +
 +      * client.c (start_tcp_server): Use the struct sockaddr_in declared in
 +      the function.
 +      (Reported by Emil Isberg <isberg@dynarc.se>.)
 +
 +2001-05-05  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * annotate.c (annotate): Pass local to do_module and rannotate_proc
 +      so that -l actually works.
 +      * log.c (cvslog): Ditto.
 +      * patch.c (patch): Ditto; make local local instead of global.
 +      (patch_proc): Use local_specified parameter instead of global.
 +      * tag.c (cvstag, rtag_proc): Ditto.
 +
 +2001-05-05  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * client.h: Declare "struct buffer" outside prototype for __STDC__
 +      compilers.
 +
 +2001-05-04  Derek Price  <dprice@collab.net>
 +
 +      * client.c:  General refactoring.  Removed several global variables in
 +      favor of passing locals and/or dynamic evaluation.
 +      (recv_line): Removed this function.
 +      (make_bufs_from_fds): New function with factored code.
 +      (connect_to_forked_server): New prototype.  Use new functions.
 +      (connect_to_pserver): New prototype.  Use new functions.
 +      (connect_to_gserver): New prototype.  Use new API.
 +      (auth_server): Factored this portion of the pserver code so it can be
 +      shared.  Rewrote to use buffers rather than depending on a socket.
 +      (start_rsh_server): New prototype.  Use new API.
 +      (start_tcp_server): New prototype.  Use new API.
 +      (start_server): Factor some code.  Use new API.
 +      * client.h: New prototypes.
 +      * cvs.h: Gratuitous reformatting.  Use new root.h.
 +      * login.c (login): Use new connect_to_pserver API.
 +      * root.h: New file.  Contains some code that used to be in cvs.h.
 +
 +2001-05-04  Derek Price  <dprice@collab.net>
 +
 +      * client.c: Gratuitous reformatting.
 +      * client.h: Ditto.
 +
 +2001-05-04  Derek Price  <dprice@collab.net>
 +
 +      * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
 +      prototype.
 +      (compress_buffer_shutdown_output): Ditto.
 +      (Thanks to Pavel Roskin <proski@gnu.org>.)
 +
 +2001-05-03  Derek Price  <dprice@collab.net>
 +
 +      * buffer.c (struct stdio_buffer_closure): New structure to hold a
 +      FILE * and the child's PID when necessary.
 +      (stdio_buffer_initialize): Change proto to accept PID.  Set up new
 +      closure.  Pass new stdio_buffer_shutdown to buf_initialize.
 +      (stdio_buffer_input): Use new closure.
 +      (stdio_buffer_output): Ditto.
 +      (stdio_buffer_flush): Ditto.
 +      (stdio_buffer_shutdown): New function.  Teach buffer to close itself.
 +      (packetizing_buffer_shutdown): Use new buffer shutdown proto.
 +      * buffer.h (struct buffer): New buffer shutdown proto.
 +      (stdio_buffer_initialize): New proto.
 +      * client.c (log_buffer_shutdown): Use new proto.
 +      (socket_buffer_initialize): Pass shutdown func.
 +      (socket_buffer_shutdown): New function.
 +      * server.c (get_responses_and_close): Remove most of the guts.  Rely
 +      on the buffer shutdown function from now on.
 +      (start_rsh_server): Return child PID.
 +
 +2001-05-03  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * history.c (history_write): Handle the case where the user's home
 +      directory doesn't exist gracefully instead of erroring out.
 +      (Reported by David Hoover <dhoover@cadence.com>.)
 +
 +2001-05-03  Derek Price  <dprice@collab.net>
 +
 +      * cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
 +      I wrote in the ChangeLog, oh, so long ago.
 +      * diff.c (diff): Ditto.
 +      * subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
 +
 +2001-05-02  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * rcs.c (RCS_getdate): Handle the (unusual!) case where we
 +      can't find any revisions at all.
 +      (Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
 +
 +2001-04-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
 +      duplicate names; fix to work without SERVER_SUPPORT defined.
 +      (Reported by Pavel Roskin <proski@gnu.org>.)
 +
 +2001-04-29  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.am (check-local): Make dependent on localcheck and
 +      remotecheck and move old check target...
 +      (localcheck): here.
 +
 +      * Makefile.in: Regenerated.
 +
 +2001-04-27  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (pserver): Add tests for readers and writers.
 +
 +2001-04-27  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (version-2r): Update to handle patch releases in version
 +      numbers.
 +
 +2001-04-27  Derek Price  <dprice@collab.net>
 +
 +      * version.c: Regenerated.
 +
 +2001-04-27  Derek Price  <dprice@collab.net>
 +
 +      * version.c: Regenerated.
 +
 +2001-04-27  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * main.c (lookup_command_attribute): Lookup specified command, not
 +      whatever's in the global command_name.
 +
 +2001-04-25  Derek Price  <dprice@collab.net>
 +
 +      * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
 +      * version.c: Regenerated.
 +
 +2001-04-22  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * tag.c (tag_check_valid): Make an unwritable val-tags file a
 +      warning instead of a fatal error.
 +
 +2001-04-20  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * annotate.c (annotate_usage): -r and -D are not mutually exclusive.
 +      * main.c (cmd_usage): Add missing version subcommand.
 +      * update.c (update_usage): Add missing -C option.
 +
 +      * sanity.sh (death2): New tests for previous change.
 +
 +      * classify.c (Classify_File): Treat a dead revision like the RCS
 +      file doesn't exist.
 +      * sanity.sh: Update to match.
 +
 +2001-04-16  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * checkout.c, update.c: Fix usage messages: -r and -D are not
 +      mutually exclusive.
 +      (Suggested by David L. Martin <dlmart2@home.com>.)
 +
 +      * logmsg.c (do_editor): Don't add a blank line to the message.
 +      * sanity.sh (editor-log-file*): Update to match.
 +
 +      * checkout.c, update.c: Note in usage message that -k is sticky.
 +
 +      * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
 +      (Suggested by Rob Saccoccio <robs@chelsea.net>.)
 +
 +2001-04-04  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
 +      dotest_sort): Don't count on $? being set in then or else clauses.
 +
 +      * ignore.c (ignore_files): Collect unignored files into a list and
 +      sort it before calling PROC to avoid order dependencies.  Rewrite
 +      the while loop to allow normal continues instead of goto.
 +
 +2001-04-04  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (ignore-on-branch-3): Fix in the remote case.
 +
 +2001-04-03  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * update.c (update_fileproc): Remove unused variable (resurrecting).
 +
 +2001-04-03  Derek Price  <dprice@collab.net>
 +          Larry Jones  <larry.jones@sdrc.com>
 +          reported by Jakob Bøhm  <JB@Danware.dk>
 +
 +      * update.c (update_fileproc): Don't store a file with T_UNKNOWN status
 +      in ignlist if present in the sandbox.
 +      * sanity.sh (ignore-on-branch): New test.
 +      (ignore): Tidy this test.
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
 +      is used and the user is root.  Fix some quoting in error messages.
 +      (fork): Take `cvs' out of the PATH.
 +      (TODO): Add note about the test suite not working with user names over
 +      eight characters in length.
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (fork): New test for CVS_SERVER default.
 +      (TODO): Note about eventually removing most of the references to
 +      CVS_SERVER.
 +
 +2001-04-02  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * client.c (connect_to_forked_server): Use program_path as the default
 +      server instead of "cvs".
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Use less obfuscated English in my comment about sanity
 +      checking sanity.sh.
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (rm-update-message): Create a test directory again but
 +      change back to the correct directory upon completion this time.
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Change last two '[.*]'s to 'test's for
 +      consistency and remove...
 +      (TODO): the note from the TODO list.
 +
 +2001-04-02  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Add test for PWD before successful exit.
 +
 +2001-03-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (rm-update-message): Remove duplicate code.
 +
 +2001-03-30  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (rm-update-message): New test for local/client-server
 +      warning message discrepency.
 +
 +2001-03-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * annotate.c: Move annotate() here from rcs.c, support rannotate.
 +      * Makefile.am, Makefile.in: Add annotate.c.
 +      * main.c (cmds[], cmd_usage[]): Add rannotate.
 +      * rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
 +      * rcs.h:    ... here.
 +      * server.c (serve_rannotate): New.
 +      (requests[]): Add rannotate.
 +      * sanity.sh (ann): New tests for rannotate.
 +
 +      * log.c (rlog_proc): Remove dead code.
 +
 +2001-03-30  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (join-readonly-conflict): Run more of this through dotest.
 +
 +2001-03-30  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * log.c (log_fileproc): Don't output working file for rlog.
 +      * sanity.sh (log): New tests for rlog.
 +
 +      * cvs.h (mtype): Add MISC type.
 +      * log.c (cvslog): Support rlog as well as log.
 +      (rlog_proc): New.
 +      * main.c (cmds[], cmd_usage[]): Add rlog.
 +      (main): Remove old rlog warning message.
 +      * server.c (serve_rlog): New.
 +      (requests[]): Add rlog.
 +
 +2001-03-29  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: cd to $TESTDIR once after it is normalized.  Make TODO
 +      on history and symlinks more specific.  Tested properly this time.
 +
 +2001-03-29  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * main.c (cmds[], lookup_command_attribute, main): Include the
 +      command attributes in the global command table instead of inferring
 +      them from the command names.  Change the sense of the
 +      CVS_CMD_IGNORE_ADMROOT attribute to match its name.
 +
 +2001-03-29  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (*, basic2-64): Remove references to TMPPWD.  Fix FIXME
 +      at end of script now that $TESTDIR can't be relative.
 +
 +2001-03-29  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Normalize TESTDIR even when the user set it.
 +
 +2001-03-29  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * client.c (connect_to_pserver, start_tcp_server): Add IP address
 +      to connect failed message.
 +      (connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
 +      trace messages ala start_rsh_server.
 +      (start_rsh_server): Include entire command in trace message for
 +      START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
 +
 +2001-03-29  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
 +      ${CVSROOT_DIRNAME} for consistency.
 +
 +2001-03-29  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
 +      for a CVS bug since May 96/97.  Not sure when the bug went bye-bye, but
 +      the tests broke when $TESTDIR != $TMPPWD.
 +
 +2001-03-26  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * classify.c (Classify_File): Don't report a conflict for a removed
 +      file when piping.  Also simplify the code structure.
 +      (Reported by Milos Kleint <milos.kleint@netbeans.com>.)
 +      * sanity.sh (rmadd2-14[abc]): New tests for above.
 +
 +2001-03-24  Noel Cragg  <noel@shave.cnet.com>
 +
 +      * diff.c: mods to allow `-T' and `-y' options to be passed through
 +      to the diff library.  This wasn't allowed earlier because of a
 +      similarly named options that got passed through to the old rcs
 +      programs.  We've long since stopped sending `-T' to any rcs
 +      utility and have never used `-y'.  Any users of moldly CVS
 +      versions which used to support `-T' have (hopefully) upgraded to
 +      one where that option isn't supported.  It seems reasonable to
 +      enable them again and pass them through.  (sanity.sh still works
 +      anyways...)
 +      (longopts): add short option equivalents for --initial-tab and
 +      --side-by-side.
 +      (diff): add new short options to getopt string and switch
 +      statement.
 +
 +2001-03-22  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh: Add check for ${DOTSTAR} with large matches.
 +
 +2001-03-23  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Do the same as below for $keep.
 +
 +2001-03-23  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
 +      often 'false' and more often ':' are shell builtins.  This makes the
 +      succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
 +      Alter tests in the rest of the script to match the new usage.  Added
 +      a suffix of 'r' to remote test names when it was appropriate and I
 +      remembered.  Some reformatting.
 +
 +2001-03-22  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
 +      output instead of using wildcards to avoid buffer overflows in some
 +      versions of expr.
 +
 +2001-03-21  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
 +      a value inside ${TESTDIR} by the script.
 +
 +2001-03-20  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (diffmerge1): Minor formatting and syntax changes.
 +
 +          for Jacob Burckhardt  <bjacob@ca.metsci.com>
 +
 +      * sanity.sh (diffmerge1): More merging behavior tests.  Specifically,
 +      test some cases which broke before in Karl Tomlinson's diff fix was
 +      checked in today.
 +
 +2001-03-20  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Don't use unescaped parens in sh outside of quotes.
 +
 +2001-03-20  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
 +
 +2001-03-20  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh: Change usage to match the new getopts format and comment.
 +
 +2001-03-16  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (modules2-nestedrename): New test.  Verifies behavior of
 +      renames nested under an ampersand module.
 +      (modules2-ampertag): New test.  Verifies an error condition which
 +      prevents some ampersand modules from being checked out when a tag
 +      is specified.
 +
 +2001-03-16  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (modules2): Additional test for ampersand module behavior
 +      with '-d'.
 +
 +          for Greg Klanderman  <greg@itasoftware.com>
 +
 +      * checkout.c (build_one_dir): Fix typo where clauses of two
 +      conditionals were reversed in call to Create_Admin.  This caused
 +      the CVS/Tag file to be removed in cases where it should have been
 +      set, and vice-versa.  It only surfaced in rare cases as this code
 +      is only invoked when using the -d option to build the path to
 +      check out in.  Further, the bug would only matter when checking
 +      out a module containing ampersand modules within it, via
 +      client/server CVS.
 +
 +2001-03-16  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (admin-28-5): Confirm that a missing tag during an
 +      'admin -n' operation is not a fatal error.
 +
 +2001-03-16  Derek Price  <dprice@collab.net>
 +
 +      * admin.c (admin_data): Remove 'quiet' member.
 +      (admin_fileproc): Use global 'really_quiet' rather than
 +      admin_data->quiet.
 +
 +2001-03-16  Derek Price  <dprice@collab.net>
 +
 +      * sanity.sh (admin): Replace hardcoded testdir path with the variable.
 +
 +2001-03-15  Derek Price  <derek.price@openavenue.com>
 +
 +      * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
 +      * admin.c (admin_fileproc): Only print messages when not in
 +      really_quiet mode.
 +
 +          for Stephen Rasku  <stephen@tgivan.com>
 +
 +      * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
 +
 +2001-03-15  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * subr.c (sleep_past): Fix various bugs that would result in a
 +      negative sleep time if it weren't unsigned; since it is, it would
 +      result in a very large sleep time.  Ensure that us is always less
 +      than 1000000.  Don't try to sleep for more 1 sec with usleep.
 +      Cast NULL select arguments to correct type just in case.
 +
 +2001-03-14  Derek Price  <derek.price@openavenue.com>
 +
 +      * subr.c (sleep_past): New function.
 +      * client.c (get_responses_and_close): Use new function.
 +      * commit.c (commit): Ditto.
 +      * update.c (do_update): Ditto.
 +      * cvs.h: Prototype new function.
 +
 +      * stamp-h2.in: Regenerated.
 +
 +2001-03-14  Derek Price  <derek.price@openavenue.com>
 +
 +      * Makefile.in: Regenerated.
 +      * stamp-h2.in: Ditto.
 +
 +2001-03-14  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * commit.c (check_fileproc): Allow adding on the trunk when there's
 +      an existing non-Attic RCS file as long as the head revision is dead.
 +      This can happen due to an aborted resurrection.
 +      (commit_fileproc): When resurrecting, consider the dead revision
 +      along with the other files' revisions.
 +      (findmaxrev): Avoid unnecessary work.
 +      (checkaddfile): Only warn if file isn't in Attic as expected.
 +      (Reported by Ross Burton <r.burton@180sw.com>.)
 +      * sanity.sh (basica-r*): New tests for above.
 +      (basica-o4): Update to match.
 +
 +2001-03-09  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * edit.c (edit_fileproc, unedit_fileproc): Some implementations of
 +      asctime/ctime apparently use a leading zero on the date instead
 +      of the space required by the C Standard.  Correct for this so that
 +      shared working directories work without hassle.
 +      (Reported by David L. Martin <dlmart2@home.com>.)
 +      * entries.c (fgetentent): Ditto.
 +      * vers_ts.c (time_stamp_server, time_stamp) Ditto.
 +
 +2001-03-07  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * sanity.sh (basica, binfiles2, head, admin): Update to match
 +      change to admin.c.
 +
 +2001-03-06  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * client.c (recv_bytes): Handle EOF as in recv_line().
 +      (Reported by Pavel Roskin <proski@gnu.org>.)
 +
 +      * admin.c (admin_fileproc): Change final error message to clarify
 +      that CVS refused to modify the RCS file rather than being unable to.
 +
 +2001-02-28  Jim Meyering  <meyering@lucent.com>
 +
 +      * commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
 +      the description of that option, to be consistent with the `-F logfile'
 +      in the Usage: line.  Use spaces instead of TAB characters, and realign.
 +
 +2001-03-02  Derek Price  <derek.price@openavenue.com>
 +
 +      * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
 +      name of the command it actually used rather than 'rsh'.
 +
 +2001-02-27  Derek Price  <derek.price@openavenue.com>
 +
 +      * sanity.sh (modules2-ampermod-*): Added these tests to make sure the
 +      top level directory is created in an ampermodule when '-n' is passed to
 +      checkout.
 +
 +      original bug report from
 +          Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
 +
 +2001-02-27  Derek Price  <derek.price@openavenue.com>
 +
 +      * sanity.sh (version-[12]): replace ' (client/server)' with .* in these
 +      two tests so that 'make check' works with whatever client/server
 +      options the executable was compiled with.
 +
 +2001-02-23  Derek Price  <derek.price@openavenue.com>
 +
 +      * main.c (main): Only check a cvsroot_t's isremote member when client
 +      support is enabled.
 +      * server.c: Include GSSAPI headers with client support as well as
 +      server support.
 +
 +2001-02-21  Larry Jones  <larry.jones@sdrc.com>
 +
 +      * modules.c, cvs.h (do_module): Add build_dirs argument and use it
 +      instead of run_module_prog.  Change