diff options
Diffstat (limited to 'contrib/cvs/src/ChangeLog-96')
-rw-r--r-- | contrib/cvs/src/ChangeLog-96 | 4434 |
1 files changed, 4434 insertions, 0 deletions
diff --git a/contrib/cvs/src/ChangeLog-96 b/contrib/cvs/src/ChangeLog-96 new file mode 100644 index 0000000..6c3a2a1 --- /dev/null +++ b/contrib/cvs/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. |