summaryrefslogtreecommitdiff
path: root/src/ChangeLog-96
diff options
context:
space:
mode:
Diffstat (limited to 'src/ChangeLog-96')
-rw-r--r--src/ChangeLog-964434
1 files changed, 4434 insertions, 0 deletions
diff --git a/src/ChangeLog-96 b/src/ChangeLog-96
new file mode 100644
index 0000000..6c3a2a1
--- /dev/null
+++ b/src/ChangeLog-96
@@ -0,0 +1,4434 @@
+Mon Dec 30 15:43:48 1996 Abe Feldman <feldman@harvey.cyclic.com>
+
+ * checkout.c (build_dirs_and_chdir): Reproduced block containing
+ Create_Admin, placing it before Subdir_Register.
+ * sanity.sh (basicb): Added tests 1a and 9a to test above changes
+ to the checkout command.
+
+Mon Dec 30 13:29:14 1996 uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.h (CVSEDITPREFIXLEN): New define.
+ * logmsg.c (do_editor): Use CVSEDITPREFIXLEN when deciding whether
+ to strip off CVSEDITPREFIX and when telling the user what we will
+ strip off.
+
+Sun Dec 22 22:06:49 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * logmsg.c (do_verify): If noexec, skip the verification *without*
+ printing a message. Use cvs_output not printf. Skip verification
+ for client_active.
+
+Wed Dec 18 12:27:35 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * repos.c (Name_Repository): Add comment regarding wording of
+ "*PANIC*" error message.
+
+1996-12-18 Jim Kingdon
+
+ * client.c (call_in_directory): If the directory we are about
+ to create is the same as CVSADM as seen by fncmp (for example,
+ it is "cvs" and filenames are case-insensitive), then give a
+ fatal error.
+
+Tue Dec 17 13:14:22 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * options.h.in: Add comments about SETXID security holes.
+
+ * logmsg.c (do_verify): Reindent comments. Check errno if return
+ code from run_exec is -1, not if it is 1.
+ * sanity.sh (info): Move tests info-4 and info-8 to end and rename
+ them. Add verifymsg tests. Instead of forcibly removing loginfo,
+ remove it nicely (test info-11).
+
+Tue Dec 17 12:45:32 1996 Abe Feldman <feldman@cyclic.com>
+
+ * commit.c, import.c: Call do_verify as well as do_editor.
+ * cvs.h (CVSROOTADM_VERIFYMSG): Define.
+ * logmsg.c, cvs.h (do_verify, verifymsg_proc): New functions.
+ (verifymsg_script): New variable.
+ * mkmodules.c (filelist): Add CVSROOTADM_VERIFYMSG.
+
+Mon Dec 16 13:24:47 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * lock.c (remove_locks): New static function, copied from part of
+ Lock_Cleanup.
+ (Lock_Cleanup): Call remove_locks.
+ (Writer_Lock): Call remove_locks rather than Lock_Cleanup when
+ waiting for a lock.
+
+Thu Dec 12 10:36:37 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * login.c (get_cvs_password): If CVS_PASSWORD is set, print a
+ warning (and then proceed to ignore it). It was a documented
+ feature, so we should point people who were using it to the
+ replacement.
+
+Mon Dec 9 12:35:43 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (server_updated): Change comment to only worry about
+ umask in the rsh case.
+ (server): Create the temporary directory, and change the mode to
+ S_IRWXU.
+ (switch_to_user): Set the umask to 0, not 077.
+
+Mon Dec 9 10:58:28 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * login.c (get_cvs_password): Remove code to check for value of
+ CVS_PASSWORD. Keeping cleartext passwords in environment
+ variables is a really bad idea on Unix, since anyone can print
+ out a processes' environment using 'ps' (on BSD variants
+ anyway). Update help message.
+
+Fri Dec 6 15:59:40 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: When matching "use .cvs commit. to remove this file
+ permanently" messages, change "cvs" to "${PROG}".
+ (rdiff, binfiles): Likewise.
+ This fixes testing a program named something other than "cvs", e.g.
+ $ cp cvs cvs-test
+ $ /bin/sh <srcdir>/sanity.sh `pwd`/cvs-test
+
+1996-12-02 Jim Kingdon
+
+ * client.c: In comment saying that socket buffers don't
+ implement the blocking routine, say they are blocking.
+ * buffer.h (struct buffer): In description of input function,
+ describe blocking, non-blocking, and NEED more fully. Say
+ what happens if we read a nonzero amount less than NEED and
+ then get end of file.
+ * client.c (socket_buffer_input): If NEED == 0, still call
+ recv (once). Handle the case where recv returns 0.
+
+Sat Nov 30 15:10:07 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * subr.c, cvs.h (file_has_markers): New function.
+ * rcs.h (RCS_MERGE_PAT): Now a fixed string not a regexp.
+ * options.h.in (GREP): Removed; no longer used.
+ * update.c (update_fileproc), commit.c (check_fileproc): Call
+ file_has_markers rather than GREP.
+ * rcscmds.c (RCS_merge): Just give a fatal error in the case where
+ we had been calling GREP. I suspect noone is using this code
+ any more.
+ * sanity.sh (conflicts): Rewrite tests 131, 132, and 133 to use
+ dotest; tests that the above changes didn't break anything.
+
+Fri Nov 29 09:06:41 1996 fnf@ninemoons.com (Fred Fish)
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * checkout.c (safe_location): Only call readlink if HAVE_READLINK.
+
+ * run.c (piped_child, filter_stream_through_program): If
+ HAVE_VFORK, call vfork not fork.
+ * run.c (run_exec): Add comment about why we use vfork.
+
+Mon Nov 25 12:48:31 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * release.c (release): Don't return after processing the first
+ argument; that kind of defeats the purpose of having a loop, eh?
+ For client, close the connection after we've processed them all.
+ * sanity.sh: Remove workaround for modules2-8 test; tests for
+ above fix. Adjust modules2-6 test to answer both questions.
+
+ * login.c: Reindent (all of get_cvs_password, a handful of lines
+ elsewhere).
+
+ Cleanups to release, mostly cosmetic:
+ * release.c (release_server): New function; breaks out server code
+ from the release function.
+ * release.c: Move delete_flag inside the release function.
+ * release.c (release): Reindent. Rewrite comments about how the
+ implementation could be improved. Don't declare variables as
+ "register". Include errno in error message. Don't cast result of
+ printf to void. Remove unused variable srepos.
+ * release.c: Remove comments at top of file about what it does.
+ They were not particularly coherent and they were also out of date
+ (I think). Likewise for comment in release function about "if we
+ are in a repository".
+ * release.c: Change "module" to "directory" in a few messages
+ since that is what is meant.
+ * sanity.sh: In tests ignore-195 and ignore-193, change expected
+ message accordingly.
+
+Sun Nov 24 11:30:55 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Clarify a few items in the todo list.
+
+ * log.c (log_parse_date): Use the "end" of the epoch not "next
+ week" as the time which means "no end time".
+ * sanity.sh (rcs): New test, tests dates and importing RCS files.
+
+1996-11-19 Jim Kingdon
+
+ Visual C++ lint:
+ * hash.c: Declare qsort_comp.
+ * update.c: Declare isremoved.
+
+1996-11-19 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * root.c, repos.c, modules.c, create_adm.c: Change all calls to
+ strip_path to strip_trailing_slashes. Basically strip_path is
+ just an unneeded complication (we should keep the pathname the way
+ the user specifies it, and the system can worry about things like
+ consecutive /'s if it wants to). Stripping trailing slashes is
+ potentially dubious for the same reason, but it is a somewhat
+ different case which I won't try to tackle now.
+ * cvs.h (strip_path): Remove declaration.
+
+Tue Nov 19 15:18:13 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ There are a lot of details to this change, but the concept is
+ relatively simple: make it so that for every CVSLCK lock that we
+ might take out, there is a flag which is set iff we have created
+ the CVSLCK directory.
+ * lock.c (struct lock): New structure.
+ * lock.c: Remove static variables repository and cleanup_lckdir.
+ They are replaced by global_readlock.repository and
+ global_readlock.have_lckdir, respectively (except insofar as the
+ rest of these changes change the concept of cleanup_lckdir).
+ New static variable global_readlock.
+ (Reader_Lock, Lock_Cleanup): Use global_readlock in place of
+ repository.
+ (lock_simple_remove, set_lock, clear_lock, write_lock): Take a
+ struct lock * instead of just a repository. Set/clear
+ lock->have_lckdir instead of cleanup_lckdir.
+ (set_writelock_proc, unlock_proc): Pass ->data, not ->key, to
+ write_lock or lock_simple_remove.
+ (lock_filesdoneproc,lock_dir_for_write): Allocate a struct lock,
+ put it in the ->data field, and fill in its fields.
+ (lock_simple_remove): Use lock->have_lckdir as the sole test for
+ whether the CVSLCK directory needs to be removed. Add
+ comments about why readlock and writelock variables don't tell us
+ for sure whether locks exist.
+ (lock_simple_remove, clear_lock): Use SIG_beginCrSect and
+ SIG_endCrSect to ensure that ->have_lckdir is set to 0 iff the
+ CVSLCK directory was really removed.
+ (lock_simple_remove): Check for errors removing CVSLCK directory.
+ (lock_simple_remove, Check_Owner, set_lock): Remove all code which
+ checks userids (including all of Check_Owner and all the AFCVS
+ code). It was bogus if several CVS processes with the same userid
+ were running (common if several users share a userid; a common
+ practice with remote CVS), and with the rest of the changes here
+ should not be needed.
+
+1996-11-16 Paul Eggert <eggert@twinsun.com>
+
+ * rcs.c (RCS_deltas): Fix unintended trigraphs.
+
+Fri Nov 15 13:06:03 1996 Tom Hageman <tom@basil.icce.rug.nl>
+
+ * diff.c (diff_fileproc): In printing error messages, use the
+ correct filename for which the error occurred.
+
+Sun Nov 10 21:13:38 1996 Paul Sanders <p.sanders@dial.pipex.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c: Use all the right cruft which goes along with
+ including sys/time.h.
+
+ * server.c: Include a "copyright" notice.
+
+ * server.c: If HAVE_WINSOCK_H, include winsock.h.
+
+ * server.c (server): Only set a handler for SIGHUP if it is
+ defined. Likewise for all the other signals.
+
+ * server.c (do_cvs_command): Use DEVNULL not /dev/null.
+
+Fri Nov 08 12:14:20 1996 Jim Kingdon
+
+ IBM ICC (OS/2) lint:
+ * add.c (add): Only declare begin_added_files if
+ SERVER_SUPPORT.
+ * client.c (init_sockaddr): Change port argument from
+ unsigned short to unsigned int. Change hostname
+ argument from const char * to char *.
+
+Sun Nov 3 18:24:28 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * sanity.sh (info): add new tests that check behavior of format
+ string substitution in loginfo file.
+
+Sat Nov 2 09:39:09 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (do_deferred_progs): Don't access memory once it is
+ freed (we already did it right for checkin_progs; do the same
+ thing for update_progs).
+
+ * update.c, client.c, classify.c, client.h, diff.c, commit.c,
+ create_adm.c: Nuke more PATH_MAX.
+
+Fri Nov 1 18:22:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * error.h: Define PROTO if it is not defined.
+
+Wed Oct 30 08:53:20 1996 jalving@ibm.net
+
+ * patch.c (patch_fileproc): Set line1 and line2 to NULL up-front
+ (before the first "goto out") so we don't try to free them.
+
+Wed Oct 30 08:53:20 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (remove_file, commit_filesdoneproc), run.c (run_print,
+ run_exec), modules.c (open_module, cat_module, do_module), update.c
+ (update_dirleave_proc), tag.c (tag_fileproc): Call cvs_out* rather
+ than stdio.
+ * server.c (serve_expand_modules): Remove comment about do_module
+ writing to stdout/stderr; above changes should fix this.
+
+Tue Oct 29 17:23:59 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * status.c (tag_list_proc): When printing the tag name, don't
+ truncate it to 25 characters.
+
+Tue Oct 29 12:49:07 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * add.c, checkin.c, checkout.c, filesubr.c: Nuke arbitrary limit
+ of PATH_MAX. Many more such limits surely remain.
+
+ * fileattr.c (fileattr_set): Set attrs_modified *after* we might
+ call fileattr_read, because fileattr_read clears it.
+ * sanity.sh (devcom2): New tests, test for above fix and other
+ behaviors I discovered in the process of looking into it.
+
+Mon Oct 28 08:55:57 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ The following changes are to ensure that SYSTEM_CLEANUP is always
+ called.
+ * error.c, cvs.h, main.c: Remove error_set_cleanup and related
+ machinery. It was for a time when error.c was intended to be
+ shared with other programs, but that is no longer true.
+ * error.c, error.h (error_exit): New function; like error_cleanup
+ from main.c but also calls SYSTEM_CLEANUP and exit (EXIT_FAILURE).
+ * error.c (error, fperror): Call error_exit instead of doing it
+ ourself.
+ * server.c (server, serve_valid_responses, switch_to_user,
+ check_password, pserver_authenticate_connection,
+ kserver_authenticate_connection): Call SYSTEM_CLEANUP before exit.
+ * add.c, client.c, import.c, main.c, mkmodules.c, modules.c,
+ recurse.c, server.c, tag.c, update.c: Call error_exit ()
+ instead of exit (EXIT_FAILURE).
+
+Sun Oct 27 08:34:16 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (conflicts): New test 128.5 tests "cvs co -p" in an empty
+ directory (like 126.5), but when the file has nonempty contents.
+ * rcs.c (RCS_checkout): If writing to stdout, use cvs_output
+ rather than fwrite.
+ * update.c (checkout_file): Call cvs_stderr not fprintf.
+ These changes should fix some out-of-order bugs which show up in
+ situations like conflicts-126.5 and conflicts-128.5.
+
+ * mkmodules.c (checkout_file): Call RCS_checkout rather than
+ run_exec on RCS_CO.
+
+Sat Oct 26 18:29:46 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (rdiff): cd out of testimport directory and remove it
+ when done.
+
+ * sanity.sh (info): Adjust tests to reflect fact that loginfo was
+ created by cvs init.
+
+ * sanity.sh (ignore): Change test 187a1 to allow any number of
+ files in CVSROOT, not just modules.
+
+ * sanity.sh (modules): In tests 148a0 and 148a1, don't expect a
+ module which defines CVSROOT to itself, since we don't define one
+ any more. Also change test to rewrite modules rather than append
+ to it (in case any previous tests are changed to do something with
+ modules). Change test 155b to allow any number of files in
+ CVSROOT, not just modules.
+
+ * add.c (add_directory): Set rev_old and rev_new fields of struct
+ logfile_info to NULL (prevents us from trying to free them later).
+ * commit.c (find_fileproc), import.c (import): Likewise.
+
+ * sanity.sh (crerepos): New tests, to test alternate ways of
+ creating a repository and related matters.
+ * sanity.sh: Remove tests 1 through 3 and related cruft; replace
+ them with a new test 1 which merely tests "cvs init". By doing
+ the obscure stuff in crerepos we avoid having to do all this stuff
+ any time we run any single test.
+
+Sat Oct 26 16:19:48 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * main.c (main): If HAVE_TZSET is #defined, call tzset. This is
+ harmless on all systems I know of, and required on some.
+
+Fri Oct 25 13:20:44 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * diff.c (diff_file_nodiff): When setting use_rev1, only return
+ DIFF_SAME if empty_file is DIFF_DIFFERENT and ts_user is not
+ NULL. Don't get confused by a vn_user field of "0" or one
+ starting with '-'.
+ * sanity.sh (death2): Add new death2-diff-{1,2,7,8} tests for
+ above patch. Renumber existing death2-diff tests to make room.
+
+Fri Oct 25 12:38:29 1996 Jim Wilson <wilson@cygnus.com>
+
+ * sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "_"
+ in temp file names. The system (tmpnam or whatever) generates
+ these names so they vary from system to system.
+
+Fri Oct 25 07:52:44 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * logmsg.c (logfile_write): Give an error for several cases which
+ should not be legal. Adjust comments accordingly.
+ * mkmodules.c (loginfo_contents): Make description of loginfo much
+ more concise. This should be a reminder, not full documentation.
+
+Tue Oct 22 10:37:37 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * commit.c (update_delproc): free structure members rev_old and
+ rev_new if they have been allocated.
+
+ * mkmodules.c: change loginfo_contents to include a description of
+ the new format string.
+
+ * logmsg.c (logfile_write): change syntax of format string.
+
+Sat Oct 19 16:09:55 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ For reference, this takes CVS's text segment from 348348 bytes to
+ 347420 bytes.
+ * server.c (requests): Change Directory to rq_essential
+ per change in doc/cvsclient.texi.
+ * client.c: Remove use_directory and all code which executed if
+ it wasn't set. This includes the get_short_pathname function.
+ * server.c: Likewise, for use_dir_and_repos.
+ (serve_repository): Give a fatal error.
+ * server.c (requests): Remove Lost. Change Unchanged to rq_essential.
+ (serve_lost): Removed.
+ * server.c, server.h, client.c, vers_ts.c: Remove use_unchanged,
+ code to set it, and all code which executed if it wasn't set.
+
+Sat Oct 19 12:44:08 1996 J. Richard Sladkey <jrs@world.std.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * hash.c (sortlist, new function qsort_comp): Rewrite to use qsort
+ instead of insert sort. Changes algorithm from n^2 to n log n
+ (assuming qsort is implemented with quicksort or similar).
+
+Sat Oct 19 12:44:08 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (basic2): In test basic2-64, use -x and specify types
+ which exclude E; the test is not built to deal with E (or any
+ other new types).
+
+Sat Oct 19 12:00:00 1996 Mark Mitchell <mmitchell@usa.net>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (isemptydir, new function isremoved): Avoid pruning
+ directories that contain files marked for removal but not
+ comitted.
+ * update.c, update.h (isemptydir): Now extern, not static.
+ * update.c (isemptydir): New parameter might_not_exist handles
+ difference in functionality from old client_isemptydir. Bring
+ over the improved error checking from client_isemptydir.
+ * client.c (client_isemptydir): Removed; isemptydir now suffices.
+ * update.c (update_dirleave_proc), client.c
+ (process_prune_candidates): Update callers.
+ * sanity.sh (deep): Add tests deep-rm* for above fix.
+
+Fri Oct 18 15:53:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (devcom): Add tests devcom-some* to test watching just
+ a single file.
+
+ * root.c (Name_Root): Use isabsolute to test whether a pathname is
+ absolute instead of checking for the first character being '/'.
+ (Reported by Antoine P. Brusseau <brusseau@jprc.com>).
+
+ * commit.c (checkaddfile): Free rev only if it is non-NULL (thanks
+ to cwong@world.std.com (Christopher Wong) for diagnosing this; the
+ death2-15 test in sanity.sh hits it).
+
+Thu Oct 17 15:21:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Reenable rdiff tests. Delete rdiff-9 test to reflect
+ the fact that the change to add a -K option has not been
+ incorporated. Adjust rdiff-8 test to reflect the fact that the
+ change to change the default keyword expansion for the first
+ revision has not been incorporated.
+ * patch.c (patch_fileproc): Pass the symbolic revision to
+ RCS_checkout so that Name can be expanded correctly. Reinstates
+ one of the 30 Sep 96 changes and fixes a bug which the sanity.sh
+ rdiff test tests for.
+
+ Reinstate change from 30 Sep 96:
+ * patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
+
+ * client.c (process_prune_candidates): Do not ignore errors from
+ unlink_file_dir.
+
+ * filesubr.c (deep_remove_dir): If rmdir returns an error other
+ than ENOTEMPTY or EEXIST, return -1 not 0. Add workaround for AIX
+ header bug.
+
+Tue Apr 30 08:21:27 1996 Mike Sutton <mike_sutton@dayton.saic.com>
+
+ * checkout.c, history.c: added logging/reporting of cvs export
+ command
+
+Wed Oct 16 10:16:57 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Remove tests 4, 4.5, and 4.75; this functionality is
+ already tested by 45, 45.5 and other tests.
+ (ignore): New tests ignore-192, ignore-193, ignore-194, and
+ ignore-195 test output from "cvs release".
+ (modules2): New tests modules2-6, modules2-7, and modules2-8 test
+ ability of cvs release to handle multiple arguments. Since it
+ currently doesn't, the tests are kludged.
+
+ * server.c, cvs.h (cvs_flushout): New function.
+ * recurse.c (do_file_proc): Call it.
+ * server.c (cvs_outerr): Call fflush (stdout) in non-server case.
+ * main.c (main): Don't call setvbuf. The code was incorrectly
+ checking for "patch" (it really is "rdiff"); the concern about
+ slowing down large amounts of output is not specific to rdiff
+ (it applies to "log" for example); and the above changes should
+ meet the need.
+
+Tue Oct 15 10:22:10 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ This is intended to facilitate some future cleanups to the
+ locking, but by itself it is a simple, conversative rearrangement:
+ * tag.c (locked_dir, locked_list): Move from here...
+ * lock.c: ...to here.
+ * lock.c (Lock_Cleanup): If locked_dir is set clean it up too.
+ * tag.c (tag_unlockdir): Removed; with the above change
+ Lock_Cleanup suffices.
+ * tag.c (tag_lockdir): Move from here...
+ * lock.c (lock_dir_for_write): ...to here.
+ * tag.c (tag_fileproc), rtag.c (rtag_fileproc): Update callers.
+ Move comments concerning why we are locking what we are from
+ tag_lockdir to here.
+ * tag.c (tag_filesdoneproc), rtag.c (rtag_filesdoneproc):
+ Update callers.
+ * lock.c (Writer_Lock): Made static.
+ * cvs.h: Update declarations.
+ * server.c (server_notify): Call lock_dir_for_write rather than
+ calling Writer_Lock ourselves.
+
+ This is intended to facilitate some future cleanups to the
+ locking, but by itself it is a simple, conversative rearrangement:
+ * lock.c (Lock_Cleanup): Also dellist (lock_tree_list).
+ * lock.c, cvs.h (lock_tree_cleanup): Removed; with the above change
+ Lock_Cleanup suffices.
+ * commit.c, edit.c, watch.c: Change callers.
+
+Sat Oct 12 21:41:46 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (deep): Add comment about whether the deep-4b behavior
+ is considered desirable.
+
+Sat Oct 12 20:36:36 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * client.c (client_send_expansions): Add build_dirs parameter.
+ Change all callers.
+ (send_dirent_proc): Get build_dirs from callerdat; if it is
+ zero, don't send a nonexistent directory to the server.
+ (send_files): Add build_dirs parameter. Change all callers.
+ * client.h (send_files): Update prototype.
+ (send_files_contents): Remove prototype for nonexistent function.
+ (client_send_expansions): Update prototype.
+ * sanity.sh (deep): Add deep-4b test for above patch.
+
+Fri Oct 11 14:07:12 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ gcc -Wall lint:
+ * logmsg.c (title_proc): Remove unused variables title and comma.
+
+ * sanity.sh (modules2): Don't be picky about whether we are
+ checking in 1.3 or 1.2 of modules; it depends on whether we are
+ running all the tests or just some.
+
+Thu Oct 10 14:52:06 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c, server.h (server_dir): New variable.
+ (output_dir): If it is set, send it before the directory name.
+ * modules.c (do_module): Set it, in the case of & modules, and
+ restore it when done.
+ * sanity.sh (modules): Don't clean up first-dir before starting;
+ tests now clean up for themselves at the end.
+ (modules2): New tests, for above fix.
+
+Wed Oct 9 15:52:34 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * sanity.sh: Barf immediately if run as root.
+
+ * rcs.c (RCS_getrevtime): When giving a date to get_date, use the full
+ year, not the year - 1900, so that dates after 1999 are parsed
+ correctly. (Change thanks to Paul Eggert.)
+
+Wed Oct 9 10:59:11 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ Clean up gcc -Wmissing-prototypes lint:
+ * cvs.h (admin, add, checkout, commit, diff, history, import,
+ cvslog, login, patch, release, cvsremove, rtag, status, tag):
+ Declare.
+ * server.c, main.c: Don't declare them here. Don't declare update
+ either (which is already declared in cvs.h).
+ * tag.c, cvs.h, main.c, server.c: Rename tag to cvstag to avoid
+ name conflicts.
+ * client.c (init_sockaddr, auth_server_port_number), entries.c
+ (Entnode_Create, Entnode_Destroy), hash.c (nodetypestring),
+ login.c (construct_cvspass_filename), server.c
+ (supported_response), wrapper.c (wrap_matching_entry): Make static;
+ prototype.
+ * hash.c (printlist): Prototype.
+ * myndbm.c (mydbm_load_file): Change declaration to prototype.
+
+Tue Oct 8 22:35:34 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (log2): Re-add these tests; they were deleted for 1.9
+ (because they were thought to be destabilizing and/or due to
+ confusion/accident), but they can be put back now.
+
+ * sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "-"
+ or "%" in temp file names. The system (tmpnam or whatever)
+ generates these names so they vary from system to system.
+
+Tue Oct 8 12:37:09 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * options.h.in (HAD_RCS4): Remove; no longer used.
+
+Sun Oct 6 15:58:11 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * The following changes address problem #56 in the GNATS database
+ on harvey.cyclic.com:
+
+ * logmsg.c (str_list_format): new global -- contains the format
+ for items to be placed in str_list.
+ (Update_Logfile): move code that creates the "title" string...
+ (logfile_write): ...to here. Pull apart the filter program and
+ look for a format string, extracting it if there is one.
+ (title_proc): write a given filename/value based on the format
+ string.
+
+ * commit.c (classify_file_internal): new routine, old code (needed
+ to use the code in more than one place). Determines the status
+ and version information about a file.
+ (check_fileproc): use classify_file_internal. Fill in the rev_old
+ field for the struct logfile_info.
+ (commit_fileproc): Fill in the rev_new field.
+
+ * cvs.h (struct logfile_info): add two new fields -- rev_old and
+ rev_new -- that keep track of revision numbers across commits.
+
+Fri Sep 27 15:21:47 1996 Peter Wemm <peter@spinner.dialix.com>
+
+ * logmsg.c (do_editor): Do not use editinfo if running on the client.
+
+Fri Oct 4 15:11:46 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (server_cleanup): Temporarily clear noexec when calling
+ unlink_file_dir. This is so we clean up the temp directory even
+ when the -n global option is specified.
+
+Wed Oct 2 10:47:33 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * client.c (send_repository): initialize some variables before
+ first usage
+
+Tue Oct 1 13:01:24 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ Revert some of Greg's changes; they're welcome later, but we're
+ trying to keep CVS stable for pre-release testing at the moment.
+ * checkin.c, commit.c, cvs.h, diff.c, import.c, main.c, no_diff.c,
+ options.h.in, patch.c, rcs.c, rcs.h, rcscmds.c, sanity.sh, update.c:
+ Revert changes of Sep 29 and 30.
+
+Tue Oct 1 13:17:31 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Make sure the server temporary directory is removed even if
+ Max-dotdot is used.
+ * server.c (orig_server_temp_dir): New static variable.
+ (serve_max_dotdot): Don't free server_temp_dir if it is the same
+ as orig_server_temp_dir.
+ (do_cvs_command): Use orig_server_temp_dir in error message.
+ (server_cleanup): Remove orig_server_temp_dir.
+ (server): Set orig_server_temp_dir. Remove incorrect indentation
+ of error message.
+
+ * import.c (update_rcs_file): Restore new argument to
+ RCS_checkout, removed in last patch.
+
+Tue Oct 1 00:32:55 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * import.c: Revert Greg Woods' changes of Sep 30. We may want
+ them later, but not before 1.9.
+
+Mon Sep 30 23:31:01 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * log.c (log_fileproc): Now that we might actually find a "desc"
+ node in rcsfile->other, thanks to Ian's change below, we had
+ better deal correctly if we find a null pointer in it.
+
+Mon Sep 30 13:55:03 1996 Greg A. Woods <woods@most.weird.com>
+
+ * main.c (main): don't set need_to_create_root for "cvs init"
+ either, just in case it's run from within a valid working
+ directory.
+
+ * sanity.sh (testcvs): oops, forgot to comment out test version I
+ was using...
+
+ * diff.c (diff_fileproc): use Diffbin instead of DIFF (3).
+ * patch.c (patch_fileproc): use Diffbin instead of DIFF.
+ * commit.c (check_fileproc): use Grepbin instead of GREP.
+ * rcscmds.c (RCS_merge): use Grepbin instead of GREP.
+ * update.c (patch_file): use Diffbin instead of DIFF.
+ (update_fileproc): use Grepbin instead of GREP.
+ * cvs.h (Diffbin): new declaration.
+ (Grepbin): new declaration.
+ (DIFFBIN_ENV): new manifest to name DIFFBIN environ var.
+ (GREPBIN_ENV): new manifest to name GREPBIN environ var.
+ * option.h.in (DIFFBIN_DFLT): renamed from DIFF.
+ (GREPBIN_DFLT): renamed from GREP.
+ * main.c (main): new variables diffbin_update_env and
+ grepbin_update_inv, ala rcsbin_update_env.
+ (main): new options -D diffbin and -g grepbin
+ (usg): describe new options -D diffbin and -g grepbin.
+ (Diffbin): new global variable for DIFF path.
+ (Grepfbin): new global variable for GREP path.
+
+ * options.h.in (RCSBIN_DFLT): mention this needs to be set if
+ your PATH isn't set properly by rshd.
+
+ * sanity.sh (rdiff): re-do Jim's change, but with the original
+ keywords I had intended (should be a bit more like real life), and
+ Jim's better RCS date and user matching form.
+ [I guess that's what I get for checking things in at 3am! ;-)]
+
+Mon Sep 30 17:00:20 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_reparsercsfile): Store desc field value in main RCS
+ node data, not in version specific data.
+ * sanity.sh: Enable log2 test (for local CVS only).
+
+Mon Sep 30 13:01:45 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (log2): New test, tests cvs add -m. Not yet enabled
+ in "tests" because CVS currently flunks this test.
+
+ * sanity.sh (rdiff, basic2): Allow "cvs server" as well as "cvs
+ checkout" and friends in messages. In testing output of cvs
+ status, don't require a tab which isn't there for remote. Skip
+ test rdiff-9 for remote. In test basic2-64, add missing slash in
+ the pattern which gets used for remote.
+
+ * sanity.sh (rdiff): Fix strings we were matching against which
+ got keyword-expanded in checking in sanity.sh.
+
+Mon Sep 30 03:21:37 1996 Greg A. Woods <woods@most.weird.com>
+
+ * sanity.sh: change all regexpr literal '.' to '\.'
+ (basic2): why are tests 34 & 42 commented out (because
+ of 'diff -u'?)?
+ add tests 56[abc], 57a, and 58a to test import to the main
+ branch (i.e. branch '1').
+ (rdiff): new test section for rdiff -K, etc.
+ (dotest): remove dotest.ex? before running a new test.
+ (dotest_fail): remove dotest.ex? before running a new test.
+ (dotest_internal): write expected output to dotest.exp, or if $4
+ also used, to dotest.ex1 and dotest.ex2.
+ (patch): renamed this test to 'serverpatch'.
+ (dotest_lit): rename dotest.res to dotest.exp ala dotest().
+ remove dotest.ex? before running a new test.
+ (DOTSTAR): mention the bug exists up to 1.12
+ (ENDANCHOR): mention the bug exists up to 1.12
+ (dotest_all_in_one): new function for debugging.
+ (dotest_line_by_line): new function for debugging.
+ (dotest_internal_debug): new function for debugging.
+ (dotest_internal): stop emulating the ancient tests and don't spew
+ the dotest.tmp contents onto $LOGFILE -- it's just too much
+ meaningless noise. Only do this if the test fails. Many tests
+ don't use dotest() yet, so this isn't quite so helpful as it might
+ otherwise be.
+ (TODO): mention CVS/* files, especially CVS/Root.
+
+ * main.c (main): add a commented out piece of code to suggest that
+ there should be a function lookup_command_attribute() that could
+ tell us various things about internal commands, such as whether
+ they use CVS/Root, or if they're repository-only, or if they need
+ a working directory, etc....
+ (main): don't set need_to_create_root if command doesn't use a
+ local working directory.
+
+ * patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
+
+ * error.c (fperror): protect declaration for un-defined __STDC__
+
+ * import.c (import): permit imports to a branch with zero dots,
+ i.e. the trunk.
+ (update_rcs_file): don't detect conflicts if importing to the
+ trunk.
+ (import): add hint that we should allow a module name, instead of
+ just a pathname relative to $CVSROOT.
+ (add_rcs_file): if importing to trunk, do it with ci(1).
+
+ * import.c: XXX the following are all #if 0'ed out until a full
+ implementation can be designed....
+ (cbranch): new variable to support conflict detection on another
+ branch set by -c.
+ (import): truncate -b and -c optarg if to fit in static storage.
+ (import_usage): describe -c
+
+ * rcscmds.c (RCS_checkout): add new argument 'rcsver'. If rcsver
+ is set, turn on 'keywords' to force call to RCS_exec_checkout.
+ * rcs.c (RCS_exec_checkout): add new argument 'rcsver'. Pass
+ 'rcsver' to "co" with run_arg().
+ * cvs.h: (RCS_checkout): add new argument 'rcsver' to prototype.
+ (RCS_exec_checkout): add new argument 'rcsver' to prototype.
+ * commit.c (remove_file): supply new argument to RCS_checkout.
+ * checkin.c (Checkin): supply new argument to RCS_checkout.
+ * diff.c (diff_fileproc): supply new argument to RCS_checkout.
+ (diff_file_nodiff): supply new argument to RCS_checkout.
+ * no_diff.c (No_Difference): supply new argument to RCS_checkout.
+ * update.c (checkout_file): supply new argument to RCS_checkout.
+ (patch_file): supply new argument to RCS_checkout.
+ (join_file): supply new argument to RCS_checkout.
+
+ * patch.c: (o_options): new variable for -K
+ (rcsver): new variable for -V.
+ (patch): add -K flag which sets o_options, change -V to set
+ rcsver, send o_options and rcsver if in client mode.
+ (patch_fileproc): use RCS_checkout instead of RCS_fast_checkout in
+ order to ensure $Name is expanded, use o_options if set, or
+ options if set, or by default "-ko" when getting "old" file.
+
+Sun Sep 29 16:43:28 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcscmds.c: Replace comment at top of file concerning RCS library
+ with a reworded version based on discussion between me, Ian, Paul
+ Eggert, and JimB.
+
+Sun Sep 29 13:09:45 1996 Noel Cragg <noel@kiva.rain.org>
+
+ * main.c (main): don't create/update CVS/Root when doing the "cvs
+ login" command. Consider: if the user executes "cvs login" with
+ the working directory inside an already checked out module, we'd
+ incorrectly change the CVS/Root file to reflect the CVSROOT of the
+ "cvs login" command.
+
+ * login.c (login): if we're re-logging into a server for which a
+ .cvspass entry already exists, copy the temporary file to its home
+ location rather than renaming. Renaming doesn't work between
+ filesystems. After copying, unlink the temporary file.
+
+Fri Sep 27 05:24:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * diff.c: Add comment about --brief option.
+
+ * README-rm-add: Removed; the information which was here is now in
+ cvs.texinfo.
+ * Makefile.in (DISTFILES): Remove README-rm-add.
+
+Wed Sep 25 10:00:00 1996 Larry Jones <larry.jones@sdrc.com>
+
+ * Makefile.in (cvsbug): Add dependency on version.c.
+
+Wed Sep 25 09:01:48 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * filesubr.c (get_homedir), update.c (update): Reindent.
+
+Wed Sep 25 04:44:54 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * version.c (version_string): Bump to 1.8.86.
+
+Wed Sep 25 05:17:50 1996 Jim Blandy <jimb@floss.cyclic.com>
+
+ * update.c (update): Don't neglect to pass the -kmumble options
+ to the server.
+ * sanity.sh (binfiles-sticky): New tests for above.
+
+ * cvsrc.c (read_cvsrc): Deal correctly with lines that specify a
+ command, but no options; don't corrupt argv.
+
+ * sanity.sh: When testing rsh, use the program specified by
+ the CVS_RSH environment variable, if it's set. Move test to top
+ of file, so it runs before all other tests (it's really a
+ meta-test).
+
+ * filesubr.c (get_homedir): Use getpwuid to find the home
+ directory, if the HOME environment variable isn't set.
+ * ignore.c (ign_add_file): Call get_homedir to find the user's
+ home directory; this is more portable than calling getpwuid.
+
+Tue Sep 24 09:08:17 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * log.c (log_tree): When walking through branches, follow the
+ ->prev field rather than following ->next which insures that the
+ loop only executes once and we only see the last branch.
+ * sanity.sh (multibranch): Test "cvs log" too; tests for above fix.
+
+Mon Sep 23 09:55:22 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * options.h.in: Fixed some typos in the comments and reindented
+ them.
+
+Sat Sep 21 02:33:26 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * sanity.sh: If we're testing remote CVS, make sure rsh itself is
+ working before running any tests. It's confusing when basica-1
+ fails just because you don't have the local host in your .rhosts
+ file.
+
+ * version.c (version_string): Bump to 1.8.85.
+
+Thu Sep 19 09:15:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * options.h.in: Define SERVER_FLOWCONTROL, SERVER_HI_WATER,
+ SERVER_LO_WATER. Several large sites (FreeBSD, Cygnus) have been
+ pounding on this code without problems, and it doesn't seem to
+ have any significant downsides.
+
+Tue Sep 17 01:13:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * status.c (status_fileproc): Instead of a default case, set sstat
+ before the switch. This way gcc -Wall can detect a missed case.
+ Add explicit T_TITLE case.
+
+Tue Sep 17 00:09:44 1996 Assar Westerlund <assar@pdc.kth.se>
+
+ * login.c (login): Print usage if argc < 0.
+
+Tue Sep 17 00:09:44 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * lock.c: In comment, mention one more function of readlocks
+ (fileattr not updated atomically). Note similarity between
+ solutions #2 and #5.
+
+ * checkout.c (safe_location): Do not reject a location merely
+ because it textually starts with hardpath; insist that it be
+ hardpath or a subdirectory thereof.
+
+Mon Sep 16 11:46:36 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (server_cleanup): Add comment about ignoring errors
+ from unlink_file_dir.
+
+Mon Sep 16 10:31:48 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c: Add support for -T <tmpdir> command line option. This
+ is needed for servers started via inetd.
+ (usg): Added line for -T. Improved -z documentation.
+ (main): Read default for tmpdir from the environment. Test for 'T'
+ in getopt loop. Use '/tmp' as ultimative fallback. Update
+ environment if possible.
+
+ * cvs.h (TMPDIR_ENV): Added for -T <tmpdir> command line option.
+
+ * options.h.in: Add TMPDIR_DFLT
+
+ * import.c (update_rcs_file): Use global variable Tmpdir instead
+ of reading the environment.
+
+ * server.c (server_cleanup): Use global variable Tmpdir instead of
+ reading the environment. Also, replace system("rm -rf") with
+ unlink_file_dir.
+ (server): Use global variable Tmpdir instead of reading the
+ environment.
+
+Thu Sep 12 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * main.c (main): If ARGV0_NOT_PROGRAM_NAME, then just set
+ program_name to "cvs" rather than argv[0].
+
+Thu Sep 12 12:06:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (update_entries): If we can't write the file, don't
+ make it a fatal error.
+
+Wed Sep 11 12:46:23 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_server): Move START_SERVER_RETURNS_SOCKET code
+ so that it is only run for server_method. It is wrong for
+ pserver_method (in which connect_to_pserver sets server_sock).
+
+ * login.c (construct_cvspass_filename): If NO_SLASH_AFTER_HOME,
+ don't put a '/' between $HOME and .cvspass. Reindent function.
+ * build_src.com: Add zlib.c, login.c, and scramble.c.
+
+ * rcs.c (RCS_deltas): When looking for our branch in ->branches,
+ check the branch number.
+ * sanity.sh (multibranch): New tests test for above fix.
+
+ * commit.c (precommit_list_proc): Fix typo in last change
+ (->status to ->type).
+
+Tue Sep 10 23:05:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Makefile.in (DISTFILES): Add build_src.com.
+ * build_src.com: Add buffer.c, buffer.obj, and zlib.olb.
+
+Tue Sep 10 20:35:23 1996 Juergen Renz <renz@conware.de>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (precommit_list_proc): Update to reflect Jul 22 change
+ in which p->data was changed from a Ctype to a struct
+ logfile_info *. This means that commitinfo scripts again get
+ passed the file list like they should.
+
+Tue Sep 10 20:35:23 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (auth_server_port_number): Change name of service from
+ "cvs" to "cvspserver". The latter is what the manual has always
+ recommended, and it is also officially registered with IANA.
+
+Tue Sep 10 11:12:42 1996 Mark A. Solinski <markso@mcs.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (socket_buffer_output): Change ifdef VMS to ifdef
+ SEND_NEVER_PARTIAL.
+ (start_server): Change ifdef VMS to ifdef START_SERVER_RETURNS_SOCKET.
+
+Tue Sep 10 17:15:21 1996 Jim Blandy <jimb@totoro.cyclic.com>
+
+ * client.c (auth_server_port_number): Look up "cvs" in the
+ services database, and use the value it returns; fall back to
+ CVS_AUTH_PORT if no entry is present.
+ (connect_to_pserver): Use the correct port number in any error
+ messages.
+
+Tue Sep 10 11:12:42 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (newb): New test newb-123j0 tests for another "cvs
+ status" case.
+
+Sun Sep 8 15:20:37 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_checkout): Clarify handling of options parameter.
+
+ * rcs.c (RCS_checkout): Free buffer allocated by RCS_deltas.
+
+Sat Sep 7 21:28:27 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (struct cmd): Add comment concerning recognizing unique
+ abbreviations.
+
+Fri Sep 6 22:31:52 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.c (RCS_checkout): Fix indentation.
+
+Fri Sep 6 11:48:08 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_checkout): Replace tag parameter with rev and nametag
+ parameters. Change all callers.
+ * rcs.h (RCS_checkout): Update declaration.
+
+ * rcs.c (RCS_getversion): Replace return_both parameter with
+ simple_tag. Change all callers.
+ (RCS_gettag): Likewise.
+ * rcs.h (RCS_getversion, RCS_gettag): Update declarations.
+ * vers_ts.c (Version_TS): Simplify vn_tag initialization using new
+ simple_tag rather than old return_both.
+ * cvs.h (struct vers_ts): Clarify vn_tag comment a bit.
+
+ * main.c (usg): Only mention -x if ENCRYPTION is defined.
+ (main): Mention ENCRYPTION define in comment for -x.
+ * client.h (krb_encrypt_buffer_initialize): Only declare if
+ ENCRYPTION is defined.
+ * client.c (start_server): Only encrypt if ENCRYPTION is defined.
+ * server.c (serve_kerberos_encrypt): Only define if ENCRYPTION is
+ defined.
+ (requests): Only include Kerberos-encrypt is ENCRYPTION is
+ defined.
+ (krb_encrypt_*): Only define if ENCRYPTION is defined.
+
+Thu Sep 5 17:32:39 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * sanity.sh: When testing remote, use :ext: instead of :server: to
+ match change made earlier today.
+
+Thu Sep 5 13:57:47 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_tcp_server): Don't allow :kserver: to mean
+ "direct tcp" (root.c already takes care of this, but I want to
+ make it clear what is intended, and not intended, here).
+ (start_server): Handle ext_method (external rsh program) and
+ server_method (internal rsh client) separately.
+ * client.c: Take rsh_pid and start_rsh_server out of
+ RSH_NOT_TRANSPARENT ifdefs. It is useful for things like SSH on NT.
+ * cvs.h (CVSmethod), root.c (method_names): Add ext_method.
+ * root.c (parse_cvsroot): Recognize "ext" access method.
+ If access method is not specified and CVSROOT contains a colon,
+ use either ext_method or server_method depending on
+ RSH_NOT_TRANSPARENT.
+
+Thu Sep 5 00:09:49 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_checkout): Remove flags parameter, which was not
+ serving any useful purpose. Change all callers.
+ * rcscmds.c (RCS_exec_checkout): Likewise.
+
+ * rcscmds.c (RCS_exec_checkout): Rename from RCS_checkout. Change
+ all callers.
+ * rcs.c (RCS_checkout): Rename from RCS_fast_checkout. Change all
+ callers.
+
+Wed Sep 4 14:42:28 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_fast_checkout): If tracing, output a message. If
+ noexec, and workfile is not NULL, just return immediately. Assert
+ that sout is RUN_TTY or workfile is NULL, rather than using it as
+ a conditional. Replace found variable with two variables--gothead
+ and keywords--reflecting what it actually means.
+
+ * rcs.c (RCS_fast_checkout): Don't handle the case of workfile set
+ to "".
+ * rcscmds.c (RCS_checkout): Likewise.
+ * checkin.c (Checkin): Pass explicit file name, not "", to
+ RCS_fast_checkout.
+ * update.c (join_file): Likewise.
+ * commit.c (remove_file): Pass explicit file name to
+ RCS_fast_checkout and RCS_checkin.
+
+ * rcs.c (RCS_reparsercsfile): Always continue after seeing
+ RCSSYMBOLS, even if the value is NULL. Clear the NODELTA flag
+ after setting delta_pos.
+ (free_rcsnode_contents): New static function.
+ (freercsnode): Call free_rcsnode_contents.
+ (RCS_fast_checkout): If NODELTA is set, reparse the RCS file.
+ (RCS_settag): New function. Change all callers to old function.
+ (RCS_deltag, RCS_setbranch): Likewise.
+ (RCS_lock, RCS_unlock): Likewise.
+ (RCS_deltas): If NODELTA is set, reparse the RCS file.
+ * rcs.h (NODELTA): Define.
+ (RCS_settag, RCS_deltag, RCS_setbranch): Declare.
+ (RCS_lock, RCS_unlock): Declare.
+ * rcscmds.c (RCS_exec_settag): Rename from RCS_settag. Don't
+ check tag against BASE or HEAD (now done in new RCS_settag).
+ (RCS_exec_deltag): Rename from RCS_deltag.
+ (RCS_exec_setbranch): Rename from RCS_setbranch.
+ (RCS_exec_lock): Rename from RCS_lock.
+ (RCS_exec_unlock): Rename from RCS_unlock.
+ * cvs.h: Update declarations of renamed functions.
+ * checkin.c (Checkin): Remove rcscopy variable (no longer needed
+ because of change in RCS_unlock call).
+ * commit.c: Include <assert.h>.
+ (remove_file): Update RCSNode path if the file is renamed.
+ (unblockrcs): Change rcs parameter to RCSNode. Change all
+ callers.
+ (fixbranch): Likewise.
+ (lock_RCS): Likewise. Don't call RCS_parsercsfile.
+ (checkaddfile): Update RCSNode path if the file is renamed. After
+ creating a new file, call RCS_parse. When stubbing a branch, use
+ the passed in RCSNode if there is one, rather than calling
+ RCS_Parse. Don't call RCS_Parse again after calling RCS_settag.
+ Free head and magicrev even if RCS_settag fails.
+ * import.c (add_rev): Change rcs parameter to RCSNode. Change all
+ callers.
+ (add_tag): Likewise.
+
+ * rcs.c (RCS_fast_checkout): Amend last patch: if workfile is
+ NULL, but sout is not NULL, use sout in error message.
+
+Wed Sep 4 13:35:09 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * version.c: Increment version number to 1.8.8.
+
+ * Version 1.8.7.
+
+Wed Sep 4 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c (send_file_names): Look for the name to send in
+ Entries even if the file doesn't exist; we should send the
+ name as it appears in Entries in the "rm foo; cvs update FOO"
+ case.
+
+Tue Sep 3 20:50:11 1996 William A. Hoffman <hoffman@albirio.crd.ge.com>
+
+ * rcs.c (RCS_fast_checkout): If workfile is NULL, don't try to
+ include it in error message.
+
+Mon Aug 26 12:27:38 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * mkmodules.c (mkdir_if_needed): Move from here ...
+ * filesubr.c, cvs.h (mkdir_if_needed): ... to here. Have it
+ return a value saying whether the directory was created.
+ * client.c (call_in_directory), edit.c (edit_fileproc): Call it.
+
+Fri Aug 23 19:19:44 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * checkin.c (Checkin): Copy rcs parameter in case it is freed when
+ finfo->rcs is freed.
+
+Fri Aug 23 14:55:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * remove.c (remove_fileproc): Revert change of 23 Aug to print
+ getwd and finfo->file in message. The latter is redundant with
+ fullname and the former is redundant with fullname and the working
+ directory when CVS was invoked. The implementation was also
+ lacking as the getwd call could overflow the buffer.
+
+Fri Aug 23 18:40:35 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * remove.c (cvsremove): fix remove -f for client/server
+
+Fri Aug 23 11:28:27 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * wrapper.c, cvs.h: Remove conflictHook field of WrapperEntry,
+ WRAP_CONFLICT in WrapMergeHas, and 'c' option in wrap_add; they
+ are never used.
+
+Fri Aug 23 11:41:46 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * server.c (switch_to_user): use #ifdef SETXID_SUPPORT instead of
+ #if SETXID_SUPPORT
+
+Thu Aug 22 14:18:43 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * checkin.c (Checkin): Remove local variable xfinfo. Reparse the
+ RCS file after the checkin. Call RCS_fast_checkout rather than
+ RCS_checkout.
+
+ * cvs.h (RCS_FLAGS_LOCK): Don't define.
+ (RCS_FLAGS_*): Adjust values to fill in hole left by removal of
+ RCS_FLAGS_LOCK.
+ * rcs.c (RCS_fast_checkout): Don't check for RCS_FLAGS_LOCK.
+ * rcscmds.c (RCS_checkout): Likewise.
+ * commit.c (commit_fileproc): Remove rcs local variable. If
+ status is T_MODIFIED, require that finfo->rcs be set, call
+ Lock_RCS directly, and don't call locate_rcs. If adding to a tag,
+ require that finfo->rcs be set, and don't call locate_rcs.
+ (remove_file): Remove rcs local variable. Require that finfo->rcs
+ be set. Don't call locate_rcs. Don't pass RCS_FLAGS_LOCK to
+ RCS_checkout; use RCS_lock instead. Call RCS_fast_checkout rather
+ than RCS_checkout.
+ (unlockrcs): Use a single rcs parameter rather than two parameters
+ for file and repository. Change all callers. Don't call
+ locate_rcs.
+ (fixbranch): Likewise.
+ (lockrcsfile): Remove; no more callers.
+
+Tue Aug 20 10:13:59 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * buffer.c, rcs.c: Don't use inline. It wasn't being used in a
+ loop or any such place where it would matter for performance, and
+ it was a (minor) portability hassle.
+
+ * server.c (server): Change "Dummy argument 0" to "cvs server" and
+ add comment explaining why.
+
+ * rcs.c (linevector_add): Add comment regarding changing \n to \0.
+
+Tue Aug 20 09:19:19 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * checkout.c (checkout_proc): Call RCS_parse to get the default
+ options from the RCS file.
+
+ * sanity.sh (binfiles): Add tests 5.5b0 and 5.5b1 for the above fix
+
+Mon Aug 19 18:13:32 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (linevector_init): Make inline. Set lines_alloced to 0,
+ not 10. Set vector to NULL.
+ (linevector_add): Remove assertion that lines_alloced is greater
+ than zero. Initialize lines_alloced if necessary.
+ (linevector_copy): Initialize lines_alloced if necessary.
+ (linevector_free): Only free vector if it is not NULL.
+ (RCS_deltas): Always call linevector_init and linevector_free on
+ curlines, headlines, and trunklines.
+ (RCS_fast_checkout): Remove #if 0 around code that calls
+ RCS_deltas.
+
+Fri Aug 16 17:52:54 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (linevector_add): Handle zero length correctly.
+ (RCS_deltas): In RCS_FETCH case, the data is in headlines, not
+ curlines.
+ (RCS_fast_checkout): Update comment about RCS_deltas: the
+ testsuite now passes.
+
+ * rcs.c (RCS_fully_parse): Use the length of the value, rather
+ than assuming that there are no embedded zero bytes.
+ (struct line): Add len field.
+ (linevector_add): Add len parameter. Change all callers. Use
+ len, rather than assuming that there are no embedded zero bytes.
+ Set the len field in new lines.
+ (RCS_deltas): Use the length of the value, rather than assuming
+ that there are no embedded zero bytes. Use the line length when
+ outputting it and when copying it.
+ (RCS_fast_checkout): Update comment about RCS_deltas to remove
+ note about supporting zero bytes correctly.
+
+Thu Aug 15 23:38:48 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c, import.c: Revise comments regarding the fact that we
+ call start_server before do_editor.
+
+Thu Aug 15 11:30:55 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c: Include <sys/socket.h> if AUTH_SERVER_SUPPORT.
+ (pserver_authenticate_connection): Set SO_KEEPALIVE on
+ STDIN_FILENO.
+ (kserver_authenticate_connection): Likewise.
+
+Thu Aug 15 10:26:41 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * server.c (switch_to_user): Fix previous patch to compile it for
+ both HAVE_KERBEROS and AUTH_SERVER_SUPPORT
+
+Wed Aug 14 14:02:00 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * server.c (check_password): if available use getspnam instead of
+ getpwnam when reading system passwords. This allows cvs pserver
+ to run on systems with shadow passwords.
+ (switch_to_user): new static function. Contains the extracted
+ common tail of kserver_authenticate_connection and
+ pserver_authenticate_connection. If compiled with SETXID_SUPPORT,
+ honor the setgid bit if it is set.
+ (check_repository_password): turn into a static function
+ (check_password): ditto
+ (pserver_authenticate_connection): little code cleanup
+
+Wed Aug 14 01:07:10 1996 Greg A. Woods <woods@most.weird.com>
+
+ * history.c (history): apply fix posted by Steven Meyer
+ <steve@blacksmith.com> to info-cvs to correct handling of '-D'
+ argument. Message-Id: <9608122335.AA01385@nijel.blacksmith.com>
+
+Tue Aug 13 13:42:36 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * log.c (cvslog): Remove comment about calling rlog.
+ * rcs.c (translate_symtag): Correct typo in comment (l ist ->
+ list).
+ * server.c (server_write_entries): Add omitted word (lists) in
+ comment.
+
+Tue Aug 13 14:01:49 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * wrapper.c (wrap_rcsoption): fix memory access error
+
+ * rcs.c (RCS_fast_checkout): fix memory access error (triggered
+ by an empty option string)
+
+Mon Aug 12 17:45:15 1996 Jim Kingdon (unknown@beezley)
+
+ * buffer.c, zlib.c: If EIO is not defined, try to define it.
+
+Mon Aug 12 10:33:27 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * import.c (comtable): Add comment concerning applicability with
+ RCS 5.7.
+
+ * server.c (server): If TMPDIR is not an absolute pathname, give
+ an error.
+
+Mon Aug 12 10:34:43 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c: add synonym "ann" for "annotate" again
+
+Sun Aug 11 17:54:11 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.h (RCS_RLOG): Removed; no longer used.
+
+Fri Aug 9 20:16:20 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (dirswitch): Open the Entries file with mode "a" rather
+ than "w+".
+ (server_write_entries): Open the Entries file with mode "a" rather
+ than "w".
+ * sanity.sh (modules): Add topfiles module and 155cN tests for
+ above patch.
+
+Fri Aug 9 12:11:25 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (cmd): Add comment regarding synonyms.
+
+Thu Aug 8 14:40:10 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c: Remove synonyms for "cvs annotate". Synonyms create
+ user confusion.
+
+Thu Aug 8 10:24:04 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c: Revert (undocumented) change to rename the cvs history
+ alias "his" to "hist"
+
+Wed Aug 7 18:26:25 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (cvs_output): Change str parameter to const char *.
+ Correct loop to print from p, not str.
+ (cvs_outerr): Likewise.
+ * cvs.h (cvs_output, cvs_outerr): Update declarations.
+
+ * server.c (receive_partial_file): Read and discard remaining file
+ data on a write error.
+ (serve_modified): Discard data while size > 0, not >=.
+
+Wed Aug 7 15:11:40 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c (cmds): Add some aliases for "annotate".
+ (usg): Improve usage message text
+ (cmd_synonyms): New function to print the command synonym list
+ (main): Add new option --help-synonyms
+
+Wed Aug 7 00:07:31 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Keep track of subdirectories in the Entries file.
+ * cvs.h (enum ent_type): Define.
+ (struct entnode): Add type field.
+ (struct stickydirtag): Add subdirs field.
+ (Subdirs_Known, Subdir_Register, Subdir_Deregister): Declare.
+ (ignore_files): Update declaration for new parameter.
+ (FILESDONEPROC): Add entries parameter.
+ (DIRENTPROC, DIRLEAVEPROC): Likewise.
+ * entries.c (Entnode_Create): Add type parameter. Change all
+ callers.
+ (write_ent_proc): If closure is not NULL, treat it as a pointer to
+ an int, and set it to 1 if a node is seen which is not ENT_FILE.
+ (write_entries): If subdirectory information is known, but no
+ subdirectories were written, write an unadorned D to the file.
+ (Scratch_Entry): Write an R command to Entries.Log. Don't rewrite
+ the Entries file.
+ (Register): Set entfilename. Write an A command rather than an
+ unadorned entries line.
+ (fgetentent): Add cmd and sawdir parameters. Change all callers.
+ If CMD is not NULL, expect and return a single character command.
+ Handle an initial D by setting the type to ENT_SUBDIR.
+ (fputentent): Output an initial D for an ENT_SUBDIR entry.
+ (Entries_Open): Handle removal commands in Entries.Log. Record
+ whether subdirectory information is known in the list private
+ data.
+ (Subdirs_Known): New function.
+ (subdir_record): New static function.
+ (Subdir_Register, Subdir_Deregister): New functions.
+ * find_names.c (add_entries_proc): Skip entries that are not
+ ENT_FILE.
+ (add_subdir_proc): New static function.
+ (register_subdir_proc): New static function.
+ (Find_Directories): If the Entries file has subdirectory
+ information, get the directories out of it. Otherwise, call
+ find_dirs, and add the information to the Entries file.
+ * recurse.c (struct frame_and_entries): Define.
+ (do_recursion): Don't call Entries_Close until after processing
+ dirlist. Pass entries to filesdoneproc. Pass a frame_and_entries
+ structure to do_dir_proc via walklist.
+ (do_dir_proc): Expect a frame_and_entries structure in closure,
+ not a recursion_frame. Pass entries to direntproc and
+ dirleaveproc.
+ * ignore.c (ignore_files): Add entries parameter. Change all
+ callers. If we have subdirectory information, check for
+ directories in entries.
+ * add.c (add): If client_active, call Subdir_Register on each new
+ directory.
+ (add_directory): Add entries parameter. Change caller. Call
+ Subdir_Register.
+ * checkout.c (build_dirs_and_chdir): Call Subdir_Register.
+ * client.c (call_in_directory): Call Subdir_Register for newly
+ created directories. Call Subdirs_Known or Find_Directories after
+ calling Entries_Open.
+ (process_prune_candidates): Call Subdir_Deregister.
+ * commit.c (findmaxrev): Skip entries that are not ENT_FILE.
+ * server.c (dirswitch): Call Subdir_Register.
+ * update.c (update_dirent_proc): Call Subdir_Register.
+ (update_dirleave_proc): Call Subdir_Deregister.
+ * Several files: Change direntproc, dirleaveproc, and
+ filesdoneproc routines to expect an entries argument.
+
+ * rcs.c (translate_symtag): New static function.
+ (RCS_gettag): Use translate_symtag rather than RCS_symbols.
+ (RCS_nodeisbranch, RCS_whatbranch): Likewise.
+
+Tue Aug 6 15:36:09 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Finish the conversion of cvs log so that it never invokes rlog.
+ * log.c (struct log_data): Remove dorlog field. Add nameonly,
+ header, long_header, statelist, and authorlist fields.
+ (log_usage): Remove rlog-options. Add -R, -h, -t, -b, -s, -w.
+ (cvslog): Don't clear opterr. Handle -h, -R, -s, -t, -w. If an
+ unrecognized option is seen, call usage.
+ (log_parse_list): New static function.
+ (log_fileproc): Remove code that called rlog. Check nameonly,
+ header, and long_header fields in log_data.
+ (log_version_requested): Check statelist and authorlist.
+
+ * log.c (struct datelist): Define.
+ (struct log_data): Add datelist and singledatelist fields.
+ (log_usage): Add -d.
+ (cvslog): Handle -d.
+ (log_parse_date): New static function.
+ (log_fileproc): Do special single date handling.
+ (log_version_requested): Check datelist and singledatelist.
+ (log_fix_singledate): New static function.
+
+Mon Aug 5 23:48:16 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * log.c (struct option_revlist): Define.
+ (struct revlist): Define.
+ (struct log_data): Add default_branch and revlist fields.
+ (struct log_data_and_rcs): Define.
+ (log_usage): Add -N and -r.
+ (cvslog): Handle -N and -r.
+ (log_parse_revlist): New static function.
+ (log_fileproc): Call log_expand_revlist and log_free_revlist.
+ Pass log_data_and_rcs structure to log_count_print via walklist.
+ (log_expand_revlist, log_free_revlist): New static functions.
+ (log_version_requested): New static function.
+ (log_count_print): New static function.
+ (log_tree): Add log_data and revlist parameter. Change all
+ callers.
+ (log_abranch): Likewise.
+ (log_version): Likewise. Call log_version_requested.
+ (version_compare): New static function.
+ * sanity.sh (log): New tests for -r, -b, and -N options to log.
+
+Sun Aug 4 11:19:30 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Handle simple cases of cvs log without invoking rlog.
+ * log.c (struct log_data): Define.
+ (cvslog): Use getopt to parse options. Set up a log_data
+ structure, and pass it to start_recursion.
+ (log_fileproc): Get arguments form callerdat rather than static
+ variables. In simple cases, print the log information directly,
+ rather than invoking rlog.
+ (log_symbol, log_count, log_tree): New static functions.
+ (log_abranch, log_version, log_branch): New static functions.
+ * rcs.h (struct rcsnode): Add other field.
+ (struct rcsversnode): Add other field.
+ (RCS_fully_parse): Declare.
+ * rcs.c (getrcsrev): Move declaration to start of file.
+ (RCS_reparsercsfile): Add all parameter. Change all callers.
+ (RCS_fully_parse): New function.
+ (freercsnode): Free other list.
+ (rcsvers_delproc): Free other list.
+ * hash.h (enum ntype): Add RCSFIELD.
+ * hash.c (nodetypestring): Handle RCSFIELD.
+
+Sat Aug 3 19:39:54 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * log.c (cvslog): Correct position of CLIENT_SUPPORT #endif.
+
+Thu Jul 25 12:06:45 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (join_file): If merging a branch, and the branch
+ revision does not exist, just return without doing anything.
+ * sanity.sh (join): Add cases file7 and file8 to test above
+ patch.
+
+ * server.c (cvsencrypt): Rename from encrypt, to avoid conflict
+ with NetBSD unistd.h. Rename all uses.
+
+ * server.c (krb_encrypt_buffer_output): Fix typo in comment (reply
+ -> replay).
+
+Thu Jul 25 10:37:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (krb_encrypt_buffer_output): Fix typo in comment
+ (krb_recv_auth -> krb_recvauth).
+
+Wed Jul 24 09:28:33 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * lock.c (set_lock): Adjust comment regarding why we call stat.
+
+Wed Jul 24 15:06:08 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Add encryption support over a Kerberos connection.
+ * main.c (usg): Mention -x if CLIENT_SUPPORT.
+ (main): Handle -x.
+ * client.h (encrypt): Declare.
+ (krb_encrypt_buffer_initialize): Declare.
+ * client.c (kblock, sched): New static variables if
+ HAVE_KERBEROS.
+ (start_tcp_server): Remove sched local variable. Copy
+ cred.session into kblock.
+ (start_server): Turn on encryption if requested.
+ * server.c (kblock, sched): New static variables if
+ HAVE_KERBEROS.
+ (serve_kerberos_encrypt): New static function.
+ (requests): Add "Kerberos-encrypt" if HAVE_KERBEROS.
+ (kserver_authenticate_connection): Remove sched local variable.
+ Copy auth.session into kblock.
+ (encrypt): New global variable.
+ (struct krb_encrypt_buffer): Define.
+ (krb_encrypt_buffer_initialize): New function.
+ (krb_encrypt_buffer_input): New static function.
+ (krb_encrypt_buffer_output): New static function.
+ (krb_encrypt_buffer_flush): New static function.
+ (krb_encrypt_buffer_block): New static function.
+ (krb_encrypt_buffer_shutdown): New static function.
+
+Wed Jul 24 09:28:33 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * recurse.c (do_recursion): Add comment about calling
+ Name_Repository in !(which & W_LOCAL) case.
+
+ * expand_path.c (expand_variable): Fix typo (varaible -> variable).
+
+Tue Jul 23 15:05:01 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (update_fileproc): In T_REMOVE_ENTRY case, only call
+ server_scratch_entry_only if ts_user is NULL.
+ * sanity.sh (death2): Add death2-20 test for above patch.
+
+ * diff.c (diff_fileproc): If a file is not in the working
+ directory, check that the tag is present before warning that no
+ comparison is possible.
+ * sanity.sh (death2): Add death2-diff-9 and death2-diff-10 tests
+ for above patch.
+
+Tue Jul 23 12:05:42 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * tag.c (tag_check_valid): Fix indentation.
+
+ * client.c (handle_e): Flush stdout before writing to stderr.
+ (handle_m): Flush stderr before writing to stdout.
+
+Fri Jul 19 16:02:11 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * client.c: Added NO_CLIENT_GZIP_PROCESS to deal with the MacOS
+ client where Gzip-stream is supported, but "gzip-file-contents" is
+ not.
+
+Fri Jul 19 16:02:11 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * repos.c: Fixed recent patch which added plain fopen rather than
+ CVS_FOPEN
+
+Mon Jul 22 22:25:53 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * logmsg.c (tag): New static variable.
+ (setup_tmpfile): Don't print the prefix before calling fmt_proc.
+ Free tag if it is set.
+ (find_type): Get type from logfile_info struct.
+ (fmt_proc): Likewise. Print tag information. Handle all prefix
+ printing.
+ (revision): Remove static variable.
+ (Update_Logfile): Remove xrevision parameter. Change all
+ callers.
+ (title_proc): Get type from logfile_info struct.
+ (logfile_write): Remove revision parameter. Change all callers.
+ * cvs.h (struct logfile_info): Define.
+ (Update_Logfile): Update prototype.
+ * commit.c (find_fileproc): Set logfile_info information.
+ (check_fileproc): Likewise.
+ (commit_filesdoneproc): Don't call ParseTag.
+ (update_delproc): Free logfile_info information.
+ * add.c (add_directory): Set logfile_info information.
+ * import.c (import): Likewise.
+
+ * tag.c (tag_check_valid): The special BASE and HEAD tags are
+ always valid.
+ * sanity.sh (basica): Add basica-6.3 test for above patch.
+
+Mon Jul 22 14:41:20 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (merge_file): Pass 0 not NULL to checkout_file (20 Jul
+ 96 change changed other calls to checkout_file but missed this one).
+
+Sat Jul 20 00:21:54 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (join_file): Check whether the target of the merge is
+ the same as the working file revision before checking whether the
+ file was added during the merge.
+
+ * update.c (scratch_file): Remove existing parameters, and add a
+ single parameter of type struct file_info. Change all callers.
+ Warn if unlink_file fails.
+ (checkout_file): Remove resurrecting_out parameter. Add adding
+ parameter. Change all callers. Remove joining code.
+ (join_file): Remove resurrecting parameter. Rewrite to handle
+ joining dead or added revisions.
+ * classify.c (Classify_File): If there is no user file, and the
+ RCS file is dead, return T_UPTODATE rather than T_CHECKOUT.
+ * checkout.c (checkout_proc): Set W_ATTIC if there is a join tag.
+ * sanity.sh (join): New set of tests for above patches.
+ (death): Adjust tests 86, 89, 89a, 92.1c, 95 for above patches.
+ (import): Adjust test 113 for above patches.
+
+Thu Jul 18 19:24:08 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * lock.c: Add comment explaining what locks are for. Also discuss
+ various changes to locking which get proposed from time to time.
+
+ * sanity.sh (death2): Change a number of test names from death-*
+ to death2-*.
+
+ * wrapper.c (wrap_setup): Don't look in repository if client_active.
+ * wrapper.c, cvs.h (wrap_send): New function.
+ * update.c (update), import.c (import): Call it.
+ * sanity.sh (binwrap): Do binwrap tests for remote as well as
+ local; tests for above fixes.
+
+ * wrapper.c: Add a few FIXME comments.
+
+Thu Jul 18 18:43:50 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * sanity.sh (patch): Fix names of a couple of tests to say patch
+ rather than death2.
+
+Thu Jul 18 16:19:21 1996 Bill Bumgarner <bbum@friday.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * add.c (add), import.c (add_rcs_file): Check for options from
+ wrappers and use them if specified.
+ * cvs.h (WrapMergeHas): Add WRAP_RCSOPTION.
+ * wrapper.c (WrapperEntry): Add rcsOption field.
+ (wrap_add): Allow a single character argument to an option.
+ (wrap_add): Handle -k option.
+ (wrap_add_entry): Handle rcsOption field.
+ (wrap_name_has): Handle WRAP_RCSOPTION.
+ * wrapper.c, cvs.h (wrap_rcsoption): New function.
+ * add.c, import.c, wrapper.c: Minor beautification (mostly
+ removing trailing spaces).
+ * sanity.sh (binwrap): New tests test for this feature.
+
+Wed Jul 17 10:14:20 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * checkout.c (checkout): Remove extraneous else accidentally
+ inserted in last checkin.
+
+Tue Jul 16 11:37:41 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * sanity.sh (import): Use quoting to avoid expansion of RCS ID
+ strings.
+
+ * sanity.sh (import): Use dotest to examine the output of test
+ 113, and the actual contents of the file in test 116.
+
+ * update.c (join_file): Always skip rcsmerge if the two revisions
+ are the same (the old code always did the rcsmerge when two -j
+ options were specified).
+
+ * checkout.c (history_name): New static variable.
+ (checkout): Permit both tag and date to be specified. Set
+ history_name.
+ (checkout_proc): Use history_name when calling history_write.
+ * rcs.c (RCS_getversion): If both tag and date are set, use
+ RCS_whatbranch to get the branch revision number of a symbolic
+ tag.
+ (RCS_getdatebranch): If the branch revision itself is early
+ enough, then use it if the first branch is not early enough. Add
+ comment for invalid RCS file. Don't bother to check for NULL
+ before calling xstrdup, since xstrdup checks anyhow.
+
+ * client.h (file_gzip_level): Declare.
+ * client.c (file_gzip_level): Define.
+ (start_server): Don't set gzip_level to zero after sending
+ Gzip-stream command. Set file_gzip_level after sending
+ gzip-file-contents command.
+ (send_modified): Use file_gzip_level rather than gzip_level.
+ * server.c (server_updated): Likewise.
+ (serve_gzip_contents): Likewise.
+
+ * sanity.sh (patch): New tests. Test remote CVS handling of
+ unpatchable files.
+
+ * sanity.sh (death2): Accept a '.' in the temporary file name
+ printed by diff.
+
+ * rcscmds.c (RCS_checkin): Remove noerr parameter. Change all
+ callers.
+ * cvs.h (RCS_checkin): Update declaration.
+ * commit.c (remove_file): Pass RCS_FLAGS_QUIET to RCS_checkin.
+
+ * history.c (history): Cast sizeof to int to use correct type in
+ error printf string.
+ (report_hrecs): Cast strlen result to int to use correct type in
+ printf string.
+
+ * server.c (cvs_flusherr): Correct typo in comment.
+
+ * rcs.c (getrcskey): Hoist three constant strcmp calls out of the
+ value reading loop.
+
+ * fileattr.c (fileattr_get): Change parameter types from char * to
+ const char *.
+ (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
+ (fileattr_newfile): Likewise.
+ * fileattr.h (fileattr_get): Update declaration.
+ (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
+ (fileattr_newfile): Likewise.
+
+Thu May 16 11:12:18 1996 Mark P. Immel <immel@radix.net>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.h, client.c, checkout.c (client_send_expansions):
+ Pass an additional parameter indicating where the checkout is
+ to occur, to avoid passing the wrong information to send_files().
+ * sanity.sh (basicb): New test basicb-cod-1 tests for above fix.
+
+Mon Jul 15 18:26:56 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * recurse.c (do_recursion): Require a repository before calling
+ Find_Names.
+ * repos.c (Name_Repository): Remove sanity checks which spend time
+ examining the filesystem.
+
+Mon Jul 15 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c (send_file_names): Send file names as they appear
+ in CVS/Entries, rather than as specified (in cases where they
+ might differ in case).
+ (send_fileproc): Use file name from CVS/Entries (vers->entdata->user)
+ rather than file name as specified (finfo->file) when available.
+
+Sun Jul 14 15:39:44 1996 Mark Eichin <eichin@cygnus.com>
+ and Ian Lance Taylor <ian@cygnus.com>
+
+ Improve diff -N handling of nonexistent tags and removed files.
+ * diff.c (enum diff_file): New definition for whole file, moving
+ unnamed enum out of diff_fileproc, renaming DIFF_NEITHER to
+ DIFF_DIFFERENT, and adding DIFF_SAME.
+ (diff): Look through the repository even if only one revision is
+ given.
+ (diff_fileproc): Change empty_file to be enum diff_file. If there
+ is no user revision, but there is a repository file, treat it as a
+ removed file. Pass empty_file to diff_file_nodiff, and set it
+ from the return value.
+ (diff_file_nodiff): Change return type to enum diff_file. Replace
+ just_set_rev parameter with enum diff_file empty_file parameter.
+ Change handling of a missing tag to return an enum diff_file value
+ if empty_files is set, rather than reporting an error. Free tmp
+ if xcmp returns 0.
+ * sanity.sh (death2): Add tests for above patches.
+
+Sat Jul 13 19:11:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.c (annotate): In sending options to server, reverse sense of
+ test so that we send -f iff -f was specified, rather than iff -f was
+ not specified.
+
+Fri Jul 12 20:23:54 1996 Greg A. Woods <woods@most.weird.com>
+
+ * zlib.c (compress_buffer_input): add a couple of casts for
+ uses of z_stream's next_in and next_out
+
+Fri Jul 12 18:55:26 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * zlib.c: New file.
+ * client.c (log_buffer_block): Call set_block and set_nonblock,
+ rather than lb->buf->block.
+ (log_buffer_shutdown): New static function.
+ (get_responses_and_close): Call buf_shutdown on to_server and
+ from_server.
+ (start_server): If "Gzip-stream" is supported, use it rather than
+ "gzip-file-contents".
+ * server.c (print_error): Call buf_flush rather than
+ buf_send_output.
+ (print_pending_error, serve_valid_responses): Likewise.
+ (serve_expand_modules, serve_valid_requests): Likewise.
+ (do_cvs_command): Call buf_flush rather than buf_send_output
+ before the fork, and in the parent after the child has completed.
+ In the child, set buf_to_net and buf_from_net to NULL.
+ (serve_gzip_stream): New static function.
+ (requests): Add "Gzip-stream".
+ (server_cleanup): Don't do anything with buf_to_net if it is
+ NULL. Call buf_flush rather than buf_send_output. Call
+ buf_shutdown on buf_to_net and buf_from_net. Call error for an
+ malloc failure rather than buf_output to buf_to_net.
+ * buffer.h (struct buffer): Add shutdown field.
+ (buf_initialize): Update declaration for new shutdown parameter.
+ (compress_buffer_initialize): Declare.
+ (buf_shutdown): Declare.
+ * buffer.c (buf_initialize): Add shutdown parameter. Change all
+ callers.
+ (buf_shutdown): New function.
+ * Makefile.in (SOURCES): Add zlib.c
+ (OBJECTS): Add zlib.o.
+ ($(PROGS)): Depend upon ../zlib/libz.a.
+ (cvs): Link against ../zlib/libz.a.
+ (zlib.o): New target.
+
+Fri Jul 12 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c (log_buffer_input, log_buffer_output): Use size_t
+ to avoid Visual C++ signed/unsigned warnings.
+
+Thu Jul 11 22:01:37 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (handle_f): Reindent.
+
+ * client.c (mode_to_string, handle_m, handle_e,
+ auth_server_port_number, get_responses_and_close), server.c
+ (pserver_authenticate_connection, serve_modified,
+ serve_enable_unchanged, wait_sig, server_cleanup): Reindent.
+ * server.c: Remove #if 0'd block of code above
+ check_repository_password; it was yanked out of some unknown
+ context and didn't seem to be very useful.
+
+Thu Jul 11 20:10:21 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (do_cvs_command): Pass new special parameter to
+ buf_copy_counted. If it gets set to -1, send an 'F' response if
+ the client supports it, and call cvs_flusherr.
+ (cvs_flusherr): New function.
+ * cvs.h (cvs_flusherr): Declare.
+ * client.c (handle_f): New static function.
+ (responses): Add "F".
+ * buffer.c (buf_send_special_count): New function.
+ (buf_copy_counted): Add special parameter. Handle negative counts
+ specially.
+ * buffer.h (buf_send_sepcial_count): Declare.
+ (buf_copy_counted): Update declaration.
+ * lock.c (lock_wait, lock_obtained): Call cvs_flusherr.
+
+ Change the client to use the buffer data structure.
+ * client.c: Include "buffer.h".
+ (to_server): Change to be struct buffer *.
+ (to_server_fp): New static variable.
+ (from_server): Change to be struct buffer *.
+ (from_server_fp): New static variable.
+ (from_server_logfile, to_server_logfile): Remove.
+ (buf_memory_error): New static function.
+ (struct log_buffer): Define.
+ (log_buffer_initialize, log_buffer_input): New static functions.
+ (log_buffer_output, log_buffer_flush): New static functions.
+ (log_buffer_block): New static function.
+ (struct socket_buffer): Define if NO_SOCKET_TO_FD.
+ (socket_buffer_initialize): New static function if
+ NO_SOCKET_TO_FD.
+ (socket_buffer_input, socket_buffer_output): Likewise.
+ (socket_buffer_flush): Likewise.
+ (read_line): Rewrite to use buf_read_line. Remove eof_ok
+ parameter (it was always passed as 0); change all callers.
+ (send_to_server): Rewrite to use buf_output.
+ (try_read_from_server): Rewrite to use buf_read_data.
+ (get_responses_and_close): Use from_server_fp and to_server_fp for
+ the streams. Check buf_empty_p when checking for dying gasps.
+ (start_server): Don't set from_server_logfile and
+ to_server_logfile; instead, call log_buffer_initialize. If
+ NO_SOCKET_TO_FD and use_socket_style, call
+ socket_buffer_initialize; otherwise, call
+ stdio_buffer_initialize.
+ * buffer.c: Compile if CLIENT_SUPPORT is defined.
+ (buf_flush): Fix comment to describe return value.
+ (buf_read_line): Add lenp parameter. Change all callers. Look
+ for a line terminated by \012 rather than \n.
+ * buffer.h: Compile if CLIENT_SUPPORT is defined.
+ (buf_read_line): Update declaration.
+
+ * server.c (server): Initialize buf_to_net, buf_from_net,
+ saved_output, and saved_outerr before setting error_use_protocol.
+ (pserver_authenticate_connection): Don't set error_use_protocol.
+ Errors before the authentication is complete aren't handled
+ cleanly anyhow. Change error call after authentication to use
+ printf.
+
+Thu Jul 11 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c (start_server): Open logfiles in binary, not text, mode.
+
+Wed Jul 10 19:24:22 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (print_pending_error, print_error): Remove comments
+ about deadlocks; they don't apply here. Add comments saying
+ that these functions must only be called when it is OK to
+ send output (which is why the deadlock concern doesn't apply). The
+ comments remain for server_cleanup and serve_valid_responses,
+ where they are an example of the "print a message and exit"
+ behavior which is noted in cvsclient.texi and which also exists
+ places like kserver_authenticate_connection.
+
+Wed Jul 10 18:24:46 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (print_error): Add comment warning about potential
+ deadlock.
+ (print_pending_error, serve_valid_responses): Likewise.
+ (server_cleanup): Likewise.
+ (serve_directory): Don't call buf_send_output.
+ (serve_modified, serve_notify, server, cvs_outerr): Likewise.
+ (serve_expand_modules): Call buf_send_output.
+ (serve_valid_requests): Likewise.
+
+Wed Jul 10 15:51:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): Print a warning for rlog command.
+
+Wed Jul 10 15:00:55 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Abstract the buffer data structure away from the underlying
+ communication medium.
+ * buffer.h (struct buffer): Remove fd and output fields. Add
+ input, output, flush, block, and closure fields.
+ (buf_initialize, buf_nonio_initialize): Declare.
+ (stdio_buffer_initialize, buf_flush): Declare.
+ (buf_read_line, buf_read_data): Declare.
+ * buffer.c: Include <assert.h>. Don't include <fcntl.h>.
+ (O_NONBLOCK, blocking_error): Don't define.
+ (buf_initialize, buf_nonio_initialize): New functions.
+ (buf_send_output): Use output function, rather than write.
+ (buf_flush): New function.
+ (set_nonblock, set_block): Use block function, rather than calling
+ fcntl.
+ (buf_send_counted): Don't check output.
+ (buf_input_data): Call input function, rather than read.
+ (buf_read_line, buf_read_data): New functions.
+ (buf_copy_lines, buf_copy_counted): Don't check output.
+ (stdio_buffer_initialize): New function.
+ (stdio_buffer_input, stdio_buffer_output): New static functions.
+ (stdio_bufer_flush): New static function.
+ * server.c: Include "getline.h".
+ (buf_to_net): Change to be a pointer. Change all uses.
+ (protocol, saved_output, saved_outerr): Likewise.
+ (buf_from_net): New static variable.
+ (no_mem_error, NO_MEM_ERROR, read_line): Remove.
+ (struct fd_buffer): Define.
+ (fd_buffer_initialize, fd_buffer_input): New static functions.
+ (fd_buffer_output, fd_buffer_flush): New static functions.
+ (fd_buffer_block): New static function.
+ (serve_directory): Call buf_read_line rather than read_line.
+ (serve_notify, server): Likewise.
+ (receive_partial_file): Call buf_read_data rather than fread.
+ (serve_modified): Call buf_read_line rather than read_line. Call
+ buf_read_data rather than fread.
+ (do_cvs_command): Initialize buffers with fd_buffer_initialize.
+ Change stdoutbuf, stderrbuf, and protocol_inbuf to be pointers.
+ (server): Initialize buffers using fd_buffer_initialize,
+ stdio_buffer_initialize, and buf_nonio_initialize.
+ (check_repository_password): Call getline rather than read_line.
+
+Wed Jul 10 15:51:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (find_fileproc): Add comments describing a few cases
+ that we aren't handling.
+
+Tue Jul 9 04:33:03 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.c (RCS_deltas): New function, created from guts of old
+ annotate_fileproc.
+ (annotate_fileproc): Call RCS_deltas.
+ (RCS_fast_checkout): Call it (commented out for now; see comment
+ for reasons).
+
+ * cvs.h, recurse.c (start_recursion): Add callerdat argument.
+ * cvs.h: Add callerdat argument to recursion processor callbacks.
+ * recurse.c: add it to struct recursion_frame and pass it to all
+ the callbacks.
+ * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
+ patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
+ watch.c: Update all the functions used as callbacks. Update calls
+ to start_recursion.
+ * commit.c (find_filesdoneproc, find_fileproc, find_dirent_proc,
+ commit), tag.c (val_fileproc, tag_check_valid): Use callerdat
+ instead of a static variable.
+
+ * recurse.c (do_recursion): Make static and move declaration to here...
+ * cvs.h: ...from here.
+ * recurse.c (do_recursion): Replace plethora of arguments with
+ single struct recursion_frame *. Change callers.
+ * recurse.c: New structure frame_and_file. Use it and existing
+ struct recursion_frame structures to pass info to do_file_proc and
+ do_dir_proc. Remove globals fileproc, filesdoneproc, direntproc,
+ dirleaveproc, which, flags, aflag, readlock, and dosrcs.
+
+Tue Jul 9 11:13:29 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * modules.c (do_module): Call cvs_outerr rather than fprintf.
+
+Mon Jul 8 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * rcs.c (RCS_fast_checkout): If -kb is not in use, open the
+ working file in text, not binary, mode.
+
+Sun Jul 7 10:36:16 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcscmds.c (RCS_settag): Add comment regarding moving check for
+ reserved tag names to RCS_check_tag.
+
+ * rcscmds.c: Add comment regarding librarifying RCS and related
+ issues. This is a lightly edited version of a message I sent to
+ the CVS developers and didn't get flamed for, so it would appear
+ to be relatively uncontroversial.
+
+ * rcs.c (annotate): Remove comment suggesting -r option and
+ related functionality; it is done.
+
+Fri Jul 5 17:19:57 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * client.c (last_entries): Make file static, rather than function
+ static within call_in_directory.
+ (get_responses_and_close): If last_entries is not NULL, pass it to
+ Entries_Close.
+
+ * server.c (server_pause_check): Check for errors when reading
+ from flowcontrol_pipe.
+
+ * client.c (call_in_directory): If dir_name is ".", call
+ Create_Admin if there is no CVS directory.
+ (send_dirent_proc): If there is no CVS subdirectory, pretend that
+ the directory does not exist (i.e., don't try to send any files in
+ the directory).
+ * server.c (dirswitch): If dir is "." in the top level repository,
+ add "/." after the Repository entry.
+ * sanity.sh (modules): Add test 155b for above patches.
+
+Thu Jul 4 15:57:34 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (buf_to_net): Move definition near top of file.
+ (read_line): Call buf_send_output rather than fflush.
+ (print_error): Output information to buf_to_net buffer rather than
+ stdout.
+ (print_pending_error, serve_valid_responses): Likewise.
+ (server_notify, do_cvs_command, server_co): Likewise.
+ (expand_proc, serve_expand_modules, server_prog): Likewise.
+ (serve_valid_requests, server_cleanup, server): Likewise.
+ (server_notify): Don't call fflush on stdout.
+ (do_cvs_command): Flush saved_output and saved_outerr to
+ buf_to_net before fork. Flush buf_to_net before fork. In child,
+ just initialize memory_error field of saved_output and
+ saved_outerr.
+ (server_cleanup): Flush buf_to_net.
+ (server): Initialize saved_output and saved_outerr.
+ (cvs_output): Add support for error_use_protocol case.
+ (cvs_outerr): Likewise.
+ * error.c (error): In HAVE_VPRINTF case, just call cvs_outerr.
+
+ * buffer.c: New file; buffer support functions taken from
+ server.c.
+ * buffer.h: New file; declarations for buffer.c.
+ * server.c: Move buffer support functions into buffer.c and
+ buffer.h. Include "buffer.h".
+ * Makefile.in (SOURCES): Add buffer.c.
+ (OBJECTS): Add buffer.o.
+ (HEADERS): Add buffer.h.
+
+Thu Jul 4 00:12:45 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * version.c: Increment version number to 1.8.6.
+
+Wed Jul 3 22:31:16 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * version.c: Version 1.8.5.
+
+Wed Jul 3 21:51:23 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (blocking_error): Define macro.
+ (buf_send_output, buf_input_data): Use blocking_error rather than
+ #ifdef EWOULDBLOCK.
+
+Tue Jul 2 20:38:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * add.c (add): Change message which said "version 1.2 of foo.c
+ will be resurrected"; the message was confusing because it made
+ people think that the old contents of the file would come back
+ instead of the contents in the working directory.
+
+Mon Jul 1 01:38:57 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * find_names.c (find_dirs): Add comment explaining why we bother
+ with the entries stuff.
+
+Sat Jun 29 20:23:50 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * find_names.c (Find_Directories): Add entries parameter, and pass
+ it to find_dirs.
+ (find_dirs): Add entries parameter, and skip all files it names.
+ * cvs.h (Find_Directories): Update declaration.
+ * recurse.c (start_recursion): Pass NULL to Find_Directories.
+ (do_recursion): Pass entries to Find_Directories.
+
+ * client.c (send_modified): Add trace output.
+
+ * diff.c (diff_fileproc): Always call diff_file_nodiff. Handle
+ dead versions correctly. Handle diffs between a specified
+ revision to a dead file correctly.
+ (diff_file_nodiff): Add just_set_rev parameter. Change caller.
+ * patch.c (patch_fileproc): Check for dead versions.
+ * sanity.sh (death2): Add tests for above patches.
+
+Fri Jun 28 20:30:48 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ For reference, this takes CVS's text segment from 271136 bytes to
+ 270352 bytes, a saving of 784. Not as good as I had hoped (oh well,
+ the source *seems* simpler at least).
+ * checkin.c (Checkin), commit.c (finaladd, remove_file), update.c
+ (join_file, checkout_file, patch_file), no_diff.c
+ (No_Differences), server.c (server_updated), classify.c
+ (Classify_File), vers_ts.c (Version_TS), diff.c (diff_file_nodiff):
+ Use a single struct file_info * argument instead of a bunch of
+ separate arguments for each of its fields. Remove local fullname
+ emulations. Use fullname in error messages where file had
+ erroneously been used.
+ * cvs.h: Update declarations of above functions and move them to
+ after the struct file_info declaration.
+ * server.h: Update declarations.
+ * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
+ commit.c, diff.c, history.c, import.c, update.c, status.c,
+ remove.c, rtag.c, tag.c: Change callers.
+
+ * diff.c (diff): Remove -q and -Q command options. This somehow
+ slipped through the cracks of the general removal of -q and -Q
+ command options on Jul 21 1995. Note that there is no need to
+ accept and ignore these options in server mode, like there is for
+ some of the commands, because the client has never sent -q and -Q
+ command options for "cvs diff".
+
+Fri Jun 28 16:50:18 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * add.c (add): Pass force_tag_match as 1 when calling Version_TS.
+ * sanity.sh (death2): Add test for above patch. Also add
+ commented out test for adding a file on a nonbranch tag, which CVS
+ currently, mistakenly, permits.
+
+Thu Jun 27 23:20:49 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * diff.c (longopts): New static array.
+ (diff): Handle long options and new short options in diff 2.7.
+ Fix arbitrary limit associated with the tmp variable.
+ * client.c (send_option_string): Parse options as space separated,
+ rather than requiring all options to be single characters.
+ * diff.c, options.h.in: Remove CVS_DIFFDATE; the need for it is gone
+ now that we have --ifdef (the new behavior is the behavior which
+ was the default, which is that -D specifies a date).
+
+Wed Jun 26 22:36:29 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * commit.c (check_fileproc): If there is a tag, permit adding a
+ file even if the RCS file already exists.
+ (checkaddfile): If there is a tag, use the file in the regular
+ repository, rather than the Attic, if it exists.
+ * sanity.sh (death2): New set of tests for above patch.
+
+Tue Jun 25 23:34:13 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (checkout_file): Add comments about two cases which
+ seem fishy.
+
+ * sanity.sh (basic2, death): Add comments encouraging people to
+ stop making these sections bigger and more complex. I'm not (yet
+ at least) trying to figure out the ideal size for a section (my
+ current best estimate is 10-20 tests), but surely these
+ two sections are pushing the limit, whatever it is.
+
+Tue Jun 25 19:52:02 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (checkout_file): Rewrite handling of dead files when
+ joining. Avoid space leaks. Avoid unnecessary file
+ resurrections.
+ (join_file): Add checks to skip merging a dead revision onto a
+ dead revision, and to skip merging a common ancestor onto a dead
+ revision. Move check for non-existent working file after new
+ checks.
+ * sanity.sh (death): Use dotest for tests 86 and 95, and add test
+ death-file2-1, to test above changes.
+
+Mon Jun 24 11:27:37 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (merge_file): Replace file, repository, entries, and
+ update_dir arguments with finfo argument. Use fullname field
+ instead of locally emulating it.
+ (update_fileproc): Update caller.
+ (merge_file): If -kb is in effect, call it a conflict, leave
+ the two versions in the file and the backup file, and tell the
+ user to deal with it. The previous behavior was that the merge
+ would fail and then there was no way to do a checkin even once you
+ resolved the conflict (short of kludges like moving the file
+ aside, updating, and then moving it back).
+ * sanity.sh (binfiles): New tests binfiles-con* test for above
+ behavior. Adjust remaining tests to reflect changes in revision
+ numbers.
+
+Mon Jun 17 15:11:09 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * sanity.sh (import): Remove sleep. Requiring it was a bug, and
+ it is fixed in the current sources.
+
+Mon Jun 17 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (TMPPWD): Set to real name of /tmp directory.
+ (basic2-64, conflicts-126.5): Use ${TMPPWD}.
+
+Mon Jun 17 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcscmds.c (RCS_checkout): Remove noerr parameter. Change all
+ callers.
+ * rcs.c (RCS_fast_checkout): Likewise.
+
+Mon Jun 17 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Cleaner implementation of tag locking code added Jun 13 1996:
+ * cvs.h (tag_lockdir, tag_unlockdir): Declare.
+ * rtag.c (locked_dir, locked_list): Remove.
+ (rtag_fileproc): Don't lock here; just call tag_lockdir.
+ (rtag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
+ * tag.c (locked_dir, locked_list): Move farther down in file.
+ (tag_fileproc): Don't lock here; just call tag_lockdir.
+ (tag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
+ (tag_lockdir, tag_unlockdir): New functions.
+
+Wed Jun 15 07:52:22 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * client.c (send_modified, update_entries): Fixed bug which didn't
+ handle binary file transfers in BROKEN_READWRITE_CONVERSION.
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (checkout_file): Call server_scratch_entry_only when a
+ non-pertinent file is found that does not exist.
+ * sanity.sh (newb): Add test case for above patch.
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (update_fileproc): Call server_scratch_entry_only when
+ handling T_REMOVE_ENTRY on the server.
+ * sanity.sh (conflicts2): Remove special case for remote server
+ bug fixed by above patch.
+
+Thu Jun 13 21:16:26 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (basica-9): Update to reflect change to "sufficient
+ access" message.
+
+Thu Jun 13 20:13:55 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * recurse.c, cvs.h (start_recursion): Remove wd_is_repos argument;
+ add comment about meaning of which argument. Use !(which &
+ W_LOCAL) instead of wd_is_repos.
+ * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
+ patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
+ watch.c: Change callers. This is a semantic change in only two
+ cases: (1) tag_check_valid, where repository was not "", and (2)
+ the pipeout case in checkout_proc. In both of those cases the
+ previous setting of wd_is_repos did not reflect whether we
+ actually were cd'd into the repository.
+ * recurse.c (start_recursion): Only check for the CVS subdirectory
+ if which & W_LOCAL.
+ * sanity.sh (devcom): Add test case fixed by above patch.
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * ignore.c (ignore_files): Skip based on the file name before
+ calling lstat.
+
+ * client.c (last_register_time): New static variable.
+ (update_entries): Set last_register_time when calling Register.
+ (get_responses_and_close): If the current time is the same as
+ last_register_time, sleep for a section to avoid timestamp races.
+
+Thu Jun 13 17:24:38 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (supported_request): Reindent.
+
+Thu Jun 13 1996 Mark H. Wilkinson <mhw@minster.york.ac.uk>
+
+ * options.h.in, mkmodules.c: Corrections to allow compilation of
+ non-client-server version.
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * tag.c (tag_check_valid_join): New function.
+ * cvs.h (tag_check_valid_join): Declare.
+ * checkout.c (join_tags_validated): New static variable.
+ (checkout_proc): Check validity of join tags.
+ * update.c (update): Likewise.
+
+ * tag.c (tag_check_valid): Correct sizeof CVSROOTADM_HISTORY to
+ use CVSROOTADM_VALTAGS.
+
+ * lock.c (Writer_Lock): If we called lock_wait to wait for a lock,
+ then call lock_obtained when we get it.
+ (set_lock): Likewise.
+ (lock_obtained): New static function.
+
+Thu Jun 13 13:55:38 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): If we can't read cvs root, don't say "you don't
+ have sufficient access"; just print the message from errno. It
+ might be "No such file or directory" or something else for which
+ "you don't have sufficient access" doesn't make any sense.
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * commit.c (remove_file): Pass noerr as 0 to RCS_checkout.
+
+Thu Jun 13 12:55:56 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * patch.c: Initialize rev1_validated and rev2_validated to 0, not 1.
+
+Thu Jun 13 12:55:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rtag.c (locked_dir): Revise comments regarding locking; the rtag
+ and tag situations are different (changing from readlocking one
+ directory at a time to writelocking one directory at a time does
+ not do everything we might want, but it does fix simultaneous tags
+ and it doesn't make anything worse).
+
+Thu Jun 13 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Prevent simultaneous tag operations from interfering with each
+ other.
+ * rtag.c (rtag_proc): Pass rtag_filesdoneproc to start_recursion,
+ and pass readlock as 0.
+ (locked_dir, locked_list): New static variables.
+ (rtag_fileproc): Write lock the repository if it is not already
+ locked.
+ (rtag_filesdoneproc): New static function to unlock the
+ repository.
+ * tag.c (tag): Pass tag_filesdoneproc to start_recursion, and pass
+ readlock as 0.
+ (locked_dir, locked_list): New static variables.
+ (tag_fileproc): Write lock the repository if it is not already
+ locked.
+ (tag_filesdoneproc): New static function.
+
+Thu Jun 13 11:42:25 1996 Mike Sutton <mws115@llcoolj.dayton.saic.com>
+
+ * sanity.sh: Allow digits in usernames.
+
+Wed Jun 12 16:23:03 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (send_modified, update_entries): Reindent and add
+ comments to BROKEN_READWRITE_CONVERSION code.
+
+Wed Jun 12 16:23:03 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * client.c (send_modified, update_entries): Add
+ BROKEN_READWRITE_CONVERSION code.
+
+Mon Jun 10 20:03:16 1996 J.T. Conklin <jtc@cygnus.com>
+
+ * rcs.c (RCS_gettag): No longer set p to NULL if rcs is also NULL.
+ rcs will never be null, thanks to the assertion at top of function.
+
+Mon Jun 10 16:28:14 1996 Ian Lance Taylor <ian@cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): Ignore CVS/Root file when doing an import.
+
+Fri Jun 7 18:20:01 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * status.c (status_fileproc, tag_list_proc): Use cvs_output rather
+ than writing to stdout directly.
+
+Wed Jun 5 13:54:57 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (force_tag_match, tag, date): New static variables.
+ (annotate_fileproc): Redo the loop to look for the version
+ specified by tag/date/force_tag_match, and handle branches
+ correctly.
+ (annotate_usage): Mention -f, -r, and -D.
+ (annotate): Handle -f, -r, and -D.
+
+Tue Jun 4 13:38:17 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (annotate_fileproc): Skip unrelated branch deltas.
+
+Fri Jun 7 13:04:01 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): Change INITIALIZE_SOCKET_SUBSYSTEM to
+ SYSTEM_INITIALIZE and pass it pointers to argc and argv. Rename
+ CLEANUP_SOCKET_SUBSYSTEM to SYSTEM_CLEANUP.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * import.c (add_rcs_file): make buf char[] not unsigned char[]
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * main.c (main): Add CLEANUP_SOCKET_SUBSYSTEM hook at end. Revise
+ comments regarding INITIALIZE_SOCKET_SUBSYSTEM.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * main.c (main): Don't mess with signals if DONT_USE_SIGNALS is
+ defined.
+
+Thu Jun 6 15:32:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * modules.c (cat_module): Always format for 80 columns rather than
+ trying to determine how wide the screen is. The code we had for
+ the latter didn't cover all cases, was a portability headache, and
+ didn't work client/server.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * error.c: Don't declare strerror if it is #defined.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * cvs.h: If ENUMS_CAN_BE_TROUBLE, typedef Dtype to int not an enum.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * update.c (update): If DONT_USE_PATCH, don't request patches.
+ Also call supported_request rather than reimplementing it.
+
+Wed Jun 05 10:07:29 1996 Mike Ladwig <mike@twinpeaks.prc.com>
+
+ * client.c (read_line): Changed an occurence of '\n' to '\012'.
+
+Wed Jun 5 17:18:46 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * add.c (add_directory): Don't create the directory if noexec.
+ * sanity.sh (basica): New tests basica-1a10, basica-1a11 test for
+ above fix.
+ * sanity.sh (basicb): New tests basicb-2a10, basicb-2a11,
+ basicb-3a1 test for analogous situation with files rather than
+ directories.
+
+Tue Jun 4 13:38:17 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * sanity.sh: When doing a remote check, use :server: in CVSROOT.
+
+Wed Jun 5 13:32:40 1996 Larry Jones <larry.jones@sdrc.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * ignore.c: Set ign_hold to -1 when not holding instead of 0 so
+ that holding an empty list works correctly.
+ * sanity.sh (ignore): New tests 190 & 191 for above fix.
+
+Wed Jun 5 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ Visual C++ lint:
+ * client.c (update_entries): Copy the size to an unsigned variable
+ before comparing it with unsigned variables.
+ (handle_created, handle_update_existing): Prototype.
+
+Tue Jun 4 10:02:44 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (responses): Add Created and Update-existing responses.
+ * server.c (server_updated): If they are supported, use them
+ instead of Updated.
+ * client.c (struct update_entries_data): Add existp field.
+ (handle_checked_in, handle_updated, handle_new_entry,
+ handle_merged, handle_patched): Set it.
+ (handle_update_existing, handle_created): New functions,
+ for new responses.
+ (update_entries): Based on existp, check for
+ existence/nonexistence of file.
+ (try_read_from_server): Expand comment.
+ * server.c, server.h (server_updated): New argument vers.
+ * checkin.c (Checkin), commit.c (commit_fileproc), update.c
+ (update_fileproc, merge_file, join_file): Pass it.
+ * cvs.h: Move include of server.h after Vers_TS declaration.
+ * sanity.sh (conflicts2): New tests conflicts2-142d* test for
+ above fix.
+
+ * sanity.sh (ignore): Fix typo in comment.
+
+ * tag.c (tag_check_valid): Add comment clarifying when val-tags
+ entries are created.
+
+Mon Jun 3 07:26:35 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * version.c: Increment version number to 1.8.4.
+
+Mon Jun 3 02:20:30 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * version.c: version 1.8.3.
+
+Thu May 30 10:07:24 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (cmds): Fix typo ("bdif" -> "dif") which was accidentally
+ introduced 24 May 96.
+
+ * main.c (main_cleanup): Add comment stating default case will
+ never be reached.
+
+Wed May 29 21:43:43 1996 noel <noel@BOAT_ANCHOR>
+
+ * main.c (main_cleanup): check to see if SIGHUP, SIGINT, SIGQUIT,
+ SIGPIPE, and SIGTERM are defined before using them. Also add a
+ default case to print out those errors numerically which are not
+ found.
+
+Wed May 29 18:43:45 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * expand_path.c (expand_path): Document LINE == 0 and allocation
+ of return value.
+ * modules.c (do_module): Pass 0, not -1, to indicate line number
+ not known. Free value returned from expand_path. Deal with NULL
+ return from expand_path.
+
+Wed May 29 15:56:47 1996 Greg A. Woods <woods@most.weird.com>
+
+ * modules.c (do_module): call expand_path() on the program name
+ specfied by one of '-o', '-t', or '-e' in the modules file before
+ passing it to run_setup(). This makes it possible to use $CVSROOT
+ (or indeed ~user or any other user-specified variable) to specify
+ pathnames for programs not installed in the normal execution path.
+
+Sun May 26 21:57:09 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_server): Don't include %s in error message;
+ there is no argument to go with it. Do include "internal error"
+ in error message since that might not be clear to the user otherwise.
+
+Sun May 26 11:58:13 1996 Greg A. Woods <woods@most.weird.com>
+
+ * root.c (set_local_cvsroot): enforce a wee bit of portability
+ (parse_cvsroot): same....
+ (DEBUG main): same, plus style guidelines
+ (DEBUG error): deleted -- not necessary here (use fprintf instead)
+
+ * mkmodules.c (modules_contents): updated notes about what must be
+ done if you change any of the options for a module.
+ (loginfo_contents): fixed grammar, re-pargraphed, and added 'echo
+ %s;' to the example.
+ (editinfo_contents): minor grammar fix.
+
+Sun May 26 17:51:18 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * vers_ts.c (Version_TS): Remove case where we get options from
+ sdtp->options. Whatever case that was intended to handle is
+ probably lost in the mists of time, but sdtp->options isn't set
+ anywhere, and I think that has been true for a long time.
+ * cvs.h (struct stickydirtag): remove options field.
+ * entries.c (freesdt): Don't free ->options.
+ * sanity.sh (binfiles): New tests binfiles-13a* test for above fix.
+
+ * tag.c (check_fileproc): Use fullname not file in error message.
+ Say "locally modified" not "up-to-date"; the file need not match
+ the head revision it only need match some revision.
+
+Sun May 26 16:57:02 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * tag.c: added support for new option -c to make sure all tagged
+ files are up-to-date
+ (tag): check for option and set check_uptodate
+ (check_fileproc): check status of file if check_uptodate is set
+
+Sat May 25 15:22:26 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): Revert change to look for a -H command option;
+ command option parsing should be up to each subcommand and the -H
+ global option works fine.
+
+Mon May 23 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * client.c (process_prune_candidates): Set prune_candidates to
+ NULL at the end of the function.
+
+Mon May 23 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * checkout.c (checkout): In code to handle multiple arguments,
+ pass preload_update_dir, not where, to Create_Admin.
+ (checkout_proc): Pass preload_update_dir, not where, to
+ Create_Admin.
+
+Thu May 23 19:14:35 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (server_set_sticky): Assert that update_dir != NULL.
+ * sanity.sh (basicb): New test; tests for Ian's fix to checkout.c
+ above.
+
+Thu May 23 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * patch.c (patch_fileproc): Don't ignore a file just because it is
+ in the Attic directory.
+
+Thu May 23 10:40:24 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (death): New tests death-{72a,76a0,76a1} test for bug
+ fixed by Ian's patch_fileproc change above.
+
+ * sanity.sh (death): Remove "temporary hack" in test 89.
+
+ * rcs.c (RCS_fast_checkout): If error closing file, and workfile
+ is NULL, use sout in error message instead of workfile.
+
+Thu May 23 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_fast_checkout): Do a fast checkout in the case where
+ workfile is NULL and sout is a file name.
+
+Wed May 22 19:06:23 1996 Mark Immel <immel@centerline.com>
+
+ * update.c (checkout_file): New arg resurrecting_out, to provide
+ resurrecting flag to caller.
+ (join_file): New arg resurrecting. Register with "0" if we are
+ the server and are resurrecting.
+ (update_fileproc): Pass the flag from checkout_file to join_file.
+
+Wed May 22 19:06:23 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (death): Test for above fix, in test 89 and new test 89a.
+
+Tue May 21 09:49:04 1996 Greg A. Woods <woods@most.weird.com>
+
+ * update.c (update_usage): oops -- fix my spelling typo.
+
+Mon May 20 10:53:14 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (find_fileproc): Call freevers_ts.
+
+ * commit.c (find_*): Keep an ignlist, like update.c and client.c do.
+ * commit.c (commit): Process the files from the ignlists, once we
+ are connected to the server.
+ * sanity.sh (ignore): New tests 189e and 189f test for new
+ commit.c behavior (and client.c behavior, which is unchanged).
+ * sanity.sh (conflicts): Remove dir1 and sdir in parts of the test
+ where we aren't prepared for "? dir1" and similar output.
+
+Mon May 20 13:23:36 1996 Greg A. Woods <woods@most.weird.com>
+
+ * main.c (cmd_usage): minor corrections to descriptions of status,
+ rtag, tag, and rdiff. Sort alphabetically by command name.
+
+Mon May 20 10:36:07 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * client.c (call_in_directory): Move the call to Entries_Close
+ before the call to chdir, since Entries_Close examines files in
+ the current directory.
+
+Fri May 17 12:13:09 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_tcp_server, start_server, start_rsh_server,
+ read_line, filter_through_gzip, filter_through_gunzip,
+ call_in_directory): Reindent as needed.
+
+ * main.c (main): Add missing #endif. Use indentation to indicate
+ nesting.
+
+Thu May 16 17:15:01 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (cmd_usage): Add "init" command.
+
+Thu May 16 16:45:51 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * client.c (start_tcp_server): Error message modified to tell the
+ user to use ":server:" instead of setting CVS_CLIENT_PORT to a
+ negative number.
+
+ * main.c (main): Add #ifdefs for turning off buffering of
+ stdio/stderr, so we don't get it by default.
+
+Thu May 16 01:29:47 1996 noel <noel@BOAT_ANCHOR>
+
+ * commit.c (commit_filesdoneproc): Print the repository and root
+ directories as part of the error message.
+
+ * main.c (main): Don't buffer stdout or stderr. It's inefficient,
+ but it then produces the right output for sanity.sh.
+
+Thu May 16 09:44:47 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * fileattr.c (fileattr_set): In the case where we are about to
+ call delproc, don't free ->data; delproc does that.
+ * sanity.sh (devcom): New tests devcom-b* test for this fix.
+
+ * sanity.sh (conflicts): Remove redundant clean up from previous
+ tests at the beginning of the test. Use dotest a few more places.
+ (conflicts2): New test, tests for Ian's fix to Classify_File.
+
+ * client.c (remove_entry_and_file): Add comment about
+ existence_error's.
+
+Sat May 16 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * update.c (update_dirleave_proc): Don't try to chdir .. and check
+ for an empty directory if there is a slash in the directory name.
+
+Thu May 16 09:02:59 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (deep): New tests deep-4a* test for Ian's fix to
+ update_dirleave_proc.
+
+Sat May 16 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * main.c (main_cleanup): Report signal name before dying.
+
+Wed May 15 23:47:59 1996 Noel Cragg <noel@gargle.rain.org>
+
+ * main.c (usg): revert usage strings for `-H' flag change.
+
+Sat May 15 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * server.c (serve_static_directory): Return immediately if there
+ is a pending error.
+ (serve_sticky): Likewise.
+ (serve_modified): Read the file data even if there is a pending
+ error.
+
+Wed May 15 14:26:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): If -d and CVS/Root both specified, after writing
+ the value from -d into CVS/Root, use the value from -d, not the
+ old value from CVS/Root. Don't write CVS/Root with value from -d
+ until we have verified that it works.
+ * sanity.sh: Reenable test basica-9 and adjust for new behavior.
+
+Tue May 14 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * logmsg.c (do_editor): If user aborts the commit, still remove the
+ temporary file.
+
+Tue May 14 11:45:41 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * filesubr.c, cvs.h (cvs_temp_name): New function. Move L_tmpnam
+ define from cvs.h to filesubr.c.
+ * client.c, diff.c, import.c, login.c, logmsg.c, no_diff.c,
+ patch.c, wrapper.c: Call cvs_temp_name not tmpnam.
+ * login.c (login): Reindent function.
+
+Tue May 14 10:56:56 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * rcs.c (RCS_fast_checkout): If workfile is NULL, don't call chmod.
+
+Mon May 13 10:52:10 1996 Greg A. Woods <woods@most.weird.com>
+
+ * checkout.c (export_usage): note which options cause a sticky
+ version to be set, and which option avoids this.
+ * update.c (update_usage): likewise
+
+Sat May 11 18:57:07 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Comment out test basica-9 until I get around to
+ actually fixing it (the -d vs. CVS/Root change broke it).
+
+Fri May 10 09:39:49 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main): -d now overrides CVS/Root.
+
+Thu May 9 19:45:24 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c: Remove comment listing commands at beginning. It was
+ out of date and redundant with the help.
+
+Thu May 9 09:33:55 1996 Greg A. Woods <woods@most.weird.com>
+
+ * main.c: add 'init' to opening comment listing commands
+
+ * mkmodules.c (init): fix to recognize argc==-1 as hint to call
+ usage() [should make "cvs init -H" work as expected]
+
+Wed May 8 15:02:49 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Set EXPR in the case that the expr in the path is the
+ one that we want.
+
+Wed May 8 14:06:24 1996 Greg A. Woods <woods@most.weird.com>
+
+ * sanity.sh (test): - convert all '[' to test ala GCD
+
+Wed May 8 13:46:56 1996 Greg A. Woods <woods@most.weird.com>
+
+ * sanity.sh (expr): - make a valiant attempt to find GNU expr
+ - Patch from Larry Jones:
+ sanity test deep-4 failed with "expr: arg list too long"
+ sanity test 56 failed because the stderr and stdout output was not
+ interleaved as expected.
+ sanity test modules-155a4 failed with "ls: illegal option -- 1"
+
+ * main.c (main): - Patch from Larry Jones for SysV setvbuf
+
+Tue May 7 16:41:16 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * version.c: Increment version number to 1.8.2 to work around fact
+ that CVS 1.8 (confusingly) calls itself 1.8.1 not 1.8.
+
+Tue May 7 10:44:20 MET DST 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * rcs.c (rcsvers_delproc): fix memory leak by freeing author
+ field.
+
+Mon May 6 10:40:05 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (conflicts): New test conflicts-126.5 tests for bug
+ which Ian fixed May 5 in update.c
+
+Mon May 6 06:00:10 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * Version 1.8.1
+
+Sun May 5 21:39:02 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * vers_ts.c (Version_TS): If sdtp is NULL, go ahead and check
+ RCS_getexpand for options. Fixes binaries and non-unix clients.
+ * sanity.sh: Fix binfiles-5.5 to test for the correct behavior
+ rather than the buggy behavior which existed when the binfiles-5.5
+ test was written.
+ (binfiles-14c,binfiles-14f): Likewise.
+
+Sun May 5 17:38:21 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ Integrated changes submitted by Ian Taylor <ian@cygnus.com>
+
+ * update.c (update_dirent_proc): cvs co -p doesn't print
+ anything when run from an empty directory.
+
+ * import.c (import_descend_dir): Check for a file in the
+ repository which will be checked out to the same name as the
+ directory.
+
+Sat May 4 12:33:02 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ Extract the head revision directly from the RCS file when
+ possible, rather than execing co.
+ * rcs.c (RCS_reparsercsfile): Set delta_pos field.
+ (getrcskey): Add lenp parameter. Change all callers.
+ (RCS_fast_checkout): New function.
+ (annotate_fileproc): If PARTIAL is not set, just fseek to
+ delta_pos.
+ * rcs.h (struct rcsnode): Add delta_pos field.
+ (RCS_fast_checkout): Declare.
+ * diff.c (diff_file_nodiff): Call RCS_fast_checkout rather than
+ RCS_checkout.
+ * import.c (update_rcs_file): Likewise.
+ * no_diff.c (No_Difference): Likewise.
+ * patch.c (patch_fileproc): Likewise.
+ * update.c (checkout_file): Likewise.
+ (patch_file): Likewise.
+ (join_file): Likewise.
+
+Sat May 4 12:33:02 1996 Ian Lance Taylor <ian@cygnus.com>
+
+ * classify.c (Classify_File): Don't report a conflict for a
+ pending remove if somebody else has already removed the file.
+
+Thu May 2 13:34:37 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * Version 1.7.88
+
+Thu May 2 01:40:55 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * server.c (HAVE_INITGROUPS): Use initgroups() only if
+ located by configure, in the event a system has crypt(), but
+ no initgroups()
+
+Wed May 01 21:08:21 1996 noel <noel@BOAT_ANCHOR>
+
+ * client.c (filter_through_gunzip): use "gzip -d" instead of
+ "gunzip," since there's no good reason (on NT at least) to have an
+ extra copy of gzip.exe copied to gunzip.exe (Arrrrgh! No symbolic
+ links!).
+
+ * mkmodules.c (init): check to see that we have the correct number
+ of arguments or print out the usage message (used to be argc > 1,
+ should be argc != 1, because help forces argc == -1 as a special
+ case).
+
+Wed May 1 18:05:02 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (basica): When testing rejection of reserved tag name,
+ use BASE instead of RESERVED.
+
+Wed May 1 15:15:11 1996 Tom Jarmolowski <tjj@booklink.com>
+
+ * rcs.c (linevector_delete): Only copy up to vec->nlines - nlines,
+ not to vec->nlines.
+
+Wed May 1 15:43:21 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcscmds.c (RCS_settag): Instead of reserving all tag names
+ containing only uppercase letters, reserve only BASE and HEAD.
+ * sanity.sh (mflag): Revert 26 Mar change; use all-uppercase tag
+ name again.
+
+Wed May 1 15:15:11 1996 Tom Jarmolowski <tjj@booklink.com>
+
+ * rcs.c (linevector_add): Move increment of i out of larger
+ statement, to avoid assumptions about evaluation order.
+
+Tue Apr 30 15:46:03 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.7.87.
+
+ * server.c (check_password): Don't use ANSI string concatenation.
+ Reindent function.
+
+Mon Apr 29 10:48:38 1996 Noel Cragg <noel@gargle>
+
+ * root.c (parse_cvsroot): removed "rsh" as an alias to "server" in
+ the method section.
+
+ * main.c (main): new variable help so we can support the `cvs -H
+ cmd' convention. Reverts change of 26 Apr 96 which removed this
+ feature.
+
+Sun Apr 28 14:57:38 1996 Noel Cragg <noel@gargle>
+
+ * main.c (main): update error message if parse_cvsroot fails.
+ * server.c (serve_root): same.
+ (serve_init): same.
+
+ * client.c (start_tcp_server): get rid of the "fall through"
+ stuff, now that we have access methods.
+ (start_server): switch off the access method to choose routine
+ that starts the server.
+ (start_tcp_server): tofd wasn't getting set to -1 early enough,
+ because a call to error for bind or gethostbyname might fail and
+ the subsequent error check to see if the connection had been made
+ would fail.
+
+ * root.c: new variable method_names for error reporting purposes.
+
+Sun Apr 28 17:22:15 1996 Noel Cragg <noel@occs.cs.oberlin.edu>
+
+ * server.c: moved kerberos #includes from main.c for the
+ kserver_authenticate_connection routine.
+
+Fri Apr 26 07:59:44 1996 Noel Cragg <noel@gargle>
+
+ * server.c (serve_init): use the new return value from
+ parse_cvsroot.
+ (serve_root): same.
+ * main.c (main): same.
+
+ * root.c (parse_cvsroot): fix indentation, add a return value
+ which tells whether the command succeeded or failed.
+
+ * main.c (main): move the setting of the UMASK environment
+ variable inside the stuff that gets done if the user is NOT asking
+ for help, so we don't signal any errors prematurely (don't want to
+ give an error because we can't parse an environment variable
+ correctly if the user asks for help). Similar mods for the code
+ that tries to get the working directory.
+
+ Also make CVSADM_Root a local variable instead of a global, since
+ its scope is only about 20 lines here!
+
+ * server.c (kserver_authenticate_connection): moved code from
+ main.c to clean up MAIN. Makes sense, since we already have a
+ pserver_authenticate_connection.
+ (pserver_authenticate_connection): rename from
+ authenticate_connection.
+
+ * main.c (main): reorganized the routine to eliminate variables
+ help, help_commands, and version_flag. Now the routine is much
+ clearer, since we don't have to be checking to see if these
+ variables are set. One behavior that was a bug/feature which is
+ now gone is an invocation like "cvs -H rtag" -- previously this
+ would give usage for rtag, but now gives usage for cvs itself.
+ The first behavior didn't make sense, especially since we say in
+ the docs that command-line flags are position-specific. *Reverted
+ Above*
+
+Thu Apr 25 20:05:10 1996 Noel Cragg <noel@gargle>
+
+ * main.c (main): make sure we have a valid command name before we
+ do anything else (moved the thing that looks for a command in CMDS
+ to right after the GETOPT loop). Added `kserver' and `pserver' to
+ the table so they will be recognized; set their functions to
+ SERVER so that help will be given when asked for.
+
+ * expand_path.c (expand_variable): return CVSroot_original rather
+ than CVSroot_directory.
+
+ * main.c (main): save CVSroot in the env rather than
+ CVSroot_original, since we might not have called PARSE_CVSROOT
+ (this can happen if we use the -H option to a command).
+
+ * root.c (parse_cvsroot): the parsing method was bogus for
+ guessing when we had hostnames vs. directories specified. Any
+ ambiguity should be removed by having the user specify the access
+ method. If the access method isn't specified, choose
+ server_method if the string contains a colon or local_method
+ otherwise.
+
+ * Changed CVSroot_remote back to client_active since the code
+ reads better.
+
+Wed Apr 24 17:27:53 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * vers_ts.c (Version_TS): xmalloc enough space (1 more
+ byte). Thanks to purify!
+
+Mon Apr 22 00:38:08 1996 Noel Cragg <noel@gargle>
+
+ * create_adm.c (Create_Admin): pass CVSroot_original instead of
+ CVSroot_directory (oops!).
+ * update.c (update_filesdone_proc): same.
+
+ * server.c (serve_root): modify to use parse_cvsroot rather than
+ goofing around with other variables. Will need to fix
+ parse_cvsroot to have a return value so we can return an error and
+ quit gracefully if in server mode.
+ (serve_init): same.
+
+ * main.c: modify command table to remove client_* routines, since
+ they no longer exist.
+ (main): don't try to switch off non-existent field in command
+ table! ;-)
+
+ * client.h (client_*): removed prototypes for now non-existent
+ functions.
+
+ * client.c: remove proto for get_cvs_password, since it is now in
+ cvs.h. Modify routines to use new globals that describe CVSROOT
+ rather than client_active, server_host, server_user, and
+ server_cvsroot.
+ (parse_cvsroot): removed function, since a more generic version
+ now lives in root.c.
+ (connect_to_pserver): remove call to parse_cvsroot, since main.c
+ has already done it for us.
+ (client_*): removed all of these routines, since they only call
+ parse_cvsroot and then their respective operation functions.
+ Since main.c has already called parse_cvsroot, we shouldn't bother
+ with the extra function call, since client-server diffs are
+ already handled in the core routines themselves.
+
+ * main.c: remove CVSroot as a global variable. Remove
+ use_authenticating_server variable since we have a new
+ `CVSroot_method' variable instead.
+ (main): add `CVSroot' as a local variable. Call parse_cvsroot
+ after we're sure we have the right setting for `CVSroot.'
+
+ * login.c (login): update to use new global variables. Instead of
+ old behavior which let the user type in user@host when prompted,
+ it makes them do it in CVSROOT proper. The routine still lets the
+ user type the password, however.
+ (get_cvs_password): make sure that CVSROOT is fully qualified
+ before trying to find the entry in the .cvspass file.
+ * cvs.h: add prototype for get_cvs_password.
+
+ * add.c: use new globals that describe CVSROOT.
+ * admin.c: same.
+ * checkout.c: same.
+ * commit.c: same.
+ * create_adm.c: same.
+ * diff.c: same.
+ * edit.c: same.
+ * expand_path.c: same.
+ * history.c: same.
+ * ignore.c: same.
+ * import.c: same.
+ * log.c: same.
+ * mkmodules.c: same.
+ * modules.c: same.
+ * parseinfo.c: same.
+ * patch.c: same.
+ * rcs.c: same.
+ * recurse.c: same.
+ * release.c: same.
+ * remove.c: same.
+ * repos.c: same.
+ * rtag.c: same.
+ * status.c: same.
+ * tag.c: same.
+ * update.c: same.
+ * watch.c: same.
+ * wrapper.c: same.
+
+ * root.c (Name_Root): remove error message that reports missing
+ CVSROOT, since new code in main.c will catch it and also print out
+ an error.
+ (parse_cvsroot): new function -- takes a CVSROOT string and breaks
+ it up into its component parts -- method, hostname, username, and
+ repository directory. Sets new global variables that describe the
+ repository location more precisely: CVSroot_original,
+ CVSroot_remote, CVSroot_method, CVSroot_username,
+ CVSroot_hostname, CVSroot_directory for use by all other
+ functions. Checks for obvious errors in format of string.
+ (main): a short routine to test parse_cvsroot from the command
+ line.
+ * cvs.h: add prototype for parse_cvsroot and extern definitions
+ for new globals.
+
+ * cvs.h: removed CVSroot variable, since we don't want other
+ routines using the raw CVSROOT (also helped to find all of the
+ refs to the variable!).
+
+Fri Apr 19 11:22:35 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * Version 1.7.86
+
+Thu Apr 18 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c (try_read_from_server): Compare return value from fwrite
+ with a size_t not an int (Visual C++ lint).
+
+Wed Apr 17 11:56:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (try_read_from_server): New function.
+ (read_from_server): Use it.
+ (read_counted_file): New function.
+ * client.c, server.c: Add Template response.
+ * cvs.h (CVSADM_TEMPLATE): Added.
+ * logmsg.c (do_editor): If repository is NULL, use CVSADM_TEMPLATE
+ file in place of rcsinfo.
+ * server.c, server.h (server_template): New function.
+ * create_adm.c (Create_Admin): Call it.
+
+Tue Apr 16 13:56:06 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * repos.c (Name_Repository): Fix comments.
+ * create_adm.c (Create_Admin): Fix indentation.
+
+Wed Apr 10 16:46:54 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * options.h.in: Include relevant information here rather than
+ citing (former) FAQ.
+
+ * ChangeLog-9395: Fix typo in introductory paragraph.
+
+Wed Apr 10 14:55:10 1996 code by Mike Spengler mks@msc.edu
+ comments by Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * filesubr.c (unlink_file_dir,deep_remove_dir): Don't call unlink
+ on something which might be a directory; check using isdir instead.
+
+Wed Apr 10 14:55:10 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * checkout.c (build_dirs_and_chdir): Pass path, not cp, to
+ Create_Admin. The former is the correct update dir.
+ * sanity.sh (modules): New tests modules-155* test, for above fix.
+
+Mon Apr 8 13:53:27 1996 Samuel Tardieu <sam@inf.enst.fr>
+
+ * rcs.c (annotate_fileproc): If the file is not under CVS control,
+ return instead of dumping a core. Don't bug on files with an empty
+ first revision.
+
+Fri Mar 29 16:08:28 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.c (annotate_fileproc): If last line of add-chunk is not
+ newline terminated, end the loop when we find that out.
+
+Fri Mar 29 16:59:34 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * rcs.c (annotate_fileproc): allow last line of add-chunk not to
+ be newline terminated
+
+Thu Mar 28 10:56:36 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ Add more diff tests:
+ * sanity.sh (basic2): Use dotest for test 61.
+ (basica): Add test basica-6.2.
+ (branches): Add tests branches-14.4 and branches-14.5.
+ (basic1): Remove tests 19, 20, 25, and 26. The only thing this
+ might miss out on is diff's interaction with added and removed
+ files, but those tests didn't test that very well anyway.
+
+ * rcs.c (RCS_getrevtime): Add comment regarding years after 1999.
+
+ * rcs.c: Add "cvs annotate" command and related code.
+ (getrcskey): Move special handling of RCSDESC from here to
+ callers. Handle those keys (desc, log, text) which do not
+ end in a semicolon.
+ * rcs.h (RCSVers): Add author field.
+ * rcs.c (RCS_reparsercsfile): Set it.
+ * cvs.h (annotate), main.c (cmd_usage, cmds), client.h client.c
+ (client_annotate), server.c (serve_annotate, requests): Usual
+ machinery to add a new command.
+ * sanity.sh (basica): Test cvs annotate.
+
+ * sanity.sh (branches): More tests, of things like adding files on
+ the trunk after a branch has been made.
+
+Tue Mar 26 09:48:49 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * expand_path.c: Don't declare free and xmalloc; cvs.h already
+ takes care of that.
+
+ * sanity.sh (mflag): Don't use tag name reserved to CVS.
+
+ NT local changes plus miscellaneous things noticed in the process:
+ * import.c (add_rcs_file): Use binary mode to write RCS file. Use
+ \012 where linefeed is intended. Copy data a small block at a
+ time, until we hit EOF, rather than trying to read the whole file
+ into memory at once.
+ * client.c (send_modified): Add comments regarding st_size.
+ * commit.c (commit): Add comments regarding binary mode and read().
+ * logmsg.c (do_editor): Add comments regarding st_size.
+ * server.c (server_updated): Use binary mode to read file we are
+ sending.
+
+ * rcscmds.c (RCS_settag): Complain if user tries to add a tag name
+ reserved to CVS.
+ * sanity.sh (basica): Test for this behavior.
+
+ * sanity.sh (binfiles): New tests test ability to change keyword
+ expansion.
+
+Mon Mar 25 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * cvs.h, filesubr.c (expand_wild): New function.
+ * recurse.c (start_recursion): Call expand_wild at beginning and
+ free its results at the end.
+ * cvs.h, subr.c (xrealloc): Make argument and return value void *.
+ * client.h, client.c (send_file_names): Add flags argument. If
+ SEND_EXPAND_WILD flag is passed, call expand_wild at beginning and
+ free its results at the end.
+ * admin.c, add.c, log.c, tag.c, status.c, edit.c, watch.c,
+ update.c, commit.c, remove.c, client.c, diff.c: Update callers.
+
+Fri Mar 22 10:09:55 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * error.c (error, fperror): Exit with status EXIT_FAILURE rather
+ than STATUS. We had been neglecting to check for 256, and the
+ value of providing a count of errors is probably minimal anyway.
+ * add.c, modules.c, mkmodules.c, tag.c, server.c, main.c,
+ import.c, client.c, scramble.c, recurse.c: Exit with status
+ EXIT_FAILURE rather than 1. On VMS, 1 is success, not failure.
+ * main.c (main): Return EXIT_FAILURE or 0. The value of providing
+ a count of errors is minimal.
+
+ * client.c (init_sockaddr): Exit with status 1 rather than
+ EXIT_FAILURE. The latter apparently doesn't exist on SunOS4.
+ Reindent function.
+
+Mon Mar 18 14:28:00 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.h, ignore.c: New variable ign_case.
+ * ignore.c (ign_name): If it is set, match in a case-insensitive
+ fashion.
+ * server.c (serve_case): New function.
+ (requests): Add Case request.
+ * client.c (start_server): If FILENAMES_CASE_INSENSITIVE is
+ defined, send Case request.
+
+Sat Mar 16 08:20:01 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ For reference, this change takes cvs's text segment from 315392
+ bytes to 311296 bytes (one 4096 byte page).
+ * cvs.h (struct file_info): Add fullname field.
+ * recurse.c (do_file_proc): Set it.
+ * commit.c (find_fileproc), client.c (send_fileproc), commit.c
+ (check_fileproc), diff.c (diff_fileproc), edit.c
+ (unedit_fileproc), patch.c (patch_fileproc), remove.c
+ (remove_fileproc), rtag.c (rtag_fileproc), tag.c (tag_fileproc),
+ update.c (update_fileproc), watch.c (watchers_fileproc): Use it
+ instead of computing it each time.
+ * diff.c (diff_fileproc), remove.c (remove_fileproc): Use fullname
+ where we had been (bogusly) omitting the directory from user
+ messages.
+ * edit.c (unedit_fileproc, edit_fileproc): If we cannot close
+ CVSADM_NOTIFY, mention CVSADM_NOTIFY rather than finfo->file in
+ error message.
+ * rtag.c (rtag_fileproc), tag.c (tag_fileproc): Reindent.
+
+Fri Mar 15 15:12:11 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * server.h: fix prototype of server_pause_check (was
+ server_check_pause)
+
+Thu Mar 14 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * vers_ts.c (Version_TS), entries.c (Scratch_Entry, AddEntryNode):
+ Change findnode to findnode_fn.
+
+ * main.c: Depending on HAVE_WINSOCK_H, include winsock.h or
+ declare gethostname.
+ * cvs.h: Don't declare it here.
+
+Thu Mar 14 07:06:59 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (find_fileproc): If vn_user is NULL and ts_user is not,
+ print an error rather than silently succeeding.
+ * sanity.sh (basica-notadded): New test, for above fix.
+ (dotest_internal): New function.
+ (dotest,dotest_fail): Call it instead of duplicating code between
+ these two functions.
+
+ * sanity.sh: Skip tests binfiles-9 through binfiles-13 for remote.
+
+ * options.h.in: Adjust comment to reflect kfogel change.
+
+Thu Mar 14 01:38:30 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * options.h.in (AUTH_CLIENT_SUPPORT): turn on by default.
+
+Wed Mar 13 09:25:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * vers_ts.c (Version_TS): Don't try to override options from rcs
+ file if there isn't an rcs file (e.g. called from send_fileproc).
+ This fixes a bug detected by test 59 in "make remotecheck".
+
+ * rcs.c (RCS_reparsercsfile, RCS_getexpand): Assert that argument
+ is not NULL.
+
+ Fix a gcc -Wall warning:
+ * rcs.c, rcs.h (RCS_getexpand): New function.
+ * vers_ts.c (Version_TS): Call it.
+ * rcs.c (RCS_reparsercsfile): Make static.
+
+ Add a "cvs init" command. This is needed because cvsinit.sh
+ invoked mkmodules which doesn't exist any more.
+ * mkmodules.c: Break filelist out of mkmodules function, rename
+ struct _checkout_file to struct admin_file (for namespace
+ correctness), and add contents field.
+ (init,mkdir_if_needed): New functions.
+ * cvs.h (init): Declare.
+ * main.c (cmds): Add init.
+ (main): If command is init, don't require cvsroot to exist.
+ * client.c, client.h (client_init, send_init_command): New functions.
+ * client.c (start_server): Don't send Root request if command is init.
+ * server.c (serve_init): New function.
+ (requests): Add "init".
+
+Wed Mar 13 09:51:03 MET 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * vers_ts.c (Version_TS): set options to default option if the
+ file if no -k option but -A was given. This avoids the (wrong)
+ update message for binary files which are up-to-date when
+ running 'cvs -A'.
+
+ * update.c (checkout_file): remove test of -k option stored in the
+ file itself because it was moved to vers_ts.c
+
+ * sanity.sh: added tests for the above fix.
+
+Tue Mar 12 13:47:09 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * hash.c (findnode): Adjust comment regarding errors.
+
+ * hash.c (findnode, findnode_fn): Assert that key != NULL. This
+ way the check still happens even if the function is later
+ rewritten to not start out by calling hashp.
+
+Mon Mar 11 10:21:05 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: If expr accepts multi-line patterns but is too
+ liberal in matching them, print a warning but keep going.
+
+ * sanity.sh: Add QUESTION variable, analogous to PLUS. Use it
+ instead of \? to match a question mark.
+
+ * cvs.h (CVSMODULE_OPTS, CVSMODULE_SPEC): Move from here...
+ * modules.c: ...to here. They are only used here and the code to
+ handle the syntax of modules files should not be scattered all over.
+ * modules.c (CVSMODULE_OPTS): Add "+" as first character.
+ * sanity.sh (modules): New tests 148a0 and 148a1 test for
+ above-fixed bug.
+
+Mon Mar 11 13:11:04 1996 Samuel Tardieu <sam@inf.enst.fr>
+
+ * modules.c (cat_module): set optind to 0 to force getopt() to
+ reinitialize its internal nextchar
+
+Mon Mar 11 00:09:14 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * hash.c (findnode, findnode_fn): Revert changes of 7-8 Mar 1996.
+ The correct style is to assert() that key != NULL (see HACKING),
+ which is already done in the hashp function.
+ * fileattr.c (fileattr_delproc): Likewise, assert() that
+ node->data != NULL rather than trying to deal with it being NULL.
+
+Fri Mar 8 01:31:04 1996 Greg A. Woods <woods@most.weird.com>
+
+ * hash.c (findnode_fn): one more place to avoid calling hashp()
+ with a NULL key
+
+Thu Mar 7 17:30:01 1996 Greg A. Woods <woods@most.weird.com>
+
+ * hash.c (findnode): also return NULL if key is not set
+ [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
+ supposedly in a PR that should be marked "fixed"..... ]]
+
+ * fileattr.c (fileattr_set): set node->data to NULL after freeing
+ it to prevent subsequent accesses
+ (fileattr_delproc): don't free node->data if it's NULL, and set it
+ to NULL after freeing
+ [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
+ supposedly in a PR that should be marked "fixed"..... ]]
+
+Fri Mar 1 14:56:08 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh (basica): New test basica-4a tests for bug fixed by
+ sam@inf.enst.fr on 1 Mar 96.
+
+Fri Mar 1 18:10:49 1996 Samuel Tardieu <sam@inf.enst.fr>
+
+ * tag.c (check_fileproc): Check for file existence before trying
+ to tag it.
+
+Fri Mar 1 07:51:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (update_entries): If command is export, set options to
+ NULL.
+
+Thu Feb 29 16:54:14 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * lock.c (write_lock, Reader_Lock): Remove
+ BOGUS_UNLESS_PROVEN_OTHERWISE code. It was pretty bogus, and has
+ been ifdeffed out for a long time.
+ * cvs.h (CVSTFL): Removed; no longer used.
+
+ * cvsrc.c, cvs.h (read_cvsrc): Pass in command name rather than
+ using global variable command_name.
+ * main.c (command_name): Initialize to "", not "cvs" so that error
+ messages don't say "cvs cvs". Update calls to read_cvsrc to pass
+ in command_name or "cvs" as appropriate.
+ * sanity.sh (basica): New test basica-9 tests for above-fixed bug.
+
+ * lock.c: Rename unlock to lock_simple_remove to avoid conflict
+ with builtin function on QNX.
+
+Thu Feb 29 17:02:22 1996 Samuel Tardieu <sam@inf.enst.fr>
+
+ * fileattr.c (fileattr_get): Removed NULL pointer dereference
+ which occurred in the absence of default attribute.
+
+Thu Feb 29 07:36:57 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * rcs.c (RCS_isbranch, RCS_whatbranch): Remove no longer used file
+ argument, swap order of remaining two arguments to be like other
+ RCS_* functions.
+ (RCS_nodeisbranch): swap order of arguments to be like other RCS_*
+ functions.
+ * rcs.h (RCS_isbranch, RCS_whatbranch, RCS_nodeisbranch): Update
+ prototypes for above changes.
+ * commit.c, rtag.c, status.c, tag.c: Update for above calling
+ convention changes.
+
+Thu Feb 29 08:39:03 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_server): Revert changes which claimed to fall
+ back to a different way of connecting. Add comments explaining
+ why. (I don't think the changes did what they claimed, anyway).
+ Use indentation rather than comments to line up #if, #else, and
+ #endif.
+
+ * patch.c (patch, patch_fileproc): Revert change to add optional
+ arguments to -c and -u. Optional arguments are evil and in
+ violation of the POSIX argument syntax guidelines. The correct
+ way to do this is -C and -U. Also change DIFF back to "diff" in
+ output (see comments).
+
+ gcc -Wall lint:
+ * client.c (copy_a_file): Declare p inside the #ifdef in which is
+ it used.
+ * commit.c (remove_file): Remove unused variable p.
+ * commit.c (checkaddfile): Remove unused variables p.
+ * rcs.c (RCS_isbranch): Remove unused variable p.
+ * rcs.c: Remove unused declarations and definitions of
+ parse_rcs_proc, rcsnode_delproc, rcslist, and repository.
+ * rtag.c (rtag_fileproc): Remove unused variable p.
+ * patch.c (patch_fileproc): Remove unused variable p.
+ * tag.c (val_fileproc): Remove unused variable node.
+ * client.c, import.c, lock.c, server.c: Cast pid_t to long before
+ passing it to %ld.
+
+ * cvs.h: Don't prototype gethostname; merely declare it (on linux,
+ second argument is size_t not int).
+
+Thu Feb 29 10:29:25 MET 1996 Norbert Kiesel (nk) <nk@col.sw-ley.de>
+
+ * sanity.sh: added "cat > /dev/null" to loginfo entry to avoid the
+ SIGPIPE signal
+
+Thu Feb 29 10:28:25 MET 1996 Norbert Kiesel (nk) <nk@col.sw-ley.de>
+
+ * patch.c: added new variable diff_opt
+ (patch): allow optional parameter to -c and -u option, send it to
+ server
+ (patch_fileproc): cleaned up the code which prints the current
+ filename. For "-s" option, print the pathname relative to CVSROOT
+ instead of just the filename.
+
+ * filesubr.c (xchmod): added cast to shut up gcc
+
+ * cvs.h: added prototype for gethostname
+
+Thu Feb 29 10:27:25 MET 1996 Norbert Kiesel (nk) <nk@col.sw-ley.de>
+
+ * lock.c (write_lock), (Reader_Lock), import.c (update_rcs_file),
+ client.c (update_entries), (send_modified), server.c (server),
+ (receive_file), (server_updated): use %ld for printing pid_t
+ variables
+
+Thu Feb 29 02:22:12 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * run.c (run_exec): Added VMS return status support.
+
+Thu Feb 29 01:07:43 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * client.c (send_to_server): wrtn wasn't being declared under
+ VMS for some reason.
+
+Wed Feb 28 23:27:04 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * client.c: Changed #ifdef VMS && NO_SOCKET_TO_FD to
+ #if defined(VMS) && defined(NO_SOCKET_TO_FD)
+
+Wed Feb 28 22:28:43 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * build_src.com: Added DCL command procedure to build
+ and link CVS client for VMS.
+
+Wed Feb 28 22:07:20 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * client.c: VMS CVS client specific changes.
+
+ Added USE_DIRECT_TCP to allow CVS_PORT to be used to specify
+ a TCP connection port (no Kerberos). Changed
+ start_kerberos_server() to start_tcp_server().
+
+ In copy_a_file(): transform a backup file to have a
+ VMS-friendly name.
+
+ Added HAVE_CONFIG_H to include "config.h".
+
+ start_server() will starts the first successful of any
+ mutually exclusive methods of starting the CVS server
+ which might be enabled.
+
+ Initialized use_socket_style and server_sock for VMS in
+ start_server().
+
+Wed Feb 28 21:49:48 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * find_names.c, recurse.c, cvs.h: Changed Find_Dirs() to
+ Find_Directories().
+ * cvs.h: Added VMS filenames enabled through USE_VMS_FILENAMES
+ VMS POSIX will require to use the regular CVS filenames
+ while VMS is #define'd.
+
+Wed Feb 28 21:26:22 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * ignore.c: Added the patterns *.olb *.exe _$* *$ to default
+ ignore list for VMS.
+
+Wed Feb 28 13:32:28 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * logmsg.c (do_editor): Fix indentation.
+
+Wed Feb 28 12:56:49 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * logmsg.c (do_editor): If no editor is defined, exit and print
+ a message.
+
+Wed Feb 28 10:40:25 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * vers_ts.c (time_stamp, time_stamp_server): Reindent and revise
+ comments.
+
+Tue Feb 27 23:57:55 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * vers_ts.c: gmtime() returns NULL on some systems (VMS)
+ revert to local time via ctime() if GMT is not avaiable.
+
+Tue Feb 27 13:07:45 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ The changes listed below cause cvs to parse each rcs file (and
+ free the associated rcsnode after the file has been processed)
+ sequentially. cvs used to parse all files in a directory, an
+ approach that does not scale to huge repositories with lots
+ of revisions/branches/tags/etc.
+
+ * cvs.h (struct file_info): Removed srcfiles field. Added rcs
+ (node) field.
+ * recurse.c (do_recursion): Removed code that pre-parsed all
+ rcs files in the directory.
+ (do_file_proc): Parse current rcs file.
+ * rcs.c (RCS_parsefiles, parse_rcs_proc, RCS_addnode): Removed.
+ (RCS_isbranch, RCS_whatbranch): Changed srcfiles argument to
+ rcs (node).
+ * rcs.h (RCS_parsefiles, RCS_addnode): Removed prototypes.
+ (RCS_isbranch, RCS_whatbranch): Updated prototypes.
+ * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
+ commit.c, diff.c, history.c, import.c, log.c, patch.c, remove.c,
+ rtag.c, status.c, tag.c, update.c, vers_ts: Updated for above
+ calling convention / data structure changes.
+
+Mon Feb 26 16:07:56 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.7.3.
+
+ * Version 1.7.2.
+
+Mon Feb 26 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * recurse.c (start_recursion): Use last_component rather than
+ checking for '/' directly.
+ (do_dir_proc): Likewise.
+
+ Visual C++ lint:
+ * client.c (send_to_server): Change wrtn to size_t.
+ (connect_to_pserver): Put tofd and fromfd declarations inside
+ #ifndef NO_SOCKET_TO_FD.
+ * scramble.c (shifts): Change from array of char to array of
+ unsigned char.
+
+Mon Feb 26 13:31:25 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (check_repository_password): Remove unused variables
+ linelen, ch.
+
+ * client.c (send_file_names): Translate ISDIRSEP characters to '/'.
+
+Sat Feb 24 21:25:46 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * checkout.c (safe_location): Re-indent one line.
+
+Sat Feb 24 10:50:42 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * checkout.c (safe_location): put assignment to hardpath[x] in an
+ `else'-clause, so we don't do it when x == -1.
+
+Sat Feb 24 01:40:28 1996 Marcus Daniels <marcus@sayre.sysc.pdx.edu>
+ via Karl Fogel <kfogel@floss.red-bean.com>
+
+ * server.c (check_repository_password): Return by reference an
+ optional username, the `host_user', from the passwd file. The
+ host_user will be the user-id under which the cvs repository is
+ run.
+ (check_repository_password): Use `read_line' instead of fgets to
+ allow for passwords larger than 32 characters, as well as the
+ optional host user argument.
+ (check_password): Modify to use host_user.
+ (authenticate_connection): Modify to use host_user.
+
+Sat Feb 24 01:05:21 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * scramble.c (descramble): just shift descrambled string to get
+ rid of tag char, instead of allocating a whole new copy.
+ (scramble): cast return value of xmalloc to avoid unsightly
+ compiler warnings.
+
+ * options.h.in (RCSBIN_DFLT): don't refer to AUTH_SERVER_SUPPORT
+ in comment anymore, now that it's not defined in this file.
+
+Fri Feb 23 1996 Jim Kingdon <kingdon@cyclic.com>
+
+ * client.c: Ifdef HAVE_WINSOCK_H, include winsock.h
+ instead of sys/socket.h and friends.
+ * login.c: Don't include sys/socket.h and friends.
+ * login.c (login): Only fclose fp in the case where it was
+ successfully fopen'd.
+ * login.c: Declare getpass.
+ * filesubr.c, cvs.h (get_homedir): New function.
+ * cvsrc.c, expand_path.c, history.c, login.c: Call it instead
+ of getenv ("HOME").
+
+Fri Feb 23 09:23:20 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (connect_to_pserver): Remove unused variable host.
+ * login.c: Include getline.h.
+ (login): Remove unused variables i and username.
+ (get_cvs_password): Move free of linebuf to where it actually will
+ be called. Add a "return NULL" at the end of the function to shut
+ up gcc -Wall.
+
+ * options.h.in: Remove AUTH_SERVER_SUPPORT.
+ * client.h (authenticate_connection): Declare.
+ * scramble.c (scramble): Cast char to unsigned char before using
+ it to look up in table (char might be signed).
+ * server.c [AUTH_SERVER_SUPPORT]: Include grp.h
+ (authenticate_connection): Remove unused variables len and
+ server_user.
+
+ * sanity.sh (basica): Add comments regarding creating a top-level
+ directory.
+ (basic1): Don't try to remove first-dir and
+ ${CVSROOT_DIRNAME}/first-dir at start of test; tests are now
+ responsible for cleaning up at the end.
+ (PLUS,DOTSTAR,ENDANCHOR): Add comments regarding fixed GNU expr.
+
+Thu Feb 22 22:34:11 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * cvs.h: Remove alloca cruft.
+
+Wed Feb 21 07:30:16 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * modules.c (do_module): call free_cwd before exiting.
+
+ * recurse.c: Removed entries global variable.
+ (do_recursion): Declare entries. Moved call to Entries_Close so
+ entries list is closed on all code paths.
+ (start_recursion): Removed call to Entries_Close, entries list has
+ been moved to do_recursion only.
+
+Tue Feb 20 22:10:05 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (update_dirent_proc): If dir lacks a CVS subdirectory,
+ don't recurse into it.
+ * sanity.sh (conflicts): Test for above-fixed bug.
+
+ * update.c (merge_file): Use write_letter not printf.
+
+Tue Feb 20 12:34:07 EST 1996: Gary Oberbrunner <garyo@avs.com>
+ and Jim Kingdon <kingdon@cyclic.com>
+
+ * history.c (history_write): Change username to char * and call
+ getcaller() to set it. Setting username accidentally got deleted
+ 8 Feb 96.
+ * sanity.sh: Revise test 64 to test for above-fixed bug.
+ * sanity.sh (PLUS): New variable, work around yet another GNU expr
+ bug.
+
+Tue Feb 20 14:07:50 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Merge test rtags into test basic2. They never were
+ capable of running separately of each other.
+
+ * sanity.sh (deep): New test, to test ability to operate in deeply
+ nested directories (more quickly than basic2 test did).
+ (basic2,rtags): Remove directories dir3 and dir4. Remove file8,
+ file10, file12, file9, file11, file13, file15, file16, file17.
+ These additional files slowed down the tests considerably without
+ significantly increasing coverage.
+
+ * sanity.sh (PROG): New variable. Use it instead of "cvs"
+ to match the name cvs prints out for itself.
+
+Mon Feb 19 09:00:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ This fixes a bug whereby old default attributes would get
+ clobbered instead of added to on "cvs watch add".
+ * hash.c (findnode): Don't check for key == NULL; let the
+ assertion in hashp take care of it.
+ * fileattr.h, fileattr.c (fileattr_get): If filename is NULL,
+ return default attributes.
+
+ * client.c (send_repository): Fix indentation.
+
+Mon Feb 19 01:10:01 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * login.c (login): print out full repos so user knows which server
+ she's logging into.
+
+ * client.c (send_repository): die if `repos' is NULL. This is a
+ lame solution; see comments in code.
+
+Thu Feb 15 15:04:01 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * error.c (error): Free entire and mess when done with them.
+
+ * sanity.sh (info): Correct syntax of .cvsrc file.
+
+ * cvs.h, expand_path.c, edit.c, parseinfo.c, wrapper.c:
+ expand_path now takes arguments containing file and line for error
+ message, and it prints the error message itself.
+ * sanity.sh (info-6a): Test printing of error message.
+
+ * expand_path.c (expand_variable): Add USER internal variable.
+ * sanity.sh (info): Test USER and CVSROOT internal variables too.
+
+Wed Feb 14 19:11:08 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (usg): Add -s option.
+
+Tue Feb 13 20:26:06 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ gcc -Wall lint:
+ * mkmodules.c (mkmodules_usage): Remove declaration of
+ non-existent function.
+ * cvs.h (mkmodules): Declare.
+
+Mon Feb 12 12:20:04 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * mkmodules.c: Rename main to mkmodules and remove various pieces
+ of scaffolding which it used to emulate non-existent parts of CVS.
+ Change calling convention to just take a char * not argc,argv.
+ Save and restore working directory.
+ * commit.c (commit_filesdoneproc): Call it if checking files into
+ CVSROOT.
+ * Makefile.in (SOURCES): Add mkmodules.c.
+ (OBJECTS): Add mkmodules.o.
+ (MSOURCES,MOBJECTS): Removed.
+ (COMMON_OBJECTS): Removed; move former contents into OBJECTS.
+ Update other rules accordingly.
+ * sanity.sh: Adjust to reflect nonexistence of mkmodules.
+
+ These changes introduce functions cvs_output and cvs_outerr;
+ eventually all server output will go through them rather than
+ stdio directly.
+ * server.c (saved_output, saved_outerr): New variables.
+ (do_cvs_command): Initialize them.
+ (buf_output): Don't require that buf->output be set; saved_* use
+ this to shove some data in a buffer which buf_copy_lines will
+ later want to get data from.
+ * server.c, cvs.h (cvs_output, cvs_outerr): New functions.
+ * mkmodules.c (cvs_outerr): New function, so error() works.
+ * error.c: Reindent. Don't declare program_name and command_name;
+ cvs.h declares them.
+ (error): Use vasprintf and cvs_outerr (or fputs in the
+ error_use_protocol case) rather than stdio directly.
+ * import.c (import_descend_dir): Remove kludge which had prevented
+ messages from error() from being out of order with respect to
+ messages from printf; cvs_output and cvs_outerr are a cleaner
+ solution to the problem.
+ (add_log, import): Use cvs_output not printf.
+ * update.c (write_letter): Use cvs_output not printf.
+ (checkout_file): Use write_letter not printf.
+ * sanity.sh: Use dotest for test 56 (test that output is actually
+ correct). In theory should test that the import.c bug is fixed,
+ but I was unable to reproduce the bug (it is timing dependent).
+
+Mon Feb 12 16:07:45 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * commit.c: define last_register_time
+ (commit): make sure cvs doesn't exit in the same second it wrote
+ the last timestamp
+ (commit_fileproc): set last_register_time
+ (finaladd): set last_register_time
+
+ * run.c, cvs.h: Changed more Popen() to run_popen()
+
+Mon Feb 12 03:06:50 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * release.c, rtag.c, tag.c: changed 'delete' to 'delete_flag'
+ to avoid symbol collision with DEC C RTL function delete()
+
+Mon Feb 12 03:01:48 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * mkmodules.c: changed 'void Lock_Cleanup()' to 'void static
+ Lock_Cleanup() to avoid conflict with more substantial
+ Lock_Cleanup() in lock.c
+
+Mon Feb 12 02:50:19 1996 Benjamin J. Lee <benjamin@cyclic.com>
+
+ * edit.c, logmsg.c, release.c, run.c: Changed Popen() to
+ run_popen(). VMS' linker is not case sensitive and considered
+ popen() and Popen() to be identical symbols.
+
+Sun Feb 11 10:51:14 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c (main) [!CLIENT_SUPPORT]: Silently ignore gzip level
+ rather than printing usage message.
+
+ * cvs.h, expand_path.c (variable_list): New variable.
+ (variable_set): New function.
+ * hash.h (enum ntype), hash.c (nodetypestring): Add VARIABLE.
+ * expand_path.c (expand_path, expand_variable): Reindent.
+ (expand_variable): Use user variables not environment variables
+ for ${=VAR} syntax. The environment variables didn't work
+ client/server.
+ * main.c (main): Process new -s global option.
+ * client.c (send_variable_proc): New function.
+ (start_server): Call it, to send user variables.
+ * server.c (serve_set): New function.
+ (requests): Add Set request.
+ * sanity.sh: Revise info test to use user variables rather than
+ environment variables.
+
+Sat Feb 10 16:55:37 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ By itself this is only a small cleanup, but in the long run it
+ will be way cool (for reference, it takes CVS's text segment from
+ 290816 bytes to 294912, which I expect will be made up by future
+ changes which this enables):
+ * cvs.h (struct file_info): Added.
+ (FILEPROC): Replace 5 args with single struct file_info *.
+ * recurse.c (do_file_proc): Adjust args to fileproc; passed in
+ instead of from globals.
+ (do_recursion): Call do_file_proc accordingly. Remove srcfiles
+ global variable.
+ * update.c (update_fileproc): Renamed from update_file_proc.
+ * admin.c, client.c, commit.c, diff.c, edit.c, log.c, patch.c,
+ remove.c, rtag.c, status.c, tag.c, update.c, watch.c: Update
+ fileprocs to new calling convention.
+
+Fri Feb 9 15:30:32 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * expand_path.c (expand_variable): Accept a variable name starting
+ with '=' as a way to specify an environment variable.
+ * sanity.sh (info): New tests, for above behavior.
+
+ * Makefile.in (clean): Also remove check.log check.plog.
+
+ * import.c (comtable): Remove SYSTEM_COMMENT_TABLE; the table
+ should *not* depend on what kind of machine the server happens to
+ be. Add "mak", "rc", "dlg", "frm", and "bas" types which were
+ formerly included via SYSTEM_COMMENT_TABLE.
+
+ * cvs.h, rcs.h, add.c, checkin.c, classify.c, commit.c, diff.c,
+ import.c, patch.c, rcs.c, update.c, vers_ts.c: Remove
+ DEATH_SUPPORT ifdefs. They were introduced to facilitate merging
+ between Cygnus and Berliner variants of CVS, not because it was
+ intended to subset CVS this way. And they clutter up the code
+ quite a bit.
+ * cvs.h, create_adm.c, main.c, update.c: Likewise, remove
+ CVSADM_ROOT ifdefs (it is still a #define, of course). I believe
+ they had a more-or-less similar motivation.
+
+ * sanity.sh: Move setting of HOME from ignore test to the start of
+ the tests so it applies to all tests.
+ (CVS): Remove -f; the above change takes care of it.
+
+ * rcs.h (RCS_MERGE): Removed; unused.
+
+ * commit.c (checkaddfile): Fix memory leak.
+
+ * admin.c, commit.c, diff.c, log.c, mkmodules.c: Pass -x,v/ to RCS
+ commands.
+
+ * rcscmds.c, cvs.h (RCS_checkin): New function.
+ * checkin.c, commit.c, import.c: Call it, rather than run_*.
+ * cvs.h, commit.c: Remove DEATH_STATE define; the behavior
+ which used to be the default (DEATH_STATE) is now the only one.
+ Failing to define DEATH_STATE has been commented as obsolete at
+ least since CVS 1.5. We still can read repositories created with
+ such a CVS, however.
+ * rcs.h, rcs.c: Adjust comments regarding DEATH_STATE.
+ * subr.c (make_message_rcslegal): Add comment, describing
+ allocation of returned value.
+
+Fri Feb 9 09:53:44 MET 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * sanity.sh: use "${testcvs}" instead of "cvs" in devcom tests
+
+ * hash.c: fix "dereferencing a NULL pointer" bug triggered with
+ "cvs watch add"
+ (findnode): return NULL if key == NULL
+ (hashp): assert (key != NULL)
+
+Fri Feb 9 00:46:47 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * rcs.c (RCS_reparsercsfile): Remove unused variable date.
+
+ * myndbm.c (mydbm_load_file): Fix typo ('015' -> '\015').
+
+Thu Feb 8 13:00:00 1996 Jim Kingdon <kingdon@peary.cyclic.com>
+
+ * rcs.c (RCS_parse, RCS_parsercsfile, RCS_reparsercsfile),
+ fileattr.c (fileattr_read), myndbm.c (myndbm_open):
+ Use FOPEN_BINARY_READ.
+ * fileattr.c (fileattr_write), myndbm.c (myndbm_close):
+ Use FOPEN_BINARY_WRITE.
+ * history.c (history_write, read_hrecs): Specify OPEN_BINARY.
+ * rcs.c: Remove calls to abort.
+ * myndbm.c (myndbm_load_file): Ignore CRs from ends of lines
+ if present.
+ * myndbm.c, fileattr.c: While I am at it, change \n to \012
+ a few places where LF is intended.
+ * history.c (history_write): Use getenv ("HOME"), not getpwnam,
+ to find home directory. If it isn't set, just keep going; don't
+ print a message.
+ * rcscmds.c, cvs.h (RCS_checkout): New function.
+ * update.c, checkin.c, commit.c, diff.c, import.c, no_diff.c,
+ patch.c: Call it instead of run_*.
+ * patch.c (patch_fileproc): Clean up inconsistent handling of
+ noexec flag.
+ * rcscmds.c (RCS_*): Pass -x,v/ to RCS commands; elsewhere in
+ CVS it is assumed that ,v is a suffix.
+
+Fri Feb 2 14:07:32 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * rcs.h (struct rcsnode): Remove dates field (list of rcsversnodes
+ indexed by date). CVS maintained this list for each RCS file even
+ though it was never used. This resulted in higher then necessary
+ memory requirements (and run time too). Even if revision info was
+ needed, CVS' List data structure is inappropriate because can't
+ handle duplicate keys. The above was discovered by tracking down
+ a memory leak.
+ * rcs.c (RCS_reparsercsfile): Don't build dates list.
+ (freercsnode): Don't delete dates list.
+ (rcsvers_delproc): Free date field.
+ (null_delproc): Removed.
+
+Thu Feb 1 12:28:33 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * remove.c (cvsremove): Don't tell user the name of the program
+ which they use to remove files; we don't have any way of knowing
+ that, and besides which they might use a GUI or emacs 'dired' anyway.
+ * update.c (update_filesdone_proc, update_dirleave_proc): Call
+ unlink_file_dir instead of rm -rf.
+ * options.h.in: Remove RM; no longer used.
+
+ * sanity.sh: New tests devcom-a* test "cvs watch add",
+ "cvs watch remove", and "cvs watchers".
+
+ * sanity.sh: New test 171a0 tests for watch.c bug just fixed by kfogel.
+
+ * Most .c files: Remove rcsids.
+ * cvs.h: Remove USE macro.
+
+Thu Feb 1 13:07:15 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * tag.c, rtag.c: Update various comments to reflect function name
+ changes.
+
+Thu Feb 1 14:14:31 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * recurse.c (do_recursion): comment #endif.
+
+ * edit.c (notify_check): surround with #ifdef CLIENT_SUPPORT; else
+ CVS won't compile if CLIENT_SUPPORT is undefined.
+
+ * edit.h (notify_check): surround declaration with #ifdef
+ CLIENT_SUPPORT.
+
+ * watch.c (watch): if argc <= 1, then just give usage (previously
+ was "argc == -1").
+
+Thu Feb 1 12:28:33 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * README-rm-add: Remove information which is now in cvs.texinfo.
+
+ * sanity.sh: Remove basic0 tests. Move a few to new tests
+ basica-1a* (but there is no need to test that *every* command
+ gracefully does nothing on an empty directory; exhaustive testing
+ is impractical and the generic recursion processor handles this
+ anyway).
+
+ * sanity.sh: New tests 69a* test use of update -p to restore old
+ version of dead file.
+
+Wed Jan 31 18:32:34 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * ChangeLog-9395: Remove duplicate entries from 1996 which
+ accidentally got into this file.
+
+ * client.c (read_line, read_from_server): Change "premature end of
+ file from server" message to "end of file from server (consult
+ above messages if any)" because 99% of the time it means rsh has
+ printed an error message and exited.
+
+Wed Jan 31 15:09:51 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * edit.c (ncheck_fileproc): Fix memory leak; free line before
+ returning.
+
+Tue Jan 30 18:06:12 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * recurse.c (do_recursion): Add comment about the fact that we
+ don't have locks in place at certain points.
+
+Tue Jan 30 09:43:34 1996 Vince Demarco <vdemarco@bou.shl.com>
+
+ * edit.c (notify_proc): have notify_proc call expand_path with
+ the name of the filter program. The user may have used a
+ cvs environmental variable. (Popen will expand it, but it may not
+ use the correct value)
+
+Tue Jan 30 09:43:34 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * ChangeLog: take the pre-1996 changes and put them in a new file
+ ChangeLog-9395.
+ * ChangeLog-9194: Renamed from ChangeLog.fsf.
+ * ChangeLog-9194, ChangeLog-9395, ChangeLog: Add additional text
+ explaining the difference between all these logs and pointing to
+ older logs.
+ * Makefile.in (DISTFILES): Add ChangeLog-9194 and ChangeLog-9395;
+ remove ChangeLog.fsf.
+
+ * modules.c (do_module): Don't fall through from 'l' to 'o' case
+ of option processing switch statement.
+
+Tue Jan 30 06:50:19 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+
+ * client.c (send_repository): Fix memory leak; free adm_name
+ before returning.
+ * diff.c (diff_file_nodiff): Fix memory leak; free xvers before
+ returning.
+ * rtag.c (rtag_fileproc): Fix memory leak; if branch_mode is set,
+ free rev before returning.
+ * status.c (status_fileproc, tag_list_proc): Fix memory leak; free
+ return value of RCS_whatbranch.
+ * tag.c (tag_fileproc): Fix memory leak; free vers before
+ returning.
+ (val_fileproc): Fix memory leak; free return value of RCS_gettag.
+ * watch.c (watch_modify_watchers): Fix memory leak; free mynewattr
+ before returning.
+
+Tue Jan 30 09:43:34 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * lock.c (readers_exist): If stat gave an error, print an error
+ message saying it was from stat, rather than from "reading
+ directory". Skip the message completely if it was an
+ existence_error.
+
+ * sanity.sh (branches): New tests (branches off of branches, etc.).
+
+Tue Jan 30 11:55:34 MET 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c (main): Add change to run getopt_long twice again.
+
+Mon Jan 29 15:59:31 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ gcc -Wall lint:
+ * client.c: Include edit.h
+
+Sun Jan 28 09:45:53 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * edit.c, edit.h (mark_up_to_date): New function, to remove file
+ in CVS/Base.
+ * client.c (update_entries): Call it if file is up to date.
+ * checkin.c (Checkin): Call it in non-server (local) case.
+ * sanity.sh: New test 182.5, tests for above-fixed bug.
+
+Sun Jan 28 01:07:22 1996 Jim Kingdon (kingdon@beezley)
+
+ * client.c (change_mode): Separate out CHMOD_BROKEN code to parse
+ mode_string, rather than going through a mode_t. Cleaner than
+ the previous CHMOD_BROKEN code (which also had a typo of && not &).
+
+Sat Jan 27 23:29:46 1996 Jim Kingdon (kingdon@beezley)
+
+ * edit.c (edit_fileproc): Check for EACCESS as well as EEXIST.
+
+Sat Jan 27 16:26:30 1996 Karl Fogel (kfogel@floss.cyclic.com)
+
+ * client.c (notified_a_file): use rename_file() instead of
+ rename() (but temporarily set `noexec' to 0 so it runs
+ unconditionally).
+ (change_mode): deal with CHMOD_BROKEN.
+
+Fri Jan 26 00:14:00 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * server.c: renamed `dirname' to `dir_name', to avoid conflicts
+ with system headers.
+
+ * client.c: renamed `dirname' and `last_dirname' to `dir_name' and
+ last_dir_name' (see above). Not strictly necessary, but
+ consistency is nice -- as long as you do it all the time.
+
+Thu Jan 25 00:41:59 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * options.h.in (AUTH_SERVER_SUPPORT, AUTH_CLIENT_SUPPORT): change
+ comment now that no longer under construction.
+
+Wed Jan 24 15:25:22 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.7.1.
+
+ * Version 1.7.
+
+Sat Jan 20 00:05:08 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.6.87.
+
+Mon Jan 15 18:14:55 1996 Gary Oberbrunner <garyo@avs.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * tag.c (val_direntproc): New function to ignore
+ nonexistent dirs when recursing to check tag validity.
+ (tag_check_valid): Pass it to start_recursion.
+ * sanity.sh (death): New tests 65a0-65a6 cause test 74 to test for
+ above-fixed bug.
+
+Mon Jan 15 12:55:37 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * main.c: Revert change to run getopt_long twice. This can go in
+ after 1.7.
+
+Mon Jan 15 13:03:28 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * filesubr.c (deep_remove_dir): added test of EEXIST for nonempty
+ directory (Posix states that both ENOTEMPTY (BSD) and EEXIST
+ (SYSV) are valid)
+
+ * main.c (main): run getopt_long twice to allow command-line
+ suppression of reading the cvsrc file
+
+Fri Jan 12 10:02:43 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.6.86.
+
+Thu Jan 11 23:28:05 1996 J.T. Conklin <jtc@rtl.cygnus.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * fileattr.h (fileattr_startdir): Add comment about REPOS == NULL.
+ * fileattr.c (fileattr_read, fileattr_write): Assert that
+ fileattr_stored_repos != NULL.
+ (fileattr_free): If fileattr_stored_repos is NULL, don't free it.
+
+Thu Jan 11 18:03:21 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * scramble.c (descramble): deal with DIAGNOSTIC better.
+
+Thu Jan 11 12:04:42 1996 Norbert Kiesel <nk@col.sw-ley.de>
+
+ * main.c: remove CVS_NOADMIN.
+
+ * options.h.in: remove CVS_NOADMIN
+
+Thu Jan 11 10:28:44 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * scramble.c (descramble): make sure the string returned is safe
+ to free().
+
+Wed Jan 10 01:11:23 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * server.c (serve_notify): Cast return value from malloc.
+
+ * edit.c (notify_do): Use struct assignment, not struct
+ initialization (which SunOS4 /bin/cc doesn't have).
+
+Tue Jan 9 09:41:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.6.85.
+
+ We use version numbers instead of patchlevels. But there was some
+ confusing patchlevel stuff lying around. Nuke it:
+ * Makefile.in (HEADERS): Remove patchlevel.h
+ * patchlevel.h: Removed.
+ * main.c: Don't include patchlevel.h.
+ (main): Don't print patch level.
+
+ * server.c (check_repository_password): Check for errors from
+ system calls; reindent function.
+
+Tue Jan 9 23:15:30 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * expand_path.c: fix comments (explain expand_path()'s behavior
+ correctly).
+
+Tue Jan 9 09:41:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * edit.c (notify_proc): After copying in string following %s,
+ don't clobber it. Instead set up q to end of string.
+
+ * watch.c (watch_modify_watchers), edit.c (editor_set): Fix sense
+ of test in trying to decide whether attributes are changed.
+
+ * cvs.h (CVSROOTADM_USERS): New macro.
+ * edit.c (notify_do): Look up notifyee in CVSROOTADM_USERS if it
+ exists.
+
+Tue Jan 9 21:39:45 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * expand_path.c: don't redundantly #include things that cvs.h
+ already #includes (i.e., stdio.h, ctype.h, string[s].h).
+
+Tue Jan 9 09:41:29 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * ignore.c (ign_default): Add *.obj.
+
+ * server.c: Put /* */ around #endif comment.
+
+Mon Jan 8 20:37:17 1996 Karl Fogel <kfogel@floss.red-bean.com>
+
+ * client.c (connect_to_pserver): check return value of recv().
+
+Mon Jan 8 11:37:57 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (connect_to_pserver): Check for error from connect;
+ reindent function.
+
+ * sanity.sh (4.75): Use dotest, so we get a PASS if test passes.
+
+ * sanity.sh (dotest): New argument OUTPUT2.
+ (188a): Use it instead of \|.
+
+ * sanity.sh (import): Avoid using string $ followed by Id followed
+ by $ in sanity.sh source, in case sanity.sh itself is under CVS.
+ I hate keyword expansion.
+
+ * sanity.sh: If expr cannot handle multiline expressions, fail and
+ tell the user to get one which can.
+
+ * release.c (release_delete): Remove unused variable retcode.
+
+Fri Jan 5 13:30:00 1996 Jim Kingdon <kingdon@peary.cyclic.com>
+
+ * release.c (release_delete): Call unlink_file_dir rather
+ than "rm -rf".
+
+Thu Jan 4 09:58:30 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (find_fileproc): Print "nothing known about foo" and
+ return 1 if the file doesn't exist and isn't in CVS/Entries.
+ (commit): If the recursion over find_fileproc returns an error,
+ print "correct above errors first!" just like local CVS.
+ * sanity.sh (basica): Test for above-fixed bug.
+
+ * release.c (release): If we are the client, only unedit if the
+ server supports it.
+
+ * sanity.sh: Remove STARTANCHOR stuff; expr patterns are
+ automatically anchored to the start. ENDANCHOR remains.
+
+ * commit.c (commit): Don't start the server until we have
+ determined that there is something to commit.
+
+Thu Jan 4 09:48:33 1996 Ben Laurie <ben@gonzo.ben.algroup.co.uk>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * client.c (start_server): dup the file descriptor before
+ fdopening it.
+
+Wed Jan 3 18:25:25 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * sanity.sh: Remove tests 5, 5.5, and 5.75. All that stuff is
+ tested elsewhere.
+
+ * ignore.c (ign_default): Change CVS* to CVS CVS.adm. CVS* is too
+ broad, especially in a case-insensitive filesystem.
+
+ * Makefile.in (cvsbug): version.c is in srcdir.
+
+Wed Jan 3 17:30:45 1996 Phi-Long Tran <ptran@autodesk.com>
+
+ * modules.c (do_module): Honor error_use_protocol in printing trace.
+ * server.c (server_register): Move check for options NULL to above
+ printing of the trace.
+
+Wed Jan 3 01:19:53 1996 Mark Immel <immel@centerline.com>
+ and Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * update.c (checkout_file): Do not resurrect file on join if it
+ doesn't contain the revisions we are joining. Probably not a
+ perfect test, but should be an improvement.
+ * sanity.sh (death): New death-file4-* tests, for bug fixed above.
+
+Wed Jan 3 01:19:53 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * add.c, admin.c, checkout.c, client.c, commit.c, diff.c, edit.c,
+ history.c, import.c, log.c, patch.c, release.c, remove.c, rtag.c,
+ status.c, tag.c, update.c, watch.c: In calling send_to_server,
+ pass \012 not \n. On the Mac \n is CR, not LF, and we want to
+ send LF. I didn't try to deal with whether files in CVSADM should
+ contain CR or LF--in fact there is some code in client.c which
+ reads \n from CVSADM files and passes it to send_to_server; it
+ needs to be cleaned up one way or the other.
+
+ * entries.c (Entries_Open): Don't try to close fpin twice.
+
+ * client.c (update_entries): Fix typo ("strlen (filename + 10)"
+ -> "strlen (filename) + 10").
+
+ * commit.c (checkaddfile): Remove arbitrary limit.
+
+Tue Jan 2 11:25:22 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * commit.c (commit): Only pass files which were modified, added,
+ or removed to send_file_names. This has as a side effect a
+ semantic change--the up-to-date check is now skipped for other
+ files--but probably a good one, or at least not a bad one.
+ * sanity.sh (basica): New test; tests for bug fixed above.
+ * sanity.sh (187a3): Adjust for new 'cvs commit' output. Set up
+ DOTSTAR to match arbitrary text (another GNU expr bug/misfeature,
+ sigh).
+
+ * sanity.sh: Test that the commit in test 43 actually worked.
+ Merge tests basic2 and basic3 and make them independent of basic1.
+ (pass,fail): Don't insert spurious space.
+ (45.5): Fix typo in directory name.
+
+Tue Jan 2 13:00:00 1996 Jim Kingdon <kingdon@peary.cyclic.com>
+
+ Visual C++ lint:
+ * myndbm.c: Prototype write_item.
+
+Tue Jan 2 11:25:22 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ gcc -Wall lint:
+ * client.c (client_expand_modules): Pass error message not "" to error.
+ * client.c (supported_request), server.c (supported_response):
+ Return a value (gcc -Wall can't know that error doesn't return).
+ * commit.c (copy_ulist): Return a value.
+ * history.c (fill_hrec): Don't make assumptions about whether
+ time_t is "int" or "long" or what.
+ * cvs.h: Declare link_file.
+ * server.c: Include fileattr.h.
+ * server.c (server_notify): Remove unused variable val.
+ * tag.c (val_fileproc): Remove unused variable foundtag.
+
+Mon Jan 1 09:49:16 1996 Jim Kingdon <kingdon@harvey.cyclic.com>
+
+ * Version 1.6.5.
+
+ * Version 1.6.4.
+
+ * filesubr.c (link_file): Add comment about link vs. copy semantics.
+
+ * cvs.h (struct vers_ts): Fix comments.
+ * commit.c (commit): Before we ask for a log message, figure out
+ what is modified and what is not and pass the information to
+ do_editor.
+ (copy_ulist,find_fileproc): New helper functions for above code.
+
+ * client.c (read_line): When writing to from_server_logfile, write
+ the \n too.
+
+ * client.c (send_files): No longer call send_file_names.
+ * client.h: Update comment.
+ * add.c, admin.c, commit.c, diff.c, edit.c, log.c, remove.c,
+ status.c, tag.c, update.c, watch.c: Call send_file_names before
+ send_files.
+ * client.c: New variables module_argc, module_argv.
+ (client_expand_modules): Set them, to arguments.
+ (client_send_expansions): Use them instead of modules_vector to
+ send arguments.
+ * sanity.sh (modules): Add test of modules -d flag.
+
+
+For older changes see ChangeLog-9395.