[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2]
From: |
Derek Robert Price |
Subject: |
[Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2] |
Date: |
Thu, 20 Oct 2005 17:33:51 -0400 |
Index: ccvs/src/ChangeLog
diff -u /dev/null ccvs/src/ChangeLog:1.3306.2.1
--- /dev/null Thu Oct 20 21:33:51 2005
+++ ccvs/src/ChangeLog Thu Oct 20 21:33:09 2005
@@ -0,0 +1,14236 @@
+2005-10-19 Derek Price <address@hidden>
+
+ * sanity.sh: $GPG == `gpg' now when no gpg was found.
+
+ * sanity.sh: Cause GPG to create its option file with a noop command.
+ Allow secret key import during setup.
+
+2005-10-18 Derek Price <address@hidden>
+
+ * sign.c: #include "wait.h" from GNULIB.
+
+ * filesubr.h: #include <sys/types.h> for ssize_t.
+ * filesubr.c (islink): Add FIXME.
+
+2005-10-16 Derek Price <address@hidden>
+
+ * sign.c (sign_commits): Base defaults on new HAVE_OPENPGP macro rather
+ than obsolete GPG_PROGRAM.
+
+ * client.c (send_signature, send_fileproc, client_process_import_file):
+ Use new APIs.
+ * cvs.h: Move function prototypes into...
+ * filesubr.h: ...this new header.
+ * hash.c (nodetypestring): Add RCSSTRING.
+ * hash.h (Ntype): Add RCSSTRING.
+ (Node): Add data len field.
+ * rcs.c: Verify interface.
+ (rcsbuf_get_node_type): New function.
+ (RCS_reparsercsfile, RCS_fully_parse, getdelta, RCS_getdeltatext):
+ Handle new RCSSTRING newphrase node type.
+ (RCS_checkin): Generate and save OpenPGP signature when needed.
+ (putrcsfield_proc): Remove FIXME. Handle new Node type. Use Node len
+ when available.
+ * server.c (serve_modified): Get sig file name via new API.
+ * sign.c (get_sign_commits): Return false in serve_mode.
+ (get_sigfile_name, have_sigfile, read_signature): New functions.
+ (gen_signature): New function with content originally from...
+ (get_signature): ...this function, which now also handles loading from
+ a sigfile when required.
+ * sign.h (get_sign_commits, get_signature): Add server_active arg.
+ (gen_signature, have_sigfile): New function protos.
+
+ * sign.h (DEFAULT_SIGN_PROGRAM, DEFAULT_SIGN_TEXTMODE): Move to
+ configure.in.
+
+ * cvs.h (BAKPREFIX): Move to...
+ * subr.h (BAKPREFIX): ...this more appropriate location.
+
+ * sanity.sh (crerepos): Remove CVS_CLIENT_LOG set while debugging.
+
+2005-10-14 Derek Price <address@hidden>
+
+ * sign.h: Protos for new signature API.
+ * sign.c (init_signatures, set_sign_commits, set_sign_template,
+ set_sign_textmode, add_sign_arg, get_sign_commits, get_signature): New
+ signing API.
+ (sign_args_list_to_args_proc, get_signature): Move from...
+ * client.c (sign_args_list_to_args_proc): ...here...
+ (send_signature): ...and here.
+ (send_files): Only accept SEND_SIGNATURES flag to differentiate commit
+ from other callers.
+ (send_signature): Use new signing interface.
+ (client_send_import_file): Send signatures.
+ * client.h (send_files): Update proto.
+ * add.c, admin.c, annotate.c, client.c, diff.c, edit.c, log.c, ls.c,
+ remove.c, status.c, tag.c, update.c, watch.c: Change all callers.
+ * commit.c (commit): Move sign arg handling to...
+ * main.c (main): ...here.
+ * server.c (serve_modified): Save signatures to a temp file.
+ (serve_signature): Send error message on receipt of multiple sigs.
+
+ * rcs.c: Test interface.
+ * rcs.h: Protect against double-inclusion.
+ (struct file_info): Move from...
+ * cvs.h: ...here. #include "run.h".
+ * subr.c, subr.h: Include "rcs.h" to imporve interface.
+ * run.c: #include "run.h".
+ * run.h: New file.
+
+ * gpg.c: Remove unsightly comments.
+
+ * Makefile.am (cvs_SOURCES): Add gpg.c & gpg.h.
+ * gpg.c, gpg.h: New files.
+ * server.c (sig_buf): New global.
+ (serve_signature): Extract signature correctly & store it.
+ * buffer.c, root.c: #include buffer.h first, to test interface.
+ * buffer.c (buf_read_data): Handle input from nonio (memory) buffers.
+ * buffer.h, root.h: Protect against double inclusion. #include enough
+ headers to make interface standalone.
+
+2005-10-11 Derek Price <address@hidden>
+
+ * commit.c (commit_usage), main.c (opt_usage): Describe OpenPGP related
+ options.
+
+ * Makefile.am (cvs_SOURCES): Add sign.c & sign.h.
+ * client.c (sign_args_list_to_args_proc, send_signature): New
+ functions.
+ (struct send_data): Add sign mode and template.
+ (send_fileproc): Send signature.
+ (send_files): Accept sign mode and sign template.
+ * client.h (send_files): Update proto.
+ * add.c, admin.c, annotate.c, client.c, diff.c, edit.c, log.c, ls.c,
+ remove.c, status.c, tag.c, update.c, watch.c: Change all callers.
+ * commit.c (commit): Accept and handle new sign options.
+ * hash.h: Avoid double-inclusion.
+ * main.c (main): Handle new sign options.
+ * root.c (new_cvsroot_t, free_cvsroot_t, parse_cvsroot_t), sign.h
+ (cvsroot_t): Handle new sign method options.
+ * server.c (serve_signature): New stub function.
+ (requests): Add `Signature' request.
+ * sign.c, sign.h: New files.
+ * subr.c (format_cmdline): Handle NULL data.
+ * sanity.config.sh: Set $GPG.
+ * sanity.sh: Set up gpg keys for tests when $GPG is set.
+ (writeproxy*): Compensate for new server requests.
+
+2005-10-18 Derek Price <address@hidden>
+
+ Include "wait.h" only as needed.
+ * cvs.h: Remove #include of "wait.h".
+ * run.c, server.c: Add #include "wait.h".
+
+2005-10-16 Brian Murphy <address@hidden>
+
+ * server.c (check_pam_password): set PAM_RHOST to remote host ip.
+
+2005-10-11 Derek Price <address@hidden>
+
+ * client.h (SEND_BUILD_DIRS, SEND_FORCE, SEND_NO_CONTENTS,
+ BACKUP_MODIFIED_FILES): Tidy.
+
+2005-10-04 Derek Price <address@hidden>
+
+ * sanity.sh (diff_u_test, diff_recursive_test): New functions.
+ (directory_cmp): Use GNU diff -ur when possible.
+ (find_tool): Catch stderr output from tests. Count MARGINAL test
+ results and prefer tools with more PASSes.
+ (*): Replace use of cmp to $diff_u where possbile.
+
+2005-10-04 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (watch6-0): Avoid use of GNU grep -qE extensions for
+ anchored search.
+
+2005-10-04 Derek Price <address@hidden>
+
+ * sanity.sh (find_tool): Accept tool name for error messages. Change
+ all callers.
+
+ * run.c: Assume unistd.h.
+
+2005-10-03 Derek Price <address@hidden>
+
+ * sanity.sh (sshstdio-6): Use diff -u instead of cmp so that errors
+ show up in the automated nightly testing emails.
+
+ * run.c (piped_child): Close original dup'd descriptors. Add comments.
+
+ * server.c: #include "setenv.h" to eliminate a Solaris warning.
+
+2005-09-30 Larry Jones <address@hidden>
+
+ * expand_path.c (expand_path): Fix memory leaks.
+
+2005-09-29 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Check for error return from time().
+
+2005-09-29 Paul Eggert <address@hidden>
+ Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Rename N as COMMITID_RAW_SIZE.
+ Use base62 encoding for non-urandom case.
+
+2005-09-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c: Use "#ifdef HAVE_FSYNC" just like every where else.
+
+2005-09-25 Conrad T. Pino <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (rcs_internal_unlockfile): Fsync files before renaming them.
+ Patch from Rahul Bhargava <address@hidden>.
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c (export_usage): Note that -r requires a tag.
+
+2005-09-22 Derek Price <address@hidden>
+
+ * classify.c (Classify_File): Correct comment.
+
+2005-09-22 Larry Jones <address@hidden>
+
+ * patch.c (patch_usage): Document -k option.
+
+2005-09-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * entries.c: Remove obsolete comment.
+
+2005-09-20 Derek Price <address@hidden>
+
+ * myndbm.c: #include getdelim.h for Windows.
+
+ * main.c: #include setenv.h for Windows.
+
+2005-09-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Use /bin/pwd to verify current dir since Solaris 9 is
+ sometimes resolving symlinked paths.
+
+2005-09-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh ($anyusername): Reduce charset to that allowed on Linux.
+
+ * sanity.sh ($anyusername): Make more robust and expand comments.
+ Reported by Mark D. Baushke <address@hidden>.
+
+ * sanity.sh: Split $username into $username & $username8. Rename
+ $author as $anyusername.
+
+2005-09-12 Derek Price <address@hidden>
+
+ * sanity.sh (username): Cut $username down to 8 characters when longer,
+ since that is all that appears in output.
+
+2005-09-11 Derek Price <address@hidden>
+
+ [bug #14504]
+ * main.c (main): Set server_hostname before it is used by
+ gserver_authenticate_connection.
+ (Report from Serguei E. Leontiev <address@hidden>.)
+
+2005-09-08 Larry Jones <address@hidden>
+
+ * server.c (parseServerOptions): getopt() returns int, not char.
+
+2005-09-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * recurse.c: Update bug report email address.
+
+2005-08-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (close-stdout): Remove archive dir when done.
+
+2005-08-31 Larry Jones <address@hidden>
+
+ * import.c (import_descend): Lock repository directory during import.
+
+2005-08-31 Derek Price <address@hidden>
+
+ * server.c (isSamePath): Compare args rather than assuming values.
+
+2005-08-29 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * sanity.sh: Remove debugging echo.
+ (watch6, watch6-0): Clean up properly.
+
+2005-08-03 Jim Hyslop <address@hidden>
+
+ * edit.c, watch.c, watch.h, sanity.sh: fixed problems with watch not
+ setting default attributes, when directory specified.
+
+2005-07-20 Derek Price <address@hidden>
+
+ * main.c: s/cvshome.org/nongnu.org.etc.../.
+
+2005-07-12 Derek Price <address@hidden>
+
+ * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
+ release.c: Add copyright notices.
+
+2005-07-12 Derek Price <address@hidden>
+
+ * client.c: Update fwrite usage to use size & count in the standard
+ order.
+
+2005-07-11 Derek Price <address@hidden>
+
+ * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
+ release.c: Update license notices.
+
+2005-06-28 Derek Price <address@hidden>
+
+ * server.c (serve_co): Remove obsolete support for Repository request.
+
+2005-06-10 Derek Price <address@hidden>
+
+ * filesubr.c, ignore.c, import.c, vers_ts.c: Include "lstat.h".
+
+2005-06-10 Derek Price <address@hidden>
+
+ * logmsg.c (logmsg_list_to_args_proc): Add format character for
+ destination tag.
+ (Original patch from Todd Vierling <address@hidden>).
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * zlib.c (compress_buffer_input): Update comment.
+
+2005-06-03 Derek Price <address@hidden>
+
+ * error.c (error): Correct spelling and grammar in comment.
+
+2005-06-03 Derek Price <address@hidden>
+
+ * modules.c (my_module), wrappers.c (wrap_add): Use new expand_path
+ API.
+
+2005-06-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (config): Simplify cleanup.
+
+2005-06-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcscmds.c (call_diff_argc_allocated): Rename to...
+ (call_diff_arg_allocated): ...to match similar usage in other files.
+
+2005-05-31 Derek Price <address@hidden>
+ for Alexander Taler <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Move "system.h" include before GNULIB includes. Move some
+ GNULIB includes from "system.h".
+
+2005-05-26 Conrad T. Pino <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (rcslib-symlink-10): Accept empty result due to broken glob
+ in glibc 2.3.5.
+
+2005-05-18 Derek Price <address@hidden>
+
+ * sanity.sh (config-9): Split to local/remote tests to avoid unportable
+ expr characters.
+
+2005-05-17 Derek Price <address@hidden>
+
+ * sanity.sh: Use a predictable umask.
+
+2005-05-13 Derek Price <address@hidden>
+
+ * login.c (password_entry_parseline): Placate gcc -Wall.
+
+2005-05-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * error.c (error): Avoid unportable calls to vsyslog.
+
+2005-05-09 Derek Price <address@hidden>
+
+ * history.c (history_write): Add FIXME.
+
+2005-05-09 Derek Price <address@hidden>
+
+ * hash.c (removenode, mergelists): New function.
+ (delnode): Use removenode.
+ * hash.h (mergelists): New proto.
+
+2005-05-04 Derek Price <address@hidden>
+
+ * error.c (error): Avoid recursion and syslog the problem.
+
+2005-05-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * tag.c (tag_check_valid): Don't verify the_val_args.found when it is
+ not initialized.
+
+2005-05-03 Derek Price <address@hidden>
+
+ * add.c: Update comment to include the -k option. This resolves issue
+ #226 on cvshome.org.
+
+2005-05-02 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (global_readlock, global_writelock, global_history_lock):
+ Add missing alternatives for non-LOCK_COMPATIBILITY initialization.
+
+2005-04-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (lockfiles): Port some locking tests over from 1.12.x.
+
+2005-04-28 Derek Price <address@hidden>
+
+ * lock.c (clear_lock): Improve comment.
+
+2005-04-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-04-25 Derek Price <address@hidden>
+
+ * mkmodules.c (mkmodules): Remove `#if 0' and reformat comment.
+
+2005-04-22 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (rcs4): Fix a typo.
+
+2005-04-20 Derek Price <address@hidden>
+
+ * sanity.sh (rcs5): Minor cosmetic change.
+
+2005-04-20 Derek Price <address@hidden>
+
+ * sanity.sh (tests): Add rcs4.
+ (rcs5): Add comments.
+
+2005-04-20 Derek Price <address@hidden>
+
+ * rcs.c (expand_keywords): Avoid buffer overflow.
+ (Original patch from Stewart Brodie <address@hidden>.)
+
+ * sanity.sh (rcs5): New tests for the above.
+
+2005-04-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-26 Mark D. Baushke <address@hidden>
+
+ * checkout.c (checkout_proc): Use Xasprintf/xstrdup instead of
+ xmalloc/strcpy+strcat.
+
+2005-03-22 Mark D. Baushke <address@hidden>
+
+ * Makefile.in: Regenerated.
+
+2005-03-22 Mark D. Baushke <address@hidden>
+
+ * rcs.c (linevector_add): Use xnrealloc.
+ * server.c (serve_argument): Ditto.
+
+2005-03-22 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c: Reindent pragmas.
+ (become_proxy): Add parentheses for -Wall.
+
+2005-03-18 Derek Price <address@hidden>
+
+ * error.c (error): Simplify using vasnprintf.
+
+2005-03-17 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-17 Derek Price <address@hidden>
+
+ * rcs.h (RCSNode): Improve comment.
+ * rcs.c (RCS_head): Ditto, plus gratuitous reformatting.
+
+2005-03-17 Derek Price <address@hidden>
+
+ * rcs.c (RCS_deltas): Use rcs->print_path.
+
+2005-03-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-17 Derek Price <address@hidden>
+
+ * rcs.c (RCS_reparsercsfile): Avoid memory leak.
+ (Thanks to report from Alen Zukich <address@hidden>.)
+
+2005-03-17 Derek Price <address@hidden>
+
+ * log.c (log_expand_revlist): Suppress message and not error handling
+ when really_quiet.
+
+2005-03-16 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (call_in_directory): Put function call after var decls.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * 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
+ <address@hidden>.)
+
+2005-03-16 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * history.c (history_write): Remove test that always evaluates to
+ false.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * server.c (become_proxy): Close pipe to primary when pipe from it
+ closes.
+
+2005-03-16 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (debug-log-nonfatal): Only set CVS_CLIENT_LOG to the
+ old value if it was previously set.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * server.c (create_adm_p, serve_entry), tag.c (rtag_proc): Avoid memory
+ leaks.
+ (Thanks to report from Alen Zukich <address@hidden>.)
+
+2005-03-16 Derek Price <address@hidden>
+
+ * logmsg.c (do_verify): Don't check for NULL return from xfopen().
+
+2005-03-16 Derek Price <address@hidden>
+
+ * sanity.sh (debug-log-nonfatal): New test.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * sanity.sh (writeproxy-ssh-noredirect): Don't unconditionally create
+ a primary debug log.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * log-buffer.c (setup_logfiles): Failure to open a debug log file
+ should be non-fatal.
+
+2005-03-16 Derek Price <address@hidden>
+
+ * server.c (cvs_outerr): Quote error text in syslog messages.
+
+2005-03-15 Mark D. Baushke <address@hidden>
+
+ * history.c (select_hrec): Avoid possible memory leak.
+
+2005-03-15 Derek Price <address@hidden>
+
+ * patch.c (patch_proc): Avoid memory leak.
+ (Thanks to report from Alen Zukich <address@hidden>.)
+
+2005-03-12 Mark D. Baushke <address@hidden>
+
+ * server.c (receive_partial_file): Use ssize_t to deal with < 0
+ return value from write().
+
+2005-03-12 Mark D. Baushke <address@hidden>
+
+ * history.c (save_file): Bug fix from last change.
+
+2005-03-11 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * modules.c (my_module): Protect against free (NULL) code path.
+
+2005-03-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-10 Derek Price <address@hidden>
+
+ * diff.c (diff_fileproc): Remove unnecessary check for NULL.
+
+2005-03-10 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * fileattr.c (fileattr_read): Only eat a newline when it really is a
+ newline.
+
+2005-03-10 Mark D. Baushke <address@hidden>
+
+ * zlib.c: Include "pagealign_alloc.h".
+
+2005-03-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * hardlink.c, hardlink.h: Avoid compiling entire contents of these
+ files w/o preserve permissions support.
+
+2005-03-09 Mark D. Baushke <address@hidden>
+
+ * history.c (history, save_file): Cleanup the API to match the
+ comments.
+
+2005-03-08 Derek Price <address@hidden>
+
+ * rcs.c: Define MAP_FILE & MAP_FAILED when necessary.
+
+2005-03-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-03-08 Larry Jones <address@hidden>
+
+ * release.c (release): Remove unneeded code.
+
+2005-03-07 Conrad T. Pino <address@hidden>
+
+ * buffer.h (buf_free_data): Compile with proxy disabled.
+ (Thanks to report from Larry Jones <address@hidden>.)
+
+2005-03-07 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (buf_free_data): Compile with proxy disabled.
+ (Thanks to report from Larry Jones <address@hidden>.)
+
+2005-03-07 Derek Price <address@hidden>
+
+ * buffer.c (packetizing_buffer_input, packetizing_buffer_output): Don't
+ assume BUFFER_DATA_SIZE is a constant.
+ (Thanks to report from Larry Jones <address@hidden>.)
+
+2005-03-03 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * subr.c (get_date): Minor reformatting.
+
+2005-03-01 Derek Price <address@hidden>
+
+ * subr.c (get_date): Replace obsolete timeb cruft in this stub.
+
+2005-02-28 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * edit.c (notify_proc), logmsg.c (logfile_write): Minor reformatting.
+
+2005-02-28 Derek Price <address@hidden>
+
+ * root.c (parse_root): Trigger a later error message rather than
+ maintaining two copies.
+
+2005-02-27 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * login.c (password_entry_operation): Exit nonzero when
+ failing to close a just-appended-to .cvspass file.
+
+2005-02-26 Derek Price <address@hidden>
+
+ * root.c: Gratuitous reformatting.
+
+2005-02-26 Mark D. Baushke <address@hidden>
+
+ * root.c (parse_cvsroot): Handle another Bad CVSROOT.
+ * sanity.sh (parseroot-8r): Test for it.
+ (Problem report from Hiroyuki Ikezoe <address@hidden>.)
+
+2005-02-26 Derek Price <address@hidden>
+
+ * server.c: Include netdb.h with server support. Other reformatting.
+
+2005-02-25 Derek Price <address@hidden>
+
+ * sanity.sh (multiroot2-9a): Correct for new TRACE message.
+
+2005-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (send_modified): Suppress a -Wall warning.
+
+2005-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2005-02-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (primary-wrapper): Rename CVS_SERVER_LOG for the primary in
+ writeproxy mode to avoid overwriting.
+
+2005-02-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * tag.c (tag): Handle -r<tag>:<date>.
+ * sanity.sh (tagdate-13.*): New tests.
+
+2005-02-23 Derek Price <address@hidden>
+
+ * annotate.c (annotate), ls.c (ls): Handle -r<tag>:<date>.
+
+2005-02-23 Derek Price <address@hidden>
+
+ * diff.c: Some reformatting.
+ (diff): Handle -r<tag>:<date>.
+ * sanity.sh (tagdate-13b): New test.
+
+2005-02-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rsh-client.c (start_rsh_server): Update comment. Replace
+ malloc/sprintf combo with a call to Xasprintf.
+
+2005-02-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * import.c (import): Avoid using assert with side effects it may
+ be configured away using NDEBUG.
+ (Patch from Frank Hemer <address@hidden>.)
+
+2005-02-20 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * edit.c (unedit_fileproc, mark_up_to_date): Replace xmallc/strcat
+ sequence with single call to Xasprintf.
+
+2005-02-08 Derek Price <address@hidden>
+
+ * rsh-client.c: Some reformatting.
+
+2005-02-04 Derek Price <address@hidden>
+
+ * zlib.c (compress_buffer_input): Don't return EOF when there is data
+ pending.
+
+2005-02-01 Derek Price <address@hidden>
+
+ * main.c: Update year in copyright notice to match GNU standards.
+ * sanity.sh (version-1): Update to match.
+
+2005-02-01 Larry Jones <address@hidden>
+
+ * log.c (log_fileproc, log_expand_revlist): Add support for BASE tag.
+ * sanity.sh (log): New tests for above.
+
+2005-01-31 Derek Price <address@hidden>
+
+ * main.c: Rephrase --version message.
+ * sanity.sh (version-1): Update to match.
+
+2005-01-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * log.c (log_usage): Add note about using -S with revision info
+ supression and selection.
+ (Suggestion from Dan Peterson <address@hidden>.)
+
+2005-01-29 Derek Price <address@hidden>
+
+ * sanity.sh (writeproxy-ssh-noredirect): Remove some commented out
+ code.
+
+2005-01-25 Larry Jones <address@hidden>
+
+ * expand_path.c (expand_path): Rewrite using offsets instead of
+ pointers to simplify and avoid reallocation bugs.
+ (Inspired by Jeremy Bopp <address@hidden>.)
+
+2005-01-20 Brian Murphy <address@hidden>
+
+ * server.c fixing the style of the pam function calls and if
+ statements
+
+2005-01-19 Brian Murphy <address@hidden>
+
+ * 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 <address@hidden>
+
+ * log-buffer.c (buf_count_mem): Compile this for PROXY_SUPPORT.
+ (Report from Brad L. Chisholm <address@hidden>.)
+
+2004-12-09 Derek Price <address@hidden>
+
+ * sanity.sh (modules7): New test group.
+ (Based on a patch from Mark D. Baushke <address@hidden>, based on a
+ report from Richard Verhoeven <address@hidden>.)
+
+2004-12-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (usg): Remove Dr. Pascal Molli's CVS URL from the
+ documentation.
+
+2004-12-08 Derek Price <address@hidden>
+
+ * root.c (Name_Root): s/TRACE_FUNCTION/TRACE_FLOW/.
+
+2004-12-08 Derek Price <address@hidden>
+
+ * root.c (parse_cvsroot): Suppress -Wall warning.
+
+2004-12-08 Derek Price <address@hidden>
+
+ * root.c (parse_cvsroot): findnode() compares LIST to NULL w/o help.
+
+2004-12-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * mkmodules.c (config_contents): Add LocalKeyword and KeywordExpand,
+ misc. cleanup.
+
+2004-11-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * parseinfo.c (readBool): Reorder arguments to error() and improve
+ header comment.
+
+2004-11-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (become_proxy): Note assumptions about syncronized primary
+ and secondary versions with `FIXME?' note.
+
+2004-11-22 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (info): Ignore comments in verifymsg test.
+
+2004-11-22 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * subr.c (Xasnprintf): Improve header comment block.
+
+2004-11-19 Derek Price <address@hidden>
+
+ * root.c (normalize_cvsroot): Improve header comment block.
+
+2004-11-19 Derek Price <address@hidden>
+
+ * server.c: Misc reformatting and comment corrections.
+
+2004-11-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (isThisHost): strcasecmp before consulting the DNS as an
+ optimization.
+
+2004-11-18 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (skip_always, notproxy): New functions.
+ (skip, remoteonly, sshstdio, client): Use new functions.
+
+2004-11-17 Mark D. Baushke <address@hidden>
+
+ * 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" <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * buffer.c (fd_buffer_block): Deal with BSD and BSDI problems to
+ set block/nonblock on /dev/null.
+
+2004-11-17 Derek Price <address@hidden>
+
+ * Makefile.am (distclean-local): Clean check.plog~.
+
+2004-11-11 Derek Price <address@hidden>
+
+ * sanity.sh: s/cp -r/cp -R/ to meet POSIX specification.
+ (Thanks to report from Paul Eggert <address@hidden>.)
+
+2004-11-10 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Actually parse -e option like we claim to.
+
+2004-11-10 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (verify_tmp_empty): New function.
+ (dotest_internal_*): Call verify_tmp_empty as needed.
+
+2004-11-09 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (expr_tooltest3): Bugfix. Use $expr rather than $EXPR.
+
+2004-11-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (verify_tmp_empty): New function.
+ (dotest_internal_*): Call verify_tmp_empty as needed.
+
+2004-11-08 Derek Price <address@hidden>
+
+ * sanity.sh (run_filter): Add function header comment block.
+
+2004-11-07 Larry Jones <address@hidden>
+
+ * sanity.sh: Remove trailing / from cp -r commands.
+
+2004-11-04 Derek Price <address@hidden>
+
+ * gssapi-client.c (connect_to_gserver): Silence gcc -Wall.
+
+2004-11-04 Derek Price <address@hidden>
+
+ * sanity.sh (set_bad_tool): Remove unnecessary quotes.
+
+2004-11-04 Derek Price <address@hidden>
+
+ * sanity.sh: s/depends_on_/require/.
+
+2004-11-04 Derek Price <address@hidden>
+
+ * sanity.sh (find_tool): Eliminate variable with single reference.
+
+2004-11-04 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (depends_on_rsync): Do not echo rsync information to
+ stdout. Look for rsync in more directories.
+
+2004-11-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (set_bad_tool, is_bad_tool): Avoid printing errors
+ about the same tool multiple times.
+
+2004-11-03 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (depends_on_rsync): Deal with missing rsync.
+
+2004-11-03 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (depends_on_rsync): Include rsync version information
+ in output.
+
+2004-11-03 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (depends_on_rsync): More rigorous tests for rsync
+ 2.3.1 problems with --delete --include dir --exclude '*/.
+
+2004-11-03 Derek Price <address@hidden>
+
+ * sanity.sh (depends_on_rsync): Verify that `rsync --delete' actually
+ does what it is supposed ot do.
+
+2004-11-03 Derek Price <address@hidden>
+
+ * subr.c (Xreadlink): Remove MAXSIZE macro. Minor reformatting.
+
+2004-11-03 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * filesubr.c (xreadlink): AIX and HP-UX readlink() returns ERANGE
+ when there is not enough room in the buffer.
+
+2004-11-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (rcslib): Fix typo in path.
+
+2004-11-01 Derek Price <address@hidden>
+
+ * sanity.sh (rcslib): Test a link to a path longer than 128
+ characters.
+
+2004-10-30 Mark D. Baushke <address@hidden>
+
+ * patch.c (patch_cleanup): Add signal argument and use it.
+
+2004-10-30 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (isThisHost): Deal with possibility of a missing
+ hstrerror() function.
+
+2004-10-29 Derek Price <address@hidden>
+
+ * server.c (server_root, move_file_offset, replace_file_offset):
+ Remove dead code.
+
+2004-10-29 Derek Price <address@hidden>
+
+ * filesubr.c (xreadlink): Make sure allocation is tried once at the
+ maximum buffer size. Protect against overflow.
+
+2004-10-29 Derek Price <address@hidden>
+
+ * server.c (isSameHost): Handle gethostname & gethostbyname errors.
+
+2004-10-29 Derek Price <address@hidden>
+
+ * server.c (isSameHost): Use strcasecmp to compare host names.
+
+2004-10-29 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * filesubr.c (SIZE_MAX, SSIZE_MAX): Use #include "xsize.h" instead.
+ (xreadlink): Use xrealloc instead of xmalloc/free.
+
+2004-10-29 Mark D. Baushke <address@hidden>
+
+ * filesubr.c (SIZE_MAX, SSIZE_MAX): New constants.
+ (xreadlink): Deal with symlinks longer than 127 bytes.
+ (Problem reported as issue 190 by Gottfried Ganssauge
+ <address@hidden>.)
+
+2004-10-29 Derek Price <address@hidden>
+
+ * server.c (isSameHost): New fuction.
+ (same_path): Rename to...
+ (isSamePath): ...this.
+ (isProxyServer): Use new functions/names.
+
+2004-10-29 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (writeproxy): Use DOTSTAR to avoid problems with
+ a missing Gssapi-authenticate in Valid-requests.
+
+2004-10-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (handle_redirect): Detect redirect loops.
+ * sanity.sh (client-20): Test that client detects redirect loops.
+
+2004-10-28 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-10-27 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (tagdate): Provide more output.
+
+2004-10-26 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (isProxyServer): Fix hostname setup.
+
+2004-10-26 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * gssapi-client.c (connect_to_gserver): Avoid truncating error messages
+ from the GSSAPI server.
+ (Report from Dan Peterson <address@hidden>.)
+
+2004-10-26 Derek Price <address@hidden>
+
+ * sanity.sh (import-quirks): Test an even branch number.
+
+2004-10-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * import.c (import): Anchor and simplify branch verification regex.
+ * sanity.sh (import-quirks): Test another pattern that should fail.
+
+2004-10-25 Derek Price <address@hidden>
+
+ * cvs.h (yesno): Remove prototype.
+ * edit.c, release.c: Include yesno.h. Flush output before calling
+ yesno().
+
+2004-10-25 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * sanity.sh (depends_on_rsync): Redirect rsync output to /dev/null when
+ just testing.
+
+2004-10-23 Mark D. Baushke <address@hidden>
+
+ * socket-client.c (socket_buffer_initialize): Drop obsolete
+ arguments to buf_initialize().
+
+2004-10-22 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-10-22 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * Makefile.am (proxycheck): New test target.
+ * sanity.sh: Keep one more level of check.log backup.
+ * Makefile.in: Regenerated.
+
+2004-10-22 Derek Price <address@hidden>
+
+ * client.c, update.c: Use new MD5 interface.
+
+2004-10-22 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (find_tool): Search /usr/pkg/bin for NetBSD tools
+ like rsync.
+
+2004-10-22 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (tagdate): Fix typo.
+
+2004-10-21 Derek Price <address@hidden>
+
+ * subr.c: #include vasnprintf.h to avoid compiler warning.
+
+2004-10-21 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c: #include strftime.h.
+ (format_time_t, gmformat_time_t): Supply missing args to my_strftime.
+
+2004-10-21 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * add.c (add): Pay attention to cvswrite mode when resurrecting a
+ file that was not yet committed.
+ (Report from Frank Hemer <address@hidden>.)
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * add.c (add): Avoid unnecessary typecast.
+
+2004-10-20 Mark D. Baushke <address@hidden>
+
+ * Makefile.in: Regenerate for new configure.in.
+
+2004-10-19 Mark D. Baushke <address@hidden>
+
+ * add.c (add): Backout last typecasts cleanup.
+
+2004-10-19 Derek Price <address@hidden>
+
+ * add.c (add): Avoid attempting to resurrect a dead rev 1.1.
+ * sanity.sh (resurrection): Add test for the above.
+ (Report from Dan Peterson <address@hidden>.)
+
+2004-10-19 Derek Price <address@hidden>
+
+ * add.c (add): Avoid unnecessary typecasts.
+
+2004-10-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * history.c: Remove unecessary typecasts. Some reformatting.
+
+2004-10-18 Derek Price <address@hidden>
+
+ * server.c (serve_modified): Eliminate >= 0 check since size_t may not
+ be negative.
+ (Originally reported by Martin Neitzel <address@hidden>.)
+
+2004-10-18 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * import.c (import): Remove an unecessary level of nesting. Simplify
+ xmalloc/sprintf with asnprintf. Remove useless comment.
+
+2004-10-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (server_pause_check, do_cvs_command, server_cleanup):
+ Avoid typecasts.
+
+2004-10-14 Derek Price <address@hidden>
+
+ * gssapi-client.c: Use new size_t buffer APIs.
+
+2004-10-11 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-10-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (open_connection_to_server, close_connection_to_server,
+ handle_redirect): Add traces.
+
+2004-10-07 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Add parseinfo.h.
+
+2004-10-07 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * wrapper.c (wrap_clean_fmt_str): Make static.
+
+2004-10-07 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * release.h: Silence gcc -Wall.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * cvs.h: Move include of getopt.h to system.h with similar headers.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * login.c: Include getpass.h.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Move getopt.h and regex.h into the GNULIB include section.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * release.c (release): Simplify login in if statement.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * client.c (send_file_names): Back out broken portion of previous
+ change.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c, commit.c, edit.c, rcs.c: Avoid typecasts. Some
+ reformatting.
+
+2004-10-06 Derek Price <address@hidden>
+
+ * client.c: Avoid more typecasts. Some reformatting.
+
+2004-10-06 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h (Xstrdup): New proto mapped via define to xstrdup.
+ * subr.c (Xstrdup): New function.
+
+2004-10-05 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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
+ <address@hidden>'s original advisory locks patch, originally ported
+ forward and enhanced by Matthew Ogilvie <address@hidden>.)
+
+2004-10-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Initialize CVSroot before it is used.
+ (Report and patch by Martin Neitzel <address@hidden>.)
+ * sanity.sh (status): Test it.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (serve_questionable): Use pending errors per API.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * repos.c (Name_Repository): asnprintf, not sprintf.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * sanity.sh (ignore-11r): Rename second occurance to...
+ (ignore-11ar): ...this.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * sanity.sh (1): Rename to...
+ (init-1): ...this.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * repos.c (Name_Repository): Simplify string construction with
+ asnprintf(). Improve comment. Some reformatting.
+
+2004-10-01 Derek Price <address@hidden>
+
+ * release.c (release): Simplify string construction with asnprintf().
+
+2004-10-01 Derek Price <address@hidden>
+
+ * recurse.c (do_file_proc): Improve header comment. Replace
+ xmalloc()/strcat() combination with asnprintf().
+
+2004-09-29 Derek Price <address@hidden>
+
+ * sanity.sh (config): Handle $SECONDRY_ROOT_DIRNAME output in $proxy
+ mode.
+
+2004-09-29 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * history.h: Protect against multiple include.
+
+2004-09-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * admin.c (admin): s/int/bool/ as appropriate. Some reformatting.
+
+2004-09-29 Derek Price <address@hidden>
+
+ * history.c (history_write): Use asnprintf(). Some reformatting.
+
+2004-09-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (start_server): Use bool in place of int.
+
+2004-09-29 Derek Price <address@hidden>
+
+ * subr.c (cvs_trace): Correct header comment. Some reformatting.
+
+2004-09-28 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (writeproxy): Remove some setup obsoleted by redirects.
+
+2004-09-27 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * sanity.sh (parseroot2): Correct two test names. Restore CVSROOT.
+
+2004-09-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (parseroot2): Use remoteonly.
+
+2004-09-24 Derek Price <address@hidden>
+
+ * sanity.sh (tests): Add parseroot2.
+
+2004-09-24 Derek Price <address@hidden>
+
+ * recurse.c (do_recursion, do_dir_proc): Make process_this_directory a
+ boolean.
+
+2004-09-24 Derek Price <address@hidden>
+
+ * sanity.sh (parseroot2): New test for root parsing consistency.
+ (Original patch from Alexander Taler <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * buffer.c (buf_append_buffer): Fix typo in comment.
+
+2004-09-23 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (depends_on_ssh, sshstdio): Don't use skip() to skip
+ remote-only tests.
+
+2004-09-23 Derek Price <address@hidden>
+
+ * sanity.sh (crerepos, sshstdio): Minor modifications to make use of
+ the new depends_on_?sh API.
+
+2004-09-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (cvs_output, cvs_output_binary): fflush (stderr)
+ here to avoid problems with 'cvs status 2>&1'.
+ (Report by Frank Hemer <address@hidden>.)
+
+2004-09-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (fd_set_block): Ignore FreeBSD /dev/null problem.
+
+2004-09-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * expand_path.c (expand_path): Silence `gcc -Wall'. Reformat some
+ comments to fit in 80 characters.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * sanity.sh (sync-secondary, writeproxy, writeproxy-noredirect): Remove
+ redundant checks for $RSYNC readability.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * sanity.sh: Only find $RSYNC once.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * sanity.sh (writeproxy, writeproxy-noredirect): Find $RSYNC in a
+ portable manner.
+
+2004-09-15 Mark D. Baushke <address@hidden>
+
+ * sanity.sh: Find $RSYNC in a portable manner.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (buf_copy_data): Pass args to buf_append_data correctly.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * sanity.sh: Set $RSYNC in proxy mode.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * main.c: Fix typo in comment.
+
+2004-09-15 Derek Price <address@hidden>
+
+ * rcs.c: s/abort/assert/. Reformat function headers. Remove
+ unnecessary typecasts & prototypes.
+
+2004-09-14 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (packetizing_buffer_input): s/int/size_t/ as appropriate.
+
+2004-09-09 Mark D. Baushke <address@hidden>
+
+ * root.c (primary_root_inverse_translate): No longer inline.
+
+2004-09-09 Conrad T. Pino <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * socket-client.c (socket_client_initialize): Pass new args to
+ buf_initialize.
+
+2004-09-04 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (skip): New function.
+ (sshstdio): Use new function.
+ (writeproxy): Skip test when rsync isn't found.
+
+2004-09-02 Mark D. Baushke <address@hidden>
+
+ * server.c (serve_directory): C89 compilers do not like mixed
+ declarations and code.
+
+2004-08-19 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (ssh-wrapper): Create for $proxy mode too & forward CVS_PID
+ for crerepos.
+
+2004-08-18 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * ms-buffer.h, ms-buffer.c: Disable contents without PROXY_SUPPORT.
+
+2004-08-11 Derek Price <address@hidden>
+
+ * server.c (isProxyServer): Declare inline.
+ (reprocess_proxy_log): Rename to...
+ (rewind_buf_from_net): ...this and change all callers.
+
+2004-08-11 Derek Price <address@hidden>
+
+ * sanity.sh (sync-secondary): Don't bother to log sync activity.
+
+2004-08-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (fd_buffer_input): Bracket misguided attempt at improved
+ I/O efficiency with TRUST_OS_FILE_CACHE pragmas.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * cvs.h, main.c, mkmodules.c, parseinfo.c, server.c:
+ s/MaxSecondaryBufferSize/MaxProxyBufferSize/.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * log-buffer.c: #ifdef PROXY_SUPPORT in appropriate places.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * cvs.h, log-buffer.h, main.c, mkmodules.c, parseinfo.c, server.c:
+ s/SECONDARY_SUPPORT/PROXY_SUPPORT/.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * server.c (isSecondaryServer): Declare static.
+ * server.h (isSecondaryServer): Remove proto.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (server_cleanup): Remove unused variable.
+
+2004-08-10 Derek Price <address@hidden>
+
+ * server.c (buf_from_net_save): Remove obsolete variable.
+ (server_cleanup): Don't close BUF_FROM_NET_SAVE.
+
+2004-08-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * filesubr.c (copy_file): Don't fsync. It's slow.
+
+2004-08-05 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (buf_read_data): s/abort/assert/.
+
+2004-08-04 Derek Price <address@hidden>
+
+ * server.c (loop_over_inputs): Remove function, moving contents back...
+ (server): ...to here.
+
+2004-08-03 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * sanity.sh (TIMING): Make this work when not in $remotehost mode.
+ (reserved-13b): Use sorted output.
+
+2004-08-03 Derek Price <address@hidden>
+
+ * log-buffer.c: Improve comments.
+
+2004-08-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (ssh-wrapper): Export CVS_RSH on remote host.
+
+2004-07-28 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (read_secondary_log): Minor comment corrections.
+
+2004-07-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (fd_buffer_input): Don't overwrite the input buffer the
+ second time through the blocking read loop.
+
+2004-07-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Misc gratuitous cleanup.
+ (modify_repo): Sleep 1 before rsync to avoid timestamp comparison
+ issues.
+
+2004-07-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (prepost_proxy_proc): Add the CVSROOT string for the primary
+ server, as documented.
+
+2004-07-13 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * .cvsignore: Ignore coverage data generated by GCC.
+
+2004-07-12 Derek Price <address@hidden>
+
+ * sanity.sh: Watch $servercvs and other minor fixes.
+
+2004-07-12 Derek Price <address@hidden>
+
+ * server.c: Gratuitous reformatting.
+ * sanity.sh: Misc write proxy accommodations.
+
+2004-07-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkin.c (checkout_proc): Correct vi induced typo.
+
+2004-07-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (serve_notify): Handle secondary_log.
+
+2004-07-08 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (connect_to_forked_server): Compile for SERVER_SUPPORT.
+
+2004-06-30 Derek Price <address@hidden>
+
+ * buffer.c (buf_append_buffer): Handle NULL from->data.
+
+2004-06-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (writeproxy): Test response to a failing rsync.
+
+2004-06-09 Derek Price <address@hidden>
+
+ * server.c (isSecondaryServer): New function.
+ (MAXHOSTNAMELEN): Move to top of file and improve comment.
+
+2004-06-09 Derek Price <address@hidden>
+
+ * parseinfo.c (parse_config): Get my enum references correct.
+
+2004-06-09 Derek Price <address@hidden>
+
+ * parseinfo.c (parse_config): Verify that the ProxyServer connection
+ method is valid.
+
+2004-09-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * run.c: Remove unneeded typecasts. Reformat function headers. Fix
+ trace.
+
+2004-08-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c: Reformat function headers. Remove unnecessary typecasts
+ and prototypes. Some other reformatting for legibility.
+
+2004-08-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * recurse.c (start_recursion): Don't shorten //. to / (use //).
+
+2004-08-24 Derek Price <address@hidden>
+
+ * recurse.c (start_recursion): Strip trailing CWD indirections on
+ repository.
+ * sanity.sh (rstar-toplevel): Update to account for new behavior.
+ (Report from Dan Peterson <address@hidden>.)
+
+2004-08-24 Mark D. Baushke <address@hidden>
+
+ * recurse.c (do_recursion): Correct test for calling
+ server_pause_check to occur when locktype != CVS_LOCK_WRITE.
+ (Patch suggested by Ian Lance Taylor <address@hidden>
+ in bug#198).
+
+2004-08-24 Derek Price <address@hidden>
+
+ * sanity.sh: Update a few tests to account for the recent error message
+ changes.
+
+2004-08-24 Derek Price <address@hidden>
+
+ * rcs.c (RCS_valid_rev): Declare arg const.
+ * rcs.h: Likewise.
+
+2004-08-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-08-24 Derek Price <address@hidden>
+
+ * tag.c (tag_check_valid): Use RCS_valid_rev() rather than duplicating
+ code. Misc error message improvements.
+
+2004-08-24 Mark D. Baushke <address@hidden>
+
+ * 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
+ <address@hidden>.)
+ * sanity.sh (modules4): Add some more tests testing the above
+ change.
+
+2004-08-20 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (binfiles): Cleanup the 2a temporary directory.
+
+2004-08-20 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * log-buffer.c (log_buffer_output): Protect call to fsync()
+ with #ifdef HAVE_FSYNC.
+
+2004-08-18 Mark D. Baushke <address@hidden>
+
+ * log-buffer.c (log_buffer_input): Protect call to fsync()
+ with #ifdef HAVE_FSYNC.
+
+2004-08-17 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * client.c (handle_e): Similar fix for stderr.
+ * sanity.sh (sshstdio): New test for non-blocking stdio via ssh.
+
+2004-08-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-07-18 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (newb-123j0): Use DOTSTAR at end of response.
+
+2004-07-17 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-07-17 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-07-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * .cvsignore: Ignore GCC profiling data.
+
+2004-07-12 Derek Price <address@hidden>
+
+ * client.c: Misc reformatting.
+
+2004-07-12 Derek Price <address@hidden>
+
+ * main.c: fix format_time_t to call localtime
+ (Patch from Bart Robinson <address@hidden>.)
+
+2004-07-02 Derek Price <address@hidden>
+
+ * vers_ts.c: Gratuitous reformatting & detypecasting.
+
+2004-06-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (toplevel-12): Handle new error output.
+
+2004-06-29 Derek R. Price <address@hidden>
+
+ * subr.c (xrealloc_and_strcat): Use bool in place of short.
+
+2004-06-29 Derek R. Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-06-22 Derek Price <address@hidden>
+
+ * wrapper.c: Add explicit "void" return type to "wrap_clean_fmt_str"
+ definition.
+ (Patch from Conrad T. Pino <address@hidden>.)
+
+2004-06-09 Derek Price <address@hidden>
+
+ * server.c (entries, serve_is_modified): Reorder to remove prototypes.
+ (supported_response): Remove prototype.
+
+2004-06-09 Derek Price <address@hidden>
+
+ * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
+ security fixes.
+ (Original patch from Stefan Essler <address@hidden> & Sebastian
+ Krahmer <address@hidden>.)
+
+ * cvs.h: Include xsize.h.
+
+2004-06-09 Derek Price <address@hidden>
+
+ * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
+ against malformed entries.
+ * sanity.sh (server): Tests for same.
+
+2004-06-07 Larry Jones <address@hidden>
+
+ * sanity.sh (basica): More tests for string-based revision inc.
+
+2004-06-04 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: s/GMT/UTC/ where appropriate.
+
+2004-05-20 Derek Price <address@hidden>
+
+ * server.c (cvs_output_tagged): Move new server code inside a
+ SERVER_SUPPORT block.
+
+2004-05-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * server.c (serve_unchanged, serve_is_modified): Overwrite existing
+ data in timefields. Fixes CAN-2004-0396.
+
+2004-05-15 Derek Price <address@hidden>
+
+ * lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
+ (server_cleanup): Clean up inchoherent comment.
+
+2004-05-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (trailingslashes): During cleanup remove topfile,v to
+ avoid problems in later tests (editor-1).
+
+2004-05-13 Derek Price <address@hidden>
+
+ * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
+
+2004-05-13 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * ls.c (ls): Use client_senddate() so the server is able to parse
+ the date/time.
+
+2004-05-12 Derek Price <address@hidden>
+
+ * entries.c, subr.c: Gratuitous reformatting.
+
+2004-05-12 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-05-11 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (top-level): Rename to...
+ (rstar-toplevel): ...this for clarity.
+
+2004-05-10 Derek Price <address@hidden>
+
+ * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
+
+2004-05-08 Larry Jones <address@hidden>
+
+ * log.c (log_expand_revlist): Suppress warnings if really_quiet.
+
+2004-05-08 Derek Price <address@hidden>
+
+ * server.c: Gratuitous reformatting. Remove unnecessary prototype &
+ unnecessary type cast.
+
+2004-05-07 Derek Price <address@hidden>
+
+ * sanity.sh (basica): Remove unnecessary empty arguments.
+
+2004-05-07 Derek Price <address@hidden>
+
+ * cvs.h (fopen_case): Remove obsolescent prototype.
+
+2004-05-05 Derek Price <address@hidden>
+
+ * sanity.sh: Wait a second and retry if cvs-serv* directories are
+ discovered to avoid race conditions on some systems.
+ (Patch from Pavel Roskin <address@hidden>.)
+
+2004-05-05 Derek Price <address@hidden>
+
+ * commit.c: Some gratuitous reformatting.
+
+2004-05-04 Derek Price <address@hidden>
+
+ * update.c: Some gratuitous reformatting.
+
+2004-05-04 Derek Price <address@hidden>
+
+ * add.c (add): Remove obsolete FIXME comment.
+ (*): Some gratuitous reformatting.
+
+2004-05-03 Derek Price <address@hidden>
+
+ * src/sanity.sh (branches2-14-ls-4): Change expectations due to new -d
+ flag.
+
+2004-05-02 Derek Price <address@hidden>
+
+ * sanity.sh (ls): Add some new tests of ls -d flag.
+ (Original patch from Alexander Taler <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * ls.c (ls_dirleaveproc): Return err.
+ (Original patch from Mark D. Baushke <address@hidden>.)
+
+2004-05-02 Derek Price <address@hidden>
+
+ * ls.c (ls_print): Return 0.
+ (Patch from Mark D. Baushke <address@hidden>.)
+
+2004-04-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (branches2-rls-1): Reformat comment.
+
+2004-04-28 Derek Price <address@hidden>
+
+ * sanity.sh (rcs2-5): Update to cope with new getdate.y.
+
+2004-04-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (set_lock), subr.c (sleep_past): Assume we have nanosleep.
+
+2004-04-27 Derek Price <address@hidden>
+
+ * root.c (normalize_cvsroot): Use asnprintf in preference to other
+ indirections.
+
+2004-04-27 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * commit.c, create_adm.c, entries.c, filesubr.c, hash.c, update.c:
+ Gratuitious reformatting.
+
+2004-04-27 Derek Price <address@hidden>
+
+ * ls.c (ls_direntproc): Remove unneeded assertion.
+
+2004-04-27 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-04-26 Derek Price <address@hidden>
+
+ * rsh-client.c (start_rsh_server): Don't rely on GNU argument
+ processing capabilities in the RSH command.
+ (Report from Mark Andrews <address@hidden>.)
+
+2004-04-26 Derek Price <address@hidden>
+
+ * ls.c (dircount): s/long long/long/ for Windows.
+
+2004-04-23 Derek Price <address@hidden>
+
+ * ls.c (usage): Sync with manual.
+
+2004-04-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+ and Mark D. Baushke <address@hidden>.)
+
+2004-04-23 Derek Price <address@hidden>
+
+ * Makefile.am (AM_CPPFLAGS): No, really, $(top_builddir)/lib.
+ * Makefile.in: Regenerated.
+
+2004-04-23 Derek Price <address@hidden>
+
+ * Makefile.am (AM_CPPFLAGS): Add the builddir/lib directory for
+ generated header files.
+ * Makefile.in: Regenerated.
+
+2004-04-22 Derek Price <address@hidden>
+
+ * cvs.h: Move include of fnmatch.h into lib/system.h with the other
+ GNULIB headers.
+
+2004-04-22 Derek Price <address@hidden>
+
+ * tag.c: Use bool where appropriate. Some gratuitous reformatting.
+
+2004-04-19 Derek Price <address@hidden>
+
+ * ignore.c: Gratuitous reformatting.
+
+2004-04-16 Derek Price <address@hidden>
+
+ * tag.c: Gratuitous reformatting.
+
+2004-04-16 Derek Price <address@hidden>
+
+ * client.c (connect_to_pserver): Use size_t instead of int as argument
+ to asnprintf. Some gratuitous reformatting.
+ (Report from Mark <address@hidden>.)
+
+2004-04-15 Derek Price <address@hidden>
+
+ * client.c, commit.c, server.c: Gratuitous reformatting.
+
+2004-04-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (parseroot): s/oberon/$username/.
+
+2004-04-06 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * log.c, tag.c: Gratuitous restyling.
+
+2004-04-04 Derek Price <address@hidden>
+
+ * filesubr.c (isabsolute): Move...
+ * subr.c: ...here and use new ISABSOLUTE macro.
+
+2004-04-04 Derek Price <address@hidden>
+
+ * client.c (send_file_names): Cast out an unneeded const to avoid a
+ warning.
+
+2004-04-03 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (client): Honor $keep.
+
+2004-04-02 Derek Price <address@hidden>
+
+ * log.c, patch.c, rcs.c: Gratuitous restyling.
+
+2004-04-02 Derek Price <address@hidden>
+
+ * import.c (import): Use ISDIRSEP rather than testing paths against `/'
+ directly. Some gratuitos reformatting.
+
+2004-04-02 Derek Price <address@hidden>
+
+ * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
+ running status.
+
+2004-04-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c: Gratuitous restyling.
+
+2004-04-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * login.c, server.c: Gratuitous restyling.
+
+2004-03-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-03-24 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (ISODATE): Fix ISO 8601 format comment.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * sanity.sh (toplevel): Remove FIXME type comment and unneeded
+ Emtptydir removal.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * update.c: Some minor style cleanup.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * update.c: Some minor style cleanup.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * sanity.sh (top-level): Don't match most of the assertion since this
+ string is often system dependent.
+ (Thanks to Larry Jones <address@hidden>.)
+
+2004-03-22 Derek Price <address@hidden>
+
+ * sanity.sh (top-level): Don't match the assertion's line number.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * sanity.sh (top-level): New test to confirm assertion failure.
+
+2004-03-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Verify that the argument to -f is really a test.
+
+2004-03-20 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (conflicts2): s/cvs/$testcvs/.
+
+2004-03-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (gserver_authenticate_connection): Handle large
+ GSSAPI packets dynamically.
+ (Bug report from Douglas Engert <address@hidden>)
+
+2004-03-19 Derek Price <address@hidden>
+
+ * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
+ prototype arguments to avoid potential conflicts with implementations.
+
+2004-03-18 Derek Price <address@hidden>
+
+ * cvs.h (pathname_levels): Make string argument const.
+ * subr.c (pathname_levels): Simplify function.
+
+2004-03-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-03-17 Derek Price <address@hidden>
+
+ * subr.c (pathname_levels): Get it right this time.
+
+2004-03-17 Derek Price <address@hidden>
+
+ * subr.c (pathname_levels): Remove incorrect assertion and just
+ return 0 when pathname is NULL.
+
+2004-03-17 Derek Price <address@hidden>
+
+ * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
+ and remove FIXME comment to that effect.
+
+2004-03-16 Derek Price <address@hidden>
+
+ * main.c (main): Update the --version Copyright (c) string to
+ include 2004.
+
+2004-03-15 Mark D. Baushke <address@hidden>
+
+ * release.c (release): Add missing xmalloc of update_cmd.
+
+2004-03-15 Derek Price <address@hidden>
+
+ * release.c (release): Enable authentication and encryption for a child
+ update process when necessary.
+ (Original patch from Dan Russell <address@hidden> via Hal Mahaffey
+ <address@hidden>.)
+
+2004-03-14 Derek Price <address@hidden>
+
+ * add.c (add): Only call server_updated() when we actual have a new
+ resurrected file for the client.
+
+2004-03-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * commit.c (remove_file): Print the actual previous revision instead of
+ a branch number.
+ * sanity.sh: Update to match.
+
+2004-03-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Update serveral tests to use $CPROG & $SPROG correctly.
+
+2004-03-14 Derek Price <address@hidden>
+
+ * add.c (add): Update file resurrection messages for consistency.
+ * sanity.sh: Update to match.
+
+2004-03-13 Derek Price <address@hidden>
+
+ * server.c (server_updated): Fix header comment.
+
+2004-03-13 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Remove error.h since it is now included in
+ lib.
+ * Makefile.in: Regenerated.
+
+2004-03-09 Larry Jones <address@hidden>
+
+ * run.c: Move #includes required for cmdline_escape and friends...
+ * subr.c: ...to here.
+
+2004-03-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * sanity.sh (import-CVS): New tests for the above.
+
+2004-02-29 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (join6): New tests for previous fix.
+
+ * update.c (join_file): One more fix to avoid dereferencing NULL.
+ (Reported by Steve McIntyre <address@hidden>.)
+ * sanity.sh (join6): New tests for above.
+
+2004-02-25 Larry Jones <address@hidden>
+
+ * update.c (join_file): Fix optimization to avoid dereferencing NULL.
+ (Reported by Steve McIntyre <address@hidden>.)
+
+2004-02-25 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * buffer.c (buf_empty): New function.
+ * server.c (server): Check for unread data in buffer before closing.
+
+2004-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * filesubr.c (xresolvepath): Fix crash in error case.
+ (Reported by Reinhard Zierke <address@hidden>.)
+
+2004-02-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
+ s/_SAVED\>/_save/ for consistency.
+
+2004-02-24 Derek Price <address@hidden>
+
+ * sanity.sh (taginfo-newfmt-examine-2): Correct expected results.
+
+2004-02-23 Larry Jones <address@hidden>
+
+ * sanity.sh (taginfo-examine-1): Correct expected results.
+
+2004-02-20 Derek Price <address@hidden>
+
+ * subr.c (expand_string): Use x2realloc() from GNULIB for core
+ functionality.
+
+2004-02-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * tag.c (check_fileproc): Remove unused variable.
+
+2004-02-20 Derek Price <address@hidden>
+
+ * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
+ update.c: Remove VIM editor commands.
+
+2004-02-20 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * run.c: Remove include of stddef.h - it is already included via
+ lib/system.h.
+
+2004-02-19 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (crerepos): Correct comment.
+
+2004-02-19 Derek Price <address@hidden>
+
+ * logmsg.c (verifymsg_proc), run.c (format_cmdline): Plug memory leak.
+ (Report from Mark D. Baushke <address@hidden>.)
+
+ * run.c (format_cmdline): Simplify two expressions.
+
+2004-02-19 Larry Jones <address@hidden>
+
+ * login.c (password_entry_operation): Initialize line.
+
+2004-02-19 Derek Price <address@hidden>
+
+ * sanity.sh (tests): Add errmsg3.
+
+2004-02-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
+ dotest functions.
+
+2004-02-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-02-18 Derek Price <address@hidden>
+
+ * run.c (format_cmdline): Move variable declaration to a position more
+ acceptable to the ANSI C standards.
+
+2004-02-17 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c (build_dir_and_chdir): Expand header comment.
+
+2004-02-15 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ Make error() accessible to the GNULIB functions.
+
+ * error.h: Move into the ../lib directory.
+
+2004-02-13 Derek Price <address@hidden>
+
+ * lock.c (Reader_Lock, lock_dir_for_write): Plug memory leaks.
+ (Report from Mark D. Baushke <address@hidden>.)
+
+2004-02-13 Derek Price <address@hidden>
+
+ * lock.c (remove_lock_files): Minor refactoring.
+
+2004-02-12 Mark D. Baushke <address@hidden>
+
+ * lock.c (lock_exists): Plug a memory leak.
+
+2004-02-12 Derek Price <address@hidden>
+
+ * modules.c: Reformat comment and line to fit in 80 chars.
+
+2004-02-12 Mark D. Baushke <address@hidden>
+
+ * server.c (do_cvs_command): Plug a memory leak.
+ (Use buf_free() rather than free().)
+
+2004-02-12 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-02-12 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * commit.c (find_fileproc): Plug a memory leak.
+
+2004-02-12 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (do_cvs_command): Simplify stream & pipe closing.
+ (Suggestion from Eric Siegerman <address@hidden>.)
+
+ * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
+
+2004-02-11 Derek Price <address@hidden>
+
+ * checkout.c (checkout_proc): Remove unneeded variable and enclosing
+ block.
+ * modules.c (_do_modules): Minor whitespace change.
+
+2004-02-10 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2004-02-10 Derek Price <address@hidden>
+
+ * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
+
+2004-02-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * lock.c (set_writelock_proc): Remove unused prototype.
+ (promotable_lock): Remove unneded whitespace.
+ (Promotable_Lock): Correct comments.
+
+2004-02-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (co-d): New test to prove `co -d' failure case.
+
+2004-02-05 Derek Price <address@hidden>
+
+ * sanity.sh (recase): Fix typo that creeped in somehow between my last
+ test run and my commit.
+
+2004-02-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (recase): Update test names and comments for clarity and
+ consistency.
+
+2004-02-04 Derek Price <address@hidden>
+
+ * sanity.sh (recase): Restore some cruft necessary when clients know
+ they are on case insensitive systems.
+
+2004-02-03 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * checkout.c (find_fileproc): Update error message for consistency.
+ * sanity.sh (basica): Update to compensate.
+
+2004-02-04 Derek Price <address@hidden>
+
+ * classify.c (Classify_File): Update header comment block and reformat
+ prototype for readability in 80 character widths.
+
+2004-02-02 Derek Price <address@hidden>
+
+ * sanity.sh (*): Update tests for the new status message from update.c.
+
+2004-02-02 Derek Price <address@hidden>
+
+ * sanity.sh (join-rm): New test for issue #104 & #159.
+
+2004-02-02 Derek Price <address@hidden>
+
+ * update.c (join_file): Correct status message for consistency.
+
+2004-02-02 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * client.c (send_file_names): Restore prescribed client handling of the
+ FILENAMES_CASE_INSENSITIVE switch.
+
+2004-01-25 Derek Price <address@hidden>
+
+ * server.c (kserver_authenticate_connection): Fix call to
+ switch_to_user().
+ (Original patch from Alexey Mahotkin <address@hidden>.)
+
+2004-01-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * logmsg.c (do_verify): Eliminate double-free bug.
+ (Original patch from Gerald Combs.)
+
+2004-01-12 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * socket-client.c (socket_buffer_initialize): Fix argument
+ declaration for VMS compiler.
+ (Patch submitted from Michael Lemke
+ <address@hidden>.)
+
+2004-01-01 Larry Jones <address@hidden>
+
+ * zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
+ overruns, use names for magic numbers.
+ (Original patch from Jeff Downs <address@hidden>.)
+
+2003-12-17 Larry Jones <address@hidden>
+
+ * main.c (main): Don't reference isremote without CLIENT_SUPPORT.
+ (Patch from Jim Salter <address@hidden>.)
+
+2003-12-18 Derek Price <address@hidden>
+
+ * server.c (switch_to_user): SysLog attempts to root from pserver.
+
+2003-12-18 Derek Price <address@hidden>
+
+ * 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
+ <address@hidden>.)
+ * sanity.sh (pserver): Check for bad root error message.
+
+2003-12-17 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-12-10 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * tag.c (tag_check_valid): Fix typo.
+ (Patch from Rob Clevenger <address@hidden>.)
+
+2003-12-09 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (recase): Add some clarifying comments.
+
+2003-12-03 Larry Jones <address@hidden>
+
+ * expand_path.c (expand_variable): Expand ${CVSROOT} to just the
+ directory like it's supposed to be.
+ (Reported by Michael S. Tsirkin <address@hidden>.)
+
+2003-11-26 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
+
+2003-11-26 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
+ intermittent conniptions.
+
+2003-11-25 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (binfiles2): Correct yet another Cygwin difficulty.
+
+2003-11-25 Derek Price <address@hidden>
+
+ * sanity.sh (release): Perform forgotten cleanup.
+
+2003-11-25 Derek Price <address@hidden>
+
+ * sanity.sh (env): Enable to work with $remotehost.
+
+2003-11-25 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (pserver, server, server2): Save $servercvs and use the
+ local $testcvs for these tests.
+
+2003-11-25 Derek Price <address@hidden>
+
+ * commit.c (commit_fileproc): Reword comment.
+
+2003-11-25 Derek Price <address@hidden>
+
+ * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
+ considerably between platforms.
+
+2003-11-25 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-11-24 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * hash.c (printnode, printlist): Cast %p arguments to void * as
+ required by the C standard.
+
+2003-11-21 Larry Jones <address@hidden>
+
+ * recurse.c (start_recursion, do_recursion): Cast %p arguments to
+ void * as required by the C standard.
+
+2003-11-19 Larry Jones <address@hidden>
+
+ * rcs.c (RCS_getrevtime): Add error checking; cleanup.
+
+2003-11-18 Derek Price <address@hidden>
+
+ * socket-client.c (socket_buffer_initialize): Rename poorly named `n'
+ to a slightly more descriptive `sbuf'.
+ (Suggestion from Larry Jones <address@hidden>.)
+
+2003-11-18 Derek Price <address@hidden>
+
+ * socket-client.c (socket_buffer_initialize): Pass in the socket
+ closure we allocate.
+ (Report from Larry Jones <address@hidden>.)
+
+2003-11-18 Derek Price <address@hidden>
+
+ * modules.c (do_module): Reject absolute paths.
+ (Report and suggested fix from Tony Hoyle <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * socket-client.c (socket_buffer_initialize): Correct a typo that
+ happened to compile.
+ (Report and suggested fix from Patrick Brown <address@hidden>.)
+
+2003-11-13 Derek Price <address@hidden>
+
+ * rcs.c (RCS_delete_revs): It's `&&', not `and'.
+
+2003-11-13 Derek Price <address@hidden>
+
+ * sanity.sh: Create the empty log to make it easier to tail immediately
+ after the script is started.
+
+2003-11-13 Derek Price <address@hidden>
+
+ * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
+ the help option.
+
+2003-11-13 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * add.c (add): Allocate more space for the string I added characters
+ to.
+ (Report from Mark D. Baushke <address@hidden>.)
+
+2003-11-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * sanity.sh (rmadd3): Update to match. Expand comments.
+
+2003-11-10 Derek Price <address@hidden>
+
+ * sanity.sh (rmadd3): Test the behavior of commit after the
+ add/replace.
+ (Report from Andreas Reifschneider <address@hidden>.)
+
+2003-11-10 Derek Price <address@hidden>
+
+ * sanity.sh (rmadd3): Fix another typo.
+
+2003-11-10 Mark D. Baushke <address@hidden>
+
+ * recurse.c (do_dir_proc): Set xframe.repository to NULL after a
+ call to free().
+
+2003-11-10 Derek Price <address@hidden>
+
+ * sanity.sh (rmadd3): Fix typo.
+
+2003-11-10 Derek Price <address@hidden>
+
+ * 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
+ <address@hidden>.)
+
+2003-11-03 Derek Price <address@hidden>
+
+ * sanity.sh (server): Test that the global `-l' option is ignored
+ nonfatally.
+
+2003-11-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
+ (Reported by Paul Edwards <address@hidden>.)
+
+2003-10-31 Derek Price <address@hidden>
+
+ * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
+
+2003-10-28 Derek Price <address@hidden>
+
+ * sanity.sh (devcom): Renumber tests and use dotest function.
+
+2003-10-28 Derek Price <address@hidden>
+
+ * sever.h: Add the standard copyright notice.
+
+2003-10-28 Derek Price <address@hidden>
+
+ * lock.c: Remove some suggestions which have already been implemented
+ or which have become obsolete from the header comment.
+
+2003-10-26 Derek Price <address@hidden>
+
+ * sanity.sh (join6): Fix a few typos in the last test and remove a
+ misplaced test.
+
+2003-10-25 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * update.c (merge_file): Optimize & eliminate code.
+
+2003-10-24 Derek Price <address@hidden>
+
+ * recurse.c (do_recursion): Assert that ignoring the return value of
+ Name_Repository is not a memory leak.
+
+2003-10-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * patch.c (patch_proc): Avoid memory leak.
+ (Patch from Mark D. Baushke <address@hidden>.)
+ (patch_proc): Reformat a few long lines for readability.
+
+2003-10-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.h: s/^extern// off of function declarations per HACKING.
+ Reformat protos for readability.
+
+2003-10-24 Derek Price <address@hidden>
+
+ * vers_ts.c (Version_TS): Reformat declaration and expand header
+ comment.
+
+2003-10-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
+ on failure.
+
+2003-10-22 Derek Price <address@hidden>
+
+ * recurse.c (start_recursion): Reformat function declaration and
+ expand comments.
+ (Original patch from Terrence Enger <address@hidden>.)
+
+2003-10-22 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_LDADD): Add $(LIBINTL) for gettext.
+ * Makefile.in: Regenerated.
+
+2003-10-19 Mark D. Baushke <address@hidden>
+
+ * sanity.sh (admin-31): Fix more typos.
+
+2003-10-18 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>.)
+ * sanity.sh (admin): Test these changes.
+
+2003-10-17 Mark D. Baushke <address@hidden>
+
+ * admin.c (admin_fileproc): Force tag match on admin
+ -mversion:message rather than altering the wrong log message.
+ (Patch from "Rodolfo Schulz de Lima" <address@hidden>.)
+ * sanity.sh (admin): Test case for it.
+
+2003-10-15 Larry Jones <address@hidden>
+
+ * commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
+ if the RCS file didn't get created at all.
+ (Reported by David Wood <address@hidden>.)
+
+2003-10-14 Derek Price <address@hidden>
+
+ 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 <address@hidden>.)
+
+2003-10-10 Derek Price <address@hidden>
+
+ * lock.c (set_lock): Clarify comment.
+
+2003-10-11 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (cvs_output, cvs_outerr): Protect calls to syslog()
+ with the usual preprocessor condition: HAVE_SYSLOG_H.
+ (Original patch from Terrence Enger <address@hidden>.)
+
+2003-10-09 Derek Price <address@hidden>
+
+ * cvs.h: s/^extern// off of function declarations per HACKING.
+
+2003-10-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * update.c (patch_file): Correct spelling and punctuation in comment.
+ Update some lines to fit in 80 characters.
+
+2003-10-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-10-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (lock_name, lock_simple_remove),
+ server.c (server_pathname_check, dirswitch): Add TRACE.
+
+2003-10-08 Derek Price <address@hidden>
+
+ * main.c: Reformat header comment to fit in 80 chars.
+
+2003-10-08 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (lock_filesdoneproc): Reformat long function prototype.
+
+2003-10-07 Larry Jones <address@hidden>
+
+ * server.c (server_cleanup): Remove old code that was commented out
+ with //, which isn't valid in C.
+
+2003-10-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c: Reformat a few long function prototypes and lines.
+
+2003-10-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (rcs_cleanup): Declare static.
+ * rcs.h (rcs_cleanup): Remove prototype.
+
+2003-10-03 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * recurse.c (start_recursion): Remove unnecessary typecasts.
+ (do_recursion): Ditto. Add TRACE. Expand comments. Remove unneeded
+ parens.
+
+2003-10-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (remove_locks): Eliminate unecessary typecasting.
+
+2003-10-03 Derek Price <address@hidden>
+
+ 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 <address@hidden>
+
+ * modules.c (do_module): Format prototype.
+
+2003-10-03 Derek Price <address@hidden>
+
+ * server.c (server_cleanup): Skip BUF_TO_NET checks as an optimization
+ when ERROR_USE_PROTOCOL is set.
+
+2003-10-03 Derek Price <address@hidden>
+
+ * modules.c (do_module): Use TRACE.
+
+2003-10-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Use symbolic name for trace level.
+
+2003-10-01 Derek Price <address@hidden>
+
+ * client.c (connect_to_forked_server): Use TRACE macro rather than the
+ old style.
+
+2003-10-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * update.c (do_update): Reformat function decl. Move and merge
+ comment.
+
+2003-09-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * commit.c (commit): Optimize function towards a single exit point.
+
+2003-09-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c: Remove some unecessary function prototypes.
+
+2003-09-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * diff.c (diff_fileproc): Optimize the check for labels set by the
+ user.
+
+2003-09-26 Derek Price <address@hidden>
+
+ * diff.c (diff): Add a FIXME re spaces in diff arguments.
+
+2003-09-25 Mark D. Baushke <address@hidden>
+
+ * rcs.c (make_file_label): Do not return an uninitialized label.
+ (Reported by "Todd C. Miller" <address@hidden>)
+
+2003-09-24 Derek Price <address@hidden>
+
+ * lock.c (lock_name): Remove useless prototype.
+
+2003-09-12 Derek Price <address@hidden>
+
+ * sanity.sh (mkmodules): Correct comments.
+
+2003-09-12 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden> for his educational
+ advice.)
+
+2003-08-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * remove.c (cvsremove): Update quotes for consistency.
+
+2003-08-27 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-08-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * (*.c): Move some includes to lib/system.h.
+
+2003-08-18 Derek Price <address@hidden>
+
+ * add.c (add): Use consistent quoting style in user messages.
+ * sanity.sh (*): Ditto.
+
+2003-08-13 Larry Jones <address@hidden>
+
+ * server.c (server_cleanup): Don't shutdown buf_from_net if it's
+ null.
+ (Reported by Scott Mitchell <address@hidden>.)
+
+2003-08-03 Mark D. Baushke <address@hidden>
+
+ * lock.c: Do not include xtime.h (already included via system.h).
+ * subr.c: Ditto.
+ (Original patch from Rainer Orth <address@hidden>
+ to fix IRIX 5.3 problem.)
+
+2003-08-01 Derek Price <address@hidden>
+
+ * sanity.sh (join5): Use $SPROG rather than $PROG.
+
+2003-08-01 Derek Price <address@hidden>
+
+ * sanity.sh (join5): Use $PROG consistently and escape a `.'.
+
+2003-08-01 Derek Price <address@hidden>
+
+ * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
+
+2003-07-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * add.c (add_directory): Don't print status information in really_quiet
+ mode.
+
+2003-07-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
+ and Update.prog.
+
+2003-07-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * commit.c (finaladd): But don't free variables we no longer allocate.
+
+2003-07-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-07-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-07-25 Derek Price <address@hidden>
+
+ * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
+ branch.
+
+2003-07-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (check_system_password): Cleanup pam_* return code
+ checking. (Original patch from Brian Murphy <address@hidden>.)
+
+2003-07-24 Derek Price <address@hidden>
+
+ * main.c: But the GNULIB gethostname accepts an int not ssize_t.
+
+2003-07-24 Derek Price <address@hidden>
+
+ * main.c: Don't declare gethostname when we already have it to avoid
+ decl conflicts.
+
+2003-07-24 Derek Price <address@hidden>
+
+ * server.c (server_directory): Add a TRACE for OS X debugging.
+
+2003-07-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * *.{c,h}: Back out the indent run.
+
+2003-07-23 Derek Price <address@hidden>
+
+ * cvs.h: Move some includes into lib/system.h.
+
+2003-07-23 Derek Price <address@hidden>
+
+ * *.{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 <address@hidden>
+
+ * *.c: Run these through GCC's protoize to convert the pre-ANSI C
+ function decls to C89 compliance.
+
+2003-07-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Include GNULIB exit.h.
+
+2003-07-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-07-20 Derek Price <address@hidden>
+
+ * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
+ a comment.
+
+2003-07-18 Derek Price <address@hidden>
+
+ * sanity.sh (release): Add new tests for release with unrecognized
+ recognized directories.
+
+2003-07-18 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-07-16 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Include pathmax.h.
+
+2003-07-16 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (diffnl): New tests for diff on files with no newline
+ at end.
+ (Patch from Andrew Moise <address@hidden>.)
+
+2003-07-11 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+ * sanity.sh (join, join4): New tests for above.
+
+2003-06-28 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (readers_exist): Use LockDir rather than always looking
+ in the repository.
+ (Original patch from Robert Ambalu <address@hidden>.)
+ Remove vestigial lock promotion code.
+
+2003-06-27 Derek Price <address@hidden>
+
+ * checkout.c (safe_location): Don't try and print from a NULL pointer.
+ (Report and original patch from Sampo Kellomaki <address@hidden>.)
+
+2003-06-26 Larry Jones <address@hidden>
+
+ * hash.c (sortlist): Avoid crash when list is null.
+
+2003-06-23 Derek Price <address@hidden>
+
+ * patch.c (patch_fileproc): Output revision number of the original
+ revision in the removed case.
+ (Idea from Paul Edwards <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-06-23 Derek Price <address@hidden>
+
+ * client.c: Remove silly comment.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-06-23 Derek Price <address@hidden>
+
+ * kerberos4-client.h, kerberos4-client.c, client.c: Rename
+ start_tcp_server() to start_kerberos4_server().
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-06-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-06-16 Derek Price <address@hidden>
+
+ * cvs.h: Comment an #endif.
+
+2003-06-13 Derek Price <address@hidden>
+
+ * filesubr.c (cvs_temp_name): Remove portability cruft obsoleted by the
+ import of GNULIB's mkstemp().
+
+2003-06-13 Derek Price <address@hidden>
+
+ * subr.c (file_has_conflict): Fix comment.
+ (Patch from Paul Edwards <address@hidden>.)
+
+2003-06-13 Derek Price <address@hidden>
+
+ * subr.c (xrealloc): Trivial comment fix.
+ (Patch from Kenneth Lorber <address@hidden>.)
+
+2003-06-13 Derek Price <address@hidden>
+
+ * diff.c (diff_fileproc): Fix memory leak.
+ (Patch from Kenneth Lorber <address@hidden>.)
+
+2003-06-12 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-06-12 Derek Price <address@hidden>
+
+ * checkout.c (safe_location): Fix memory leak.
+ (Patch from Kenneth Lorber <address@hidden>.)
+
+2003-06-11 Larry Jones <address@hidden>
+
+ * filesubr.c (xresolvepath): Fix memory leak.
+ (Original patch from Kenneth Lorber <address@hidden>.)
+
+2003-06-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-06-11 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerate for new configure.in.
+
+2003-06-11 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * recurse.c (start_recursion): Avoid unneeded allocation.
+
+2003-06-10 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * filesubr.c (cvs_temp_file): Tidy a comment.
+
+2003-06-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-06-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-05-29 Derek Price <address@hidden>
+
+ * log-buffer.c, rsh-client.c, socket-client.c: Allow compilation
+ with --disable-client.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-05-29 Derek Price <address@hidden>
+
+ * gssapi-client.h: Move contents of lib/xgssapi.h here.
+ * server.c: xgssapi.h is no more.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-05-28 Derek Price <address@hidden>
+
+ * server.c: Use standard PROTOTYPES symbol instead of non-standard
+ USE_PROTOTYPES.
+ * error.h, cvs.h: Use PROTO.h.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-05-23 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * Makefile.in: Regenerate with Automake version 1.7.5.
+
+2003-05-20 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * mkmodules.c (config_contents): Add missing newline.
+ (Patch from Kenneth Lorber <address@hidden>.)
+
+2003-05-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated
+
+2003-05-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c: #ifdef inclusion of gssapi-client.h.
+ * server.c: Ditto.
+ (Reported by Boyd Lynn Gerber <address@hidden>.)
+
+2003-05-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-05-09 Derek Price <address@hidden>
+
+ * buffer.c: Reindent some compiler directives in order to make nesting
+ clearer.
+
+2003-05-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-05-08 Derek Price <address@hidden>
+
+ * client.c (init_sockaddr): Move...
+ * socket-client.c (init_sockaddr): ...here.
+ * socket-client.h (init_sockaddr): Prototype.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-05-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-05-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-05-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * client.h (make_bufs_from_fds): Sanitize prototype so that the
+ argument name change doesn't clash.
+
+2003-05-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-05-06 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-05-05 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
+ (Report from Jim Salter <address@hidden>.)
+
+2003-05-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * vers_ts.c (Version_TS): Minor optimization.
+
+2003-04-30 Derek Price <address@hidden>
+
+ * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
+
+2003-04-30 Derek Price <address@hidden>
+
+ * commit.c: Free vers in single place
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+2003-04-30 Derek Price <address@hidden>
+
+ * Makefile.am: Get rid of $includeopt, using $CPPFLAGS as intended by
+ the Autoconf folk.
+ (Patch from Alexey Mahotkin <address@hidden>.)
+
+ * Makefile.in: Regenerated.
+
+2003-04-30 Derek Price <address@hidden>
+
+ * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
+
+2003-04-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * Makefile.in: Regenerated.
+
+2003-04-04 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
+ versions < 3.0.
+
+2003-04-02 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * sanity.sh (multiroot): Put a dot in the CVSROOT_DIRNAMEs.
+ (dottedroot): New test.
+ (Based on a script from Pavel Roskin <address@hidden>.)
+
+2003-04-01 Derek Price <address@hidden>
+
+ * sanity.sh (multiroot2-9): Add newly TRACEd parse_cvsroot() to
+ expected output.
+
+2003-03-31 Derek Price <address@hidden>
+
+ * rcs.c (freercsnode): Revert an accidental change from the previous
+ commit.
+
+2003-03-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c: Include the net headers for HAVE_GSSAPI.
+ (Report from Jim Salter <address@hidden>.)
+
+2003-03-26 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Use strtol() instead of atoi() when parsing -z
+ to detect errors.
+ (Reported by Eric Siegerman <address@hidden>.)
+
+2003-03-25 Derek Price <address@hidden>
+
+ * cvs.h: Disable GNU attributes as part of PROTO behavior.
+ * error.h: Mirror GNU attribute definitions from cvs.h.
+
+2003-03-25 Derek Price <address@hidden>
+
+ * subr.c (cvs_trace): #ifdef use of server_active.
+ (Report from Jim Salter <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * Makefile.am: Update copyright notice.
+
+ * Makefile.in: Regenerated.
+
+2003-03-24 Larry Jones <address@hidden>
+
+ * server.h (server_clear_template): Add declaration.
+ (server_template): Add parameter names to prototype.
+
+2003-03-20 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
+ (Patch from Brian Poole <address@hidden>.)
+ * sanity.sh (abspath-4): Update to match.
+
+ * filesubr.c (locate_rcs): Fix gcc warning.
+
+2003-03-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * .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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * root.c (parse_root): Add some more comments and expand
+ #ifdef CLIENT_SUPPORT pragmas. Rearrange sanity checks slightly.
+
+2003-03-18 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (switch_to_user): Add syslog calls for setgid/setuid
+ failure.
+
+2003-03-16 Mark D. Baushke <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h (WriteTemplate): Add missing prototype.
+
+2003-03-07 Mark D Baushke <address@hidden>
+
+ * sanity.sh: Fix broken setting of the servercvs variable.
+
+2003-03-07 Derek Price <address@hidden>
+
+ * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
+ consistency.
+
+2003-03-07 Derek Price <address@hidden>
+
+ * sanity.sh (usage): Show users long --help rather than less
+ informative -h.
+
+2003-03-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Drop the clientcvs option. Add usage info for
+ the -s servercvs option.
+
+2003-03-07 Larry Jones <address@hidden>
+
+ * commit.c (check_fileproc): Remove unused variables.
+
+ * patch.c (patch): Pass local to do_module so that -l actually works.
+ (Reported by John Coers <address@hidden>.)
+ (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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * sanity.sh (status): New test for same.
+
+2003-03-06 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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
+ <address@hidden> 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c (checkout): Send "--" before file names.
+ * sanity.sh (spacefiles): Remote now works just like local.
+
+2003-02-25 Derek Price <address@hidden>
+
+ * sanity.sh (rcs4): Use UTC to work across timezones.
+
+2003-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>, original report from
+ Piotr KUCHARSKI <address@hidden>.)
+
+2003-02-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-02-25 Derek Price <address@hidden>
+
+ * watch.c (watch_usage): Use {} rather than () for literals.
+
+2003-02-21 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>).
+
+2003-02-14 Larry Jones <address@hidden>
+
+ * log.c (log_expand_revlist): Fix crashes in error cases.
+ (Reported by Bart Santy <address@hidden>.)
+ * sanity.sh (log): New tests for above.
+
+2003-02-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * watch.c (watch_usage): Make the repeatability of -a part of the
+ usage spec.
+
+2003-02-14 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (main): Update copyright message to 2003.
+
+2003-02-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcscmds.c (RCS_merge): Add a FIXME.
+
+2003-02-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden> for forwarding the
+ patch and writing the test cases!)
+
+ * sanity.sh (branch-after-import): Misc portablility and standard
+ changes.
+
+2003-02-07 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_getdatebranch): Update header comment to reflect the state
+ of the docs and the code's operation.
+
+2003-02-06 Derek Price <address@hidden>
+
+ * client.c: Use the complete path to the CVSADM_TEMPLATE file in
+ error messages. Remove related FIXME.
+
+2003-02-04 Derek Price <address@hidden>
+
+ * status.c (status_fileproc): Add a FIXME comment.
+
+2003-02-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
+ (Patch from Johannes Grødem <address@hidden>.)
+
+2003-02-01 Derek Price <address@hidden>
+
+ * lock.c: Remove extra line feed on TRACE output.
+
+2003-01-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
+
+2003-01-30 Derek Price <address@hidden>
+
+ * sanity.sh (keywordname): New test.
+
+2003-01-23 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * root.c (method_name): Redefine as a 2D array.
+ * root.h (method_name): Ditto.
+
+2003-01-21 Jim Meyering <address@hidden>
+
+ * 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 <address@hidden>
+
+ * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
+ it parses correctly.
+ (Reported by Andres Bertens <address@hidden>.)
+
+2003-01-15 Karl Fogel <address@hidden>
+
+ * 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 <address@hidden> for the fix.
+
+2003-01-08 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2003-01-02 Larry Jones <address@hidden>
+
+ * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
+
+2002-12-27 Derek Price <address@hidden>
+
+ * 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 <address@hidden>,
+ Cristopher Seawood <address@hidden>, and
+ Frederico Costa <address@hidden> for all their hints,
+ tips, and patches for this problem.)
+
+2002-12-20 Derek Price <address@hidden>
+
+ * client.c (send_a_repository): Suppress a warning under Windoze.
+
+2002-12-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * admin.c: Disable cvsadmin group checking on the client.
+ (Reported by Dan Peterson <address@hidden>.)
+
+2002-12-06 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-12-04 Derek Price <address@hidden>
+
+ * options.h: Remove CVS_ADMIN_GROUP.
+
+2002-12-02 Larry Jones <address@hidden>
+
+ * commit.c (commit): Strip leading zeros from numeric revision
+ in addition to trailing dots.
+ (Reported by Peter Meszaros <address@hidden>.)
+
+2002-11-22 Larry Jones <address@hidden>
+
+ * sanity.sh: Note that the tests run for a long time.
+
+ * checkout.c (safe_location): Use xstrdup, not strdup.
+ (Reported by Terrence Enger <address@hidden>.)
+
+2002-11-19 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
+
+2002-11-03 Derek Price <address@hidden>
+
+ * sanity.sh (rcs2-7): Notate with three more failure dates.
+
+2002-10-25 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.
+ Original patch from Ralf S. Engelschall <address@hidden>
+ via Peter Wemm <address@hidden>.)
+
+2002-10-05 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
+
+2002-09-24 Derek Price <address@hidden>
+
+ * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
+
+2002-09-24 Derek Price <address@hidden>
+
+ * options.h: Move definition of UMASK_DFLT into configure.in.
+
+2002-09-24 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerated using Automake 1.6.3.
+
+2002-09-24 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * options.h: Move definition of TMPDIR_DFLT into configure.in.
+
+2002-09-24 Derek Price <address@hidden>
+
+ * options.h: Move defininition of EDITOR_DFLT into configure.in.
+
+ * Makefile.in: Regenerated.
+
+2002-09-23 Jim Meyering <address@hidden>
+
+ 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 <address@hidden>.
+ * sanity.sh (commit-d): New tests for the above.
+ Patch by Simon Walton <address@hidden>.
+
+2002-09-20 Derek Price <address@hidden>
+
+ * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
+ and SERVER_LO_WATER into configure.in.
+
+2002-09-20 Derek Price <address@hidden>
+
+ * options.h: Move definition of PATCH_PROGRAM to configure.in.
+
+2002-09-18 Larry Jones <address@hidden>
+
+ * client.c (call_in_directory): Don't create admin directory when
+ exporting into an existing directory.
+ (Reported by Jens Engel <address@hidden>.)
+ * sanity.sh (basic2): New tests for above.
+
+2002-09-16 Jim Meyering <address@hidden>
+
+ * 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 <address@hidden>.
+
+2002-09-15 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-08-28 Larry Jones <address@hidden>
+
+ * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
+ (Reported by Eric Siegerman <address@hidden>.)
+
+2002-08-16 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (server): Dispose of the correct pointer. Tidy comment.
+
+2002-08-13 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * import.c (import): Surrounded `server_active' with
+ #ifdef SERVER_SUPPORT/#endif.
+ * commit.c (commit_fileproc, commit_direntproc): Likewise.
+ (Patch from John Tytgat <address@hidden>.)
+
+2002-07-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Add another date to the comment about rcs2-7 failing.
+
+2002-07-26 Jim Meyering <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-06-26 Larry Jones <address@hidden>
+
+ * tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
+ is also a valid status.
+ (Reported by David Everly <address@hidden>.)
+ * sanity.sh (tagc): New tests for above.
+
+2002-06-18 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-06-17 Larry Jones <address@hidden>
+ and Jonathan Kamens <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c: Conditionally define MAP_FAILED for old systems that don't
+ have it in <mman.h>.
+ (Reported by jeremy brand <address@hidden>.)
+
+2002-05-24 Larry Jones <address@hidden>
+
+ * rcscmds.c (diff_exec): Add a -- before the first file name just
+ in case it looks like an option.
+ (Reported by Zooko <address@hidden>.)
+
+ * rcscmds.c (diff_execv): Remove -- same as diff_exec. Change
+ only caller.
+ * cvs.h: Ditto.
+
+2002-05-23 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-05-21 Larry Jones <address@hidden>
+
+ * rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
+ and add a similar assertion for ptrend.
+ (Reported by Rebecca Young <address@hidden>.)
+ (rcsbuf_fill): Remove redundant code.
+
+2002-05-20 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-05-20 Derek Price <address@hidden>
+
+ * main.c (main): Add 2002 to the copyright years output with the
+ version string.
+
+2002-05-15 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>,
+ reported by Alex Morozov <address@hidden>.)
+
+2002-05-09 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2002-05-08 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Use the HAVE_CONFIG_H define.
+
+2002-05-07 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+ 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * .cvsignore: Remove lines for files obsoleted by new autotools.
+
+2002-05-02 Derek Price <address@hidden>
+
+ * stamp-h2.in: Remove this uneeded file.
+
+2002-05-01 Derek Price <address@hidden>
+
+ * options.h.in: Move to...
+ * options.h: here.
+
+2002-04-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * cvs.h: Use `"'s around includes when we mean a local file.
+
+2002-04-28 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
+ (Reported by Matthias Andree <address@hidden>.)
+
+2002-04-19 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+ and Ed Santiago <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * version.h: Regenerated for 1.11.2.1 version update.
+
+2002-04-17 Derek Price <address@hidden>
+
+ * version.h: Regenerated for 1.11.2.
+
+2002-04-03 Derek Price <address@hidden>
+
+ * stamp-h2.in: Regenerate with recent version of Autoconf.
+
+2002-04-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
+ of cvs.
+
+2002-03-21 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * main.c (usg): Correct a spelling mistake in a comment.
+ (Thanks to Matt Kraai <address@hidden>.)
+
+2002-03-09 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
+
+2002-02-26 Larry Jones <address@hidden>
+
+ * diff.c (diff): Remove -V and --paginate options: they aren't valid.
+ (diff_usage): Document all the diff options.
+
+2002-02-13 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+ via Eric Gillespie <address@hidden>.)
+
+2002-02-11 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * server.c (LOG_DAEMON): Define if needed.
+ (Patch from John David Anglin <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
+
+2001-10-25 Larry Jones <address@hidden>
+
+ * log.c (log_expand_revlist): Make erroneous or inconsistent revision
+ specs select no revisions rather than all revisions.
+
+2001-10-23 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_fully_parse): Add revision number to more error messages.
+
+2001-09-27 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
+
+2001-09-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-09-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-09-19 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
+ messages more informative.
+ * sanity.sh (modules6): New test.
+ (Original report from Taska <address@hidden> and others.)
+
+2001-09-14 Derek Price <address@hidden>
+
+ * logmsg.c (do_verify): Dispose memory when finished with it.
+
+2001-09-07 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * login.c (login): Deal with NULL return value from getpass.
+
+2001-09-04 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerated with automake 1.5.
+ * stamp-h2.in: Ditto.
+
+2001-09-04 Derek Price <address@hidden>
+
+ * main.c (main): Fix empty CVSROOT message to specify `valid' instead
+ of `legal'.
+
+2001-09-04 Derek Price <address@hidden>
+
+ * server.c (pserver_authenticate_connection): Back out changes from the
+ 30th and...
+ * getline.c (getstr): init the buffer instead.
+
+2001-08-31 Derek Price <address@hidden>
+
+ * Makefile.in: Backed out accidental commit from yesterday.
+
+2001-08-30 Derek Price <address@hidden>
+
+ * 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 <address@hidden>).
+
+2001-08-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-08-24 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * parseinfo.c (Parse_Info): Change the function name in the trace
+ and add the client/server string.
+
+2001-08-24 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * logmsg.c (do_verify): Remove an unecessary "else" clause following an
+ exit and unindent the former contents.
+
+2001-08-22 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * client.c (socket_buffer_shutdown): Use recv instead of read and
+ return 0 on success.
+ (Patch from "Manfred Klug" <address@hidden>.)
+
+2001-08-09 Derek Price <address@hidden>
+
+ * 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" <address@hidden>.)
+
+ * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
+ where rsh pipes weren't being closed.
+
+2001-08-09 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-08-06 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerated.
+
+2001-08-01 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-07-19 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+ * sanity.sh (checkout_repository): New tests for above.
+
+2001-07-10 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
+ NUL terminator.
+ * update.c (special_file_mismatch): Ditto.
+ (Reported by Pekka Savola <address@hidden>.)
+
+2001-07-05 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * Makefile.in: Regenerated with new Automake release candidate 1.4h.
+
+2001-07-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * update.c: Indent compiler directives.
+
+2001-07-02 Larry Jones <address@hidden>
+
+ * import.c (update_rcs_file): Use -kb instead of -ko when comparing
+ binary files.
+ (Reported by Gyula Faller <address@hidden>.)
+
+2001-06-28 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-06-28 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerated with new version of Automake.
+
+2001-06-28 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-06-25 Larry Jones <address@hidden>
+
+ * recurse.c (start_recursion): Deal with at least some of the cases
+ where trailing slashes cause confusion.
+ (Reported by Malcolm Fernandes <address@hidden>.)
+ * sanity.sh (basica, basicb): Tweak existing tests to check this.
+
+2001-06-22 Larry Jones <address@hidden>
+
+ * sanity.sh (modules5): New tests with -d on command line.
+
+2001-06-21 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+ * 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 <address@hidden>
+ for Stephen Rasku <address@hidden>
+
+ * admin.c: Corrected spelling mistakes in help.
+
+2001-06-20 Derek Price <address@hidden>
+
+ * client.c (socket_buffer_shutdown): Fix untested typos.
+ (Reported by "Jerzy Kaczorowski" <address@hidden>.)
+
+ * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
+ the correct place.
+
+2001-06-20 Derek Price <address@hidden>
+
+ * logmsg.c (do_editor): Abort in the case that the file has only
+ comment lines.
+ (Original patch from Mark Valentine <address@hidden>.)
+
+ * logmsg.c (do_editor): Fix rare memory leak.
+ * sanity.sh (editor): Add tests for aborted log messages.
+
+2001-06-20 Larry Jones <address@hidden>
+
+ * server.c (switch_to_user): Only set $CVS_USER if
+ AUTH_SERVER_SUPPORT is defined.
+ (Reported by Nalin Dahyabhai <address@hidden>.)
+
+2001-06-13 Derek Price <address@hidden>
+
+ * client.c: Fix incorrect fixed-size buffer usage in
+ connect_to_gserver().
+ (Minor changes to a patch from Alexey Mahotkin <address@hidden>.)
+
+2001-06-11 Derek Price <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-06-08 Derek Price <address@hidden>
+
+ * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
+
+2001-06-07 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
+ /tmp/cvs-sanity/cvsroot.
+
+2001-06-06 Derek Price <address@hidden>
+
+ (Reformatting, bug fixes, tests, and comments to a
+ patch from Stephen Cameron <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_unlock): Note when breaking someone else's lock.
+ (Reported by MURVAI-BUZOGANY Laszlo
+ <address@hidden>.)
+ * sanity.sh (reserved-14): Update to match.
+
+2001-06-05 Derek Price <address@hidden>
+
+ * sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false... this is a local
+ mode only test anyhow.
+ (Thanks to Larry Jones and Morgan Burke <address@hidden>.)
+
+2001-05-31 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * stamp-h2.in: Regenerated.
+
+2001-05-30 Derek Price <address@hidden>
+
+ * *: Various bug fixes and comments for the following
+ patch from Donald Sharp <address@hidden>:
+
+ * 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 <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Add root.h.
+
+ * Makefile.in: Regenerated.
+ * stamp-h2.in: Regenerated.
+
+2001-05-29 Derek Price <address@hidden>
+
+ * checkout.c (safe_location): Correct formatting.
+
+2001-05-29 Derek Price <address@hidden>
+
+ * root.c (parse_cvsroot): Fix a comment.
+
+2001-05-26 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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" <address@hidden>.)
+
+2001-05-25 Derek Price <address@hidden>
+ for Donald Sharp <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c (checkout_proc): Don't build top_level_admin directory
+ when exporting.
+ (Reported by Tony Byrne <address@hidden>.)
+
+2001-05-21 Derek Price <address@hidden>
+
+ * client.c: Fix a mispelling in a comment.
+ (Patch from Alexey Mahotkin <address@hidden>).
+
+2001-05-05 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (start_tcp_server): Use the struct sockaddr_in declared in
+ the function.
+ (Reported by Emil Isberg <address@hidden>.)
+
+2001-05-05 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.h: Declare "struct buffer" outside prototype for __STDC__
+ compilers.
+
+2001-05-04 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c: Gratuitous reformatting.
+ * client.h: Ditto.
+
+2001-05-04 Derek Price <address@hidden>
+
+ * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
+ prototype.
+ (compress_buffer_shutdown_output): Ditto.
+ (Thanks to Pavel Roskin <address@hidden>.)
+
+2001-05-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>.)
+
+2001-05-03 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_getdate): Handle the (unusual!) case where we
+ can't find any revisions at all.
+ (Reported by Ryan Grow <address@hidden>.)
+
+2001-04-30 Larry Jones <address@hidden>
+
+ * sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
+ duplicate names; fix to work without SERVER_SUPPORT defined.
+ (Reported by Pavel Roskin <address@hidden>.)
+
+2001-04-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (pserver): Add tests for readers and writers.
+
+2001-04-27 Derek Price <address@hidden>
+
+ * sanity.sh (version-2r): Update to handle patch releases in version
+ numbers.
+
+2001-04-27 Derek Price <address@hidden>
+
+ * version.c: Regenerated.
+
+2001-04-27 Derek Price <address@hidden>
+
+ * version.c: Regenerated.
+
+2001-04-27 Larry Jones <address@hidden>
+
+ * main.c (lookup_command_attribute): Lookup specified command, not
+ whatever's in the global command_name.
+
+2001-04-25 Derek Price <address@hidden>
+
+ * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
+ * version.c: Regenerated.
+
+2001-04-22 Larry Jones <address@hidden>
+
+ * tag.c (tag_check_valid): Make an unwritable val-tags file a
+ warning instead of a fatal error.
+
+2001-04-20 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * checkout.c, update.c: Fix usage messages: -r and -D are not
+ mutually exclusive.
+ (Suggested by David L. Martin <address@hidden>.)
+
+ * 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 <address@hidden>.)
+
+2001-04-04 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (ignore-on-branch-3): Fix in the remote case.
+
+2001-04-03 Larry Jones <address@hidden>
+
+ * update.c (update_fileproc): Remove unused variable (resurrecting).
+
+2001-04-03 Derek Price <address@hidden>
+ Larry Jones <address@hidden>
+ reported by Jakob Bøhm <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * client.c (connect_to_forked_server): Use program_path as the default
+ server instead of "cvs".
+
+2001-04-02 Derek Price <address@hidden>
+
+ * sanity.sh: Use less obfuscated English in my comment about sanity
+ checking sanity.sh.
+
+2001-04-02 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Add test for PWD before successful exit.
+
+2001-03-30 Larry Jones <address@hidden>
+
+ * sanity.sh (rm-update-message): Remove duplicate code.
+
+2001-03-30 Derek Price <address@hidden>
+
+ * sanity.sh (rm-update-message): New test for local/client-server
+ warning message discrepency.
+
+2001-03-30 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (join-readonly-conflict): Run more of this through dotest.
+
+2001-03-30 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Normalize TESTDIR even when the user set it.
+
+2001-03-29 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
+ ${CVSROOT_DIRNAME} for consistency.
+
+2001-03-29 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * classify.c (Classify_File): Don't report a conflict for a removed
+ file when piping. Also simplify the code structure.
+ (Reported by Milos Kleint <address@hidden>.)
+ * sanity.sh (rmadd2-14[abc]): New tests for above.
+
+2001-03-24 Noel Cragg <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Add check for ${DOTSTAR} with large matches.
+
+2001-03-23 Derek Price <address@hidden>
+
+ * sanity.sh: Do the same as below for $keep.
+
+2001-03-23 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (diffmerge1): Minor formatting and syntax changes.
+
+ for Jacob Burckhardt <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh: Don't use unescaped parens in sh outside of quotes.
+
+2001-03-20 Derek Price <address@hidden>
+
+ * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
+
+2001-03-20 Derek Price <address@hidden>
+
+ * sanity.sh: Change usage to match the new getopts format and comment.
+
+2001-03-16 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * sanity.sh (modules2): Additional test for ampersand module behavior
+ with '-d'.
+
+ for Greg Klanderman <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * admin.c (admin_data): Remove 'quiet' member.
+ (admin_fileproc): Use global 'really_quiet' rather than
+ admin_data->quiet.
+
+2001-03-16 Derek Price <address@hidden>
+
+ * sanity.sh (admin): Replace hardcoded testdir path with the variable.
+
+2001-03-15 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
+
+2001-03-15 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * Makefile.in: Regenerated.
+ * stamp-h2.in: Ditto.
+
+2001-03-14 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+ * sanity.sh (basica-r*): New tests for above.
+ (basica-o4): Update to match.
+
+2001-03-09 Larry Jones <address@hidden>
+
+ * 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 <address@hidden>.)
+ * entries.c (fgetentent): Ditto.
+ * vers_ts.c (time_stamp_server, time_stamp) Ditto.
+
+2001-03-07 Larry Jones <address@hidden>
+
+ * sanity.sh (basica, binfiles2, head, admin): Update to match
+ change to admin.c.
+
+2001-03-06 Larry Jones <address@hidden>
+
+ * client.c (recv_bytes): Handle EOF as in recv_line().
+ (Reported by Pavel Roskin <address@hidden>.)
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+2001-02-27 Derek Price <address@hidden>
+
+ * 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 <address@hidden>
+
+ * 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 <address@hidden>
+
+ * modules.c, cvs.h (do_module): Add build_dirs argument and use it
+ instead of run_module_prog. Change all callers.
+ * tag.c (cvstag): For rtag, don't build directories.
+ * sanity.sh (modules3): Update to match.
+
+2001-02-20 Derek Price <address@hidden>
+
+ * client.c: Use xgssapi.h.
+ * server.c: Ditto.
+
+2001-02-15 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Correct error from yesterday.
+ * Makefile.in: Regenerated.
+
+2001-02-14 Derek Price <address@hidden>
+
+ * server.c: Include xselect.h.
+ * update.c (do_update): Use best available sleep function.
+
+2001-02-14 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
+ (cvs_LDADD): Alphabetize and split to one/line.
+ * Makefile.in: Regenerated.
+
+2001-02-14 Larry Jones <address@hidden>
+
+ * build_src.com: Remove references to rtag.c & rtag.obj.
+
+2001-02-13 Derek Price <address@hidden>
+
+ * main.c (date_to_tm): New function to convert an RCS date string to a
+ struct tm.
+ (tm_to_internet): New function to convert a struct tm to a date string
+ as specified by RFC822 and amended by RFC 1123.
+ (date_to_internet): Use the above two functions and a struct tm
+ intermediary for conversion.
+ * patch.c (patch_fileproc): Answer somebody's comment and use the new
+ diff_exec API.
+ * rcs.c (RCS_checkin): Use new diff_exec API.
+ (RCS_delete_revs): Use new diff_exec API.
+ (make_file_label): If the file name is DEVNULL, date it the Epoch for
+ compatibility with the POSIX.2 spec and Larry Wall's patch
+ implementation.
+ * rcscmds.c (diff_exec): Accept new label arguments.
+ * sanity.sh (death2): Update some diff tests to accept the new format.
+ * update.c (patch_file): Use new diff_exec API.
+ * diff.c (diff_fileproc): Create header labels appropriate for
+ compatibility with the Larry Wall version of patch.
+ (diff): Rename calls to strcat_and_allocate.
+ (strcat_and_allocate): Rename and move...
+ * subr.c (xrealloc_and_strcat): here.
+ * cvs.h: Update prototypes to match.
+
+2001-02-13 Derek Price <address@hidden>
+
+ * Makefile.am (cvs_SOURCES): Remove rtag.c.
+
+2001-02-07 Larry Jones <address@hidden>
+
+ * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
+ (basic2): Rewrite using dotest.
+
+2001-02-06 Larry Jones <address@hidden>
+
+ * tag.c, rtag.c: Merge with tag.c being the surviving file.
+ * Makefile.in: Update to match.
+ * main.c (cmds): rtag() => cvstag().
+ * server.c (serve_rtag): Ditto, and set command name.
+
+2001-02-06 Derek Price <address@hidden>
+ Rex Jolliff <address@hidden>
+ Shawn Smith <address@hidden>
+
+ * add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
+ CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
+ 5.7 {open,read,close}dir problems. Check today's entry in the vms
+ subdir for more.
+ * filesubr.c: ditto
+ * find_names.c: ditto
+ * ignore.c: ditto
+ * import.c: ditto
+ * lock.c: ditto
+ * update.c: ditto
+
+2001-02-02 Larry Jones <address@hidden>
+
+ * error.h: Changed include guard macro from _error_h_ to ERROR_H;
+ names beginning with underscore are reserved.
+ * login.c (password_entry_parseline, password_entry_operation,
+ password_entry_operation_e, password_entry_operation_t): Removed
+ leading underscore(s).
+ (password_entry_parseline): Corrected error messages.
+ (password_entry_operation): Fixed uninitialized variable (password).
+ (login): Removed unused variable (found_password).
+
+ * rtag.c (rtag_proc): Call lock_tree_for_write() before calling
+ start_recursion. This fixes a serious problem where do_recursion
+ was reading and caching RCS files without any locks in place and
+ that information was subsequently being used to rewrite the file
+ causing any intermediate changes to be lost.
+ (rtag_filesdoneproc): Defunct.
+ (Reported by Karl Tomlinson <address@hidden>.)
+ * tag.c (cvstag, tag_filesdoneproc): Ditto.
+ * lock.c (lock_tree_for_write): Add which argument, change all
+ callers to pass W_LOCAL.
+ * rcs.h: Ditto.
+
+2001-01-29 Derek Price <address@hidden>
+
+ * client.c (get_cvs_port_number): change the prototype to accept a
+ const cvsroot_t * as input and add a FIXME comment
+ * cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
+ * login.c (_password_entry_operation): consolidate all the ~/.cvspass
+ access into a single new function which reads ~/.cvspass in a backwards
+ compatible manner
+ (logout): use the new _password_entry_operation function
+ (login): ditto
+ (get_cvs_password): ditto
+ * root.c (normalize_cvsroot): move knowledge of default port & username
+ values inside
+
+2001-01-29 Larry Jones <address@hidden>
+
+ * subr.c (shell_escape): New function.
+ * cvs.h: Declare it.
+ * logmsg.c (logfile_write): Use it to avoid problems with filenames
+ containing "'".
+ (Reported by Gerhard Ahuis <address@hidden>.)
+
+ * server.c (outbuf_memory_error, pserver_authenticate_connection,
+ kserver_authenticate_connection): If available, use syslog() to
+ record some errors.
+
+2001-01-25 Larry Jones <address@hidden>
+
+ * server.c (do_cvs_command): If there's a partial output line left
+ over and the client doesn't support MT, go ahead and send it in an
+ M response instead of just dropping it.
+ (Reported by Milos Kleint <address@hidden>.)
+
+ * update.c (update_fileproc): Handle toss_local_changes in the
+ T_NEEDS_MERGE case.
+ (Inspired by Noel L Yap <address@hidden>.)
+ * sanity.sh (clean): New tests for above.
+
+2001-01-23 Derek Price <address@hidden>
+
+ * run.c (run_exec): flush, if used, stderr and stdout before exit
+ * server.c (cvs_flusherr): flush stderr & send a stderr flush command
+ on the protocol pipe
+ (cvs_flushout): like above, for stdout
+ (do_cvs_command): handle flushes properly
+ * sanity.sh (reserved): make the commitinfo script echo errors to
+ stderr rather than stdin
+
+2001-01-18 Larry Jones <address@hidden>
+
+ * log.c (option_revlist, revlist, log_usage, cvslog,
+ log_parse_revlist, log_expand_revlist, log_version_requested): Add
+ support for :: for exclusive ranges.
+ * admin.c (admin_usage): Reorder -o to be parallel to log -r.
+ * sanity.sh (log): New tests for above.
+
+2001-01-18 Derek Price <address@hidden>
+
+ * main.c: Add '2001' to the range of copyright years listed by the
+ --version option
+ * version.c.in (version): check current_parsed_root before its isremote
+ member to avoid a core dump
+ * sanity.sh (version): add a test for the version command
+
+ * version.c: regenerated
+
+2001-01-12 Larry Jones <address@hidden>
+
+ * rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
+ correct revision so that symbolic tags work correctly. (This
+ requires removing the "const" from the rev parameter since it's
+ passed to RCS_gettag which might modify it.)
+ (Reported by irina sturm <address@hidden>.)
+
+2001-01-11 Larry Jones <address@hidden>
+
+ * run.c (close_on_exec): Remove check for FD_CLOEXEC. As far as I
+ can see, it's *never* been defined, which defeats the whole point.
+ If F_SETFD is defined, it's probably safe to use it.
+
+ * server.c (do_cvs_command): Call close_on_exec on the protocol and
+ flow control pipes in the child process so they don't get inherited
+ by any subsidiary processes.
+ (Reported by Tristan Gingold <address@hidden>.)
+
+ * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
+
+2001-01-10 Derek Price <address@hidden>
+ Rex Jolliff <address@hidden>
+
+ * build_src.com: VMS changes
+ * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
+ * rcs.c: ditto
+
+2001-01-10 Derek Price <address@hidden>
+
+ * main.c (current_root): explicitly list this as a static global
+
+2001-01-10 Derek Price <address@hidden>
+
+ * cvs.h (get_cvs_port_number): change name & prototype from
+ get_port_number
+ * client.c (get_cvs_port_number): new function which returns a port
+ number based on a cvsroot_t rather than requiring all possible sources
+ passed in
+ (connect_to_pserver): use new get_cvs_port_number function
+ (connect_to_server): ditto
+ * login.c (get_password): use new get_cvs_port_number function
+ (login): ditto
+ (logout): ditto
+
+2001-01-10 Derek Price <address@hidden>
+
+ * Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
+ of the build since some systems don't allow mv's across partitions
+ * Makefile.in: regenerated
+
+2001-01-10 Derek Price <address@hidden>
+
+ * Makefile.am (version.c): specify $(srcdir) explicitly in target rule
+ so version.c gets built properly for all makes.
+ (version.o): specify $(srcdir)/version.c explicitly so dependency is
+ found and built properly
+ * Makefile.in: regenerated
+
+2001-01-09 Derek Price <address@hidden>
+
+ * version.c: updated timestamp
+
+2001-01-09 Larry Jones <address@hidden>
+
+ * server.c (server): Change to server_temp_dir immediately after
+ creating it so that any stray files that happen to be created go
+ there instead of in the server's initial directory, wherever that
+ may be.
+ * sanity.sh (modules5-15): Update to match.
+
+ * version.c.in: Update to match Derek's change to version.c.
+
+2001-01-09 Derek Price <address@hidden>
+
+ * cvs.h: Remove the various CVSroot_* bits and replace them with a
+ single structure of type cvsroot_t (current_parsed_root)
+
+ * root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
+ altering global variables
+ (local_cvsroot): return a pointer to a new cvsroot_t rather than
+ setting globals. changed the name of this function from
+ set_local_cvsroot to better explain new functionality
+ (new_cvsroot_t): new initializer function
+ (free_cvsroot_t): new function
+ (others): use current_parsed_root rather than the old CVSroot_* globals
+
+ * add.c: use current_parsed_root rather than the old CVSroot_* globals
+ * admin.c: ditto
+ * checkout.c: ditto
+ * client.c: ditto
+ * commit.c: ditto
+ * create_adm.c: ditto
+ * diff.c: ditto
+ * edit.c: ditto
+ * expand_path.c: ditto
+ * find_names.c: ditto
+ * history.c: ditto
+ * ignore.c: ditto
+ * import.c: ditto
+ * lock.c: ditto
+ * log.c: ditto
+ * login.c: ditto
+ * logmsg.c: ditto
+ * main.c: ditto
+ * mkmodules.c: ditto
+ * modules.c: ditto
+ * parseinfo.c: ditto
+ * patch.c: ditto
+ * rcs.c: ditto
+ * recurse.c: ditto
+ * release.c: ditto
+ * remove.c: ditto
+ * repos.c: ditto
+ * rtag.c: ditto
+ * server.c: ditto
+ * status.c: ditto
+ * tag.c: ditto
+ * update.c: ditto
+ * version.c: ditto
+ * watch.c: ditto
+ * wrapper.c: ditto
+
+2001-01-05 Derek Price <address@hidden>
+
+ * cvs.h (enum CVSmethod): add null_method
+ * root.c (method_names): correlate null_method & "undefined"
+ (parse_cvsroot): make two error cases non fatal
+ * sanity.sh (crerepos-6b): account for new error message, re above
+
+2001-01-05 Derek Price <address@hidden>
+
+ * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
+ target to configure.in - see ../ChangeLog for more
+ * src/cvsbug.in: Rename from cvsbug.sh
+ * src/cvsbug.sh: Rename to cvsbug.in
+
+2001-01-04 Larry Jones <address@hidden>
+
+ * Makefile.am (cvsbug): Explicitly list input file ($< is only
+ valid in inference rules).
+ * Makefile.in: Ditto.
+
+2001-01-04 Derek Price <address@hidden>
+
+ * sanity.sh: use getopts rather than getopt for portability reasons
+
+2001-01-03 Derek Price <address@hidden>
+
+ * Makefile.am (remotecheck): depend on 'all'
+ * Makefile.in: regenerated
+
+2000-12-29 Derek Price <address@hidden>
+
+ * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
+ to the line following the 'for'. Apparently this is more portable.
+
+2000-12-29 Derek Price <address@hidden>
+
+ * sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
+ implementation of Bourne shell doesn't seem to implement this default
+ behavior.
+
+2000-12-27 Derek Price <address@hidden>
+
+ * sanity.sh: add a -f option for continuing from a particular test
+ and shorten --keep to -k so we can use the getopt function.
+
+2000-12-27 Derek Price <address@hidden>
+
+ * Makefile.am (remotecheck): Make remotecheck dependant on all
+ * Makefile.in: regenerated
+
+2000-12-26 Derek Price <address@hidden>
+
+ * Makefile.in: update timestamp
+ * stamp-h2.in: ditto
+ * version.c: ditto
+
+2000-12-26 Derek Price <address@hidden>
+
+ * Makefile.am: new target for version.c
+ (EXTRA_DIST): add version.c.in & version.c so builds work when
+ configure doesn't
+ * Makefile.in: Regenerated
+ * stamp-h2.in: update timestamp
+ * version.c: ditto
+
+2000-12-26 Derek Price <address@hidden>
+
+ * Makefile.am (INCLUDES): add zlib
+ * Makefile.in: Regenerated
+
+2000-12-22 Derek Price <address@hidden>
+
+ * Makefile.am (DISTCLEANFILES): added a few files
+ (INCLUDES): commented
+ * Makefile.in: Regenerated
+
+2000-12-21 Derek Price <address@hidden>
+
+ * .cvsignore: Added .deps directory and a new stamp file
+ * Makefile.am: New file needed by Automake
+ * Makefile.in: Regenerated
+ * stamp-h2.in: New stamp file created by Automake
+ * version.c.in: use configure to generate version.c
+
+2000-12-16 Derek Price <address@hidden>
+
+ * server.c (server_update): Keep the vers structure up to date after
+ sending a Remove or Remove-entry command to the client
+ * update.c (update): remove call to server_updated() after
+ scratch_file()
+ (scratch_file): in server mode, call server_updated(), otherwise keep
+ the vers structure up to date
+ (join_file): add a trace, save the revision to Register() on a remove
+ before calling server_scratch & server_updated
+ * sanity.sh (join): Add test for a remove/add caused by an update
+ to a new branch and a join in the same step.
+
+2000-12-15 Larry Jones <address@hidden>
+
+ * error.c (error): Add %ld and %lu.
+
+ * history.c: Change hrec.idx from int to long, reformat NEXT_BAR
+ for readability, add hrec_idx.
+ (fill_hrec): Change initialization to be portable and always set
+ idx so it can be used as a line number in error messages; improve
+ parsing and error checking.
+ (read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
+ no newline at end of file.
+ (select_hrec): Add basic validity checking.
+
+2000-12-07 Larry Jones <address@hidden>
+
+ * history.c (history): Allow multiple -m options as documented.
+
+2000-11-29 Derek Price <address@hidden>
+
+ * root.c (parse_cvsroot): back out yesterday's redundant changes
+ * main.c (main): fix CVSROOT trace message to look like other trace
+ messages
+ * sanity.sh (multiroot2-9): expect new trace message
+
+2000-11-28 Derek Price <address@hidden>
+
+ * root.c (parse_cvsroot): add trace on this function
+ * client.c (get_port_number): make trace print look like others
+
+2000-11-16 Derek Price <address@hidden>
+
+ * filesubr.c (cvs_temp_file): back out the previous change in the
+ interests of portability, add an assertion, and fix the header comment
+
+2000-11-16 Derek Price <address@hidden>
+
+ * filesubr.c (cvs_temp_file): refine the exit behavior to notice if
+ the out param was passed in NULL and, if so, avoid setting it and delete
+ the temp file for later
+
+2000-11-16 Derek Price <address@hidden>
+
+ * filesubr.c (cvs_temp_file): fixed a garble or two, added some
+ additional error checking, and added a comment
+
+2000-11-15 Derek Price <address@hidden>
+
+ * filesubr.c (cvs_temp_file): added cvs_temp_file
+ function to use mkstemp rather than one of the other temp file
+ generators as gcc keeps complaining I should.
+ (cvs_temp_name): altered this function to simply wrap cvs_temp_file
+ and deprecated it
+ * cvs.h: added prototype for cvs_temp_file
+ * commit.c (commit): use the new function instead of the old and plug
+ an old (though related) memory leak.
+ * import.c (import): use the new function
+ * login.c (login): Ditto
+ * logmsg.c (do_editor, do_verify): Ditto
+ * patch.c (patch_fileproc): Ditto
+
+2000-11-14 Larry Jones <address@hidden>
+
+ * update.c, update.h (do_update): Add xdotemplate parameter.
+ Change all callers.
+ (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
+ * checkout.c (checkout_proc): Don't create CVS/Template if
+ exporting.
+ (Reported by Andrey Podkolzin <address@hidden>.)
+
+2000-11-08 Larry Jones <address@hidden>
+
+ * admin.c (admin): Use getgroups() to check for membership in
+ CVS_ADMIN_GROUP if it exists. In any event, check the user's
+ primary group in addition to any additional groups.
+ (Reported by Thomas Okken <address@hidden>.)
+
+2000-11-06 Jim Meyering <address@hidden>
+
+ Compile with gcc's -Wformat and fix the exposed problems.
+ * root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
+ for the %s error format spec.
+ [! HAVE_GSSAPI]: Likewise.
+ (normalize_cvsroot): Put comment delimiters around token after `#endif'.
+
+2000-11-03 Larry Jones <address@hidden>
+
+ * sanity.sh: Some versions of sed require a space between -e and
+ the value.
+
+2000-10-27 Larry Jones <address@hidden>
+
+ * checkout.c (checkout): Don't check for a safe location if just
+ cat'ing the module database.
+ (Reported by Ilya Martynov <address@hidden>.)
+ Have -s set cat as well as status; it simplifies the code.
+
+2000-10-26 Larry Jones <address@hidden>
+
+ * sanity.sh (join-admin-2): Check output from all commands instead
+ of (mostly) discarding. (Some of the tests used to produce stray
+ output in remote mode.)
+
+ * sanity.sh (dotest_line_by_line): Handle empty lines in pattern
+ (expr doesn't distingish between successfully matching nothing
+ and failing to match anything).
+
+ * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
+
+2000-10-24 Jim Meyering <address@hidden>
+
+ Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
+ sometimes be ignored for some of the files involved in an update.
+
+ * update.c (join_file): Restore the original value of `options'
+ right after calling checkout_file.
+ * sanity.sh (join-admin-2): New test for this.
+
+2000-10-23 Derek Price <address@hidden>
+ James Youngman <address@hidden>
+
+ * sanity.sh: it's /gnu/bin, not /gun/bin. Thanks go to James Youngman
+ <address@hidden> for the bug report and patch.
+
+2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
+
+ * server.c (switch_to_user): Set CVS_USER. Patch from Sudish
+ Joseph and popularized by dozens (e.g. mozilla.org, also others).
+
+2000-10-20 Derek Price <address@hidden>
+ KOIE Hidetaka <address@hidden>
+
+ * root.c (normalize_cvsroot): plug a memory leak. Thanks to
+ KOIE Hidetaka <address@hidden>
+
+2000-10-18 Derek Price <address@hidden>
+
+ * client.c (connect_to_pserver): added a close brace the lack of which
+ was preventing compilation when gssapi was enabled. Removed a
+ redundant check for HAVE_KERBEROS.
+
+2000-10-18 Derek Price <address@hidden>
+
+ * root.c (normalize_cvsroot): removed references to free_port_s and the
+ now useless call to free now that port_s is on the stack. Thanks to
+ Jon Miner.
+
+2000-10-18 Derek Price <address@hidden>
+
+ * root.c (normalize_cvsroot): remove calls to snprintf for
+ compatibility with M$ Windoze.
+
+2000-10-18 Derek Price <address@hidden>
+
+ * sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
+ the output of a test to /dev/null since we don't know what error
+ messages specific rsh implementations will output.
+
+2000-10-17 Derek Price <address@hidden>
+
+ * cvs.h: added CVSroot_password variable. Provided prototypes for
+ get_port_number & normalize_cvsroot.
+ * client.c (get_port_number): Fixed an ANSI prototype I had included
+ for get_port_number.
+ * login.c (login, logout): Removed two checks for a non-null
+ CVSroot_username since parse_cvsroot now supplies a default in pserver
+ mode. allow for a password in CVSROOT
+ (get_cvs_passsword): return CVSroot_password if it was supplied
+ in the CVSROOT.
+ * root.c (parse_cvsroot): Changed CVSROOT spec from
+ :method:address@hidden/port:/cvsroot to
+ :method:[[user][:address@hidden:[port]]/cvsroot
+ Removed the xstrdup function since we'd rather have the error checking
+ from the version in subr.c anyhow. Moved some error messages which
+ looked like they would print the wrong error message after a failed
+ connect_to_gserver call.
+ (normalize_cvsroot): return a normalized CVSROOT for use in the
+ .cvspass file.
+ * sanity.sh (crerepos-6): fix a test which was expecting an old error
+ message.
+
+ * client.c (connect_to_pserver): Moved some error messages which looked
like they
+ would print the wrong error message after a failed connect_to_gserver
+ call.
+
+ * login.c (login): Paranoiacly zero a password in memory.
+
+2000-10-12 Derek Price <address@hidden>
+
+ * client.c (auth_server_port_number -> get_port_number, start_pserver,
+ start_tcp_server): use a port specified in CVSROOT instead of the
+ default port. Failing that, use the CVS_CLIENT_PORT environment
+ variable.
+ * cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
+ * root.c (parse_cvsroot): Parse the new CVSROOT format properly.
+ Incidentally reformated some error messages for uniformity and
+ readability.
+ * sanity.sh (crerepos): fix two tests which were now expecting the
+ wrong error message.
+
+2000-10-11 Larry Jones <address@hidden>
+
+ * server.c (pserver_authenticate_connection): Fix stupid mistake
+ in previous change.
+
+2000-10-11 Derek Price <address@hidden>
+
+ * main.c (main): Dispose old CVSroot when parsing a '-d' option if
+ free_CVSroot is set.
+ * root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
+ static boolean I expect hasn't been used since CVS learned to handle
+ multiple CVSROOTs.
+
+2000-10-10 Larry Jones <address@hidden>
+
+ * server.c (print_error): Make up a message if strerror fails.
+
+ * server.c (pserver_authenticate_connection): Give a real error
+ message for an invalid repository.
+
+2000-10-06 Derek Price <address@hidden>
+
+ * add.c (add): Made quiet mode affect some warning messages as seemed
+ appropriate. Specifically, some of the messages which a user might
+ want to ignore so they don't have to be quite so specific on the
+ command line: files added twice, files already in the repository and
+ check out properly (i.e. but picked up by 'cvs add *'), & files which
+ are readded in place of a dead revision or onto a branch. '-q' will
+ not change the non-zero exit code for the cases where at least one
+ passed in file name was already in the Entries file. There seems to
+ be a precedent in remove.c.
+ * remove.c (cvsremove): switched the "use cvs ci to make these changes
+ permanent message" to only print w/o '-Q' to match the new behavior of
+ add. This seems appropriate as '-Q' is defined to restrict messages
+ to critical errors.
+ * sanity.sh (adderrmsg): Added some tests for the above behavior.
+
+2000-10-05 Larry Jones <address@hidden>
+
+ * client.c (call_in_directory): Create CVSADM directory if it doesn't
+ exist in the directory. This makes client/server work more like
+ standalone when checking out into an existing (non-CVS) directory.
+ * sanity.sh (dirs2, conflicts3, toplevel): Update to match.
+
+2000-10-03 Larry Jones <address@hidden>
+
+ * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
+
+2000-10-02 Larry Jones <address@hidden>
+
+ * cvs.h: Define (and use) T_PATCH as a valid file classification
+ even when SERVER_SUPPORT isn't defined -- it simplifies the code.
+ * classify.c (Classify_File): Ditto.
+ * commit.c (check_fileproc): Ditto.
+ * status.c (status_fileproc): Ditto.
+ * update.c (update_fileproc): Ditto.
+ * tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
+ * sanity.sh (tagc-10): Update to match.
+
+2000-09-29 Larry Jones <address@hidden>
+
+ * client.c (get_responses_and_close): Reset server_fd to -1 after
+ shutting down.
+ (Reported by Joerg Thoennes <address@hidden>.)
+
+2000-09-27 Larry Jones <address@hidden>
+
+ * commit.c (commit): Don't sleep before returning in server mode,
+ just let the client do it.
+ * update.c (do_update): Ditto.
+
+ * sanity.sh (find_tool): Correct method of checking for GNU tools.
+
+ * checkout.c (checkout_proc): Match up user directories with
+ repository directories instead of using Emptydir.
+ * sanity.sh (cvsadm, emptydir): Update to match.
+
+2000-09-19 Larry Jones <address@hidden>
+
+ * version.c: Push version number to 1.11.0.1.
+
+ * version.c: Version 1.11.
+
+2000-09-07 Larry Jones <address@hidden>
+
+ * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
+ from autoconf.
+
+2000-08-23 Larry Jones <address@hidden>
+
+ * mkmodules.c (init): Create an empty val-tags file if it doesn't
+ already exist to avoid problems with users not having sufficient
+ permissions to create it later.
+
+2000-09-06 Jim Kingdon <address@hidden>
+
+ * main.c (lookup_command_attribute): Add "release" to commands
+ which can be done by a read-only user.
+
+2000-08-23 Larry Jones <address@hidden>
+
+ * repos.c (Name_Repository): Use pathname_levels to detect attempts
+ to get above the repository instead of checking for leading ..
+ which isn't reliable.
+ * sanity.sh (multiroot3-12 to multiroot3-15): New tests for above.
+
+2000-08-21 Larry Jones <address@hidden>
+
+ * rcs.c (expand_keywords): Handle the unusual case of log == NULL.
+ (Reported by Craig Metz <address@hidden>.)
+
+2000-08-01 Larry Jones <address@hidden>
+
+ * subr.c (pathname_levels): Fix bug that miscounts adjacent
+ slashes.
+ (Patch submitted by Tanaka Akira <address@hidden>.)
+
+ * loginc.c (login): If available, use getpassphrase instead of
+ getpass to support long passwords on Solaris.
+
+2000-07-28 Larry Jones <address@hidden>
+
+ * server.c (server_noop): Avoid do_cvs_command() overhead.
+ (requests): Make noop RQ_ROOTLESS.
+
+2000-07-27 Noel Cragg <address@hidden>
+
+ * root.c (parse_cvsroot): change fork method to behave like other
+ remote methods -- let the server check that the repository
+ directory is an absolute pathname.
+
+2000-07-27 Larry Jones <address@hidden>
+
+ * lock.c (set_lock): Include actual lock directory in error message.
+ * sanity.sh (multiroot3-10): Change to match.
+
+ * sanity.sh (client-3): Allow for a potential "broken pipe".
+
+2000-07-26 Larry Jones <address@hidden>
+
+ * commit.c (commit_filesdoneproc): Flush stdout before running script.
+ * modules.c (do_module): Ditto.
+ * update.c (update_dirleave_proc): Ditto.
+ * server.c (do_cvs_command): Give input from the protocol pipe
+ precedence over input from stdout/stderr. There's no particularly
+ good justification for this other than helping to avoid out-of-order
+ messages in sanity.sh.
+
+ * admin.c (admin_usage): Add the supported options.
+
+ * sanity.sh (info): Try to avoid out-of-order messages.
+
+ * sanity.sh (info): Fix problems when running twice in a row.
+
+2000-07-17 Larry Jones <address@hidden>
+
+ * sanity.sh (modules5-7, cvsadm-1e, emptydir-2): Allow for a nil
+ commit (can happen if the test is run twice in a row).
+
+2000-07-19 Pavel Roskin <address@hidden>
+ and Larry Jones <address@hidden>
+
+ * mkmodules.c (config_contents): Add a commented out example for
+ LockDir. Don't suggest PreservePermissions unless it's enabled.
+
+2000-07-17 Larry Jones <address@hidden>
+
+ * login.c (get_cvs_password): Handle malformed ~/.cvspass more
+ gracefully.
+
+2000-07-12 Larry Jones <address@hidden>
+
+ * sanity.sh (modules5): New tests for module programs.
+
+2000-07-11 Larry Jones <address@hidden>
+
+ * filesubr.c (copy_file, xcmp): Handle systems (like Plan 9) that
+ don't support mknod() and/or st_rdev.
+ * import.c (add_rcs_file): Ditto.
+ * rcs.c (RCS_checkout, RCS_checkin): Ditto.
+ * update.c (special_file_mismatch): Ditto.
+
+2000-07-10 Larry Jones <address@hidden>
+
+ * zlib.c (gunzip_and_write): Fix type clashes.
+
+ * main.c (main): Remove unused variables.
+
+2000-07-10 Jim Meyering <address@hidden>
+
+ When a command like `cvs update -kk -jT1 -jT2' creates a new file
+ (because it had the T2 tag, but not T1), the subsequent commit of
+ that just-added file would effectively set the admin `-kk' option
+ for that file in the repository.
+
+ * update.c (join_file): Rename global-shadowing local `options'
+ to `t_options'.
+ Set file-scoped global `options' to NULL just before
+ check-out.
+ * sanity.sh (join-admin): New test for this.
+
+2000-07-08 Larry Jones <address@hidden>
+
+ * version.c, cvs.h (version): New function.
+ * main.c (cmds[]): Add version command to invoke it.
+ (main): Also use it in -v.
+ * server.c (serve_version): New function.
+ (requests[]): Add version command to invoke it.
+
+2000-07-06 Karl Fogel <address@hidden>
+
+ * sanity.sh (pserver-14): remove this test for portability
+ reasons (it was only recently added for the 2000-07-04 change).
+
+2000-07-06 Larry Jones <address@hidden>
+
+ sanity.sh (modules-148): Don't test for specific revisions.
+
+ * main.c (main): Catch SIGABRT to try to clean up after assertion
+ failures. Don't bother SIG_register'ing Lock_Cleanup because
+ main_cleanup calls it indirectly anyway.
+ * patch.c (patch): Catch SIGABRT.
+ * rcs.c (rcs_internal_lockfile): Ditto.
+ * server.c (server): Ditto.
+
+ * fileattr.c (fileattr_write): Don't delete the unrecog_head list
+ when writing...
+ (fileattr_free): Delete it when freeing!
+
+2000-07-05 Larry Jones <address@hidden>
+
+ * admin.c (admin): Handle -t in client so reading from files works
+ correctly in client/server mode.
+ * sanity.sh (log2): Update to match.
+
+2000-07-04 Karl Fogel <address@hidden>
+
+ * server.c (pserver_authenticate_connection): use new
+ getline_safe() during authentication phase, to avoid a
+ denial-of-service attack in which client sends arbitrary
+ amounts of data with no newlines.
+ (Reported by <address@hidden>.)
+
+ * sanity.sh: new test pserver-14 for above.
+
+ * myndbm.c: #include getline.h.
+ (mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
+
+2000-07-03 Larry Jones <address@hidden>
+
+ * sanity.sh (modules): Rewrite using dotest. Add "modules-"
+ prefix to test names.
+
+2000-06-28 Larry Jones <address@hidden>
+
+ * error.c (error_exit): Call rcs_cleanup () to release any rcs locks.
+ * rcs.c, rcs.h (rcs_cleanup): Make public, close file before trying
+ to remove (some systems won't remove open files).
+ (RCS_putdtree): Don't worry about cleaning up before call error
+ since it now does it for us.
+ (rcs_internal_lockfile, rcs_internal_unlockfile): Keep track of
+ lock file fd for rcs_cleanup ().
+
+ * client.c (handle_set_checkin_prog, handle_set_update_prog):
+ Just ignore the request when exporting.
+
+2000-06-27 Larry Jones <address@hidden>
+
+ * create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
+ Change all callers.
+ * checkout.c (checkout_proc): Don't create CVS/Template if
+ exporting.
+
+2000-06-26 Pavel Roskin <address@hidden>
+ and Larry Jones <address@hidden>
+
+ * server.c (switch_to_user): Only set CVS_Username if
+ AUTH_SERVER_SUPPORT is defined.
+
+2000-06-23 Larry Jones <address@hidden>
+
+ * client.c (send_dirent_proc): Don't allocate ignlist if you're
+ going to skip the directory (plugs memory leak).
+ (send_dirleave_proc): New function.
+ (send_files): Use it (plugs memory leak).
+ * root.c (root_allow_free): Plug memory leaks.
+ * server.c (serve_directory, serve_notify, check_password,
+ pserver_authenticate_connection): Ditto.
+ * update.c (update): Ditto.
+
+ This completes the memory leak shoot-out -- the Purify'ed version
+ of CVS now runs the entire test suite, both local and remote (except
+ for remote crerepos, which causes Purify to choke) with *no* memory
+ leaks.
+
+ * server.c (pserver_authenticate_connection): Don't free null pointer.
+
+2000-06-21 Larry Jones <address@hidden>
+
+ * client.c (update_entries, get_responses_and_close): Plug memory leaks.
+ * commit.c (find_fileproc, commit): Ditto.
+ * import.c (import): Ditto.
+ * log.c (cvslog): Ditto.
+ * recurse.c (start_recursion): Ditto.
+ * remove.c (cvsremove): Ditto.
+ * server.c (fd_buffer_initialize, server_notify, do_cvs_command): Ditto.
+ (fd_buffer_shutdown): New function.
+
+2000-06-20 Larry Jones <address@hidden>
+
+ * root.c (parse_cvsroot): Put the terminating NUL byte into the
+ string *before* copying it, not after. :-(
+
+2000-06-19 Larry Jones <address@hidden>
+
+ * main.c (main): Plug memory leaks.
+ * root.c (parse_cvsroot, set_local_cvsroot): Ditto.
+ * server.c (serve_root): Ditto.
+
+2000-06-16 Larry Jones <address@hidden>
+
+ * fileattr.c (fileattr_read): Plug memory leak.
+ * rcs.c (RCS_whatbranch): Ditto.
+ * update.c (update_dirleave_proc): Ditto.
+
+ * ignore.c (ign_dir_add): Duplicate string so caller can free.
+
+ * modules.c (do_module): Don't write into dbm's memory!
+
+2000-06-15 Larry Jones <address@hidden>
+
+ * checkout.c (checkout_proc): Fix non-ANSI code in call to
+ findslash(), minor cleanups.
+
+2000-06-14 Larry Jones <address@hidden>
+
+ * tag.c (val_direntproc): Return R_PROCESS instead of 0.
+
+ * client.c (update_entries): Fix type clash calling gunzip_and_write().
+ * server.c (receive_file): Fix type clash calling gunzip_and_write().
+ (server_updated): Fix type clash calling buf_output().
+ * error.c (error): Make buf char instead of unsigned char to avoid
+ type clashes.
+
+ * modules.c (do_module): Change callback_proc to pass argc by
+ value instead of by reference: callback procs shouldn't be
+ messing with the callers argc/argv, it makes correct memory
+ management impossible. Plug memory leaks.
+ * cvs.h: Change to match.
+ * checkout.c (checkout_proc): Ditto; use a local argv array instead
+ of messing with caller's.
+ * modules.c (callback_proc): Ditto.
+ * patch.c (patch_proc): Ditto; use a local argv array instead
+ of messing with caller's.
+ * rtag.c (rtag_proc): Ditto; use a local argv array instead
+ of messing with caller's.
+ * server.c (expand_proc): Ditto.
+ * subr.c (line2argv): Change initial argv_allocated back to 1.
+
+ * checkout.c (findslash): Fix non-ANSI code.
+
+ * sanity.sh (modes3): Fix test names.
+
+2000-06-13 Larry Jones <address@hidden>
+
+ * add.c (add): Plug memory leaks.
+ * admin.c (admin_fileproc): Ditto.
+ * checkout.c (build_dirs_and_chdir): Ditto.
+ * edit.c (editors_fileproc): Ditto.
+ * log.c (cvslog, log_parse_revlist, log_parse_date): Ditto.
+ * rcs.c (RCS_addaccess): Ditto.
+ * tag.c (check_fileproc): Ditto.
+ * vers_ts.c (Version_TS): Ditto.
+ * watch.c (watchers_fileproc): Ditto.
+
+2000-06-12 Larry Jones <address@hidden>
+
+ * rcs.c (rcsbuf_valword): Set rcsbuf->vlen to keep rcsbuf_valcopy()
+ from allocating more memory than needed for @ strings. Don't declare
+ unless PRESERVE_PERMISSIONS_SUPPORT (since not defined).
+
+ * rcs.c (RCS_abandon): New function to abandon changes.
+ * rcs.h: Declare it.
+ * admin.c (admin_fileproc): Use it instead of RCS_reparsercsfile.
+
+ * commit.c (commit_fileproc): Fix memory leaks.
+ * patch.c (patch_fileproc): Ditto.
+ * rcs.c (RCS_nodeisbranch, RCS_copydeltas): Ditto.
+ * tag.c (tag_fileproc): Ditto.
+ * update.c (update): Ditto.
+
+2000-06-09 Larry Jones <address@hidden>
+
+ * rcs.c (RCS_reparsercsfile, RCS_fully_parse, getdelta,
+ RCS_getdeltatext): Handle newphrases with composite values.
+ (rcsbuf_getkey): Don't remove @s in composite values -- it makes
+ it impossible to parse the value! Set special flag to indicate
+ a composite value.
+ (rcsbuf_valcopy, rcsbuf_valpolish_internal): Handle composite values.
+ (putrcsfield): Write composite values.
+ (RCS_checkin): Set node types in other_delta list.
+ * hash.h: Add RCSCMPFLD.
+ * hash.c (nodetypestring): Ditto.
+
+ * rcs.c (getdelta): Never allocate space for value, just return
+ pointer into rcsbuf (fixes memory leaks). Use rcsbuf_getkey to
+ read a key and value and then parse the value if needed rather
+ than trying to read it in bits and pieces with rcsbuf_getid,
+ rcsbuf_getstring, and rcsbuf_getword.
+ (RCS_reparsercsfile): Change callers to compensate.
+ (rcsbuf_valcmp, rcsbuf_valword): New functions.
+ (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): Deleted.
+ * sanity.sh (rcs3-1): Now get slightly different error message.
+
+2000-06-08 Larry Jones <address@hidden>
+
+ * main.c (usg): Update CVS home page URL.
+
+ * main.c (main): Provide an actual error message for an unknown
+ command in addition to the usage message.
+
+2000-06-07 Larry Jones <address@hidden>
+
+ * server.c (serve_root, dirswitch, serve_repository,
+ serve_static_directory, serve_sticky, receive_partial_file,
+ receive_file, serve_modified, server_write_entries, serve_notify,
+ serve_checkin_prog, serve_update_prog, server): Don't set
+ pending_error before calling alloc_pending, it makes it fail;
+ use alloc_pending instead of malloc when reasonable; be sure to
+ save errno before calling functions that might change it.
+ (Patch submitted by Dietmar Petras <address@hidden>.)
+
+2000-06-03 Larry Jones <address@hidden>
+
+ * commit.c (checkaddfile): Plug memory leak.
+ * rcs.c (RCS_checkin): Plug memory leaks.
+ * server.c (do_cvs_command): Plug file descriptor leaks.
+ * tag.c (check_fileproc): Plug memory leak.
+
+2000-05-26 Larry Jones <address@hidden>
+
+ * recurse.c (unroll_files_proc): Plug memory leak.
+
+ * recurse.c (addfile): Fix nonportable pointer cast.
+
+ * rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
+ leaks.
+
+2000-05-25 Larry Jones <address@hidden>
+
+ * checkout.c (checkout, build_one_dir, checkout_proc): Move m_type
+ to file scope and use it instead of continually doing strcmp on
+ command_name.
+ (build_one_dir, checkout_proc): Don't allow export if CVSADM
+ directory already exists.
+
+2000-05-23 Larry Jones <address@hidden>
+
+ * rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks. (Patch
+ submitted by Chris G. Demetriou <address@hidden>.)
+
+2000-05-20 Ian Lance Taylor <address@hidden>
+
+ * client.c (connect_to_gserver): Handle server error messages
+ reasonably.
+
+2000-05-19 Larry Jones <address@hidden>
+
+ * server.c (requests): Make Global_option RQ_ROOTLESS so it can be
+ used with init.
+
+2000-05-18 Larry Jones <address@hidden>
+
+ * client.c (start_server): Don't do encryption, authentication,
+ compression, or case insensitivity when doing init because init
+ is ROOTLESS and they're not.
+
+ * client.c (connect_to_pserver): Include repository and username in
+ authorization failed message -- if a directory tree crosses multiple
+ repositories, it can be quite difficult for the user to figure out
+ which one is the problem.
+
+2000-05-17 Larry Jones <address@hidden>
+
+ * main.c (main): Use full set of options when looking for -f to
+ avoid misparsing options that take values (previously, -sVAR=foo
+ was incorrectly parsed as though it were -s -V -A -R -= -f -o -o
+ because it didn't know that -s takes a value).
+ * sanity.sh (info-6b): New test for above.
+
+ * sanity.sh (conflicts-status): Fix tests so they work remotely, too.
+
+2000-05-17 Jim Meyering <address@hidden>
+
+ * sanity.sh (TESTDIR): Fix braino in last change:
+ cd to /tmp before invoking pwd.
+
+ * sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
+ is a symlink.
+ (join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
+ (conflicts-132): Remove unnecessary `rm aa'.
+
+2000-05-16 Jim Kingdon <address@hidden>
+
+ * cvs.h, checkout.c (safe_location): Make extern.
+ * import.c (import): Call it rather than reimplementing
+ (incompletely) the same check.
+
+2000-05-16 Larry Jones <address@hidden>
+
+ * rcs.h, subr.c (file_has_markers): Check for any of the three
+ conflict marker lines, not just one.
+ * sanity.sh (conflicts-status): New tests for above.
+ * sanity.sh: Revise to avoid tripping the above check when merging
+ changes into sanity.sh itself.
+
+2000-05-15 Larry Jones <address@hidden>
+
+ * update.c (join_file): When registering the result of the merge,
+ make sure that the version number is valid (vers->vn_rcs may be
+ null if the file doesn't exist on the branch yet). (Patch submitted
+ by Robert de Vries <address@hidden>.)
+ * update.c (join_file): Correct diagnostics (previous change was not
+ correct -- the file *does* exist in the specified revision, it just
+ doesn't exist in the sandbox).
+ * sanity.sh (import-113, join): New tests and changes for above.
+
+2000-05-04 Larry Jones <address@hidden>
+
+ * sanity.sh: Look for a useful id program. Since we're getting
+ the real username for some tests anyway, use it for all the
+ tests instead of a generic regular expression that may or may
+ not match the actual username.
+
+2000-05-04 Larry Jones <address@hidden>
+
+ * server.c: More error messages.
+
+2000-05-02 Donald Sharp <address@hidden>
+ and Larry Jones <address@hidden>
+
+ * history.c (report_hrecs): Added code to print out year instead of
+ just month/day.
+ * sanity.sh (basic2-64, history): Update to match.
+
+2000-04-19 Larry Jones <address@hidden>
+
+ * server.c (dirswitch): Set pending_error_text in addition to
+ pending_error to aid in problem determination.
+
+2000-03-23 Larry Jones <address@hidden>
+
+ * mkmodules.c (mkmodules): Return without doing anything if noexec
+ is set to avoid trashing existing files.
+
+2000-03-23 Larry Jones <address@hidden>
+
+ * main.c: Alphabetize cmds[] and cmd_usage[] and add server
+ commands to cmd_usage[].
+
+2000-03-21 Larry Jones <address@hidden>
+
+ * sanity.sh (client-1): May get "Broken pipe" message from the
+ "server" in addition to the expected output.
+
+2000-03-17 Larry Jones <address@hidden>
+
+ * server.c (switch_to_user): Set CVS_Username if it hasn't already
+ been set elsewhere. (Patch submitted by Gordon Matzigkeit
+ <address@hidden>).
+
+2000-03-13 Larry Jones <address@hidden>
+
+ * parseinfo.c: Add extern to logHistory declaration. (Reported by
+ <address@hidden>.)
+ (parse_config): Reformat logHistory code.
+
+2000-03-10 Larry Jones <address@hidden>
+
+ * add.c (add): Don't try to set cvsroot_len until after checking
+ for help only -- CVSroot_directory isn't set in that case.
+
+2000-03-03 Larry Jones <address@hidden>
+
+ * mkmodules.c (init): Use mkdir_if_needed to create CVSROOT/Emptydir
+ so we don't fail if run multiple times. (Reported by KOIE Hidetaka
+ <address@hidden>.)
+ * sanity.sh (1a): New test for above.
+
+2000-03-02 Larry Jones <address@hidden>
+
+ * main.c: Use identical #if's in the command table and the code
+ for pserver and kserver to prevent "peculiar" configurations from
+ having really perverse behavior because the command table entries
+ are present but the related code isn't.
+
+2000-03-01 Larry Jones <address@hidden>
+
+ * import.c (import): Don't allow importing the repository.
+ * sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
+
+2000-03-01 Larry Jones <address@hidden>
+
+ * main.c (main): Update year in copyright message.
+
+2000-03-01 Larry Jones <address@hidden>
+
+ * logmsg.c (do_editor): Correct previous change.
+
+2000-02-29 Larry Jones <address@hidden>
+
+ * logmsg.c (do_editor): When reading temp file, check that message
+ buffer is large enough to hold the next line and expand if needed.
+
+2000-02-28 Larry Jones <address@hidden>
+
+ * commit.c (commit): Use get_file() to read log file correctly
+ and in text mode rather than binary mode.
+
+ * subr.c (get_file): Ignore bufsize if buf is NULL. Include
+ terminating NUL byte when estimating required buffer size.
+
+2000-02-28 Larry Jones <address@hidden>
+
+ * sanity.sh (find_tool): New function to replace duplicated code.
+
+2000-02-25 Larry Jones <address@hidden>
+
+ * import.c (add_rcs_file): Don't abort just because lstat fails.
+
+2000-02-16 Jim Meyering <address@hidden>
+
+ Avoid race condition whereby a catchable signal could
+ end up corrupting the repository.
+ * commit.c (checkaddfile): Put a critical section around the code
+ that handles the first commit on the trunk of a file that's already
+ been committed on a branch.
+ * cvs.h (Sig_inCrSect): Declare new function.
+
+2000-02-21 Karl Fogel <address@hidden>
+
+ * main.c (main): still check for repository, but not history file
+ (correction to 2000-02-18 change -- that's what I get for
+ believing the comment rather than the code).
+
+2000-02-21 K.J. Paradise <address@hidden>
+
+ * history.c mkmodules.c parseinfo.c: control which actions
+ get logged to the cvs history file via CVSROOT/config file
+ and LogHistory keyword. (John P Cavanaugh <address@hidden>)
+
+2000-02-18 Karl Fogel <address@hidden>
+
+ * history.c (history_write): don't die if history file not
+ writable, just warn (unless `really_quiet') and skip out.
+
+ * main.c (main): don't bother checking if history file is
+ writable.
+
+ * server.c (serve_root): same.
+
+2000-02-17 Larry Jones <address@hidden>
+
+ * sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
+ default since PreservePermissions code is now disabled.
+
+2000-02-17 Larry Jones <address@hidden>
+
+ * sanity.sh (import-113): Revise to match Jim Meyering's fix.
+
+2000-02-16 Larry Jones <address@hidden>
+
+ * add.c (add): Don't allow adding files or directories to Emptydir.
+ (Patch submitted by Chris Cameron <address@hidden>.)
+ * sanity.sh (emptydir): Revise (emptydir-7 and emptydir-8) for this.
+
+2000-02-16 Jim Meyering <address@hidden>
+
+ * update.c (join_file): Correct typo in diagnostic:
+ change `file %s is present...' to `file %s is not present...'.
+
+2000-02-10 Larry Jones <address@hidden>
+
+ * parseinfo.c (Parse_Info): Treat matching lines with bad expansions
+ as errors rather than just ignoring.
+
+2000-02-10 Larry Jones <address@hidden>
+
+ * edit.c (edit): Check for invalid characters in hostname and CurDir.
+ (Reported by "Andrew S. Townley" <address@hidden>.)
+ * sanity.sh (devcom2): New tests for above.
+
+2000-02-10 Larry Jones <address@hidden>
+
+ * cvs.h: Always #include "server.h" to prevent compile errors when
+ neither CLIENT_SUPPORT nor SERVER_SUPPORT is defined.
+ (Reported by "Crow, Ian" <address@hidden>.)
+ * log.c (send_one, send_arg_list): Only define when CLIENT_SUPPORT
+ is defined to prevent link errors.
+
+ * server.c (server): Always create a new temporary directory, don't
+ try to reuse an existing one since we might not have correct
+ permissions. Also, include directory name in error messages.
+
+2000-01-29 Jim Kingdon <http://developer.redhat.com/>
+
+ * ignore.c (ignore_files): Correctly set errno to 0 when we go
+ back to the top of the loop. Fixes spurious errors like "cvs
+ update: error reading current directory: No such file or
+ directory".
+
+2000-01-26 Larry Jones <address@hidden>
+
+ * run.c (run_exec): Conditionalize K.J.'s change so that it only
+ applies when SETXID_SUPPORT is defined since some platforms don't
+ have setegid().
+
+2000-01-26 Larry Jones <address@hidden>
+
+ * sanity.sh: Make TESTDIR earlier then use it to check for versions
+ of expr that don't work right with long expressions.
+
+ * sanity.sh (dotest_line_by_line): Have wc read from stdin so it
+ doesn't output the file name and confuse expr. Make the output a
+ bit less verbose and easier to read.
+
+2000-01-24 K.J. Paradise <address@hidden>
+
+ * run.c :> prevents a user from creating a privileged shell from the
+ text editor when the SETXID_SUPPORT option is selected. This came from
+ Bob Colle <address@hidden>, and is his completely.
+
+2000-01-22 Jim Kingdon <http://developer.redhat.com/>
+
+ * sanity.sh (emptydir): Add a case in which one might hope for a
+ non-Emptydir result, but which result?
+
+2000-01-18 Larry Jones <address@hidden>
+
+ * main.c (main): Allow -z0 to disable gzip compression.
+
+2000-01-17 Larry Jones <address@hidden> for
+ K.J. Paradise (address@hidden)
+
+ * version.c: Push version number to 1.10.8.1.
+
+ * version.c: Version 1.10.8.
+
+2000-01-17 Larry Jones <address@hidden>
+
+ * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
+ with users not having sufficient permissions to create it later.
+
+2000-01-04 Larry Jones <address@hidden>
+
+ * client.c (get_responses_and_close): Simplify time-stamp race
+ avoidance code.
+ * commit.c (commit): Ditto.
+ * update.c (do_update): Ditto.
+ (Prompted by patch submitted by Pavel Roskin
+ <address@hidden>.)
+
+ * hardlink.c: sizeof (char) is 1, by definition.
+ * logmsg.c: Ditto.
+ * rcs.c: Ditto.
+
+2000-01-03 Karl Fogel <address@hidden>
+
+ * filesubr.c, subr.c (backup_file): moved this function from
+ filesubr.c to subr.c, at JimK's suggestion.
+
+2000-01-03 Jim Kingdon <http://developer.redhat.com/>
+
+ * sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
+ file, not just its existence.
+
+2000-01-03 Karl Fogel <address@hidden>
+
+ * cvs.h, filesubr.c (backup_file): use `const' for suffix too;
+ correct suffix length calculation and appending behavior; discard
+ unnecessary `void' cast. Thanks to Jim Meyering for noticing.
+
+2000-01-03 Larry Jones <address@hidden>
+
+ * sanity.sh (clean): Fix up expected output.
+
+2000-01-02 John P Cavanaugh <address@hidden>
+ and Karl Fogel <address@hidden>
+
+ New -C option to update: overwrites local changes with clean
+ copies from the repository. (This is an unreversion of the
+ 1999-12-10 change, further modified to work remotely.)
+
+ * client.h (BACKUP_MODIFIED_FILES): new #define.
+
+ * client.c (struct send_data): new element `backup_modified'.
+ (send_files): set above element if BACKUP_MODIFIED_FILES flag is
+ present.
+
+ * filesubr.c (backup_file): new function.
+
+ * cvs.h: prototype for new function `backup_file'.
+
+ * update.c (toss_local_changes): new file-scoped global.
+ (update): set toss_local_changes if -C flag seen. If
+ client_active, send "-C" to server, and set SEND_NO_CONTENTS and
+ BACKUP_MODIFIED_FILES flags before calling send_files().
+
+ (update_fileproc): if file is modified and toss_local_changes is
+ set, then back the file up and then check out a fresh copy from
+ the repository. Also, fixed indentation and formatting for a
+ particularly bad stretch of code near (but unrelated to) these
+ changes.
+
+ * sanity.sh: new test `clean', for update -C option.
+
+1999-12-29 Jim Kingdon <http://developer.redhat.com/>
+
+ * history.c (read_hrecs): st_blksize is unsigned long, not int.
+ This isn't just cosmetic - getting it wrong will cause coredumps
+ and such on 64 bit machines.
+
+ * import.c (import_descend), ignore.c (ignore_files): Placate gcc
+ -Wall by parenthesizing foo || (bar && baz).
+
+1999-12-24 Larry Jones <address@hidden>
+
+ * release.c (release): Use fputs to echo lines from update instead
+ of printf to avoid problems with lines containing "%". (Reported
+ by Jean-Luc Simard <address@hidden>.)
+
+ * history.c (read_hrecs): Allocate a single 2-block buffer instead
+ of allocating and freeing a buffer for each block.
+ (fill_hrec): Remove redundant code.
+ (select_hrec): Plug memory leak.
+
+1999-12-22 Larry Jones <address@hidden>
+
+ * history.c (history): For "modified" or "checkout", sort on
+ file if user specified -l, even if user also specified a date-
+ oriented flag.
+ * sanity.sh (history): Update to match; add new tests.
+
+1999-12-15 Pavel Roskin <address@hidden>
+ and Larry Jones <address@hidden>
+
+ * lock.c (lock_name): fixed assertion failure for the
+ top-level CVS directory when LockDir is used
+ * sanity.sh (lockfiles-9): new test for this case
+
+1999-12-11 Karl Fogel <address@hidden>
+
+ * Revert previous change -- it doesn't work remotely yet.
+
+1999-12-10 John P Cavanaugh <address@hidden>
+ and Karl Fogel <address@hidden>
+
+ * update.c: new -C option to update, overwrites local changes with
+ clean copies from the repository.
+ Also, fixed indentation and formatting for a particularly bad
+ stretch of code near these changes in update_fileproc().
+
+ * sanity.sh: test new update -C option.
+
+1999-12-10 Larry Jones <address@hidden>
+
+ * commit.c (remove_file): Call history_write with update_dir NULL
+ like Checkin() does for add and modify.
+ * sanity.sh (basic2-64): Update to match, add "R" records to expected
+ remote output.
+
+1999-12-09 K.J. Paradise (address@hidden)
+
+ * history.c, commit.c, sanity.sh: found (I think) final
+ cause of seg fault in history command. Also, added the "R"
+ history functionality. Fixed basic2-64 so it looks correct for
+ the change.
+
+1999-11-30 K.J. Paradise (address@hidden)
+
+ * history.c: fixed seg fault caused by 11-03 changes.
+ off by one in block memory allocations.
+
+1999-11-29 Karl Fogel <address@hidden>
+
+ * login.c (logout): free `tmp_name' when done.
+ Correct a comment.
+
+1999-11-29 Larry Jones <address@hidden>
+
+ * cvs.h, error.c, import.c: Rename fperror to avoid name clash
+ on LynxOS. (Reported by Markus Braun <address@hidden>.)
+
+1999-11-23 Larry Jones <address@hidden>
+
+ * checkout.c (checkout_proc): Split declaration and initialization
+ of rp to placate neurotic compilers that gripe about jumping past
+ an initialization, even when the variable is not subsequently used.
+
+1999-11-19 Larry Jones <address@hidden>
+
+ * server.c (switch_to_user): Correct setgid error messages.
+
+1999-11-19 Karl Fogel <address@hidden>
+
+ * edit.c (unedit_usage, unedit): new struct, use it. Now "cvs
+ unedit" prints an accurate usage message (formerly it printed the
+ message for "cvs edit", even though the two commands do not have
+ identical usages).
+
+1999-11-19 Larry Jones <address@hidden>
+
+ * history.c: Move -e documentation from Flags to Reports.
+ (history): Add -e to list of report types in error message.
+
+ * history.c (history): Process file arguments before client/server
+ processing so they get sent to the server.
+ * sanity.sh (history): New tests for above. (Also remove comments
+ about variable spacing -- history output is in variable-width
+ columns with exactly one space between.)
+
+1999-11-19 Larry Jones <address@hidden>
+
+ * sanity.sh: Reestablish check for running as root (using ``id -u''
+ instead of ``whoami'').
+
+ * sanity.sh(dotest, dotest_lit, dotest_fail, dotest_status,
+ dotest_sort): Eval the command so quoting and pipes work right.
+ (spacefiles, dirs, rcslib, modules, unedit-without-baserev,
+ ignore, rcs, rcs2, history, tagdate, pserver, server, server2)
+ Simplify various tests based on above.
+
+1999-11-19 Karl Fogel <address@hidden>
+
+ * mkmodules.c (init): make history file world-writeable after
+ creating it, since it needs to be writeable for virtually any
+ CVS operation.
+
+1999-11-10 Jim Kingdon <http://developer.redhat.com/>
+
+ * admin.c: Revert change to add -H command option. The help
+ invocation is "cvs -H admin" not "cvs admin -H" (see cvs.texinfo,
+ basicb-21 in sanity.sh; fix to cvs.1)
+
+1999-11-08 Jim Kingdon <http://developer.redhat.com/>
+
+ * log.c (cvslog): If client_active, send options to the server
+ based on our parsed options rather than trying to send the exact
+ strings specified (using canonical forms, like RFC822/1123
+ dates, in the protocol is just cleaner).
+ (send_one, send_arg_list): New functions, helpers for above.
+ * sanity.sh (logopt-6a): New test, for this fix.
+
+1999-11-09 K.J. Paradise <address@hidden>
+
+ * admin.c: made the -H option do what it is documented to
+ do. a
+
+1999-11-08 Tom Tromey <address@hidden>
+
+ * client.c (connect_to_gserver): Print more error text if gssapi
+ initialization fails. From Assar Westerlund <address@hidden>.
+
+1999-11-06 Larry Jones <address@hidden>
+
+ *sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
+ more general pattern to match the assertion failure.
+
+1999-11-05 K.J. Paradise (address@hidden)
+
+ * history.c: Added a trap to verify that if a
+ read(file, buffer,blocksize) returns less than blocksize,
+ that we really are at the end of the file. I can't easily
+ come up with a test case where this code gets touched, so
+ it may cause problems. All sanity tests still pass though.
+
+1999-11-05 Jim Kingdon <http://developer.redhat.com/>
+
+ * sanity.sh (logopt): New test, for Larry's fix.
+ * sanity.sh (log-18a, rcs-15 to rcs-19): New tests, to test -d
+ and -r more thoroughly.
+
+1999-11-05 Larry Jones <address@hidden>
+
+ * log.c (cvslog): Fix -s and -d with spaces on client side.
+ (log_usage): Revert Karl's change once again.
+ sanity.sh(rcs3-5): No longer get different results from local
+ and client/server.
+
+1999-11-04 Karl Fogel <address@hidden>
+
+ * log.c (log_usage): Revert Jim Kingdon's reversion of my change
+ of 1999-11-03. Allowing a space between option and argument
+ results in lossage; here is a reproduction recipe: run this from
+ the top of a remote copy of the cvs source tree
+
+ cvs log -d '>1999-03-01' > log-out.with-space
+
+ and then run this (note there's no space after -d now):
+
+ cvs log -d'>1999-03-01' > log-out.no-space
+
+ The resulting files differ; furthermore, a glance at the output of
+ cvs shows that the first command failed to recurse into
+ subdirectories. Until this misbehavior can be fixed in the source
+ code, the documentation should reflect the true state of affairs:
+ if one simply omits the space, everything works fine.
+
+1999-11-04 Jim Kingdon <http://developer.redhat.com/>
+
+ * log.c (log_usage): Revert Karl's change regarding -d and
+ -s. A space is allowed (see sanity.sh for example).
+
+1999-11-03 K.J. Paradise (address@hidden>
+
+ * history.c: cleaned up my prior change a bit, per Larry Jones'
+ comments, and John O'Conner's additional comments about bits of
+ non MS-Visual C++ compliancy of my code.
+
+1999-11-04 Larry Jones <address@hidden>
+
+ * sanity.sh: Check that tr that correctly handles NULs; if not, try
+ to find a version that does; if none can be found, warn user.
+ Also fix warnings for defective expr.
+
+1999-11-04 Karl Fogel <address@hidden>
+
+ Changes for empty/random passwords in anon pserver access:
+
+ * server.c (check_repository_password): if password empty, grant
+ access no matter what password is received; this is so anon CVS no
+ longer requires a password but remains backwards-compatible with
+ all those clients out there.
+
+ * client.c (connect_to_pserver): proceed with login even if
+ password not found in .cvspass file -- just use empty string as
+ password. And if such a login fails, print a descriptive error.
+
+ * login.c (get_cvs_password): don't complain if file or password
+ not found. That condition is no longer a showstopper, now that
+ empty passwords are permissible.
+ Cleaned up conditional chaining a bit, too.
+
+ * sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
+ pserver-13): new tests, about empty-password pserver access.
+
+1999-11-03 K.J. Paradise (address@hidden>
+
+ * history.c: modify parsing routines to parse the history
+ file a block at a time, rather than all at once. This allows
+ people with large history files and small amount of memory
+ to still get some functionality out of the history file.
+
+1999-11-03 Karl Fogel <address@hidden>
+
+ * log.c (log_usage): correct usage message for -d and -s options.
+ Because the space between the option letter and its argument has
+ been eliminated, I capitalized the argument portion to distinguish
+ it from the option letter. This makes it slightly inconsistent
+ with other such usage summaries, but at least it is now both
+ correct and readable.
+
+1999-10-22 Larry Jones <address@hidden>
+
+ * sanity.sh (dotest_sort): Old versions of tr don't understand \t
+ so use a literal tab instead.
+
+1999-10-21 Larry Jones <address@hidden>
+
+ * sanity.sh (dotest_sort): Convert any tabs in the output into spaces
+ before sorting to avoid POSIX.2 sort weirdness.
+ (import-106, importb-2): Change expected output per above.
+
+1999-10-18 K.J. Paradise <address@hidden>
+
+ Bug: users 'stan' and 'cartman' both have full read/write access
+ to the cvs repository. 'cartman' does a 'cvs admin -l foo.c'.
+ 'stan' then does a 'cvs admin -u foo.c'. The lock wouldn't be
+ removed, and no warning/error would be given. This is now fixed.
+ * rcs.c:(c.6157) remove caller/user check on the multiple lock
+ detection routines. Sanity.sh runs with no errors after this fix.
+
+1999-10-14 Larry Jones <address@hidden>
+
+ Make "cvs admin -e" (with no list of users) work:
+ * admin.c (admin): Remove error message.
+ (admin_fileproc): If no args for -e, call RCS_delaccess with NULL user.
+ * rcs.c (RCS_delaccess): Interpret NULL user as request to delete
+ entire access list.
+ * sanity.sh (admin-19a-*): Test.
+
+1999-09-29 Larry Jones <address@hidden>
+
+ * entries.c (Subdirs_Known): Use entfilename when opening CVSADM_ENTLOG
+ like everywhere else. Although this isn't strictly necessary (since
+ we immediately close it again), it keeps the code consistent and fixes
+ a bug where an open error reported the wrong file name.
+
+1999-09-16 Larry Jones <address@hidden>
+
+ * log.c (log_parse_revlist): Handle peculiar revision specs like
+ "-r.", "-r:", and "-r," correctly. (Thanks to Pavel Roskin
+ <address@hidden> for submitting a patch, this fix is
+ somewhat different.)
+ * sanity.sh (log): New tests for above.
+
+1999-09-15 Larry Jones <address@hidden>
+
+ * sanity.sh (basica-8b1): New test to check fix for bad diff options
+ causing cvs to crash.
+
+1999-09-02 Larry Jones <address@hidden>
+
+ * modules.c (do_module): Handle case where module definition has
+ options and special options but no directory; fix potential problems
+ running off beginning of string while stripping trailing blanks.
+ * sanity.sh (modules2): New tests for above.
+
+1999-08-26 Larry Jones <address@hidden>
+
+ * lock.c (lock_name): Remove side-effects from assert() expression
+ since they won't occur if NDEBUG is defined (not that that's a good
+ thing to do). (Reported by KOIE Hidetaka <address@hidden>.)
+
+1999-08-25 Larry Jones <address@hidden>
+
+ * sanity.sh: Use "${AWK}" instead of "awk" to make it easier for
+ people to use nawk/gawk/etc.; use an explicit "-print" with find
+ since some older version don't assume it; rename tests to avoid
+ duplicate importc-8. (Changes along these lines suggested by
+ Chris Cameron <address@hidden>.)
+
+1999-08-24 Larry Jones <address@hidden>
+
+ * commit.c (check_fileproc): Don't crash when a file has no
+ repository, just treat it as unknown. (Reported by Stefaan
+ Diericx <address@hidden>.)
+ * sanity.sh (errmsg2): New tests, for this fix.
+
+1999-08-18 Larry Jones <address@hidden>
+
+ * update.c (special_file_mismatch): Initialize *_hardlinks to
+ avoid trying to free garbage later on. (Reported by Jan
+ Scheffczyk <address@hidden>.)
+
+1999-08-17 Larry Jones <address@hidden>
+
+ * sanity.sh (basicc-11): Older versions of sh don't understand
+ ``if ! test...''. (Patch submitted by David J N Begley
+ <address@hidden>.)
+
+1999-08-17 Larry Jones <address@hidden>
+
+ * client.c, hardlink.c, hash.c, hash.h, main.c, recurse.c: Change
+ enum constant UNKNOWN to avoid conflicts on HPUX 11.0. (Reported
+ by Laurent Duperval <address@hidden>.)
+
+1999-08-16 Larry Jones <address@hidden>
+
+ client.c: Eliminate redundant #if. (Patch submitted by Assar
+ Westerlund <address@hidden>.)
+
+1999-07-30 Larry Jones <address@hidden>
+
+ * rcs.c (RCS_checkin): Terminate cleanly if RCS_addbranch fails
+ rather than blithely continuing on and crashing.
+ * sanity.sh (basica): New tests, for this fix.
+
+1999-07-29 Larry Jones <address@hidden>
+
+ * import.c (add_rcs_file): change "cannot lstat" message to include
+ userfile (the actual file causing the problem) instead of user
+ (which may or may not be the same).
+
+1999-07-29 Eric Sink <address@hidden>
+
+ * version.c: Push version number to 1.10.7.1.
+
+ * version.c: Version 1.10.7.
+
+1999-07-28 Eric Sink <address@hidden>
+
+ * sanity.sh: before running basicc-11, we need to see if
+ the cwd has been deleted (by basicc-8). If so, we
+ recreate it to allow basicc-11 to proceed. This may be
+ something that only happens under the Linux 2.2 kernel.
+
+1999-07-18 Karl Fogel <address@hidden>
+
+ * edit.c (notify_do): chop newline, if any, from the value
+ obtained from CVSROOT/users. Otherwise it just gets passed along
+ in the argument to the notification program (usually mail), which
+ will misinterpret it as signifying the end of the command.
+
+1999-07-19 Larry Jones <address@hidden>
+
+ * rcs.c (RCS_delete_revs): In the WIN32 kludge, be sure that the result
+ of RCS_getexpand is not NULL before trying to use what it points to.
+ (Patch submitted by Timothy L. Taylor <address@hidden>.)
+
+1999-07-16 Tom Tromey <address@hidden>
+
+ * admin.c (admin): Allow `-k' options to be used unrestricted.
+
+1999-06-23 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (symlinks2): New test, for symlinks in working
+ directory without PreservePermissions. This test (modulo a few
+ details not relevant to testing whether we are following symlinks)
+ worked remote as of now, or either remote or local for CVS 1.9.
+ * subr.c (get_file): Revert 1998-02-15 change to special-case
+ symlinks. This makes the above test work local too.
+ * rcs.c (RCS_checkin): Move the logic to handle special-case
+ symlinks (and other files other than regular files) here, and make
+ it only happen if PreservePermissions is on.
+
+1999-06-18 Larry Jones <address@hidden>
+
+ * sanity.sh (devcom3-9a): Be less specific about the expected
+ error message (BSD/OS 4.0 has a bug that can cause exec* to fail
+ with EACCES instead of ENOENT).
+
+1999-06-08 Larry Jones <address@hidden>
+
+ * sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
+ Use ${PROG} instead of "cvs".
+
+1999-06-05 Jim Kingdon <http://www.cyclic.com>
+
+ * recurse.c (do_recursion, do_dir_proc): Make the SERVER_ACTIVE
+ #ifdef be only around the check for server_active. Modulo a few
+ cosmetic tweaks, same as a patch submitted by Johannes Stezenbach
+ of propack-data.de.
+
+1999-06-01 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh: Add comment about rcs2-7 failures on certain days.
+
+ Make "cvs status -v" on a removed file work:
+ * status.c (cvsstatus): Reindent the client code.
+ (status_fileproc): Don't need a CVS/Entries listing to show the
+ tags.
+ * sanity.sh (rmadd2): New test rmadd2-16 tests the existing
+ behavior with "cvs log"; new test rmadd2-17 tests the new behavior
+ with "cvs status".
+
+ * sanity.sh (basicc): To match no output in dotest, put the empty
+ regexp first. Remove tests which check that first-dir exists,
+ since that isn't true in the case where the OS let us delete it.
+ (dotest_internal): Fix so that things work with two regexps, with
+ an empty one first.
+
+1999-05-28 Larry Jones <address@hidden>
+
+ * sanity.sh (server-4): Replace bogus directory with real one since
+ the server now checks it.
+
+1999-05-27 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (spacefiles): Clean up -c, top, and -b at end.
+ (spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
+
+ Fix two problems pointed out by Olaf Kirch of swb.de/caldera.de:
+ * server.c (outside_root): New function, contains expanded version
+ of code from serve_directory.
+ (serve_directory): Call outside_root.
+ (outside_dir): New function
+ (serve_modified, serve_is_modified, serve_notify,
+ serve_questionable, serve_unchanged): Call outside_dir.
+ * sanity.sh (server2): New tests, for these fixes.
+
+1999-05-26 Jim Kingdon <http://www.cyclic.com>
+
+ * cvs.h, subr.c (xmalloc): Return void* not char*, like xrealloc
+ has done for some time.
+ * modules.c (do_module): If we find the module as a directory/file
+ (rather than in the modules file), skip a bunch of processing
+ which was unnecessary and also broken in most of the cases
+ now tested for by the spacefiles sanity.sh test.
+ * sanity.sh (spacefiles): New test, for specifying filenames
+ (containing spaces, or starting with '-', or starting with '/') to
+ "cvs co".
+
+1999-05-25 Jim Kingdon <http://www.cyclic.com>
+
+ * client.c (update_entries): Make the old DONT_USE_PATCH code the
+ only code. This means that if people are still on CVS 1.9
+ servers, then CVS will fall back to transferring entire files.
+ This is better than looking for an external "patch" program which
+ causes no end of troubles (especially on Windows, but someone just
+ posted to info-cvs about a problem with the Solaris patch). (This
+ change was run by devel-cvs and feedback was positive).
+
+ * subr.c (xmalloc, xrealloc): The new error.c does not support
+ %lu; use sprintf instead.
+
+1999-05-25 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * sanity.sh (server): Escaped a few more newlines in
+ another awk script. Solaris awk still don't like 'em.
+
+1999-05-25 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+ and Jim Kingdon
+
+ * log.c: Remove comment which said "you can delete [this line]"
+ and which stuck around for over 3 years.
+ * sanity.sh (errmsg2 & tagdate): Added tests to prove the
+ current functionality with respect to combining -r and -D.
+
+1999-05-20 Larry Jones <address@hidden>
+
+ * server.c (pserver_authenticate_connection): Previous changes
+ broke verify_and_exit (reported by Robert Fitzsimons, thanks).
+ * sanity.sh (pserver): New tests pserver-7 and pserver-8 for this.
+
+1999-05-18 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * sanity.sh (keyword2): Escaped a newline in an awk script.
+ Apparently Solaris awk don't like 'em.
+
+1999-05-18 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (basicc): Allow the behavior whereby unlink(".")
+ succeeds. Reported by Jeremy Buhler and Pavel Roskin.
+
+1999-05-17 Steve Cameron of Compaq
+
+ * sanity.sh: Modified to no longer use "test -e" for existence
+ test as it has turned out to be not portable enough. Instead use
+ "test -f", "test -d", etc.
+ [SCO Unixware 7 apparently doesn't always support it -kingdon]
+
+1999-05-17 Jim Kingdon <http://www.cyclic.com>
+
+ * version.c: Push version number to 1.10.6.1.
+
+ * version.c: Version 1.10.6.
+
+1999-05-16 Jim Kingdon <http://www.cyclic.com>
+
+ * update.c (patch_file): When we are passing vn_rcs to
+ RCS_checkout, pass vn_tag as well.
+ * sanity.sh (keyword): In test keyword-22, test for the fixed
+ behavior rather than the buggy behavior. Adjust keyword-23. Add
+ test keyword-24, to see whether keyword-23 really worked.
+
+1999-05-12 Larry Jones <address@hidden>
+
+ * sanity.sh (pserver-4, pserver-5): Bogus error messages from
+ non-root initgroups on some 4.4BSD derived systems now show up
+ in different places in the output.
+
+1999-05-12 Jim Kingdon <http://www.cyclic.com>
+
+ * import.c (import): Don't allow the user to supply a repository
+ directory which takes us out of the cvsroot.
+ * sanity.sh (importc): New tests importc-10 to importc-12, for this.
+
+1999-05-11 Larry Jones <address@hidden>
+
+ * server.c (serve_notify): Allocate enough memory to hold the
+ "misformed Notify request" message in pending_error_text.
+
+1999-05-11 Jim Kingdon <http://www.cyclic.com>
+
+ * server.c (switch_to_user): Ignore EPERM from initgroups. Fixes
+ pserver-4 in testsuite.
+ (pserver_authenticate_connection): Only print "I LOVE YOU" after
+ switch_to_user has come back successfully.
+
+ * server.c (pserver_authenticate_connection): Call error_exit
+ rather than reinventing the wheel ourselves.
+ (switch_to_user): Check for errors from setuid, setgid, and
+ initgroups. Fix the #ifdef's (the previous code would skip the
+ setuid call if SETXID_SUPPORT).
+
+1999-05-10 Jim Kingdon <http://www.cyclic.com>
+
+ * server.c (serve_notify), edit.c (notify_do): Check for
+ and reject characters which will get confused with delimiters.
+ * sanity.sh (server): New tests server-7 through server-15 test
+ for this and for other notify behaviors.
+
+ * rcs.c (RCS_tag2rev): Also look for a physical branch with
+ RCS_getversion.
+ * sanity.sh (tagf): Adjust tagf-12 and following tests to test for
+ the fixed behavior rather than the broken behavior.
+
+1999-05-07 Jim Kingdon <http://www.cyclic.com>
+
+ * server.c (server_notify): Also set last_node to NULL.
+ * sanity.sh (server): New tests server-6 and server-7, for this.
+
+1999-05-05 Jim Kingdon <http://www.cyclic.com>
+
+ * rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
+
+ * add.c (add): Look for directories with the same name in a
+ different case where appropriate (analogous to fopen_case).
+ In client code, add comment about how this doesn't do quite
+ everything.
+
+1999-05-03 Jim Meyering <address@hidden>
+
+ Remove rcs-style ,file, lock files upon signal.
+ * rcs.c (rcs_lockfile): New file-scoped global.
+ (rcs_cleanup): New function (similar to patch_cleanup).
+ (rcs_internal_lockfile): Register rcs_cleanup the first time this
+ function is called. Rename uses of local `lockfile' to refer to new
+ global, `rcs_lockfile'. Don't free the lock file name string, now
+ that it's global.
+ (rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
+ free and NULL-out the global, rcs_lockfile.
+
+1999-04-30 Jim Kingdon <http://www.cyclic.com>
+
+ * rcs.c (annotate_fileproc): Don't cast NULL in passing it to
+ RCS_deltas. Because there is a prototype in scope the cast is
+ unnecessary (per HACKING's ANSI C or SunOS4 rule), and in fact it
+ was causing failures on UNICOS because it cast to size_t instead
+ of size_t*. (Thanks to Dean Kopesky for reporting this).
+
+1999-04-29 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh: If invoked without any arguments, print a usage
+ message (thanks to Pavel Roskin for a report/patch).
+
+ * run.c (piped_child): Make the error messages more verbose.
+ (close_on_exec): Reindent.
+ * sanity.sh (devcom3): Several errors are possible in devcom3-9a.
+ Adjust for change to piped_child error message.
+
+1999-04-28 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (devcom3): Add some tests of the CVS/Notify file and
+ disconnected "cvs edit".
+
+ * main.c (opt_usage): Remove -b.
+
+1999-04-20 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * rcs.c (RCS_delete_revs): RCS_delete_revs uses an
+ RCS_checkout call to get a new copy of a revision to be
+ used internally after old revisions were deleted and it was
+ performing keyword substitutions. This munged all the
+ the revisions of the file on the branch containing the
+ deleted revisions and its sub-branches, as the original they
+ were being patched from was incorrect. Corrected this by
+ passing in "-ko" as an option to RCS_checkout.
+ * sanity.sh (keywordlog): modified this test to verify the
+ correct behavior of 'cvs admin -o'.
+ [Fixed use of \$ in keywordlog test; added code in RCS_delete_revs
+ to abort on binary file on Windows -kingdon]
+
+1999-04-21 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+ and Jim Kingdon
+
+ * tag.c (tag_check_valid): A bug was causing CVS to spin
+ indefinately when -j:<date> was specified. CVS now returns
+ an error.
+ * sanity.sh: Added a test (tagdate-12) to test this.
+
+1999-04-19 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (backuprecover): Clean up the repository at the end.
+
+1999-04-18 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * sanity.sh added a test (backuprecover) to test cvs behavior
+ with a repository that is out of date relative to the
+ developer's workspaces.
+ [Fix --keep code; move test to "Repository Storage" section since
+ it doesn't really exercise the diff/diff3 library. -kingdon]
+
+1999-04-13 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * sanity.sh (diff): Tests to verify correct operation of
+ the --ifdef parameter to cvs diff.
+ [indentation fixed -kingdon].
+
+1999-04-13 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+ for Noah Friedman <address@hidden>
+
+ * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
+ latter is confused by pserver for a date spec.
+
+1999-04-14 Jim Kingdon <http://www.cyclic.com>
+
+ * fileattr.h: Adjust comments to reflect the official version of
+ the fileattr format now being in cvs.texinfo.
+
+1999-04-05 Jim Kingdon
+
+ * sanity.sh (watch5): Remove nonstandard --keep code. Don't pass
+ -f to rm when cleaning up (that tends to mask bugs). Add watch5
+ to list of tests at start. Add comment explaining why we consider
+ the behavior we test for the right one. Rename a few tests which
+ had been erroneously named watch6* instead of watch5*.
+ * client.c (update_entries): Add comment with brief discussion of
+ whether there is a better way.
+
+1999-04-05 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * client.c (update_entries): Only call mark_up_to_date
+ (which deletes the CVS/Base/<filename> file for watched
+ and edited files) on commit.
+ * sanity.sh: Make sure the CVS/Base/<filename> file for
+ a watched and edited file is not removed on a status or
+ update of a touched/unmodfied file.
+
+1999-03-30 Larry Jones <address@hidden>
+
+ * client.c (get_responses_and_close), commit.c (commit),
+ update.c (do_update): If the sleep(1) call returns prematurely
+ (due to the way wakeup is scheduled or receiving a signal), do
+ it again.
+
+1999-03-26 Jim Kingdon <http://www.cyclic.com>
+
+ * server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
+
+ * sanity.sh (modules3-11b): Adjust exact text of error message to
+ reflect 1999-03-24 change to dirswitch.
+
+1999-03-25 Jim Kingdon <http://www.cyclic.com>
+
+ * admin.c (admin): Make argument to -e optional, to match the
+ documentation.
+ * sanity.sh (admin-19a-2): Test for this.
+
+ * server.c (serve_root): Update comment about checking for missing
+ Root request.
+
+1999-03-24 Jim Kingdon <http://www.cyclic.com>
+
+ * server.c (dirswitch): Also check dir here, similar to
+ what server_pathname_check does for other cases.
+ * sanity.sh (files): Adjust files-14 to test for this.
+
+1999-03-24 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+ and Jim Kingdon
+
+ * sanity.sh: added a test (files-13) to test .. indirection
+ in a path and another (files-14) to make sure we still fail
+ out when the '..' indirection takes us into the $CVSROOT
+ directory or beyond.
+
+1999-03-24 Larry Jones <address@hidden>
+
+ * rcs.c: Change enum constants ADD and DELETE to something less
+ likely to run into conflicts.
+
+1999-03-21 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (tagf): New test, tests for moving a branch tag to a
+ non-branch tag and trying to recover.
+
+1999-03-12 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (branches): Tweak test branches-5 to test the case in
+ which one modifies a file and then branches it.
+
+1999-03-09 John Bley of duke.edu
+
+ * mkmodules.c (filelist): Missed a NULL in this struct (should
+ have 3 members, only had 2).
+
+1999-03-07 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (Index): Rename new test from rm_CVS/Root to rmroot
+ (we don't have a formal rule about funky punctuation in test names
+ but both underscore and a slash is too funky for me :-)).
+ Reindent a few tests which were off.
+
+ * root.c: Remove the sentence which had the improper English;
+ there isn't really a need for that sentence and it isn't
+ particularly accurate any more.
+
+1999-02-27 Derek Price
+ <http://www-personal.engin.umich.edu/~oberon/resume.html>
+
+ * sanity.sh: Added rm_CVS/Root test to test that CVS uses
+ $CVSROOT rather than dumping core when running remotely and
+ the admin file CVS/Root is deleted from the workspace.
+
+ Also, altered a few 'cvs commit' 's in regular expressions to
+ fit the .${PROG} commit. portability syntax.
+
+ * recurse.c: Stopped CVS from dumping core in the case tested
+ above.
+
+ * root.c: Fixed somebody's improper english.
+
+1999-02-25 Larry Jones <address@hidden>
+
+ * sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
+ expected result.
+
+1999-02-24 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (keyword2): Restore the original \\\$ instead of $.
+ The latter ends up working due to various kludgy semantics in the
+ shell and regular expressions, but the former is cleaner.
+
+ * sanity.sh (keyword2): Protect keywords against accidental
+ expansion in sanity.sh itself (most occurrences had this, but not
+ all).
+
+1999-02-23 Derek Price <http://www.cyclic.com>
+ and Jim Kingdon.
+
+ * sanity.sh (keyword2): New test, tests for merging with -kk.
+
+1999-02-22 Jim Kingdon <http://www.cyclic.com>
+
+ * version.c: Ease version number to 1.10.5.1.
+
+ * version.c: Version 1.10.5.
+
+1999-02-18 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (files): New test, for a relatively obscure spurious
+ "Up-to-date check failed" in client/server.
+
+ * main.c (lookup_command_attribute): Don't check for "history"
+ twice.
+
+1999-02-17 Jim Kingdon <http://www.cyclic.com>
+ and Hallvard B Furuseth
+
+ * root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
+ warnings about statement not reached.
+
+1999-02-16 Jim Kingdon <http://www.cyclic.com>
+
+ * recurse.c (start_recursion): If we are skipping the current
+ directory (due to it being from the wrong repository), also adjust
+ the arguments we send to the server accordingly (like we already
+ do for the case in which there is no CVS directory).
+ * sanity.sh (multiroot4): New test, for this. All these tests had
+ passed locally, but remote multiroot4-12 tests for this fix.
+ (multiroot): Adjust multiroot-diff-1, multiroot-update-2,
+ multiroot-tag-1, multiroot-status-1, multiroot-update-3, and
+ multiroot-log-1 to reflect the cosmetic change this produces (one
+ less "Diffing ." message).
+ (multiroot2): multiroot2-8 likewise.
+
+1999-02-10 Jim Kingdon <http://www.cyclic.com>
+
+ * tag.c (cvstag): Don't pass SEND_NO_CONTENTS if -c specified.
+ * sanity.sh (tagc): New test, for various tag -c behaviors.
+ Test tagc-6 tests for this fix.
+
+1999-02-09 Jim Kingdon <http://www.cyclic.com>
+
+ * error.c (error): Rewrite to no longer use vasprintf (see
+ ../lib/ChangeLog for rationale). Note the slight change in
+ interface - callers which want %8.8s or similar formats need to
+ call sprintf.
+ * lock.c (lock_wait, lock_obtained): Use sprintf.
+
+1999-02-08 Jim Kingdon <http://www.cyclic.com>
+
+ * rcs.c (RCS_delete_revs): Pass -a to diff_exec.
+ * sanity.sh (binfiles3): New tests binfiles3-9 through
+ binfiles3-13 test for this fix.
+ * sanity.sh (binfiles): New tests binfiles-o4 and binfiles-o5
+ (which don't test this bug, just on general principles).
+
+1999-02-04 Jim Kingdon <http://www.cyclic.com>
+
+ * lock.c (lock_name): Permissions of directories in LockDir
+ shouldn't depend on the umask.
+ * sanity.sh (lockfiles): Set umask and CVSUMASK, to test for this.
+
+1999-02-01 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (keywordlog): New tests keywordlog-22 and
+ keywordlog-23 test keyword expansion and $Log. Adjust other tests
+ so that revisions differ more from each other, so this is a
+ better test.
+
+1999-01-29 Jim Kingdon <http://www.cyclic.com>
+
+ * commit.c (checkaddfile): If options is "", treat it the same as
+ NULL. Centralize this check, and the one for it starting with
+ "-k", at the start of the function.
+
+ * rcs.c, rcs.h (RCS_setexpand): New function.
+ * admin.c (admin_fileproc): Access keyword expansion field via
+ RCS_getexpand and RCS_setexpand, rather than directly.
+ * commit.c (checkaddfile): When resurrecting, set the keyword
+ expansion mode.
+ * sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
+ for the new behavior.
+
+1999-01-27 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (multiroot3): Add new variant of multiroot3-10 test
+ for RELATIVE_REPOS. Move multiroot3-11 test out of the
+ conditionals; it works the same for remote or local,
+ RELATIVE_REPOS or no.
+
+ * options.h.in: Make RELATIVE_REPOS the default, as has been
+ announced as a future direction since 1997-10-11.
+ * sanity.sh (multiroot): Tweak multiroot-update-1a and
+ multiroot-update-1b tests to work with either RELATIVE_REPOS or
+ non-RELATIVE_REPOS.
+
+ * sanity.sh (client-9): Don't assume the time zone.
+
+1999-01-26 Jim Kingdon <http://www.cyclic.com>
+
+ Fix one facet of the "cvs add -kb" re-adding problem (the other
+ known facet is tested for by binfiles3-8).
+ * add.c (add): When re-adding a file, set the keyword expansion
+ as we normally would.
+ * sanity.sh (binfiles3): New test binfiles3-6a tests for this.
+
+1999-01-22 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (rmadd2): New tests, for undoing a commit.
+
+1999-01-21 Eric Mumpower <address@hidden>
+
+ * sanity.sh (reposmv): Actually modify CVSROOT in current
+ environment when calling functions, rather than trying to achieve
+ the same effect with "CVSROOT=foo functionname". (Many common
+ bourne shells, including those in SunOS and Solaris 2.4-2.7,
+ do not properly handle "ENVVAR=foo command" when "command" is
+ a user-defined shell function rather than an actual executable.)
+
+1999-01-15 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (rcs3): Redirect awk's stdin to /dev/null like all the
+ other awk invocations. GNU awk seems not to read stdin in this
+ case, but that behavior is hard to reconcile with the Single Unix
+ Spec and some awks don't do it.
+
+ * sanity.sh (binfiles, binfiles2, binfiles3, server): Use the same
+ tr trick as in rcs3. People don't seem to have been complaining,
+ and this should fix server-4 for HPUX.
+
+1999-01-14 Jim Kingdon <http://www.cyclic.com>
+
+ * client.c (recv_line): If the line we are reading contains a
+ character which would sign-extend to EOF, don't treat it as end of
+ file. recv() doesn't report end of file this way and this might
+ fix bugs with 0xff characters.
+
+1999-01-14 Larry Jones <address@hidden>
+
+ * client.c (recv_line): Handle EOF from server.
+
+ * sanity.sh (importc-8, importc-9): Accept anything in the seconds
+ fields of the timestamps since touch doesn't set it reliably.
+ (This isn't great, but it's better than nothing.)
+
+1999-01-14 Jim Kingdon <http://www.cyclic.com>
+
+ * run.c (run_exec): Adjust comment about vfork; this isn't the place
+ to get into a treatise about fork performance vs. vfork
+ performance but it isn't quite as simple as whether one has
+ copy-on-write.
+
+1999-01-13 Larry Jones <address@hidden>
+
+ * sanity.sh (dotest_fail): Handle spurrious output from assert better.
+
+ * sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
+ assertion failure message.
+
+1999-01-12 Larry Jones <address@hidden>
+
+ * sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
+ just use echo instead.
+
+1999-01-11 Jim Meyering <address@hidden>
+
+ * sanity.sh (mkmodules-temp-file-removal): New test, for this.
+ * mkmodules.c (mkmodules): Remove each `CVSROOT/.#[0-9]*' temporary
+ file that's used to check out files listed in CVSROOT/checkoutlist.
+ Remove extra semicolon at end of line.
+
+1999-01-11 Larry Jones <address@hidden>
+
+ * sanity.sh (rcs3-5a): Allow for multiple lines of output before the
+ assertion failure message.
+
+ * sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
+ (doesn't allow anything to follow omitted permissions).
+
+1999-01-09 Jim Kingdon <http://www.cyclic.com>
+
+ * client.c (set_sticky): Nonfatal error if we can't write it.
+ * sanity.sh (dirs2-8 through dirs2-14): New tests, for this.
+
+ * sanity.sh (rcs3): Write NUL character with tr not awk, in
+ accordance with Single Unix Specification. Hopefully will fix
+ rcs3-7 for HPUX. Will not work on SunOS4, but then again neither
+ did the old syntax.
+
+1999-01-05 Jim Kingdon <http://www.cyclic.com>
+
+ * client.c, update.c: Rename MD5* functions to cvs_MD5* per
+ corresponding change to ../lib/md5.h.
+
+1999-01-03 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (client): Give file1 a predictable mode so that the
+ output in client-9 will not depend on the umask of the user
+ running the tests.
+
+1998-12-29 Jim Kingdon <http://www.cyclic.com>
+
+ * client.c (client_senddate): Use date_to_internet rather than
+ using our own "5/26/1997 13:01:40 GMT" date format.
+ * main.c (date_to_internet): Check for errors from sscanf. Always
+ send a four digit year. Send hours, minutes, and seconds as two
+ digits per RFC822.
+ * sanity.sh (client): New tests client-8 and client-9 test for this.
+
+ * sanity.sh (rcs2): New tests rcs2-6 through rcs2-8 test for fix
+ to lib/getdate.y (before the fix, "100 months" or "8 years" would
+ tend to mean the year 1969, thus the tests would give "cvs update:
+ file1 is no longer in the repository").
+
+1998-12-28 Larry Jones <address@hidden>
+
+ * entries.c (Register): Return if unable to open log file to avoid
+ referencing the invalid file pointer.
+ * sanity.sh (dirs2-7): With above change, no longer fails.
+ * sanity.sh (rcs3-5a): Another assertion failure message.
+ * sanity.sh (pserver-4, pserver-5): Some 4.4BSD derived systems spit
+ out bogus error messages when initgroups is called as non-root.
+
+1998-12-23 Larry Jones <address@hidden>
+
+ * sanity.sh (rcs3, dotest_fail): The assertion failure message varies
+ wildly between different systems and the resulting abort call can
+ even result in spurrious output. Fix the regexp to accept nearly
+ anything containing some kind of assertion failure and ensure that
+ any spurrious output ends up in the output file instead of on the
+ terminal.
+
+1998-12-23 Jim Kingdon <http://www.cyclic.com>
+
+ * admin.c, checkout.c, commit.c, cvsrc.c, expand_path.c,
+ history.c, ignore.c, import.c, log.c, mkmodules.c, modules.c,
+ myndbm.c, parseinfo.c, rcs.c, remove.c, rtag.c, status.c, subr.c,
+ tag.c, wrapper.c: Cast all char's to unsigned char before passing
+ them to ctype.h functions (isalpha, isgraph, isalnum, isspace,
+ isdigit, isprint, isupper). Whether using ctype.h is the right
+ thing at all is unclear to me (having the server depend on locale
+ seems wrong, as we don't necessarily have any good way to set the
+ right locale, if there even is such a concept as 'right' locale in
+ this context), but as long as we use ctype.h we might as use it
+ according to the standards (this affects systems where plain char
+ is signed but users supply characters with the 8th bit set).
+ Thanks to Paul Eggert for suggesting this.
+
+1998-12-22 Jim Kingdon <http://www.cyclic.com>
+
+ * sanity.sh (rcs3): Oops, the earlier fix for srcdir only fixed
+ the non-remote case, not the remote case. Fix the other occurrence.
+
+1998-12-22 Jim Kingdon
+
+ * sanity.sh (rcs3): The assertion failure message varies slightly
+ depending on whether CVS was built with srcdir != ".". Fix regexp.
+
+1998-12-21 Jim Kingdon
+
+ * rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
+ unused variable x_vers.
+
+ * rcs.c: When printing an unexpected character we found in the RCS
+ file, print it in hex rather than as a character (see comment for
+ rationale).
+ * sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
+
+ * sanity.sh (rcs3): New test, for some error handling cases
+ involving parsing RCS files.
+
+1998-12-16 Jim Meyering <address@hidden>
+
+ * rcs.c (RCS_getdate): Handle the case in which a file is first
+ imported after its initial version has been created.
+ * sanity.sh (import-after-initial): New test for that.
+
+1998-12-17 Jim Kingdon
+
+ * server.c (serve_root): Pserver_Repos only exists if
+ AUTH_SERVER_SUPPORT is defined.
+
+1998-12-12 Jim Kingdon, and Derek R. Price of Stortek.
+
+ * sanity.sh (multiroot): Change + to ${PLUS}.
+
+1998-12-12 Jim Kingdon, and Gary Young of Motorola
+
+ * sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
+ allow 4 digit year in addition to 2 digit year.
+
+1998-12-12 Jim Kingdon
+
+ * sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
+ and for HEAD as (nonexistent) file name.
+
+1998-12-02 Jim Kingdon
+
+ * version.c: Squish version number to 1.10.4.1.
+
+ * version.c: Version 1.10.4.
+
+1998-11-24 Jim Kingdon
+
+ * recurse.c (do_file_proc): Check for errors from RCS_parse.
+ * sanity.sh (rcslib-symlink-7 through rcslib-symlink-10): New
+ tests, test for this.
+
+ * sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
+
+ * entries.c (Register): If we can't write Entries.Log, make it a
+ nonfatal error.
+ * sanity.sh (dirs2): Test for this fix.
+
+ * sanity.sh (dirs2): Clean up working directory at end of test.
+
+1998-11-23 Jim Kingdon
+
+ * sanity.sh (dirs2): New test, for some more cases involving
+ deleting directories and such.
+
+ * sanity.sh (dirs): Update for yesterday's change in Find_Names
+ error handling. The error in dirs-4 is fairly different now; in
+ dirs-3 and dirs-3a it is the obvious change.
+
+1998-11-22 Jim Kingdon
+
+ * sanity.sh (release): Move the commments listing "cvs release"
+ tests from modules2-6 to here.
+ * release.c (release): Update comment to reflect "? foo" case.
+
+ * find_names.c (Find_Names): If we can't read the repository, make
+ it a nonfatal error. Tell the caller whether this happened.
+ (find_rcs): Add comment regarding this behavior.
+ * recurse.c (do_recursion): If Find_Names gives an error, skip
+ the directory and print a message saying so.
+ * sanity.sh (modes3): New test, for this.
+
+1998-11-18 Jim Kingdon
+
+ * rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
+ consistently.
+
+ * sanity.sh (conflicts3): Tests conflicts3-24 through
+ conflicts3-28 test for another case similar to conflicts3-22.
+
+1998-11-14 Jim Kingdon
+
+ * sanity.sh (diff): New test, for now just tests for the "I know
+ nothing" message.
+
+ * sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
+ tests; resurrecting doesn't work from one level up.
+
+ * sanity.sh (mwrap-7): Remote prints the messages in a different
+ order.
+
+1998-11-13 Jim Kingdon
+
+ * tag.c (check_fileproc): Log tag deletions.
+ * rtag.c (check_fileproc): Likewise.
+ * sanity.sh (taginfo-14 through taginfo-18): New tests, for
+ these behaviors.
+
+1998-11-12 Jim Kingdon
+
+ * sanity.sh (mwrap-7): Update for the noexec fix.
+
+ * server.c (server_copy_file): Add comment about noexec.
+
+ * update.c (checkout_file): Handle noexec case involving revbuf
+ and modes.
+ (update_fileproc): In case T_NEEDS_MERGE, let merge_file take care
+ of noexec, so it can tell the user if there would be conflicts.
+ (merge_file): Print "conflicts found in FILE" message
+ regardless of noexec. Add comment about checking for whether the
+ file already contained the changes, and noexec.
+ * sanity.sh (conflicts-192a): New test, for this.
+
+1998-10-20 Jim Kingdon
+
+ Use the gzip library on the server. Probably doesn't speed things
+ up as currently implemented, but does avoid hassles in terms of
+ finding an external gzip program.
+ * zlib.c, server.h (gunzip_and_write, read_and_gzip): Now returns
+ whether a fatal error occurred, rather than expecting error (1,
+ ...) to work.
+ * client.c (update_entries, send_modified): Change callers.
+ * server.c (receive_file): Rewrite gzip code to use
+ gunzip_and_write rather than filter_through_gunzip.
+ (server_updated): Likewise, use read_and_gzip rather than
+ filter_through_gzip.
+ * client.c, client.h (filter_through_gzip, filter_through_gunzip),
+ run.c, cvs.h (filter_stream_through_program): Removed; no longer used.
+ * sanity.sh (server): New tests server-4 and server-5 test
+ this feature (note that CVS 1.10 also passes these tests; the
+ behavior is supposed to be unchanged).
+
+1998-10-19 Jim Kingdon
+
+ * sanity.sh (multiroot3): New test, tests for a few more
+ multiroot cases.
+
+ * lock.c (lock_name): Set the permissions on each directory we
+ create to that of the parent directory.
+ * sanity.sh (lockfiles): New chmod and tests lockfiles-7a and
+ lockfiles-7b test for this. Adjust lockfiles-5 for new text of
+ error message.
+
+1998-10-15 Jim Kingdon
+
+ * server.c (requests): Set RQ_ROOTLESS for "Set".
+ * sanity.sh (info): Also clean up $HOME/.cvsrc.
+ (server): Test that we can send Set before Root (had been tested
+ by crerepos-6b, but only if you ran the info test first). Tests
+ for this fix.
+
+1998-10-14 Jim Kingdon
+
+ * subr.c (expand_string): Tweak the algorithm so that the size
+ that it allocates is generally a power of two.
+
+1998-10-14 Eivind Eklund and Jim Kingdon
+
+ * commit.c (commit): For the client, don't worry about whether we
+ are root.
+
+1998-10-13 Jim Kingdon
+
+ * server.h (struct request): Change status field to flags and add
+ RQ_ROOTLESS.
+ * client.c (handle_valid_requests, supported_request): Change
+ status to flags.
+ * server.c (requests): Change status to flags. Add RQ_ROOTLESS.
+ * server.c (server): If not RQ_ROOTLESS, and we haven't gotten a
+ Root request, give an error.
+
+1998-10-12 Jim Kingdon
+
+ * version.c: Slide version number to 1.10.3.1.
+
+ * Version 1.10.3.
+
+ * sanity.sh (modules2-17): Update for 9 Oct 1998 change to
+ update_dirent_proc.
+
+1998-10-11 Jim Kingdon
+
+ * commit.c (checkaddfile, commit_fileproc): A numeric value for
+ 'tag' does not mean that we are adding on a branch.
+ * sanity.sh (keywordlog): Adjust this test, to test for this
+ (replaces comment saying we should be doing it).
+ (rmadd): Likewise.
+
+ * sanity.sh (rmadd): New test, tests for various existing
+ behaviors with "cvs ci -r".
+
+1998-10-09 Jim Kingdon
+
+ * update.c (update_dirent_proc): For local CVS, if the directory
+ does not exist in the working directory nor in the repository,
+ just skip it.
+ * sanity.sh (dirs): New tests dirs-3a, dirs-7 and dirs-8 test for
+ this and related behaviors. Note that the new behavior was also
+ the previous behavior for remote; we are only changing it for local.
+
+ * wrapper.c, cvsrc.c, ignore.c: Add comments about ignoring .cvsrc
+ and friends if we can't find a home directory.
+ * expand_path.c (expand_path): If we can't find the home
+ directory, give an error rather than a coredump (or worse).
+ * login.c (construct_cvspass_filename): Don't use errno in error
+ message; get_homedir doesn't set it. Add comment about this
+ message.
+
+1998-10-07 Jim Kingdon <address@hidden>
+
+ * diff.c (diff): Set variables to NULL at the start, and free
+ memory at the end.
+ * sanity.sh (multiroot2): Add tests for this (before the fix,
+ multiroot2-12 would abort with "no more than two revisions/dates
+ can be specified").
+
+1998-10-06 Jim Kingdon <address@hidden>
+
+ * Makefile.in (installcheck check): Remove references to RCSBIN;
+ they don't do anything now that RCSBIN is ignored.
+
+ * client.c: Clean up horrible confusion about whether stored_mode
+ or stored_mode_valid (or nothing :-)) indicates whether
+ stored_mode is allocated. Should fix crashes (for example, on NT
+ when the server has renamed multiple files from uppercase to
+ lowercase).
+
+ * sanity.sh (dirs): New tests, tests for some cases involving
+ admins who do surgery on the repository.
+
+1998-10-03 Johannes Stezenbach <address@hidden>
+
+ * vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
+ necessary change the file to be writable temporarily to set its
+ modification time.
+
+1998-10-03 Jim Kingdon <address@hidden>
+
+ * client.c (handle_error): Add comment about indicating which
+ errors are from the server.
+
+1998-10-01 Jim Kingdon <address@hidden>
+
+ * sanity.sh (devcom-180): Allow one digit day.
+
+1998-09-30 Jim Kingdon <address@hidden>
+
+ * main.c (main): Don't call Name_Root if -d specified.
+ * recurse.c (do_recursion, do_dir_proc): Don't check CVS/Root
+ if -d was specified.
+ * import.c (import): Indentation fix.
+ * sanity.sh (multiroot): Update for this change.
+ (reposmv): New test, tests for this.
+
+1998-09-28 Jim Kingdon <address@hidden>
+
+ * sanity.sh (multiroot2): New test, tests some nested directory
+ cases.
+
+1998-09-25 Jim Kingdon <address@hidden>
+
+ * sanity.sh (multiroot): Change a few comments which said modules
+ when they meant directories.
+
+1998-09-25 Jim Meyering <address@hidden>
+
+ * sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
+ in hostname regexp.
+
+1998-09-25 Jim Kingdon <address@hidden>
+
+ * sanity.sh (log2): New test log2-7a tests for one error handling
+ case. Add a comment about another.
+
+1998-09-24 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Change crerepos test back to :ext: (for several
+ reasons; see comments).
+
+1998-09-24 Noel Cragg <address@hidden>
+
+ * sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
+ check the operation of "tag" when there are symlinks in the
+ repository.
+
+ * rcs.c (RCS_checkin): remove old code that resolved the symlink
+ and call resolve_symlink instead.
+ (RCS_rewrite): call resolve_symlink before doing anything else to
+ make sure we're operating on the file and not the symlink.
+
+ * subr.c (resolve_symlink): new routine -- resolves a symbolic
+ link chain to its destination.
+ * cvs.h: add prototype.
+
+ * sanity.sh (basica-6.2, basica-6.3): changed match expressions to
+ reflect new diff output.
+
+ * rcs.c (make_file_label): generate labels for files that include
+ the pathname so that output from "cvs diff" is useable by patch.
+ Looks like I came up with the mods as Andy Piper
+ <address@hidden>; his patch was on the Cyclic unofficial
+ patches page.
+
+ * sanity.sh: change remote access method from ext to fork. This
+ results in a significant speed improvement when running the
+ testsuite. The ext method on my machine (i586 120MHz Linux 2.0.35
+ with TCP wrappers installed) runs in 450% of the time of the local
+ method while the fork method runs in only 150% of the time of the
+ local method! Yow! Am I SWAPPING yet?!
+ (crerepos-6a, crerepos-6b): change to reflect different error
+ messages for fork method.
+ (modes-15): same.
+
+ * client.c (connect_to_forked_server): new routine.
+ (start_server): call the above when method is fork_method.
+
+ * root.c: add a new method named "fork". This method uses the
+ remote protocol, but does so by forking a "cvs server" process
+ directly rather than doing "rsh host cvs server" (for example).
+ This new method has few advantages for day-to-day use, but has
+ three important benefits for debugging:
+
+ 1) Most secure installations these days don't allow rsh access.
+ With this new method, we can still test the remote protocol on
+ these machines because we don't need to be able to make a local
+ TCP connection.
+
+ 2) Even if installations allow rsh access, they almost always
+ have TCP wrappers to check permissions by IP/hostname. This
+ causes a short delay for every connection. For invocations from
+ the command line, this doesn't matter much, but it adds up to a
+ significant amount of time when running the testsuite.
+
+ 3) On machines that can't (or do not usually) provide rshd
+ access (I'm thinking of WNT/W95 in particular), we can now run
+ tests of the remote protocol using this method. Indeed, we can
+ run remote protocol tests on any machine that has an
+ implementation of piped_child().
+
+ (parse_cvsroot): handle new method.
+ (error_exit, xstrdup, isabsolute): new stub functions to use when
+ compiling root.c with the DEBUG option.
+ (main): fix a few typos.
+ * cvs.h (CVSmethod): add fork_method.
+
+ * server.c (create_adm_p): use Emptydir as the placeholder
+ directory instead of "." to avoid problems with "cvs update -d" et
+ al.
+
+1998-09-22 Noel Cragg <address@hidden>
+
+ * sanity.sh (devcom-180): fixed typo in regexp.
+
+ * main.c (main): remove need_to_create_root and related code
+ (including CVS_IGNORE_REMOTE_ROOT environment variable). The
+ current implementation (just removed) of rewriting the contents of
+ the CVS/Root file isn't desirable for a number of reasons:
+
+ 1) Only the top-level CVS/Root directory is updated. If we're
+ really interested in pointing our WD at another CVSROOT, we
+ should have a separate command.
+
+ 2) With the new multiroot mods, we don't ever want to rewrite
+ CVS/Root files in the way the removed code did. Consider:
+
+ cvs -d repository1 co a
+ cd a
+ cvs -d repository2 co b
+ cvs -d repository2 update b
+
+ The update command would rewrite the contents of a/CVS/Root to
+ the incorrect value. Bad. We then wouldn't be talking to the
+ correct repository for files in a.
+
+ 3) The removed code seems to be a quick hack to support working
+ directories checked out from multiple repositories. With the
+ CVS_IGNORE_REMOTE_ROOT variable set, one could perform commands
+ as in example 2, above, without worring about updating CVS/Root
+ files. While in pre-1.10.1 recursive commands wouldn't handle
+ that working directory hierarchy, one could use commands like
+ "cvs foo -l" instead. While not great, this allows you (with a
+ lot of manual interaction) to have a multiroot WD. Since we now
+ have multiroot mods checked in, we don't need this code.
+
+ (lookup_command_attribute): while we don't need the
+ CVS_CMD_USES_WORK_DIR flag anymore (since it only was supporting
+ the need_to_create_root code), I'm leaving it in. It may come in
+ handy at some later date.
+
+1998-09-18 Jim Kingdon <address@hidden>
+
+ * version.c: Advance version number to 1.10.2.1.
+
+ * Version 1.10.2.
+
+1998-09-13 Jim Kingdon <address@hidden>
+
+ * client.c: Refuse to Copy-file to another directory
+ * sanity.sh (client): New test, tests for this.
+
+ * edit.c (editors_fileproc), watch.c (watchers_fileproc): Use
+ cvs_output rather than writing to stdout.
+ * sanity.sh (devcom): Use dotest for tests 178, 180, and 183
+ (tests that we preserve existing behavior on "cvs editors").
+
+ * commit.c (check_fileproc): Don't allow commits in Emptydir.
+ * sanity.sh (emptydir-8): Test for this change in behavior.
+
+ * sanity.sh: Add some compatibility tests to TODO comments at end.
+
+1998-09-10 Jim Kingdon <address@hidden>
+
+ * wrapper.c (wrap_add): Remove obsolete comment about -m.
+
+ * server.c (server_updated): Check for error from CVS_UNLINK.
+
+1998-09-09 Jim Kingdon <address@hidden>
+
+ * server.c (serve_root): Allocate with malloc, not xmalloc.
+
+ * root.c (set_local_cvsroot): Move memory allocation from here...
+ * server.c (serve_root): ...to here. Fixes error handling.
+
+ * root.c (parse_cvsroot): Don't call check_root_consistent;
+ parse_cvsroot is only used for local and client.
+ * root.c (set_local_cvsroot): Move check_root_consistent
+ functionality from here...
+ * server.c (serve_root): ...to here. Fixes error handling. Also
+ made the error more explicit, while I am at it.
+ * server.c (Pserver_Repos): Now static.
+ * cvs.h: Don't declare it.
+ * root.c (check_root_consistent): Removed; no longer needed.
+ * sanity.sh (pserver): New test, tests for this behavior and some
+ other basic pserver stuff.
+
+ * update.c (merge_file): Use cvs_output for "already contains the
+ differences" message. Found this one when I actually observed the
+ out-of-order bug in Real Life(TM).
+
+1998-09-09 Jim Kingdon
+
+ * find_names.c (find_dirs): Make sure to zero errno before
+ going around the loop again.
+ * find_names.c (find_rcs): Make sure to set save_errno.
+ (thanks to Alexandre Parenteau for reporting both problems).
+
+1998-09-09 Jim Kingdon <address@hidden> and Michael Pakovic
+
+ * edit.c (notify_do): Only free line if it is not NULL.
+
+1998-09-07 Jim Kingdon <address@hidden>
+
+ * cvs.h: dirs_sent_to_server should not be inside
+ AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
+ Bishop, thanks).
+
+ * lock.c, cvs.h: New variable lock_dir.
+ * parseinfo.c (parse_config): New option LockDir.
+ * lock.c (lock_name): New function, abstracts out lock file naming
+ and also supports LockDir.
+ * lock.c (lock_simple_remove, Reader_Lock, write_lock, set_lock):
+ Call it (6 places, to create/remove read/write/master locks).
+ (Lock_Cleanup): Refuse to reenter this function.
+ * sanity.sh (lockfiles): New test, tests for this feature.
+
+1998-09-03 Jim Kingdon <address@hidden>
+
+ * sanity.sh (multiroot): Expect ${TESTDIR} in output instead of
+ assuming it is /tmp/cvs-sanity (thanks to Mark D. Baushke of Cisco).
+ Clean up working directory when done (fixes apparent thinko).
+
+ * server.c (create_adm_p): Fix one "return" which didn't return a
+ value.
+ (dirswitch): Check for errors from create_adm_p.
+
+ * sanity.sh: Set LC_ALL rather than just LC_COLLATE.
+
+Wed Sep 2 02:30:22 1998 Jim Kingdon <address@hidden>
+
+ * version.c: Bump version number to 1.10.1.1.
+
+ * Version 1.10.1.
+
+1998-09-01 Jim Kingdon <address@hidden>
+
+ Administrative note regarding Noel's changes to allow one to
+ switch from one CVS root to another in a single command: The
+ ChangeLog entries for the changes which Noel just checked in
+ appear for 1998-09-01, 1998-08-28, 1998-08-25, 1998-08-19, and
+ 1998-08-18, rather than being all together.
+
+ * main.c (set_root_directory): Fix whitespace.
+ (main): Nuke new -m option and just have that message controlled
+ by -t.
+ * server.c (server): Revert the CVS_SERVER_SLEEP code back the way
+ it was in CVS 1.10. Attaching to the parent process is relatively
+ boring (you can just run "cvs server" under a debugger instead),
+ but connecting to the child process is what the old code was for.
+ * recurse.c, server.c: Remove DEBUG_NJC code.
+
+1998-09-01 Noel Cragg <address@hidden>
+
+ * server.c (do_cvs_command): add another environment variable,
+ CVS_SERVER_SLEEP2, after forking to pause the program so one can
+ attach a debugger.
+
+ * sanity.sh (crerepos): clean up crerepos-18 now that multiroot
+ works in this case.
+ (multiroot): finalize tests for local vs. remote operation.
+
+ * recurse.c (start_recursion): near the beginning, save the list
+ of directories to spoof as command-line arguments, if necessary.
+ Use that list near the end and call send_file_names to send those
+ arguments to the server.
+ (do_argument_proc): removed, since we call send_file_names now.
+
+ * main.c (main): re-initialize dirs_sent_to_server on each pass
+ through the loop for each CVSROOT.
+
+ * cvs.h: add proto for global variable which keeps track of which
+ directories have been sent to the server when in client mode.
+
+ * client.c (is_arg_a_parent_or_listed_dir): new function.
+ (arg_should_not_be_sent_to_server): new function. Tries to decide
+ whether the given argument should be sent to the server, based on
+ the current CVSROOT and the list of directories sent to the
+ server.
+ (send_repository): add the directory name to the list of
+ directories sent to the server.
+ (send_file_names): call arg_should_not_be_sent_to_server.
+
+ * add.c (add): switch the order of send_files and send_file_names
+ to make multiple repository support possible. send_files needs to
+ create a list of directories being requested so that
+ send_file_names can decide which command-line arguments to send to
+ the server for the given current CVSROOT.
+ * admin.c (admin): same.
+ * commit.c (commit): same.
+ * diff.c (diff): same.
+ * edit.c (editors): same.
+ * log.c (cvslog): same.
+ * rcs.c (annotate): same.
+ * remove.c (cvsremove): same.
+ * status.c (cvsstatus): same.
+ * tag.c (cvstag): same.
+ * update.c (update): same.
+ * watch.c (watch_addremove): same.
+ (watchers): same.
+
+1998-08-31 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Remove "debug" function; it was apparently checked
+ in accidentally by Norbert Kiesel's change.
+
+1998-08-31 Norbert Kiesel <address@hidden>
+
+ * release.c (release): modify last patch to release so that
+ save_cwd is called only once and restore_cwd is always called when
+ neccessary. Also fixed a tiny memory leak.
+
+ * sanity.sh (release): added some more tests for "cvs release"
+ including a test with two dirs and a "no" for the first one (which
+ fails without the above patch).
+
+1998-08-28 Noel Cragg <address@hidden>
+
+ * sanity.sh (crerepos-18): add new comment and change test
+ slightly to support multiroot.
+ (multiroot): add more tests.
+
+ * server.c (create_adm_p): new function.
+ (dirswitch): call create_adm_p. Modify the code to always write a
+ new CVSADM_REP file, since create_adm_p might have put a
+ placeholder there and our value is guaranteed to be correct.
+ (server): move the CVS_SERVER_SLEEP check here so we can debug
+ things at an earlier stage.
+
+ * recurse.c (start_recursion): add large comment about the ideal
+ solution to the "Argument xxx" problem.
+
+ * main.c (main): move position of debugging comment for -m flag.
+
+ * diff.c (diff): clear a static variable.
+
+ * client.c (send_file_names): check to see if we should send this
+ argument to the server based on the contents of the appropriate
+ CVSADM directory. This avoids "nothing known about foo" messages
+ and problems with duplicate modules names in multiple
+ repositories.
+ (send_a_repository): change method of calculating toplevel_repos
+ to support multiple CVSROOTs.
+ (start_server): clear some static variables.
+
+1998-08-28 Jim Meyering <address@hidden>
+
+ * sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
+ `Operation not permitted'. Solaris2.5.1 gets a different error:
+ `Invalid argument'.
+
+1998-08-26 Eric M. Hopper
+
+ * sanity.sh: Set LC_COLLATE to "C".
+
+1998-08-25 Noel Cragg <address@hidden>
+
+ * sanity.sh (multiroot): new set of tests to check the behavior of
+ multiroot.
+
+ * diff.c (diff): set options value to NULL after freeing to reset
+ the state for the next time around.
+
+1998-08-25 Jim Kingdon <address@hidden>
+
+ Fix problems with trying to rename an open file:
+ * rcs.c, rcs.h (RCS_setattic): New function.
+ * commit.c (remove_file, checkaddfile): Call it.
+
+1998-08-24 Jim Kingdon <address@hidden>
+
+ * release.c (release): Use save_cwd and restore_cwd to get back to
+ where we started, rather than hoping that CVS_CHDIR ("..") will do
+ something useful. This removes the need for most of
+ release_delete, so remove that function and inline what is left.
+ * sanity.sh (basicc): Adjust tests for this fix, also some tests
+ with multiple arguments to "cvs release" (in the non-"-d"-case, it
+ would seem like the old code would CVS_CHDIR into directories and not
+ CVS_CHDIR back, but I'm not going to investigate this and it
+ should be a moot point with this fix.).
+
+ * sanity.sh (basicc): Add tests for a serious bug in "cvs release
+ -d .".
+
+ More error handling fixes:
+ * ignore.c (ignore_files): Check for errors from opendir and
+ readdir.
+ * find_names.c (Find_Names): Check for errors from find_rcs.
+ (find_rcs, find_dirs): Comment error handling better; also return
+ an error if we got one from readdir.
+ * filesubr.c (deep_remove_dir): Also check for errors from readdir.
+ * import.c (import_descend): Print message on error from opendir
+ or readdir.
+ * commit.c (remove_file): Check for errors from CVS_MKDIR and
+ CVS_RENAME.
+ (remove_file): No need to remove the file in the temporary
+ directory; server.c now informs time_stamp_server of what is going
+ on via CVS/Entries rather than a file with a kludged up timestamp.
+ * client.c, entries.c, login.c, logmsg.c, mkmodules.c, patch.c,
+ remove.c, update.c: Check for errors from unlink_file.
+ * mkmodules.c (write_dbmfile, rename_dbfile, rename_rcsfile):
+ Check for errors from fclose, CVS_RENAME, and CVS_STAT.
+ * mkmodules.c (checkout_file): Clarify error handling convention.
+ * mkmodules.c (mkmodules): Call checkout_file accordingly.
+ * entries.c (Entries_Open): Check for errors from fclose.
+
+1998-08-21 Ian Lance Taylor <address@hidden>
+
+ * import.c (import): Output suggested merge command using
+ cvs_output_tagged rather than just cvs_output. Don't put
+ CVSroot_cmdline in the log file.
+ * client.c (importmergecmd): New static struct.
+ (handle_mt): Handle +importmergecmd tag.
+ * sanity.sh (import): Use an explicit -d in importb-2, to test
+ whether it is reported in the suggested merge command.
+
+1998-08-20 Ian Lance Taylor <address@hidden>
+
+ * sanity.sh (import): Rewrite tests to use dotest.
+
+1998-08-20 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Add comments about binary files and cvs import.
+
+1998-08-19 Jim Kingdon <address@hidden>
+
+ * sanity.sh (importc): Use ${username} in one place where I had
+ missed it.
+
+ Make import -d work client/server:
+ * client.c, client.h (client_process_import_file): Take new
+ argument, for whether -d is specified, and send Checkin-time
+ request if it is set.
+ * import.c (import_descend): Pass it.
+ * main.c, cvs.h (date_to_internet): New function.
+ * server.c (server_modtime): Call date_to_internet.
+ * server.c (serve_checkin_time): New function.
+ (requests): Add "Checkin-time" request.
+ (serve_modified): If it was sent, set the timestamp in the
+ temporary directory.
+ * import.c (import): If the client sends a -d option, complain.
+ (import): For the server, always use the timestamps from the temp
+ directory.
+ (import): Don't send a -d option to the server.
+ * sanity.sh (importc): Add tests for import -d.
+
+Wed Aug 19 15:19:13 1998 Larry Jones <address@hidden>
+
+ * sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
+ of .* since we expect to match multiple lines.
+
+1998-08-19 Ian Lance Taylor <address@hidden>
+
+ * cvs.h (CVSroot_cmdline): Declare.
+ * root.c (CVSroot_cmdline): Define.
+ * main.c (main): Set CVSroot_cmdline if the -d option is used.
+ * import.c (import): If CVSroot_cmdline is not NULL, then mention
+ an explicit -d option in the suggested merge command line.
+
+Wed Aug 19 00:28:50 1998 Noel Cragg <address@hidden>
+
+ * recurse.c (do_dir_proc): don't muck with CVS/Root directories
+ when running in server mode.
+ (do_recursion): same.
+
+ * main.c (main): add the command-line option `m' to help debug the
+ multiroot environment; it prints out the value of CVSROOT for each
+ iteration through the main loop. Also, changed the main loop so
+ that it gets executed only once when running in server mode (the
+ server will only deal with a single CVSROOT).
+
+ * recurse.c (do_recursion): change default for
+ PROCESS_THIS_DIRECTORY to true; we should always process a
+ directory's contents unless there's an existing CVS/Root file with
+ a different root than the current root to tell us otherwise.
+ (do_dir_proc): same.
+
+Tue Aug 18 14:30:59 1998 Noel Cragg <address@hidden>
+
+ * recurse.c (do_recursion): check the current value of CVS/Root
+ and add it to our list of CVSROOTs if it doesn't exist. Decide
+ whether or not to process files in this directory based based on
+ the value of CURRENT_ROOT.
+ (do_dir_proc): same.
+
+ * main.c: add two new globals -- root_directories and current_root
+ -- which keep track of the values of CVSROOT we've seen and which
+ value of CVSROOT we're currently processing.
+ (main): put the main loop for stepping through cvsroot values
+ here, since we might need to send command-specific arguments for
+ every unique non-local cvsroot. Moved blocks of code around so
+ that one-time initializations happen first (outside the loop) and
+ the other stuff happens inside the loop.
+ (set_root_directory): helper function.
+
+ * cvs.h: add prototypes for root_directories and current_root, two
+ new globals for keeping track of multiple CVSROOT information.
+
+1998-08-18 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Don't assume that the shell leaves $^ unexpanded in
+ an unquoted here-document (suggested by Bart Schaefer to help when
+ zsh is the shell).
+
+1998-08-17 Ian Lance Taylor <address@hidden>
+
+ * commit.c (checkaddfile): Don't call fix_rcs_modes.
+ (fix_rcs_modes): Remove.
+
+1998-08-16 Jim Kingdon <address@hidden>
+
+ * create_adm.c (Create_Admin): Don't condition traces on
+ SERVER_SUPPORT; SERVER_SUPPORT shouldn't do (much of) anything
+ independent of server_active.
+
+ * sanity.sh (binfiles3): New test, for yet another binary file
+ bug (sigh). Thanks to Jason Aten for reporting this one.
+
+1998-08-15 Jim Kingdon <address@hidden>
+
+ * rcscmds.c (call_diff_write_output): Update to reflect new
+ calling convention for the write_output callback.
+
+1998-08-15 Jim Meyering <address@hidden>
+
+ * update.c (merge_file): Warn about failed unlink when not due
+ to ENOENT.
+
+ * server.h (CLIENT_SERVER_STR): New macro
+ * create_adm.c (Create_Admin): Use it.
+ * entries.c (Scratch_Entry, Register): Use it.
+ * filesubr.c (copy_file, xchmod, rename_file, unlink_file): Use it.
+ * history.c (history_write): Use it.
+ * modules.c (do_module): Use it.
+ * no_diff.c (No_Difference): Use it.
+ * run.c (run_popen): Use it.
+ * server.c (server_register): Use it.
+
+1998-08-14 Jim Meyering <address@hidden>
+
+ * hardlink.c (lookup_file_by_inode): Use existence_error rather than
+ comparing errno to ENOENT directly.
+
+ * client.c (copy_a_file): Unlink destination before doing copy.
+ * sanity.sh (join-readonly-conflict): New test for this -- it would
+ fail only in client/server mode.
+
+ * sanity.sh (rcsmerge-symlink-4): Don't use `test -L', it's not
+ portable. Instead, match against the output of `ls -l'.
+ (dotest tag8k-16): Simplify tag-construction code and at the same
+ time, avoid using expr's `length' and `substr' operators. Not
+ all versions of expr support those.
+
+1998-08-14 Jim Kingdon <address@hidden>
+
+ * version.c: Bump version number to 1.10.0.1.
+
+Thu Aug 13 11:15:24 1998 Noel Cragg <address@hidden>
+
+ * version.c: Change version number to 1.10 and name to `Halibut'.
+
+ * sanity.sh (rcslib): new tests to check behavior of symlinks in
+ the repository.
+
+Wed Aug 12 15:39:38 1998 Noel Cragg <address@hidden>
+
+ * main.c (lookup_command_attribute): the `annotate' command
+ shouldn't require access to the repository. Add comment about
+ commands that do not use the working directory.
+
+Mon Aug 10 10:26:38 1998 Noel Cragg <address@hidden>
+
+ * version.c: Change version number to 1.9.30.
+
+Thu Aug 6 17:44:50 1998 Noel Cragg <address@hidden>
+
+ * server.c (serve_rdiff): change the name of the command (for
+ error reporting, etc.) from "patch" to "rdiff."
+ (serve_remove): rename from "cvsremove" to "remove."
+
+ * main.c (lookup_command_attribute): the `rdiff' command shouldn't
+ require write access to the repository.
+
+1998-08-06 David Masterson of kla-tencor.com
+ and Jim Kingdon
+
+ * commit.c (commit_filesdoneproc): Don't call strlen ("CVSROOT")
+ from within the assert statement. Apparently HP's cc compiler on
+ HPUX 10.20 has trouble with that.
+
+1998-08-06 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_checkin): When adding branch, if there is a lock on
+ the branchpoint owned by someone else, leave it alone. This
+ restores CVS 1.9 (RCS 5.7) behavior, fixing a core dump.
+ * sanity.sh (reserved): New tests reserved-16 through reserved-19
+ test for this fix.
+
+1998-08-05 Jim Kingdon <address@hidden>
+
+ * sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
+ This makes it work with GNU expr 1.12 as well as 1.16.
+
+Sun Aug 2 20:27:44 1998 Noel Cragg <address@hidden>
+
+ * mkmodules.c: add comment about TopLevelAdmin for the initial
+ contents of CVSROOT/config.
+
+1998-07-29 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
+ is defined.
+
+Tue Jul 28 19:33:08 1998 Noel Cragg <address@hidden>
+
+ * version.c: Change version number to 1.9.29.
+
+ * rcs.c (RCS_checkin): add code to follow symbolic links in the
+ repository.
+
+Sun Jul 26 05:14:41 1998 Noel Cragg <address@hidden>
+
+ * This set of changes reverts the code to pre-1.9.2 behavior and
+ does not create CVS directories at top-level (except for the
+ obvious "cvs co ."). Added a new configuration option to switch
+ between 1.9 and 1.9.2 behavior.
+
+ * recurse.c (do_argument_proc): new function.
+ (start_recursion): in the case that we've done a command from
+ top-level but have no CVS directory there, the behavior should be
+ the same as "cvs <cmd> dir1 dir2 dir3...". Make sure that the
+ appropriate "Argument" commands are sent to the server by calling
+ walklist with do_argument_proc.
+
+ * client.c (call_in_directory): only create the top-level CVS
+ directory when we're checking out "." explicitly. The server will
+ force creation of this directory in all other cases.
+
+ * checkout.c (checkout_proc): only generate the top-level
+ directory when the TopLevelAdmin=yes. Also send a message to the
+ client to do the same.
+
+ * parseinfo.c (parse_config): handle TopLevelAdmin option. Set
+ top_level_admin.
+
+ * main.c: add new variable top_level_admin.
+ * cvs.h: add extern definition for above.
+
+ * sanity.sh: since we're reverting to pre 1.9.2 behavior for
+ top-level CVS directories, I needed to make changes to a bunch of
+ tests that made assumptions about said directories.
+ (preamble): make sure to add read and execute access to everything
+ in TMPDIR before removing, since some tests make things read-only.
+ (basicb-1a, basicb-1b, basicb-9a, basicb-9b): use dotest_fail
+ because these tests check for the non-existant top-level CVS
+ directory.
+ (basicc-3, emptydir-6, emptydir-7, crerepos-6): use "rm -rf" so it
+ won't complain when trying to remove the non-existant top-level
+ CVS directory.
+ (106.5): remove imported-f2-orig.tmp.
+ (modules2-10, emptydir-4, abspath-1ba, abspath-1bb): cd into the
+ directory where files exist before using the "add" command so cvs
+ can find CVSROOT in CVS/Root.
+ (cvsadm-2): look at a different CVS/Repository file, since the
+ top-level one doesn't exist.
+ (taginfo-3): create the directory in the repository directly
+ rather than relying on the fact that the top-level CVS directory
+ was created in a previous test.
+ (serverpatch-6): update first-dir explicity, rather than relying
+ on the non-existant top-level CVS/Entries file.
+ (crerepos-18): look at CVS/Repository in a subdirectory rather
+ than in the non-existant top-level CVS directory.
+ (toplevel): add code to set TopLevelAdmin=yes.
+ (toplevel2): new tests -- same as toplevel, but TopLevelAdmin=no.
+
+1998-07-21 Jim Meyering <address@hidden>
+
+ * rcs.c (RCS_checkout): Hoist frees of rev and value.
+ Warn and return 1 in several cases rather than exiting via
+ `error (1, ...'. The latter could abort a multi-file commit
+ in mid-stream, leaving stale locks in the repository.
+
+1998-07-16 Jim Kingdon <address@hidden>
+
+ * build_src.com (rcscmds.c): Also look for include files in
+ [-.diff], just like Ian's 1998-06-18 change to Makefile.in
+
+1998-07-14 Jim Kingdon <address@hidden>
+
+ * tag.c (pretag_proc), rtag.c (pretag_proc): Don't pass RUN_REALLY
+ to run_exec. This means that taginfo does not get executed if the
+ global -n option is specified. Which makes it like loginfo, -i,
+ -e, -o, -t, -u in modules, editinfo, and verifymsg and unlike
+ commitinfo. The old behavior was pretty bad in the sense that it
+ doesn't provide any way to log only the tags which actually
+ happen.
+ * sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
+
+1998-07-12 Jim Kingdon <address@hidden>
+
+ * sanity.sh (ann-id): Write the test so that it tests for the
+ current (buggy) behavior.
+
+ * sanity.sh (taginfo): Also clean up cvsroot/first-dir.
+
+1998-07-12 Jim Meyering <address@hidden>
+
+ * sanity.sh (ann-id): New (currently failing) test for bug in how
+ rcs keywords are expanded in the output of `cvs annotate'.
+
+1998-07-12 Jim Kingdon <address@hidden>
+
+ * sanity.sh (taginfo): Write the TESTDIR into the script rather
+ than having the script look at the environment. This means that
+ it will work if TESTDIR is set by sanity.sh as well as if
+ sanity.sh finds TESTDIR in the environment.
+
+1998-07-11 Jim Kingdon <address@hidden>
+
+ * tag.c (check_fileproc): Calculate the revision to be tagged the
+ same way that tag_fileproc does.
+ * sanity.sh (taginfo): New tests, test for this (before this fix,
+ brtag had said 1.1 not 1.1.2.1).
+
+1998-07-10 Jim Kingdon <address@hidden>
+
+ * sanity.sh (unedit-without-baserev): Also clean up "2" directory.
+
+1998-07-08 Jim Kingdon <address@hidden>
+
+ * edit.c (unedit_fileproc): If the Baserev file is missing, don't
+ get the working file from CVS/Base. The previous code could get
+ you version 1.1 of the working file and put 1.2 in CVS/Entries.
+ * sanity.sh (unedit-without-baserev): New tests test for this.
+
+1998-07-02 Jim Kingdon <address@hidden>
+
+ * sanity.sh (unedit-without-baserev): Move the test itself to be
+ in the same order as in the "tests" variable.
+
+1998-07-02 Ian Lance Taylor <address@hidden>
+
+ * rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>. Don't
+ declare vasprintf.
+ (call_diff_printf_output): Remove.
+ (call_diff_stdout_callbacks): Don't initialize printf_output
+ field--it has been removed from the interface.
+ (call_diff_file_callbacks): Likewise.
+
+1998-07-01 Jim Meyering <address@hidden>
+
+ * edit.c (unedit_fileproc): Handle the case in which base_get
+ returns a NULL baserev. That happens when a file being `unedit'ed
+ exists in the CVS/Base directory, but isn't listed in the CVS/Baserev
+ file. The one case I've seen had no Baserev file at all. The symptom
+ (if you're lucky) is a segmentation fault upon unedit. If you use
+ SunOS4.1.4 for which printf prints NULL pointers as `(null)', your
+ unedit command will complete normally, but it will have corrupted
+ your CVS/Entries file and a subsequent update may result in an
+ assertion failure, a core dump, and a stale lock in the repository.
+ * sanity.sh (unedit-without-baserev): New test for this.
+
+1998-07-01 Andy Mortimer of aeat.co.uk
+ and Jim Kingdon <address@hidden>
+
+ * server.c (server_updated): Use a prototype if we are using them
+ for declarations.
+
+1998-06-29 Jim Kingdon <address@hidden>
+
+ * sanity.sh (commit-readonly): Protect keyword against expansion
+ in sanity.sh itself. Keep the keyword in the file which we check
+ in (or else this fails to test for the RCS_checkout change).
+
+1998-06-27 Jim Meyering <address@hidden>
+
+ * rcs.c (RCS_checkout): If opening the local workfile fails due to
+ lack of write access, try to chmod the file and retry the open.
+ Before, a commit could fail part way through merely because the
+ open to rewrite with newly expanded rcs keywords would fail. It's
+ easy to make this happen if you use `cvs -r' or CVSREAD and you
+ apply a patch to one of your read-only source files -- patch
+ preserves the read-only setting for the file and your next commit
+ will fail after committing that file, but before rewriting
+ (checking out) your working copy.
+ * sanity.sh (commit-readonly): New test for this.
+
+1998-06-25 Jim Kingdon <address@hidden>
+
+ * update.c (patch_file): Update comments regarding context diffs
+ to reflect diff library.
+
+1998-06-23 Jim Kingdon <address@hidden>
+
+ * sanity.sh (modules4): Add tests for reversing the order of the
+ "!first-dir/sdir" and "first-dir".
+
+1998-06-23 Jim Kingdon <address@hidden>
+ and Dave address@hidden
+
+ * sanity.sh (modes2): Touch the file before chmod'ing it.
+
+1998-06-21 Ian Lance Taylor <address@hidden>
+
+ * update.c (merge_files): Revert changes of 1998-06-19. Instead,
+ register a merged file with a dummy time stamp. Only set
+ last_register_time if we need to.
+ (join_file): Likewise. Always register a merged file, not just
+ when the merge fails.
+
+1998-06-21 Jim Kingdon <address@hidden>
+
+ * call_diff_write_output, call_diff_printf_output,
+ call_diff_flush_output, call_diff_write_stdout, call_diff_error,
+ call_diff_stdout_callbacks, call_diff_file_callbacks): Re-indent.
+
+1998-06-19 Ian Lance Taylor <address@hidden>
+
+ * update.c (merge_file): Make sure the time stamp of the file is
+ different from the time stamp we register in the Entries file.
+ (join_file): Likewise.
+
+1998-06-18 Ian Lance Taylor <address@hidden>
+
+ * rcscmds.c: Include <stdio.h>. Include either <stdarg.h> or
+ <varargs.h>. Declare vasprintf.
+ (call_diff_write_output): New static function.
+ (call_diff_printf_output): New static function.
+ (call_diff_flush_output): New static function.
+ (call_diff_write_stdout): New static function.
+ (call_diff_error): New static function.
+ (call_diff_stdout_callbacks): New static variable.
+ (call_diff_file_callbacks): New static variable.
+ (call_diff): Don't sleep. Use a callback structure when calling
+ the diff library.
+ (call_diff3): Likewise.
+
+ * rcscmds.c: Include diffrun.h.
+ (call_diff, call_diff3): Pass NULL callback parameter.
+ (diff_run, diff3_run): Don't declare.
+ * Makefile.in (rcscmds.o): New target, to use -I for diff
+ directory.
+ (zlib.o): Depend upon zlib.h.
+
+1998-06-09 Mike address@hidden
+
+ Make it compile with Sun's bundled K&R C compiler:
+ * rcs.c (count_delta_actions): Change to static to match
+ declaration.
+ * client.c (handle_wrapper_rcs_option): Rename error label to
+ handle_error to avoid clash with function name.
+
+1998-06-09 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_delete_revs): If we are trying to delete all
+ revisions, give an error rather than assertion failed.
+ * sanity.sh (basicb): New tests basicb-o* test for this.
+
+1998-06-04 Jim Kingdon <address@hidden>
+
+ * add.c (add): Only send "Directory" requests if we need to.
+
+1998-06-02 Assar Westerlund <address@hidden>
+
+ * client.c: Check for HAVE_GSS_C_NT_HOSTBASED_SERVICE rather than
+ assuming that GSS_C_NT_HOSTBASED_SERVICE is a macro.
+ * server.c: Likewise.
+
+1998-06-02 Jim Kingdon <address@hidden>
+
+ * fileattr.c (fileattr_read): Check for NULL return from strchr.
+ * sanity.sh (devcom3): New test devcom3-10 checks for this.
+
+1998-06-01 Assar Westerlund <address@hidden>
+ and Ian Lance Taylor <address@hidden>
+
+ * client.c: If HAVE_GSSAPI_H, include <gssapi.h>. Only include
+ <gssapi/gssapi.h> if HAVE_GSSAPI_GSSAPI_H. Only include
+ <gssapi/gssapi_generic.h> if HAVE_GSSAPI_GSSAPI_GENERIC_H.
+ (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
+ (connect_to_gserver): Use GSS_C_NT_HOSTBASED_SERVICE instead of
+ gss_nt_service_name.
+ * server.c: Same header file changes.
+ (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
+ (gserver_authenticate_connection): Use GSS_C_NT_HOSTBASED_SERVICE
+ instead of gss_nt_service_name.
+
+1998-06-01 Jim Meyering <address@hidden>
+
+ * sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
+
+1998-05-26 Jim Kingdon <address@hidden>
+
+ * rcs.c (annotate): Call tag_check_valid like the other functions
+ which have a -r option.
+ * sanity.sh (ann): New test ann-14 tests for this.
+
+1998-05-24 Jim Kingdon <address@hidden>
+
+ * sanity.sh (importc): New tests importc-5 through importc-8 test
+ for a (fairly obscure) regression from CVS 1.9.
+
+1998-05-23 Jim Kingdon <address@hidden>
+
+ * sanity.sh (modules2): Add comment listing cvs release tests.
+ (info): New test info-cleanup-0 tests "cvs -n release".
+
+ * rcs.c (rcsbuf_getid): Remove semicolon at end of #undef. I'm
+ kind of surprised that compilers accepted this at all, but
+ removing it squelches a warning for some compilers.
+
+ * version.c: Change version number to 1.9.28.1.
+
+ * Version 1.9.28.
+
+1998-05-22 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_cmp_file): Check for errors from CVS_FOPEN. This
+ restores the CVS 1.9 behavior (fatal error if we can't open the
+ file), and corrects an apparent oversight in Ian's 13 Apr 1997
+ change.
+ * sanity.sh (modes2): New test, tests for this.
+
+1998-05-22 Ian Lance Taylor <address@hidden>
+
+ * server.c (server_updated): Correct test for whether to unlink
+ the file.
+
+1998-05-20 Jim Kingdon <address@hidden>
+
+ * wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
+ serious bug can be fixed.
+
+1998-05-15 Jim Kingdon <address@hidden>
+
+ * checkout.c (checkout): Call server_pathname_check on the
+ argument to "cvs co -d".
+ * server.c (server_pathname_check): Add comment about how we could
+ be handling absolute pathnames.
+ * sanity.sh (abspath): Rewrite the tests which run "cvs co -d /foo"
+ for remote, to reflect this.
+
+ * sanity.sh (abspath): Also do the "cannot rename" work-around for
+ abspath-7d.
+
+1998-05-13 Jim Kingdon <address@hidden>
+
+ * commit.c (commit_filesdoneproc): Free admin_dir when done with it.
+
+1998-05-13 Jim Meyering <address@hidden>
+
+ * sanity.sh (editor): Change bogus sed command, `s/^/x&/g', to `s/^/x/'.
+ The former exercised a bug in GNU sed-3.01-beta3.
+ (emptydir-8): Add `Rebuilding administrative file database' message,
+ since now it does that.
+ * commit.c (commit_filesdoneproc): Pass only the admin directory
+ pathname to mkmodules.
+ Remove #if 0, now that it's fixed.
+
+ * status.c (cvsstatus): Rename from `status' to avoid shadowing
+ lots of locals and parameters by the same name.
+ * server.c (serve_status): Update caller.
+ * main.c (cmds[]): Update table entry.
+ * cvs.h: Update prototype.
+
+ * commit.c (commit_filesdoneproc): Remove trailing blanks.
+ (commit) [CLIENT_SUPPORT]: Remove unnecessary (and local-shadowing)
+ declaration of `err'.
+ Rename global `tag' to `saved_tag' to avoid overshadowing `tag'
+ parameters of three functions.
+ Rename global `message' to `saved_message' to avoid overshadowing
+ `message' parameter of a function.
+ Rename global `ulist' to `saved_ulist' and move dcl up with others.
+
+1998-05-12 Jim Kingdon <address@hidden>
+
+ * commit.c (commit_filesdoneproc): #if 0 the new code until it can
+ be fixed.
+
+ * commit.c (commit_filesdoneproc): Add comment explaining last
+ change.
+
+1998-05-12 Jim Meyering <address@hidden>
+
+ * commit.c (commit_filesdoneproc): Call mkmodules not just when
+ committing a file directly under CVSROOT, but also when committing
+ files in subdirectories of CVSROOT.
+
+1998-05-08 Jim Meyering <address@hidden>
+
+ * filesubr.c (xreadlink): NUL-terminate the symbolic link name.
+ Use a much smaller initial buffer length.
+ Test errno only if readlink fails.
+ Use xstrdup then free the original link name so we don't waste space.
+
+1998-05-02 Jim Meyering <address@hidden>
+
+ * rcs.c (rcsbuf_getword): Fix off-by-one error that would result in
+ an abort (the first one in rcsbuf_getkey) when operating on on some
+ ,v files with over 8192 bytes of tag and branch info.
+
+1998-05-04 Jim Kingdon <address@hidden>
+
+ * sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
+ a numeric branch.
+
+1998-05-02 Jim Kingdon <address@hidden>
+
+ * rcs.c: Add comments about getting rid of rcsbuf_getid,
+ rcsbuf_getword, and rcsbuf_getstring.
+
+ * sanity.sh (abspath): Revise the workarounds to deal with exit
+ status.
+
+1998-04-30 Jim Kingdon <address@hidden>
+
+ * sanity.sh (abspath): Work around the "cannot rename" bug.
+
+1998-04-27 Jim Kingdon <address@hidden>
+
+ * classify.c (Classify_File): Add comments about checking whether
+ command name is "update".
+
+1998-04-22 Jim Kingdon <address@hidden>
+
+ * version.c: Change version number to 1.9.27.1.
+
+ * Version 1.9.27.
+
+1998-04-20 Jim Kingdon <address@hidden>
+
+ (This diff was run by devel-cvs and everyone seemed to like it).
+ * diff.c (diff_file_nodiff): Make HEAD mean the head of the branch
+ which contains the sticky tag, not the sticky tag itself.
+ * rcs.c, rcs.h (RCS_branch_head): New function.
+ * sanity.sh (head): Update for this changed behavior.
+
+1998-04-19 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Move emptydir tests from basicb to new test emptydir.
+ This is because we now need a module definition to create Emptydir;
+ "co -d" doesn't cut it anymore.
+
+1998-04-17 Petri Virkkula
+
+ * server.c (mkdir_p): Ignore EROFS error (like for EACCES).
+
+1998-04-16 Jim Kingdon <address@hidden>
+
+ * checkout.c (checkout_proc): Don't create directories above the
+ last one specified in "co -d".
+ (build_dirs_and_chdir): Revert Noel's change of 17 Feb 1998.
+ (struct dir_to_build): New field just_chdir.
+ (build_dirs_and_chdir): Test it.
+ * sanity.sh (abspath): New tests abspath-7* test for a bug which
+ we fix, in which CVS would create bogus "D/////" entries in
+ CVS/Entries.
+ (abspath): Revise abspath-3* tests to test for the fact that we no
+ longer create directories above the last one specified in "co -d".
+ I checked that CVS 1.9 gives an error on this, so changing this
+ behavior back should be OK.
+ (cvsadm-2d3): Likewise (also checked CVS 1.9 for this case).
+ (cvsadm-2d3d): Likewise (also checked CVS 1.9 for this case).
+ (cvsadm-2d{4,5,6,7,8}, cvsadm-N2d{3,4,5,6,7,8}): Adjust for new
+ behavior (same case as cvsadm-2d3).
+ (cvsadm-2d{4,5,6,7,8}d, cvsadm-N2d{3,4,5,6,7,8}d): Remove test
+ (same case as cvsadm-2d3d).
+ (cvsadm): For remote, skip most these tests.
+ (abspath): When cleaning up, delete mod1 and mod2 rather than mod1
+ twice (longstanding bug, apparently only becomes visible if you
+ run the tests in a certain order).
+
+1998-04-14 Wilfredo Sanchez <address@hidden>
+
+ * rcs.c: variable "lockfile" was being referenced after being
+ free'd. Bad. Moved the free() call down.
+
+1998-04-12 Jim Kingdon <address@hidden>
+
+ * sanity.sh (rcs): Add test for annotate and the year 2000.
+
+ * server.c (do_cvs_command): If there are partial lines left when
+ the child process is done, send them along.
+ * sanity.sh (rcs, rcs2): Enable all tests for remote; tests for
+ this fix.
+
+1998-04-11 Jim Kingdon <address@hidden>
+
+ * client.c (client_senddate): Pass SDATEFORM not DATEFORM to
+ sscanf. This fixes a Y2K bug.
+
+ * history.c (history, select_hrec): Change since_date from time_t
+ to RCS format. Use the usual machinery (in particular, Make_Date
+ and client_senddate) so that it will work on VMS too.
+ * main.c, cvs.h (date_from_time_t): New function.
+ * sanity.sh (history): New test, to test that this didn't break
+ anything (also tests client_senddate fix).
+
+1998-04-11 Norbert Kiesel <address@hidden>
+
+ * server.c (cvs_output_binary): Shut up "gcc -Wall" by removing
+ unnecessary else if test.
+ * server.c (check_password): Fix uninitialized memory read if
+ shadow passwords are used. Also added some comments.
+ * rcs.c (RCS_checkout): Make sure to call chown with -1 for uid or
+ gid if they should not be changed
+
+1998-04-10 Jim Kingdon <address@hidden>
+
+ * sanity.sh (rcs2): New test, tests for various Y2K cases.
+ * rcs.c (getdelta): Value for "state" keyword is optional (bug
+ discovered incidentally in writing rcs2 test).
+
+1998-04-09 Jim Kingdon <address@hidden>
+
+ * filesubr.c, cvs.h (link_file): Remove; no longer used.
+
+1998-04-08 Jim Kingdon <address@hidden>
+
+ * recurse.c (do_dir_proc): Restore update_dir rather than a
+ computation which appears to, but does not necessarily, restore it
+ (reported by various people; this fix is from Greg Hudson).
+ * sanity.sh (importc): New test, tests for this fix.
+
+1998-03-27 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_lock): If the revision is already locked, give an
+ error rather than dumping core.
+ * sanity.sh (reserved): New test reserved-13c tests for this.
+
+1998-03-25 Loren J. Rittle
+
+ * import.c (add_rev): Rewrite to use RCS_FLAGS_KEEPFILE option
+ of RCS_checkin() to avoid damage to imported files instead of
+ externally undoing damage after the fact. The side effect is
+ that callers of add_rev() may now incrementally walk the
+ entries of the current directory without seeing gratuitous
+ changes to the directory structure (under at least one file
+ system under at least one OS).
+
+1998-03-18 Jim Kingdon <address@hidden>
+
+ * error.c (error): Save and restore errno. Should fix test case
+ conflicts3-23 on SCO 5.0.2. Reported by Steve Cameron.
+
+ * sanity.sh (admin): Rename admin-26-o* to admin-26-*; the "o"
+ stands for "cvs admin -o". Add comment about length of tests.
+ Use ${PLUS}.
+
+1998-03-05 Dan Wilder <address@hidden>
+
+ * Fix problem with cvs admin in which -ntag:branch
+ option associated tag with the branch's head revision.
+ Should have used branch number. Entailed in this fix,
+ the following.
+
+ * Add new functions "RCS_exist_rev", "RCS_exist_tag",
+ "RCS_tag2rev", and "RCS_valid_rev" to rcs.c. RCS_tag2rev
+ is similar to RCS_gettag, but does less interpretation.
+
+ * Plug a small memory leak.
+
+ * Add tests admin-26 through admin-29 to sanity.sh,
+ to test "cvs admin -n".
+
+1998-03-17 Samuel Tardieu <address@hidden>
+
+ * server.c (server_register): protect dereferencing timestamp in
+ the trace message when it is null, to avoid a segmentation fault.
+
+1998-03-16 Jim Kingdon <address@hidden>
+
+ * options.h.in (MY_NDBM): Rewrite the comment explaining this
+ option. It was not clear to everyone who "my" referred to, for
+ example.
+
+ * hardlink.c (list_linked_files_on_disk): Remove unused variables
+ err and p.
+ (list_linked_files_on_disk): Add comment about memory allocation
+ of return value.
+ * rcs.c (rcsbuf_getword): Shut up gcc -Wall with a "return 0".
+ (RCS_checkin): Remove unused variable fullpath.
+ * sanity.sh (hardlinks): Remove comment about spurious warnings;
+ the warnings are gone.
+
+1998-03-12 Tim Pierce <address@hidden>
+
+ New functions for parsing and writing hardlink fields.
+ * rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
+ function.
+ (putdelta) [PRESERVE_PERMISSIONS_SUPPORT]: Use it.
+ (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): New functions.
+ (getdelta): Call them, storing `hardlinks' field in vnode->hardlinks.
+ (RCS_reparsercsfile): When setting rdata->desc, xstrdup value
+ rather than rcsbuf_valcopying it (due to changes in how getdelta
+ handles keys and values in newphrases).
+
+ * sanity.sh (hardlinks): Use uglier filenames. Checking out
+ hardlinked files no longer produces the same spurious diagnostics,
+ so fix that test.
+ (hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
+
+ New infrastructure for managing hardlink lists internally...
+ * hardlink.c, hardlink.h (list_linked_files_on_disk,
+ compare_linkage_lists, find_checkedout_proc): New functions.
+ * rcs.h (struct rcsversnode) [PRESERVE_PERMISSIONS_SUPPORT]: New
+ member `hardlinks'.
+ * update.c (special_file_mismatch): Get hardlinks from
+ vp->hardlinks instead of from vp->other_delta.
+ * rcs.c (free_rcsvers_contents): Comment about freeing hardlinks
+ member.
+ (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
+ vers->hardlinks list instead of vers->other_delta.
+
+ ... and removed obsolete code from earlier revs.
+ * hardlink.c, hardlink.h (list_files_linked_to,
+ cache_hardlinks_proc, list_files_proc, set_hardlink_field_proc):
+ Removed.
+ * hardlink.h: Removed `links' member from hardlink_info struct.
+ * commit.c (commit): Remove the call to cache_hardlinks_proc.
+ (check_fileproc) [PRESERVE_PERMISSIONS_SUPPORT]: Removed reference
+ to hlinfo->links.
+ * hardlink.c (update_hardlink_info): Same.
+ * update.c (get_linkinfo_proc): Same.
+
+ * rcs.c (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Use
+ vp->hardlinks and find_checkedout_proc to find recently-updated
+ files that may be hardlinked.
+ * update.c (special_file_mismatch): Use List * structures and
+ compare_linkage_lists for rev1_hardlinks and rev2_hardlinks.
+
+1998-03-16 Larry Jones <address@hidden>
+
+ * server.c (check_password): If shadow passwords are supported but no
+ entry is found in the shadow file, check the regular password file.
+
+1998-03-07 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Rename permissions test to perms since that is what
+ each of its individual tests are named.
+ * sanity.sh (perms symlinks hardlinks): Change CVSROOT to
+ CVSROOT_DIRNAME where appropriate.
+ (perms symlinks hardlinks): Disable/adjust the meat of the tests for
+ remote.
+ (symlinks): Link to ${TESTDIR}/fumble rather than
+ /fumble/mumble/grumble. We shouldn't be making assumptions about
+ what might exist in random directories outside ${TESTDIR}.
+ * hardlink.c (cache_hardlinks_proc): Add comment about trimming
+ whitespace.
+
+1998-03-07 Tim Pierce <address@hidden>
+
+ * rcs.c (RCS_checkout): Negation bug when checking out symlinks:
+ existence_error should be !existence_error.
+ * sanity.sh (permissions symlinks hardlinks): New tests, for
+ PreservePermissions.
+
+1998-03-04 Jim Kingdon <address@hidden>
+
+ * version.c: Change version number to 1.9.26.1.
+
+ * Version 1.9.26.
+
+ * entries.c, cvs.h (Entries_Open): New argument update_dir; use it
+ in error message.
+ * add.c, checkout.c, client.c, find_names.c, import.c, recurse.c,
+ update.c: Pass it (as NULL except in call_in_directory).
+ * entries.c (Subdirs_Known): Just return if there is no CVSADM
+ directory (as in subdir_record).
+ * sanity.sh (conflicts3): New tests conflicts3-20a and
+ conflicts3-23 test for these fixes.
+
+ * commit.c (commit): Only set up hardlist if preserve_perms.
+
+ * commit.c, import.c, no_diff.c, parseinfo.c, rcs.c, rcscmds.c,
+ update.c: Omit the preserve_perms code if
+ PRESERVE_PERMISSIONS_SUPPORT is not defined. Much of that code
+ won't even compile on non-unix systems.
+
+ * hardlink.c, hardlink.h: Use the 'standard' copyright (as found
+ in server.c).
+ * commit.c, rcs.c: Minor whitespace changes to Tim's submission.
+ * commit.c (check_fileproc), update.c (get_linkinfo_proc): Remove
+ unused variable delta.
+ * hardlink.c (set_hardlink_field_proc), update.c
+ (get_linkinfo_proc): Return a value rather than falling off the
+ end of the function.
+
+1998-03-02 Tim Pierce <address@hidden>
+
+ * update.c (special_file_mismatch): Compare the hard links of the
+ two revisions.
+
+ * rcs.c (RCS_checkout):
+
+ * hardlink.c, hardlink.h: New files.
+ (hardlink_info): New struct.
+ (hardlist, working_dir): New variables.
+ (list_files_proc, cache_hardlinks_proc, set_hardlink_field_proc,
+ lookup_file_by_inode, update_hardlink_info, list_files_linked_to):
+ New functions.
+
+ * Makefile.in (SOURCES): Add hardlink.c.
+ (OBJECTS): Add hardlink.o.
+ (HEADERS): Add hardlink.h.
+ * commit.c: Include hardlink.h.
+ (commit): Save the working directory before recursing. Walk the
+ hardlink list, calling set_hardlink_field_proc on each node.
+ (check_fileproc): Add each file's link information to hardlist.
+ * rcs.c: Include hardlink.h.
+ (RCS_checkin): Save list of hardlinks in delta node.
+ (RCS_checkout): Look up the file's `hardlinks' delta field, and
+ see if any of the files linked to it have been checked out
+ already. Link to one of those files if so.
+ * update.c: Include hardlink.h.
+ (get_linkinfo_proc): New function.
+ (do_update): Extra recursion to collect hardlink info.
+ (special_file_mismatch): Reparse the RCS file if necessary.
+
+ fsortcmp is now used by several files, so let's make it extern.
+ * hash.c, hash.h (fsortcmp): New function.
+ * find_names.c (fsortcmp): Removed.
+ * lock.c (fsortcmp): Removed.
+
+1998-03-03 Jim Kingdon <address@hidden>
+
+ * sanity.sh (conflicts3): New tests conflicts3-14a,
+ conflicts3-14b, and conflicts3-21, conflicts3-22 test that we can
+ skip over a working directory with a CVSADM directory missing.
+
+1998-02-26 Jim Kingdon <address@hidden>
+
+ * sanity.sh (conflicts3): Tests conflicts3-16 and conflicts3-20
+ test that we include update_dir in messages. Rename test
+ conflicts3-14 to fix typo.
+
+Sun Feb 22 23:14:25 1998 Steve Cameron <address@hidden>
+ and Ian Lance Taylor <address@hidden>
+
+ * update.c (tag_update_dir): New static variable.
+ (update_dirent_proc): If no tag or date were specified when
+ creating a subdirectory, use the tag and/or date of the parent
+ directory.
+ (update_dirleave_proc): If we set the tag and/or date in
+ update_dirent_proc, reset them when we leave the directory.
+ * sanity.sh (branches2): New set of tests for above patch, and
+ related behaviour.
+
+Sun Feb 22 13:31:51 1998 Ian Lance Taylor <address@hidden>
+
+ * commit.c (lock_RCS): Don't call RCS_rewrite.
+
+ * update.c (patch_file): If the revision is dead, let
+ checkout_file handle it.
+ * sanity.sh (death2): Add test for above patch: add
+ death2-10a, death2-10b, death2-13a, and adjust
+ death2-{2,4,5,11,14,diff-11,diff-12,19}.
+
+ * cvs.h (RCS_FLAGS_KEEPFILE): Define.
+ * rcs.c (RCS_checkin): If RCS_FLAGS_KEEPFILE is set in the flags
+ parameter, don't unlink the working file.
+ * checkin.c (Checkin): Don't copy the file. Instead pass
+ RCS_FLAGS_KEEPFILE to RCS_checkin, and only check the file out
+ again if it has changed.
+
+1998-02-21 Jim Kingdon <address@hidden>
+
+ * rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
+ means anything just because ferror is set.
+
+Sat Feb 21 20:02:24 1998 Ian Lance Taylor <address@hidden>
+
+ * Makefile.in (clean): Change "/bin/rm" to "rm".
+
+ * buffer.c (buf_append_buffer): Correct typo in comment.
+ * rcs.c (RCS_putadmin): Likewise.
+
+Fri Feb 20 17:53:06 1998 Ian Lance Taylor <address@hidden>
+
+ * rcs.c (rcs_internal_unlockfile): Pass errno when calling error
+ because ferror is true.
+
+1998-02-20 Jim Kingdon <address@hidden>
+
+ * sanity.sh (abspath): Don't assume that we can't write to /; this
+ is the kind of thing that is sure to break sooner or later
+ (especially on Windows).
+
+ * sanity.sh: Add summary of which modules tests are which (at
+ "modules"). Move cvsadm, abspath, and toplevel next to modules.
+ Add comments to clarify the structure (such as it is).
+
+Fri Feb 20 12:47:14 1998 Larry Jones <address@hidden>
+
+ * admin.c (admin_fileproc): Better fix for -b.
+
+ * rcs.c (RCS_whatbranch): Back out previous change.
+ (RCS_getversion): Ditto.
+ (RCS_setbranch): Treat an empty revision string like a null pointer.
+
+1998-02-18 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_whatbranch): Fix indentation.
+
+ * patch.c (patch_fileproc): Check for errors from fclose; check
+ for errors from fopen properly.
+
+Wed Feb 18 16:03:37 1998 Larry Jones <address@hidden>
+
+ * admin.c (admin_fileproc): Convert -b argument from symbolic name
+ to revision number before storing in the RCS file.
+ * rcs.c (RCS_whatbranch): Allow numeric as well as symbolic revision.
+ (RCS_getversion): Take advantage of above.
+ * sanity.sh (admin): Add/revise/renumber admin-10c, admin-11a,
+ admin-12, and admin-12a to check above.
+
+ * commmit.c (lock_RCS): Minor clean-up.
+
+ * sanity.sh (abspath-6a): Don't depend on the sepcific contents of
+ CVSROOT, it depends on which other tests have been run.
+
+Wed Feb 18 01:56:04 1998 Ian Lance Taylor <address@hidden>
+
+ * rcs.c (putsymbol_proc): Use putc and fputs rather than fprintf.
+ (RCS_putadmin): Don't call RCS_symbols if the symbols have not yet
+ been converted to a list.
+
+ * rcs.c (rcsbuf_cache, rcsbuf_cache_open, rcsbuf_cache_close): New
+ static functions to avoid closing and reopening the RCS file.
+ (cached_rcs, cached_rcsbuf): New static variables.
+ (RCS_parse): Call rcsbuf_cache_close. Don't call fclose.
+ (RCS_parsercsfile): Likewise.
+ (RCS_parsercsfile_i): Call rcsbuf_cache rather than
+ rcsbuf_close. Call fclose on error. Remove comment about
+ inefficiency of opening file twice.
+ (RCS_reparsercsfile): Call rcsbuf_cache_open rather than fopen and
+ rcsbuf_open. Call rcsbuf_cache rather than rcsbuf_close and
+ fclose.
+ (RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
+ (RCS_rewrite): Likewise.
+ (RCS_checkin): Call rcsbuf_cache_close.
+
+ * rcs.c (RCS_copydeltas): Fix code which checks for an extra
+ newline in buffered data.
+
+ * rcs.c (rcsbuf_getkey): Save an indirection by using start rather
+ than *valp when trimming trailing whitespace from value.
+
+ * rcs.c (rcsbuf_get_buffered): New static function.
+ (RCS_copydeltas): After we have done all the required special
+ actions, and inserted any new revision, just copy the file bytes
+ directly, rather than interpreting all the data.
+ (count_delta_actions): New static function.
+ * sanity.sh (rcs): Add rcs-6a and rcs-6b to commit a new branch
+ revision, to force CVS to interpret all the data, rather than just
+ copying it. Adjust rcs-5 to add a branch tag. Adjust rcs-8a and
+ rcs-14 for the changes created by rcs-6b.
+
+Tue Feb 17 18:34:01 1998 Ian Lance Taylor <address@hidden>
+
+ * sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
+ the test.
+
+ * import.c (expand_at_signs): Rewrite to use memchr and fwrite
+ rather than putc.
+
+ Rewrite RCS file reading routines for speed:
+ * rcs.c (struct rcsbuffer): Define.
+ (rcsbuf_open, rcsbuf_close, rcsbuf_getkey, rcsbuf_getrevnum,
+ rcsbuf_fill, rcsbuf_valcopy, rcsbuf_valpolish,
+ rcsbuf_valpolish_internal, rcsbuf_ftell): New static functions.
+ (getrcskey, getrcsrev, getrevnum): Remove.
+ (many functions): Change to use new rcsbuf functions instead of
+ old getrcskey/getrcsrev/getrevnum functions.
+ (RCS_reparsercsfile): Add rcsbufp parameter. Change all callers.
+ (RCS_deltas): Add rcsbuf parameter. Change all callers.
+ (getdelta): Change fp parameter to rcsbuf parameter. Change all
+ callers.
+ (RCS_getdeltatext): Add rcsbuf parameter. Change all callers.
+ (RCS_copydeltas): Add rcsbufin parameter. Change all callers.
+ * rcs.h (RCS_reparsercsfile): Update declaration.
+ * admin.c (admin_fileproc): Update calls to RCS_reparsercsfile for
+ new parameters.
+
+1998-02-17 Jim Kingdon <address@hidden>
+
+ * sanity.sh (toplevel): Also clean up second-dir (not a new
+ bug, but triggered by running tests as "toplevel abspath").
+
+ * create_adm.c (Create_Admin): Just print update_dir to tell the
+ user where we are; not the whole xgetwd. Cleaner than
+ Noel's change (which also had problems in errno handling).
+ * sanity.sh (toplevel-12): Update accordingly.
+
+Tue Feb 17 02:32:21 1998 Noel Cragg <address@hidden>
+
+ [These mods make "checkout" work with "-d /absolute/pathname"
+ once again.]
+
+ * checkout.c (checkout_proc): the -d flag on the command line
+ should override the -d flag in the modules file if the latter is
+ an absolute path. The loop that assembles the list of directories
+ to build has been reorganized slightly to prepare for rewriting
+ with last_component rather than assuming '/' as a path separator.
+ Also added to that loop was some code to handle absolute
+ pathnames.
+ (build_dirs_and_chdir): add a new argument that tells this routine
+ whether or not to check before it creates and populates
+ directories or not.
+
+ * filesubr.c (last_component): return the top-level directory when
+ asked about the top-level directory.
+
+ * sanity.sh (toplevel-12): change test to reflect the new style of
+ this error message.
+
+ * create_adm.c (Create_Admin): include the directory in the error
+ message.
+
+1998-02-16 Jim Kingdon <address@hidden>
+
+ * diff.c (diff_fileproc), import.c (import, add_rcs_file), rcs.c
+ (RCS_cmp_file): Don't ignore errors from CVS_UNLINK and fclose.
+
+ * patch.c (patch_fileproc): Check for errors from fclose; if we
+ get -1 from getline check for end of file vs. error.
+
+ * rcs.c (RCS_checkout): Comment return value (0/1, not -1).
+ * commit.c, diff.c, mkmodules.c, patch.c, rcs.c, update.c: Update
+ to match this convention. Don't suppress errors based on
+ quiet or really_quiet variables.
+
+ Fix a longstanding bug which also makes stamps-8kw in make
+ remotecheck work again (it stopped working with Ian's 8 Feb 98
+ checkin):
+ * client.c, client.h (change_mode): If new argument respect_umask
+ is set, then honor the umask.
+ * client.c, server.c: Update callers.
+
+ Cleanups to Tim's checkin:
+ * rcs.c (RCS_checkout): Use existence_error not ENOENT.
+ * commit.c (checkaddfile): Remove comment about whether we want to
+ check for errors from fclose; there is no reason not to.
+ * rcs.c (RCS_checkout), update.c (special_file_mismatch): sscanf
+ on %ld requires an unsigned long, not a dev_t.
+ * update.c (special_file_mismatch): Remove unused variable
+ check_devnums.
+ * mkmodules.c (config_contents): Between two settings, use a blank
+ line not a "#" line.
+
+1998-02-15 Tim Pierce <address@hidden>
+
+ [This is the code as submitted. I'll be checking in my cleanups
+ shortly. This work sponsored by Abbott Labs. -kingdon]
+
+ Support for device special files, symbolic links, user and group
+ ownerships, and file permissions.
+
+ * parseinfo.c: (parse_config): Handle new config variable
+ `PreservePermissions'.
+ * mkmodules.c (config_contents): Add new PreservePermissions var.
+
+ * rcs.c, rcs.h (preserve_perms): New variable.
+ (RCS_checkout, RCS_checkin): Support for newphrases `owner',
+ `group', `permissions', `special', `symlink'.
+ (RCS_checkout): If `workfile' and `sout' are symlinks, remove them
+ before attempting to open them for writing.
+ * import.c (add_rcs_file): Support for newphrases. Do not attempt
+ to read data from special files or symlinks. Error message
+ `cannot fstat' is now `cannot lstat'.
+
+ New metrics for deciding when two files are different:
+
+ * update.c, cvs.h (special_file_mismatch): New function.
+ (merge_file, join_file): Call it.
+ * no_diff.c (No_Difference): Call it.
+
+ * filesubr.c (xcmp): Consider files to be different if they are of
+ different types; if they are symlinks which link to different
+ pathnames; or if they are devices with different device numbers.
+ Error message is now `cannot lstat'.
+ * rcs.c (RCS_cmp_file): Use `xcmp' to compare files, simplifying
+ the special handling for nonregular files.
+
+ * rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
+ special files, report no differences.
+
+ Miscellaneous changes to make special file support possible:
+
+ * commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
+ a symlink.
+
+ * import.c (add_rcs_file): Don't try to close fpuser if it was
+ never opened (e.g. when operating on a symlink).
+
+ * filesubr.c, cvs.h (isdevice, xreadlink): New functions.
+ * filesubr.c (copy_file): Handle special files and symlinks.
+ (xchmod): Do nothing if `preserve_perms' is set.
+
+ * commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
+ fopen/fclose calls. Copy_file no longer attempts to read data
+ from device files.
+
+ * filesubr.c (islink): Use CVS_LSTAT, not lstat.
+ * vers_ts.c (time_stamp, time_stamp_server): Use CVS_LSTAT, not stat,
+ to get symlinks right.
+ * subr.c (get_file): Same. Don't attempt to read from special
+ files or symlinks.
+
+ * classify.c (Classify_File): Doc fix.
+
+Fri Feb 13 17:07:32 1998 Eric Mumpower <address@hidden>
+ and Ian Lance Taylor <address@hidden>
+
+ Fix some file system ordering problems found on Irix 6.4:
+ * sanity.sh (basic2): Use dotest_sort for test 56.
+ (importb): Use dotest_sort for tests importb-1 and importb-2.
+ (head): Use dotest_sort for test head-1.
+
+Thu Feb 12 15:15:33 1998 Jim Kingdon <address@hidden>
+
+ * import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
+
+11 Feb 1998 Andy Piper
+
+ * server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
+
+Mon Feb 9 18:34:39 1998 Jim Kingdon <address@hidden>
+
+ Tweaks to Ian's checkin:
+ * update.c (merge_file): Remove comment about sending file to
+ client before the message. It doesn't apply to this code any more
+ (it does apply to checkout_file, but I'm not sure it is important
+ to have such a comment anyway).
+ * buffer.c (buf_default_memory_error, buf_length): Reindent.
+ * server.h: Declare struct buffer before use.
+
+Mon Feb 9 21:05:28 1998 Ian Lance Taylor <address@hidden>
+
+ * rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
+ Don't bother with ungetc.
+
+ * rcs.c (getrcsrev): Rewrite to simply call getrevnum.
+
+Sun Feb 8 15:49:39 1998 Ian Lance Taylor <address@hidden>
+
+ Don't have the server check out a revision into a file and then
+ immediately read the file; just read into a buffer instead.
+ * update.c: Include buffer.h.
+ (update_fileproc): Let checkout_file call server_updated.
+ (checkout_file): Add merging and update_server parameters. Change
+ all callers. If server_active, don't mess with backup files. If
+ server_active, copy the revision into a buffer rather than a file
+ when possible. If update_server, call server_updated. Fix
+ handling of error status.
+ (checkout_to_buffer): New static function used by checkout_file.
+ (merge_file): Let checkout_file call server_updated.
+ (join_file): Likewise.
+ * server.c (server_updated): Change file_info parameter to mode
+ parameter. Add filebuf parameter. Change all callers. If
+ filebuf is not NULL, don't read the file.
+ * server.h (server_updated): Update declaration.
+ * buffer.c (buf_free): New function.
+ (buf_append_buffer): New function.
+ (buf_length): New function.
+ * buffer.h (buf_free, buf_append_buffer, buf_length): Declare.
+
+ * buffer.c: (buf_initialize): If the memory parameter is NULL, use
+ buf_default_memory_error.
+ (buf_default_memory_error): New static function.
+ * buffer.h (BUFMEMERRPROC): Define typedef.
+ * client.c (buf_memory_error): Remove.
+ (start_server): Pass NULL rather than buf_memory_error as buffer
+ memory error function.
+
+Sat Feb 7 16:27:30 1998 Ian Lance Taylor <address@hidden>
+
+ * rcs.c (RCS_parsercsfile_i): Read the expand keyword from the RCS
+ file. We do this because Version_TS calls RCS_getexpand in many
+ common cases, and we don't want to reopen the file just for that.
+ (RCS_reparsercsfile): Skip the expand keyword.
+ (RCS_getexpand): Don't call RCS_reparsercsfile.
+
+ * rcs.c (STREQ): New macro. In all string equality tests in the
+ file, replace strcmp with STREQ.
+
+Fri Feb 6 16:14:49 1998 Ian Lance Taylor <address@hidden>
+
+ * update.c (checkout_file): If we've already removed the backup
+ file once, don't try to remove it again.
+
+ * filesubr.c (unlink_file_dir): Call stat rather than isdir, and
+ don't call unlink if the file does not exist.
+
+ * myndbm.c (mydbm_load_file): Rename line_len to line_size. Call
+ getstr rather than getline, to avoid any confusion between \n and
+ \012. Use the line length returned by getstr rather than calling
+ strlen. Remove local variable len.
+
+Fri Feb 6 13:23:46 1998 Jim Kingdon <address@hidden>
+
+ * rcs.c (RCS_parsercsfile_i): Don't suppress errors on
+ really_quiet.
+ (RCS_parsercsfile_i, RCS_reparsercsfile, RCS_fully_parse,
+ RCS_deltas, getdelta, getrcskey, RCS_getdeltatext):
+ Check for errors. Include errno in error messages. Include
+ filename in error messages. Pass new argument to getrcskey.
+ (getrcskey): New argument NAME, so we can report errors ourself.
+
+Fri Feb 6 12:10:18 1998 Ian Lance Taylor <address@hidden>
+
+ * rcs.c (RCS_reparsercsfile): Don't use ftell/fseek; just keep
+ track of whether we've already read a key/value pair. Use sizeof
+ rather than strlen for a constant string. Pass the current key
+ and value to getdelta, and get them back as well.
+ (getdelta): Add keyp and valp parameters. Don't use ftell/fseek;
+ just return the key/value pair to the caller. Don't allocate
+ vnode before we know we need it. Check one getrcskey return
+ value. Use sizeof rather than strlen for a constant string.
+
+ * rcs.c (getrcskey): Correct comment describing return value.
+
+Thu Feb 5 22:51:13 1998 Ian Lance Taylor <address@hidden>
+
+ * subr.c (getcaller): Cache the result, so that we don't keep
+ searching the password file.
+
+Wed Feb 4 23:31:08 1998 Jim Kingdon <address@hidden>
+
+ * rcs.c (max_rev): Don't prototype. Interesting that noone
+ complained about this until now.
+
+4 Feb 1998 Jim Kingdon
+
+ * rcs.c (RCS_checkin): When adding a new file, read it
+ with "rb" if binary.
+
+Fri Jan 30 11:32:41 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Also test "first-dir" as the regexp in loginfo in
+ addition to ALL.
+
+ * main.c (main): Update year in copyright notice to 1998.
+
+Thu Jan 29 00:01:05 1998 Jim Kingdon <address@hidden>
+
+ * version.c: Change version number to 1.9.25.
+
+ * Version 1.9.24.
+
+ * sanity.sh (multibranch2): File file2 and tests multibranch2-13
+ through multibranch2-15 test a slightly different case than the
+ rest of multibranch2.
+
+ * mkmodules.c (cvswrappers_contents): Rewrite. The text didn't
+ describe -k and had various other problems.
+
+28 Jan 1998 Karl Fogel and Jim Kingdon
+
+ New feature to let server tell client about wrappers.
+ * client.h (struct response): Add comment about args being
+ '\0' terminated when passed to handle_* functions.
+ * client.c (start_server): send "wrapper-sendme-rcsOptions" to
+ server iff supported.
+ (responses): new response "Wrapper-rcsOption"; allows the server
+ to send certain lines from its cvswrappers file.
+ (handle_wrapper_rcs_option): new func, handles "Wrapper-rcsOption"
+ response from server.
+ * server.c (serve_wrapper_sendme_rcs_options): new func, sends
+ server side CVSROOT/cvswrappers rcs option lines to client.
+ (requests): new request "wrapper-sendme-rcsOptions"; if received,
+ we know we can send "Wrapper-rcsOption..." to the client.
+ * wrapper.c (wrap_unparse_rcs_options): new func; repeated calls
+ step down the wrapper list returning rcs option entries, but
+ repackaged as cvswrappers lines.
+ (wrap_setup): new guard variable `wrap_setup_already_done'; if
+ this function has run already, just return having done nothing.
+ Add comment concerning environment variable.
+ * cvs.h: declare wrap_unparse_rcs_options().
+
+Tue Jan 27 18:27:19 1998 Ian Lance Taylor <address@hidden>
+
+ * rtag.c (rtag_dirproc): Call ignore_directory, and skip the
+ directory if it returns true.
+ * sanity.sh (modules4): New set of tests to test some aspects of
+ excluding directories in the modules file, including the above
+ patch.
+
+Thu Jan 22 10:05:55 1998 Jim Kingdon <address@hidden>
+
+ * server.c (serve_kopt): Check for length of arg. Based on
+ inspection of the code, plugs a buffer overrun security hole which
+ was introduced Monday.
+
+ * server.c (serve_is_modified): Don't call xmalloc; we aren't
+ allowed to call error() here. Remove duplicate (and potentially
+ confusing) variable 'p'.
+
+ * log.c (log_fileproc): Look for first character of version
+ '0' AND second character '\0', rather than OR. I didn't try to
+ come up with a test case but this looks like a simple thinko
+ (albeit one which would show up in obscure cases if at all).
+
+Tue Jan 20 19:37:53 1998 Jim Kingdon <address@hidden>
+
+ * client.c (send_dirent_proc): Don't send nonexistent directories
+ unless noexec.
+ * sanity.sh (modules2): New tests modules2-13 through modules2-18
+ test for this fix.
+
+Mon Jan 19 11:17:51 1998 Jim Kingdon <address@hidden>
+
+ * server.c (serve_kopt): New function.
+ (requests): Add "Kopt" request.
+ (kopt): New variable.
+ (serve_is_modified): Write kopts from there into entries.
+ (serve_modified): Call serve_is_modified so we do the same.
+ Declare serve_modified and serve_is_modified.
+ * vers_ts.c (Version_TS): Set ->options even for a dummy ("D"
+ timestamp) entry.
+ * import.c (process_import_file): Check for -k options.
+ * client.c (client_process_import_file): Send Kopt request.
+ (send_fileproc): Likewise, for "cvs add".
+ * sanity.sh: Enable test binwrap3-sub2-add1 for remote.
+ Add -I .cvswrappers to binwrap3-2a; adjust binwrap3-2d
+ accordingly. Tests for this fix.
+
+Mon Jan 19 08:48:59 1998 Larry Jones <address@hidden>
+
+ * sanity.sh (errmsg1): Append test 168 output to log file.
+
+Sat Jan 17 08:01:51 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh (ann-10, ann-11): Don't make assumptions about the
+ number of characters in the username.
+
+Fri Jan 16 15:34:02 1998 Larry Jones <address@hidden>
+
+ * diff.c (diff_fileproc): Free label1 and label2 when finished.
+
+ * edit.c (editor_set): Don't free edlist until after we're
+ done using it.
+
+ * rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
+
+ * subr.c (make_message_rcslegal): Don't access uninitialized or
+ unallocated memory; only strip trailing blank lines.
+ * sanity.sh (log-3): Enhance to test this fix.
+
+Fri Jan 16 12:41:03 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Add keywordlog to list of tests run by default.
+
+ * rcs.c (RCS_deltas): Don't call cvs_output if length is zero;
+ passing zero length to cvs_output does not mean output zero
+ bytes. The 27 Dec 1997 change to no longer '\0'-terminate the
+ ->text field turned this from a time bomb to a user-visible bug.
+ * sanity.sh (ann): New tests, test for this fix and other annotate
+ behaviors.
+
+Thu Jan 15 23:52:00 1998 Jim Kingdon <address@hidden>
+
+ * root.c (root_allow_ok): If inetd.conf didn't specify an
+ --allow-root options at all, we know we are in trouble. Give a
+ specific error message.
+
+Thu Jan 15 21:24:59 1998 Ian Lance Taylor <address@hidden>
+
+ * sanity.sh (dotest_sort): New variant of dotest which sorts the
+ output, for use when the output depends upon details of the file
+ system, typically when doing an import.
+ (rdiff): Use dotest_sort for rdiff-1.
+ (ignore): Use dotest_sort for 188a, 188b, 189d, 190, and 191.
+
+ * sanity.sh: (TESTSHELL): New variable.
+ (editor, info, reserved): Use TESTSHELL in temporary script.
+
+ * sanity.sh (ignore): Do all tests in subdirectory, to avoid
+ conflict between cvsroot and CVSROOT on Windows.
+ (binwrap3, mwrap, info, config): Likewise.
+
+ * sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
+ binfiles2-7-brmod.
+
+ * release.c (release_delete): If __CYGWIN32__ is defined, don't
+ worry about mismatched inodes. This is a hack, but then I think
+ the test is rather peculiar anyhow.
+
+Thu Jan 15 16:07:36 1998 Larry Jones <address@hidden>
+
+ * sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
+
+Wed Jan 14 15:43:13 1998 Jim Kingdon <address@hidden>
+
+ * Split ChangeLog into ChangeLog-97 and ChangeLog.
+ * Makefile.in (DISTFILES): Add ChangeLog-97.
+
+13 Jan 1998 Jim Kingdon
+
+ * client.c: Declare handle_mt.
+
+Tue Jan 13 22:21:30 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh: Add comment about how pwd and /bin/pwd often differ
+ in behavior (but are not guaranteed to).
+
+Tue Jan 13 13:49:53 1998 Ian Lance Taylor <address@hidden>
+
+ * sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
+
+ * update.c (checkout_file): Don't pass set_time as true to
+ Version_TS if the file is dead.
+ * sanity.sh (modules): Add tests modules-155c6 through
+ modules-155c8 to test for above patch (without the above patch,
+ modules-155c8 will fail when remote).
+
+Tue Jan 13 10:37:02 1998 Larry Jones <address@hidden>
+
+ * client.c (send_modified): Change bufsize and newsize from int
+ to size_t to avoid type clashes in call to read_and_gzip.
+
+Tue Jan 13 10:33:02 1998 Larry Jones <address@hidden>
+
+ * zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
+
+Tue Jan 13 10:26:43 1998 Larry Jones <address@hidden>
+
+ * add.c, rcs.c: Plug memory leaks.
+
+Mon Jan 12 10:45:27 1998 Larry Jones <address@hidden>
+
+ * server.c (mkdir_p): Don't try to create nameless directories
+ (i.e., given "/foo//bar", don't try to create "/foo/",
+ just "/foo" and "/foo//bar") since it isn't necessary and
+ it fails on some systems in unexpected ways.
+
+1998-01-11 enami tsugutomo <address@hidden>
+
+ * rcs.c (linevector_copy): Delete lines before overwriting them.
+
+Sat Jan 10 11:05:40 1998 Jim Kingdon <address@hidden>
+
+ * cvsrc.c, entries.c, login.c, logmsg.c, myndbm.c, patch.c,
+ release.c, server.c: Check for errors from getline, CVS_FOPEN,
+ fprintf, CVS_UNLINK and fclose. Note that the new errors are
+ nonfatal. This is because of conservatism more than because
+ it is always the best thing.
+ * login.c (get_cvs_password): Close the file when done with it.
+ * client.c (notified_a_file): If -1 return from getline, check
+ feof rather than assuming errno is set.
+
+Fri Jan 9 14:38:54 1998 Jim Kingdon <address@hidden>
+
+ * server.c (expand_proc): Also output server_dir in
+ "Module-expansion", not just in output_dir ("Created", &c).
+ * sanity.sh (modules2): New tests modules2-9 through modules2-12
+ test for this.
+
+Thu Jan 8 12:56:55 1998 Yasutoshi Hiroe <address@hidden>
+
+ * import.c (import): Don't strcat on uninitialized memory. Fixes
+ possible SIGSEGV with zero-length message.
+
+Tue Jan 6 22:56:29 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh (crerepos): Fix mistaken variable name which caused us
+ not to clean up at the end of the test.
+
+Mon Dec 22 01:40:57 1997 Jim Kingdon <address@hidden>
+
+ * add.c (add): Also look for .cvswrappers files.
+ * sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
+ test for this.
+
+Tue Jan 6 11:50:38 1998 Jim Kingdon <address@hidden>
+
+ * sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
+ test behaviors when mixing repositories.
+
+Sun Jan 4 17:40:22 1998 Jim Kingdon <address@hidden>
+
+ * version.c: Change version number to 1.9.23.
+
+ * Version 1.9.22.
+
+
+For older changes see ChangeLog-97.
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2],
Derek Robert Price <=
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2], Derek Robert Price, 2005/10/27
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2], Derek Robert Price, 2005/10/28
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2], Derek Robert Price, 2005/10/28
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2], Derek Robert Price, 2005/10/29
- [Cvs-cvs] Changes to ccvs/src/ChangeLog [signed-commits2], Derek Robert Price, 2005/10/31