Sync usage with man page.
[netbsd-mini2440.git] / external / gpl2 / xcvs / dist / src / ChangeLog-96
blob6c3a2a12d642712c2ea6bfa438cd0f0581aed224
1 Mon Dec 30 15:43:48 1996  Abe Feldman  <feldman@harvey.cyclic.com>
3         * checkout.c (build_dirs_and_chdir): Reproduced block containing
4         Create_Admin, placing it before Subdir_Register.
5         * sanity.sh (basicb): Added tests 1a and 9a to test above changes
6         to the checkout command.
8 Mon Dec 30 13:29:14 1996  uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz)
9                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
11         * cvs.h (CVSEDITPREFIXLEN): New define.
12         * logmsg.c (do_editor): Use CVSEDITPREFIXLEN when deciding whether
13         to strip off CVSEDITPREFIX and when telling the user what we will
14         strip off.
16 Sun Dec 22 22:06:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
18         * logmsg.c (do_verify): If noexec, skip the verification *without*
19         printing a message.  Use cvs_output not printf.  Skip verification
20         for client_active.
22 Wed Dec 18 12:27:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
24         * repos.c (Name_Repository): Add comment regarding wording of
25         "*PANIC*" error message.
27 1996-12-18  Jim Kingdon
29         * client.c (call_in_directory): If the directory we are about
30         to create is the same as CVSADM as seen by fncmp (for example,
31         it is "cvs" and filenames are case-insensitive), then give a
32         fatal error.
34 Tue Dec 17 13:14:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
36         * options.h.in: Add comments about SETXID security holes.
38         * logmsg.c (do_verify): Reindent comments.  Check errno if return
39         code from run_exec is -1, not if it is 1.
40         * sanity.sh (info): Move tests info-4 and info-8 to end and rename
41         them.  Add verifymsg tests.  Instead of forcibly removing loginfo,
42         remove it nicely (test info-11).
44 Tue Dec 17 12:45:32 1996  Abe Feldman  <feldman@cyclic.com>
46         * commit.c, import.c: Call do_verify as well as do_editor.
47         * cvs.h (CVSROOTADM_VERIFYMSG): Define.
48         * logmsg.c, cvs.h (do_verify, verifymsg_proc): New functions.
49         (verifymsg_script): New variable.
50         * mkmodules.c (filelist): Add CVSROOTADM_VERIFYMSG.
52 Mon Dec 16 13:24:47 1996  Ian Lance Taylor  <ian@cygnus.com>
54         * lock.c (remove_locks): New static function, copied from part of
55         Lock_Cleanup.
56         (Lock_Cleanup): Call remove_locks.
57         (Writer_Lock): Call remove_locks rather than Lock_Cleanup when
58         waiting for a lock.
60 Thu Dec 12 10:36:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
62         * login.c (get_cvs_password): If CVS_PASSWORD is set, print a
63         warning (and then proceed to ignore it).  It was a documented
64         feature, so we should point people who were using it to the
65         replacement.
67 Mon Dec  9 12:35:43 1996  Ian Lance Taylor  <ian@cygnus.com>
69         * server.c (server_updated): Change comment to only worry about
70         umask in the rsh case.
71         (server): Create the temporary directory, and change the mode to
72         S_IRWXU.
73         (switch_to_user): Set the umask to 0, not 077.
75 Mon Dec  9 10:58:28 1996  Jim Blandy  <jimb@floss.cyclic.com>
77         * login.c (get_cvs_password): Remove code to check for value of
78         CVS_PASSWORD.  Keeping cleartext passwords in environment
79         variables is a really bad idea on Unix, since anyone can print
80         out a processes' environment using 'ps' (on BSD variants
81         anyway).  Update help message.
83 Fri Dec  6 15:59:40 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
85         * sanity.sh: When matching "use .cvs commit. to remove this file
86         permanently" messages, change "cvs" to "${PROG}".
87         (rdiff, binfiles): Likewise.
88         This fixes testing a program named something other than "cvs", e.g.
89         $ cp cvs cvs-test
90         $ /bin/sh <srcdir>/sanity.sh `pwd`/cvs-test
92 1996-12-02  Jim Kingdon
94         * client.c: In comment saying that socket buffers don't
95         implement the blocking routine, say they are blocking.
96         * buffer.h (struct buffer): In description of input function,
97         describe blocking, non-blocking, and NEED more fully.  Say
98         what happens if we read a nonzero amount less than NEED and
99         then get end of file.
100         * client.c (socket_buffer_input): If NEED == 0, still call
101         recv (once).  Handle the case where recv returns 0.
103 Sat Nov 30 15:10:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
105         * subr.c, cvs.h (file_has_markers): New function.
106         * rcs.h (RCS_MERGE_PAT): Now a fixed string not a regexp.
107         * options.h.in (GREP): Removed; no longer used.
108         * update.c (update_fileproc), commit.c (check_fileproc): Call
109         file_has_markers rather than GREP.
110         * rcscmds.c (RCS_merge): Just give a fatal error in the case where
111         we had been calling GREP.  I suspect noone is using this code
112         any more.
113         * sanity.sh (conflicts): Rewrite tests 131, 132, and 133 to use
114         dotest; tests that the above changes didn't break anything.
116 Fri Nov 29 09:06:41 1996  fnf@ninemoons.com (Fred Fish)
117                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
119         * checkout.c (safe_location): Only call readlink if HAVE_READLINK.
121         * run.c (piped_child, filter_stream_through_program): If
122         HAVE_VFORK, call vfork not fork.
123         * run.c (run_exec): Add comment about why we use vfork.
125 Mon Nov 25 12:48:31 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
127         * release.c (release): Don't return after processing the first
128         argument; that kind of defeats the purpose of having a loop, eh?
129         For client, close the connection after we've processed them all.
130         * sanity.sh: Remove workaround for modules2-8 test; tests for
131         above fix.  Adjust modules2-6 test to answer both questions.
133         * login.c: Reindent (all of get_cvs_password, a handful of lines
134         elsewhere).
136         Cleanups to release, mostly cosmetic:
137         * release.c (release_server): New function; breaks out server code
138         from the release function.
139         * release.c: Move delete_flag inside the release function.
140         * release.c (release): Reindent.  Rewrite comments about how the
141         implementation could be improved.  Don't declare variables as
142         "register".  Include errno in error message.  Don't cast result of
143         printf to void.  Remove unused variable srepos.
144         * release.c: Remove comments at top of file about what it does.
145         They were not particularly coherent and they were also out of date
146         (I think).  Likewise for comment in release function about "if we
147         are in a repository".
148         * release.c: Change "module" to "directory" in a few messages
149         since that is what is meant.
150         * sanity.sh: In tests ignore-195 and ignore-193, change expected
151         message accordingly.
153 Sun Nov 24 11:30:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
155         * sanity.sh: Clarify a few items in the todo list.
157         * log.c (log_parse_date): Use the "end" of the epoch not "next
158         week" as the time which means "no end time".
159         * sanity.sh (rcs): New test, tests dates and importing RCS files.
161 1996-11-19  Jim Kingdon
163         Visual C++ lint:
164         * hash.c: Declare qsort_comp.
165         * update.c: Declare isremoved.
166         
167 1996-11-19  Jim Kingdon  <kingdon@harvey.cyclic.com>
169         * root.c, repos.c, modules.c, create_adm.c: Change all calls to
170         strip_path to strip_trailing_slashes.  Basically strip_path is
171         just an unneeded complication (we should keep the pathname the way
172         the user specifies it, and the system can worry about things like
173         consecutive /'s if it wants to).  Stripping trailing slashes is
174         potentially dubious for the same reason, but it is a somewhat
175         different case which I won't try to tackle now.
176         * cvs.h (strip_path): Remove declaration.
178 Tue Nov 19 15:18:13 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
180         There are a lot of details to this change, but the concept is
181         relatively simple: make it so that for every CVSLCK lock that we
182         might take out, there is a flag which is set iff we have created
183         the CVSLCK directory.
184         * lock.c (struct lock): New structure.
185         * lock.c: Remove static variables repository and cleanup_lckdir.
186         They are replaced by global_readlock.repository and
187         global_readlock.have_lckdir, respectively (except insofar as the
188         rest of these changes change the concept of cleanup_lckdir).
189         New static variable global_readlock.
190         (Reader_Lock, Lock_Cleanup): Use global_readlock in place of
191         repository.
192         (lock_simple_remove, set_lock, clear_lock, write_lock): Take a
193         struct lock * instead of just a repository.  Set/clear
194         lock->have_lckdir instead of cleanup_lckdir.
195         (set_writelock_proc, unlock_proc): Pass ->data, not ->key, to
196         write_lock or lock_simple_remove.
197         (lock_filesdoneproc,lock_dir_for_write): Allocate a struct lock,
198         put it in the ->data field, and fill in its fields.
199         (lock_simple_remove): Use lock->have_lckdir as the sole test for
200         whether the CVSLCK directory needs to be removed.  Add
201         comments about why readlock and writelock variables don't tell us
202         for sure whether locks exist.
203         (lock_simple_remove, clear_lock): Use SIG_beginCrSect and
204         SIG_endCrSect to ensure that ->have_lckdir is set to 0 iff the
205         CVSLCK directory was really removed.
206         (lock_simple_remove): Check for errors removing CVSLCK directory.
207         (lock_simple_remove, Check_Owner, set_lock): Remove all code which
208         checks userids (including all of Check_Owner and all the AFCVS
209         code).  It was bogus if several CVS processes with the same userid
210         were running (common if several users share a userid; a common
211         practice with remote CVS), and with the rest of the changes here
212         should not be needed.
214 1996-11-16  Paul Eggert  <eggert@twinsun.com>
216         * rcs.c (RCS_deltas): Fix unintended trigraphs.
218 Fri Nov 15 13:06:03 1996  Tom Hageman  <tom@basil.icce.rug.nl>
220         * diff.c (diff_fileproc): In printing error messages, use the
221         correct filename for which the error occurred.
223 Sun Nov 10 21:13:38 1996  Paul Sanders <p.sanders@dial.pipex.com>
224                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
226         * server.c: Use all the right cruft which goes along with
227         including sys/time.h.
229         * server.c: Include a "copyright" notice.
231         * server.c: If HAVE_WINSOCK_H, include winsock.h.
233         * server.c (server): Only set a handler for SIGHUP if it is
234         defined.  Likewise for all the other signals.
236         * server.c (do_cvs_command): Use DEVNULL not /dev/null.
238 Fri Nov 08 12:14:20 1996  Jim Kingdon
240         IBM ICC (OS/2) lint:
241         * add.c (add): Only declare begin_added_files if
242         SERVER_SUPPORT.
243         * client.c (init_sockaddr): Change port argument from
244         unsigned short to unsigned int.  Change hostname
245         argument from const char * to char *.
247 Sun Nov  3 18:24:28 1996  Noel Cragg  <noel@gargle.rain.org>
249         * sanity.sh (info): add new tests that check behavior of format
250         string substitution in loginfo file.
252 Sat Nov  2 09:39:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
254         * client.c (do_deferred_progs): Don't access memory once it is
255         freed (we already did it right for checkin_progs; do the same
256         thing for update_progs).
258         * update.c, client.c, classify.c, client.h, diff.c, commit.c,
259         create_adm.c: Nuke more PATH_MAX.
261 Fri Nov  1 18:22:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
263         * error.h: Define PROTO if it is not defined.
265 Wed Oct 30 08:53:20 1996  jalving@ibm.net
267         * patch.c (patch_fileproc): Set line1 and line2 to NULL up-front
268         (before the first "goto out") so we don't try to free them.
270 Wed Oct 30 08:53:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
272         * commit.c (remove_file, commit_filesdoneproc), run.c (run_print,
273         run_exec), modules.c (open_module, cat_module, do_module), update.c
274         (update_dirleave_proc), tag.c (tag_fileproc): Call cvs_out* rather
275         than stdio.
276         * server.c (serve_expand_modules): Remove comment about do_module
277         writing to stdout/stderr; above changes should fix this.
279 Tue Oct 29 17:23:59 1996  Ian Lance Taylor  <ian@cygnus.com>
281         * status.c (tag_list_proc): When printing the tag name, don't
282         truncate it to 25 characters.
284 Tue Oct 29 12:49:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
286         * add.c, checkin.c, checkout.c, filesubr.c: Nuke arbitrary limit
287         of PATH_MAX.  Many more such limits surely remain.
289         * fileattr.c (fileattr_set): Set attrs_modified *after* we might
290         call fileattr_read, because fileattr_read clears it.
291         * sanity.sh (devcom2): New tests, test for above fix and other
292         behaviors I discovered in the process of looking into it.
294 Mon Oct 28 08:55:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
296         The following changes are to ensure that SYSTEM_CLEANUP is always
297         called.
298         * error.c, cvs.h, main.c: Remove error_set_cleanup and related
299         machinery.  It was for a time when error.c was intended to be
300         shared with other programs, but that is no longer true.
301         * error.c, error.h (error_exit): New function; like error_cleanup
302         from main.c but also calls SYSTEM_CLEANUP and exit (EXIT_FAILURE).
303         * error.c (error, fperror): Call error_exit instead of doing it
304         ourself.
305         * server.c (server, serve_valid_responses, switch_to_user,
306         check_password, pserver_authenticate_connection, 
307         kserver_authenticate_connection): Call SYSTEM_CLEANUP before exit.
308         * add.c, client.c, import.c, main.c, mkmodules.c, modules.c,
309         recurse.c, server.c, tag.c, update.c: Call error_exit ()
310         instead of exit (EXIT_FAILURE).
312 Sun Oct 27 08:34:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
314         * sanity.sh (conflicts): New test 128.5 tests "cvs co -p" in an empty
315         directory (like 126.5), but when the file has nonempty contents.
316         * rcs.c (RCS_checkout): If writing to stdout, use cvs_output
317         rather than fwrite.
318         * update.c (checkout_file): Call cvs_stderr not fprintf.
319         These changes should fix some out-of-order bugs which show up in
320         situations like conflicts-126.5 and conflicts-128.5.
322         * mkmodules.c (checkout_file): Call RCS_checkout rather than
323         run_exec on RCS_CO.
325 Sat Oct 26 18:29:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
327         * sanity.sh (rdiff): cd out of testimport directory and remove it
328         when done.
330         * sanity.sh (info): Adjust tests to reflect fact that loginfo was
331         created by cvs init.
333         * sanity.sh (ignore): Change test 187a1 to allow any number of
334         files in CVSROOT, not just modules.
336         * sanity.sh (modules): In tests 148a0 and 148a1, don't expect a
337         module which defines CVSROOT to itself, since we don't define one
338         any more.  Also change test to rewrite modules rather than append
339         to it (in case any previous tests are changed to do something with
340         modules).  Change test 155b to allow any number of files in
341         CVSROOT, not just modules.
343         * add.c (add_directory): Set rev_old and rev_new fields of struct
344         logfile_info to NULL (prevents us from trying to free them later).
345         * commit.c (find_fileproc), import.c (import): Likewise.
347         * sanity.sh (crerepos): New tests, to test alternate ways of
348         creating a repository and related matters.
349         * sanity.sh: Remove tests 1 through 3 and related cruft; replace
350         them with a new test 1 which merely tests "cvs init".  By doing
351         the obscure stuff in crerepos we avoid having to do all this stuff
352         any time we run any single test.
354 Sat Oct 26 16:19:48 1996  Jim Blandy  <jimb@totoro.cyclic.com>
356         * main.c (main): If HAVE_TZSET is #defined, call tzset.  This is
357         harmless on all systems I know of, and required on some.
359 Fri Oct 25 13:20:44 1996  Ian Lance Taylor  <ian@cygnus.com>
361         * diff.c (diff_file_nodiff): When setting use_rev1, only return
362         DIFF_SAME if empty_file is DIFF_DIFFERENT and ts_user is not
363         NULL.  Don't get confused by a vn_user field of "0" or one
364         starting with '-'.
365         * sanity.sh (death2): Add new death2-diff-{1,2,7,8} tests for
366         above patch.  Renumber existing death2-diff tests to make room.
368 Fri Oct 25 12:38:29 1996  Jim Wilson  <wilson@cygnus.com>
370         * sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "_"
371         in temp file names.  The system (tmpnam or whatever) generates
372         these names so they vary from system to system.
374 Fri Oct 25 07:52:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
376         * logmsg.c (logfile_write): Give an error for several cases which
377         should not be legal.  Adjust comments accordingly.
378         * mkmodules.c (loginfo_contents): Make description of loginfo much
379         more concise.  This should be a reminder, not full documentation.
381 Tue Oct 22 10:37:37 1996  Noel Cragg  <noel@gargle.rain.org>
383         * commit.c (update_delproc): free structure members rev_old and
384         rev_new if they have been allocated.
386         * mkmodules.c: change loginfo_contents to include a description of
387         the new format string.
389         * logmsg.c (logfile_write): change syntax of format string.
391 Sat Oct 19 16:09:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
393         For reference, this takes CVS's text segment from 348348 bytes to
394         347420 bytes.
395         * server.c (requests): Change Directory to rq_essential
396         per change in doc/cvsclient.texi.
397         * client.c: Remove use_directory and all code which executed if
398         it wasn't set.  This includes the get_short_pathname function.
399         * server.c: Likewise, for use_dir_and_repos.
400         (serve_repository): Give a fatal error.
401         * server.c (requests): Remove Lost.  Change Unchanged to rq_essential.
402         (serve_lost): Removed.
403         * server.c, server.h, client.c, vers_ts.c: Remove use_unchanged,
404         code to set it, and all code which executed if it wasn't set.
406 Sat Oct 19 12:44:08 1996  J. Richard Sladkey  <jrs@world.std.com>
407                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
409         * hash.c (sortlist, new function qsort_comp): Rewrite to use qsort
410         instead of insert sort.  Changes algorithm from n^2 to n log n
411         (assuming qsort is implemented with quicksort or similar).
413 Sat Oct 19 12:44:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
415         * sanity.sh (basic2): In test basic2-64, use -x and specify types
416         which exclude E; the test is not built to deal with E (or any
417         other new types).
419 Sat Oct 19 12:00:00 1996  Mark Mitchell <mmitchell@usa.net>
420                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
422         * update.c (isemptydir, new function isremoved): Avoid pruning
423         directories that contain files marked for removal but not
424         comitted.
425         * update.c, update.h (isemptydir): Now extern, not static.
426         * update.c (isemptydir): New parameter might_not_exist handles
427         difference in functionality from old client_isemptydir.  Bring
428         over the improved error checking from client_isemptydir.
429         * client.c (client_isemptydir): Removed; isemptydir now suffices.
430         * update.c (update_dirleave_proc), client.c
431         (process_prune_candidates): Update callers.
432         * sanity.sh (deep): Add tests deep-rm* for above fix.
434 Fri Oct 18 15:53:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
436         * sanity.sh (devcom): Add tests devcom-some* to test watching just
437         a single file.
439         * root.c (Name_Root): Use isabsolute to test whether a pathname is
440         absolute instead of checking for the first character being '/'.
441         (Reported by Antoine P. Brusseau <brusseau@jprc.com>).
443         * commit.c (checkaddfile): Free rev only if it is non-NULL (thanks
444         to cwong@world.std.com (Christopher Wong) for diagnosing this; the
445         death2-15 test in sanity.sh hits it).
447 Thu Oct 17 15:21:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
449         * sanity.sh: Reenable rdiff tests.  Delete rdiff-9 test to reflect
450         the fact that the change to add a -K option has not been
451         incorporated.  Adjust rdiff-8 test to reflect the fact that the
452         change to change the default keyword expansion for the first
453         revision has not been incorporated.
454         * patch.c (patch_fileproc): Pass the symbolic revision to
455         RCS_checkout so that Name can be expanded correctly.  Reinstates
456         one of the 30 Sep 96 changes and fixes a bug which the sanity.sh
457         rdiff test tests for.
459         Reinstate change from 30 Sep 96:
460         * patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
462         * client.c (process_prune_candidates): Do not ignore errors from
463         unlink_file_dir.
465         * filesubr.c (deep_remove_dir): If rmdir returns an error other
466         than ENOTEMPTY or EEXIST, return -1 not 0.  Add workaround for AIX
467         header bug.
469 Tue Apr 30 08:21:27 1996  Mike Sutton <mike_sutton@dayton.saic.com>
471         * checkout.c, history.c: added logging/reporting of cvs export
472         command
474 Wed Oct 16 10:16:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
476         * sanity.sh: Remove tests 4, 4.5, and 4.75; this functionality is
477         already tested by 45, 45.5 and other tests.
478         (ignore): New tests ignore-192, ignore-193, ignore-194, and
479         ignore-195 test output from "cvs release".
480         (modules2): New tests modules2-6, modules2-7, and modules2-8 test
481         ability of cvs release to handle multiple arguments.  Since it
482         currently doesn't, the tests are kludged.
484         * server.c, cvs.h (cvs_flushout): New function.
485         * recurse.c (do_file_proc): Call it.
486         * server.c (cvs_outerr): Call fflush (stdout) in non-server case.
487         * main.c (main): Don't call setvbuf.  The code was incorrectly
488         checking for "patch" (it really is "rdiff"); the concern about
489         slowing down large amounts of output is not specific to rdiff
490         (it applies to "log" for example); and the above changes should
491         meet the need.
493 Tue Oct 15 10:22:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
495         This is intended to facilitate some future cleanups to the
496         locking, but by itself it is a simple, conversative rearrangement:
497         * tag.c (locked_dir, locked_list): Move from here...
498         * lock.c: ...to here.
499         * lock.c (Lock_Cleanup): If locked_dir is set clean it up too.
500         * tag.c (tag_unlockdir): Removed; with the above change
501         Lock_Cleanup suffices.
502         * tag.c (tag_lockdir): Move from here...
503         * lock.c (lock_dir_for_write): ...to here.
504         * tag.c (tag_fileproc), rtag.c (rtag_fileproc): Update callers.
505         Move comments concerning why we are locking what we are from
506         tag_lockdir to here.
507         * tag.c (tag_filesdoneproc), rtag.c (rtag_filesdoneproc):
508         Update callers.
509         * lock.c (Writer_Lock): Made static.
510         * cvs.h: Update declarations.
511         * server.c (server_notify): Call lock_dir_for_write rather than
512         calling Writer_Lock ourselves.
514         This is intended to facilitate some future cleanups to the
515         locking, but by itself it is a simple, conversative rearrangement:
516         * lock.c (Lock_Cleanup): Also dellist (lock_tree_list).
517         * lock.c, cvs.h (lock_tree_cleanup): Removed; with the above change
518         Lock_Cleanup suffices.
519         * commit.c, edit.c, watch.c: Change callers.
521 Sat Oct 12 21:41:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
523         * sanity.sh (deep): Add comment about whether the deep-4b behavior
524         is considered desirable.
526 Sat Oct 12 20:36:36 1996  Ian Lance Taylor  <ian@cygnus.com>
528         * client.c (client_send_expansions): Add build_dirs parameter.
529         Change all callers.
530         (send_dirent_proc): Get build_dirs from callerdat; if it is
531         zero, don't send a nonexistent directory to the server.
532         (send_files): Add build_dirs parameter.  Change all callers.
533         * client.h (send_files): Update prototype.
534         (send_files_contents): Remove prototype for nonexistent function.
535         (client_send_expansions): Update prototype.
536         * sanity.sh (deep): Add deep-4b test for above patch.
538 Fri Oct 11 14:07:12 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
540         gcc -Wall lint:
541         * logmsg.c (title_proc): Remove unused variables title and comma.
543         * sanity.sh (modules2): Don't be picky about whether we are
544         checking in 1.3 or 1.2 of modules; it depends on whether we are
545         running all the tests or just some.
547 Thu Oct 10 14:52:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
549         * server.c, server.h (server_dir): New variable.
550         (output_dir): If it is set, send it before the directory name.
551         * modules.c (do_module): Set it, in the case of & modules, and
552         restore it when done.
553         * sanity.sh (modules): Don't clean up first-dir before starting;
554         tests now clean up for themselves at the end.
555         (modules2): New tests, for above fix.
557 Wed Oct  9 15:52:34 1996  Jim Blandy  <jimb@totoro.cyclic.com>
559         * sanity.sh: Barf immediately if run as root. 
561         * rcs.c (RCS_getrevtime): When giving a date to get_date, use the full
562         year, not the year - 1900, so that dates after 1999 are parsed
563         correctly.  (Change thanks to Paul Eggert.)
565 Wed Oct  9 10:59:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
567         Clean up gcc -Wmissing-prototypes lint:
568         * cvs.h (admin, add, checkout, commit, diff, history, import,
569         cvslog, login, patch, release, cvsremove, rtag, status, tag):
570         Declare.
571         * server.c, main.c: Don't declare them here.  Don't declare update
572         either (which is already declared in cvs.h).
573         * tag.c, cvs.h, main.c, server.c: Rename tag to cvstag to avoid
574         name conflicts.
575         * client.c (init_sockaddr, auth_server_port_number), entries.c
576         (Entnode_Create, Entnode_Destroy), hash.c (nodetypestring),
577         login.c (construct_cvspass_filename), server.c
578         (supported_response), wrapper.c (wrap_matching_entry): Make static;
579         prototype.
580         * hash.c (printlist): Prototype.
581         * myndbm.c (mydbm_load_file): Change declaration to prototype.
583 Tue Oct  8 22:35:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
585         * sanity.sh (log2): Re-add these tests; they were deleted for 1.9
586         (because they were thought to be destabilizing and/or due to
587         confusion/accident), but they can be put back now.
589         * sanity.sh (death2): In tests death2-diff-{2,4,6,8,10}, allow "-"
590         or "%" in temp file names.  The system (tmpnam or whatever)
591         generates these names so they vary from system to system.
593 Tue Oct  8 12:37:09 1996  Ian Lance Taylor  <ian@cygnus.com>
595         * options.h.in (HAD_RCS4): Remove; no longer used.
597 Sun Oct  6 15:58:11 1996  Noel Cragg  <noel@gargle.rain.org>
599         * The following changes address problem #56 in the GNATS database
600         on harvey.cyclic.com:
602         * logmsg.c (str_list_format): new global -- contains the format
603         for items to be placed in str_list.
604         (Update_Logfile): move code that creates the "title" string...
605         (logfile_write): ...to here.  Pull apart the filter program and
606         look for a format string, extracting it if there is one.
607         (title_proc): write a given filename/value based on the format
608         string.
610         * commit.c (classify_file_internal): new routine, old code (needed
611         to use the code in more than one place).  Determines the status
612         and version information about a file.
613         (check_fileproc): use classify_file_internal.  Fill in the rev_old
614         field for the struct logfile_info.
615         (commit_fileproc): Fill in the rev_new field.
617         * cvs.h (struct logfile_info): add two new fields -- rev_old and
618         rev_new -- that keep track of revision numbers across commits.
620 Fri Sep 27 15:21:47 1996  Peter Wemm  <peter@spinner.dialix.com>
622         * logmsg.c (do_editor): Do not use editinfo if running on the client.
624 Fri Oct  4 15:11:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
626         * server.c (server_cleanup): Temporarily clear noexec when calling
627         unlink_file_dir.  This is so we clean up the temp directory even
628         when the -n global option is specified.
630 Wed Oct  2 10:47:33 1996  Norbert Kiesel  <nk@col.sw-ley.de>
632         * client.c (send_repository): initialize some variables before
633         first usage
635 Tue Oct  1 13:01:24 1996  Jim Blandy  <jimb@floss.cyclic.com>
637         Revert some of Greg's changes; they're welcome later, but we're
638         trying to keep CVS stable for pre-release testing at the moment. 
639         * checkin.c, commit.c, cvs.h, diff.c, import.c, main.c, no_diff.c,
640         options.h.in, patch.c, rcs.c, rcs.h, rcscmds.c, sanity.sh, update.c:
641         Revert changes of Sep 29 and 30.
643 Tue Oct  1 13:17:31 1996  Ian Lance Taylor  <ian@cygnus.com>
645         Make sure the server temporary directory is removed even if
646         Max-dotdot is used.
647         * server.c (orig_server_temp_dir): New static variable.
648         (serve_max_dotdot): Don't free server_temp_dir if it is the same
649         as orig_server_temp_dir.
650         (do_cvs_command): Use orig_server_temp_dir in error message.
651         (server_cleanup): Remove orig_server_temp_dir.
652         (server): Set orig_server_temp_dir.  Remove incorrect indentation
653         of error message.
655         * import.c (update_rcs_file): Restore new argument to
656         RCS_checkout, removed in last patch.
658 Tue Oct  1 00:32:55 1996  Jim Blandy  <jimb@floss.cyclic.com>
660         * import.c: Revert Greg Woods' changes of Sep 30.  We may want
661         them later, but not before 1.9.
663 Mon Sep 30 23:31:01 1996  Jim Blandy  <jimb@floss.cyclic.com>
665         * log.c (log_fileproc): Now that we might actually find a "desc"
666         node in rcsfile->other, thanks to Ian's change below, we had
667         better deal correctly if we find a null pointer in it.
669 Mon Sep 30 13:55:03 1996  Greg A. Woods  <woods@most.weird.com>
671         * main.c (main): don't set need_to_create_root for "cvs init"
672         either, just in case it's run from within a valid working
673         directory.
675         * sanity.sh (testcvs): oops, forgot to comment out test version I
676         was using...
678         * diff.c (diff_fileproc): use Diffbin instead of DIFF (3).
679         * patch.c (patch_fileproc): use Diffbin instead of DIFF.
680         * commit.c (check_fileproc): use Grepbin instead of GREP.
681         * rcscmds.c (RCS_merge): use Grepbin instead of GREP.
682         * update.c (patch_file): use Diffbin instead of DIFF.
683         (update_fileproc): use Grepbin instead of GREP.
684         * cvs.h (Diffbin): new declaration.
685         (Grepbin): new declaration.
686         (DIFFBIN_ENV): new manifest to name DIFFBIN environ var.
687         (GREPBIN_ENV): new manifest to name GREPBIN environ var.
688         * option.h.in (DIFFBIN_DFLT): renamed from DIFF.
689         (GREPBIN_DFLT): renamed from GREP.
690         * main.c (main): new variables diffbin_update_env and
691         grepbin_update_inv, ala rcsbin_update_env.
692         (main): new options -D diffbin and -g grepbin
693         (usg): describe new options -D diffbin and -g grepbin.
694         (Diffbin): new global variable for DIFF path.
695         (Grepfbin): new global variable for GREP path.
697         * options.h.in (RCSBIN_DFLT): mention this needs to be set if
698         your PATH isn't set properly by rshd.
700         * sanity.sh (rdiff): re-do Jim's change, but with the original
701         keywords I had intended (should be a bit more like real life), and
702         Jim's better RCS date and user matching form.
703         [I guess that's what I get for checking things in at 3am! ;-)]
705 Mon Sep 30 17:00:20 1996  Ian Lance Taylor  <ian@cygnus.com>
707         * rcs.c (RCS_reparsercsfile): Store desc field value in main RCS
708         node data, not in version specific data.
709         * sanity.sh: Enable log2 test (for local CVS only).
711 Mon Sep 30 13:01:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
713         * sanity.sh (log2): New test, tests cvs add -m.  Not yet enabled
714         in "tests" because CVS currently flunks this test.
716         * sanity.sh (rdiff, basic2): Allow "cvs server" as well as "cvs
717         checkout" and friends in messages.  In testing output of cvs
718         status, don't require a tab which isn't there for remote.  Skip
719         test rdiff-9 for remote.  In test basic2-64, add missing slash in
720         the pattern which gets used for remote.
722         * sanity.sh (rdiff): Fix strings we were matching against which
723         got keyword-expanded in checking in sanity.sh.
725 Mon Sep 30 03:21:37 1996  Greg A. Woods  <woods@most.weird.com>
727         * sanity.sh: change all regexpr literal '.' to '\.'
728         (basic2): why are tests 34 & 42 commented out (because
729         of 'diff -u'?)?
730         add tests 56[abc], 57a, and 58a to test import to the main
731         branch (i.e. branch '1').
732         (rdiff): new test section for rdiff -K, etc.
733         (dotest): remove dotest.ex? before running a new test.
734         (dotest_fail): remove dotest.ex? before running a new test.
735         (dotest_internal): write expected output to dotest.exp, or if $4
736         also used, to dotest.ex1 and dotest.ex2.
737         (patch): renamed this test to 'serverpatch'.
738         (dotest_lit): rename dotest.res to dotest.exp ala dotest().
739         remove dotest.ex? before running a new test.
740         (DOTSTAR): mention the bug exists up to 1.12
741         (ENDANCHOR): mention the bug exists up to 1.12
742         (dotest_all_in_one): new function for debugging.
743         (dotest_line_by_line): new function for debugging.
744         (dotest_internal_debug): new function for debugging.
745         (dotest_internal): stop emulating the ancient tests and don't spew
746         the dotest.tmp contents onto $LOGFILE -- it's just too much
747         meaningless noise.  Only do this if the test fails.  Many tests
748         don't use dotest() yet, so this isn't quite so helpful as it might
749         otherwise be.
750         (TODO): mention CVS/* files, especially CVS/Root.
751         
752         * main.c (main): add a commented out piece of code to suggest that
753         there should be a function lookup_command_attribute() that could
754         tell us various things about internal commands, such as whether
755         they use CVS/Root, or if they're repository-only, or if they need
756         a working directory, etc....
757         (main): don't set need_to_create_root if command doesn't use a
758         local working directory.
760         * patch.c (patch): CLIENT_SUPPORT: send '-f' if NOT force_tag_match
762         * error.c (fperror): protect declaration for un-defined __STDC__
764         * import.c (import): permit imports to a branch with zero dots,
765         i.e. the trunk.
766         (update_rcs_file): don't detect conflicts if importing to the
767         trunk.
768         (import): add hint that we should allow a module name, instead of
769         just a pathname relative to $CVSROOT.
770         (add_rcs_file): if importing to trunk, do it with ci(1).
772         * import.c: XXX the following are all #if 0'ed out until a full
773         implementation can be designed....
774         (cbranch): new variable to support conflict detection on another
775         branch set by -c.
776         (import): truncate -b and -c optarg if to fit in static storage.
777         (import_usage): describe -c
779         * rcscmds.c (RCS_checkout): add new argument 'rcsver'.  If rcsver
780         is set, turn on 'keywords' to force call to RCS_exec_checkout.
781         * rcs.c (RCS_exec_checkout): add new argument 'rcsver'.  Pass
782         'rcsver' to "co" with run_arg().
783         * cvs.h: (RCS_checkout): add new argument 'rcsver' to prototype.
784         (RCS_exec_checkout): add new argument 'rcsver' to prototype.
785         * commit.c (remove_file): supply new argument to RCS_checkout.
786         * checkin.c (Checkin): supply new argument to RCS_checkout.
787         * diff.c (diff_fileproc): supply new argument to RCS_checkout.
788         (diff_file_nodiff): supply new argument to RCS_checkout.
789         * no_diff.c (No_Difference): supply new argument to RCS_checkout.
790         * update.c (checkout_file): supply new argument to RCS_checkout.
791         (patch_file): supply new argument to RCS_checkout.
792         (join_file): supply new argument to RCS_checkout.
794         * patch.c: (o_options): new variable for -K
795         (rcsver): new variable for -V.
796         (patch): add -K flag which sets o_options, change -V to set
797         rcsver, send o_options and rcsver if in client mode.
798         (patch_fileproc): use RCS_checkout instead of RCS_fast_checkout in
799         order to ensure $Name is expanded, use o_options if set, or
800         options if set, or by default "-ko" when getting "old" file.
802 Sun Sep 29 16:43:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
804         * rcscmds.c: Replace comment at top of file concerning RCS library
805         with a reworded version based on discussion between me, Ian, Paul
806         Eggert, and JimB.
808 Sun Sep 29 13:09:45 1996  Noel Cragg  <noel@kiva.rain.org>
810         * main.c (main): don't create/update CVS/Root when doing the "cvs
811         login" command.  Consider: if the user executes "cvs login" with
812         the working directory inside an already checked out module, we'd
813         incorrectly change the CVS/Root file to reflect the CVSROOT of the
814         "cvs login" command.
816         * login.c (login): if we're re-logging into a server for which a
817         .cvspass entry already exists, copy the temporary file to its home
818         location rather than renaming.  Renaming doesn't work between
819         filesystems.  After copying, unlink the temporary file.
821 Fri Sep 27 05:24:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
823         * diff.c: Add comment about --brief option.
825         * README-rm-add: Removed; the information which was here is now in
826         cvs.texinfo.
827         * Makefile.in (DISTFILES): Remove README-rm-add.
829 Wed Sep 25 10:00:00 1996  Larry Jones  <larry.jones@sdrc.com>
831         * Makefile.in (cvsbug): Add dependency on version.c.
833 Wed Sep 25 09:01:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
835         * filesubr.c (get_homedir), update.c (update): Reindent.
837 Wed Sep 25 04:44:54 1996  Jim Blandy  <jimb@totoro.cyclic.com>
839         * version.c (version_string): Bump to 1.8.86.
841 Wed Sep 25 05:17:50 1996  Jim Blandy  <jimb@floss.cyclic.com>
843         * update.c (update): Don't neglect to pass the -kmumble options
844         to the server.
845         * sanity.sh (binfiles-sticky): New tests for above.
847         * cvsrc.c (read_cvsrc): Deal correctly with lines that specify a
848         command, but no options; don't corrupt argv.
850         * sanity.sh: When testing rsh, use the program specified by
851         the CVS_RSH environment variable, if it's set.  Move test to top
852         of file, so it runs before all other tests (it's really a
853         meta-test).
855         * filesubr.c (get_homedir): Use getpwuid to find the home
856         directory, if the HOME environment variable isn't set.
857         * ignore.c (ign_add_file): Call get_homedir to find the user's
858         home directory; this is more portable than calling getpwuid.
860 Tue Sep 24 09:08:17 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
862         * log.c (log_tree): When walking through branches, follow the
863         ->prev field rather than following ->next which insures that the
864         loop only executes once and we only see the last branch.
865         * sanity.sh (multibranch): Test "cvs log" too; tests for above fix.
867 Mon Sep 23 09:55:22 1996  Norbert Kiesel  <nk@col.sw-ley.de>
869         * options.h.in: Fixed some typos in the comments and reindented
870         them.
872 Sat Sep 21 02:33:26 1996  Jim Blandy  <jimb@totoro.cyclic.com>
874         * sanity.sh: If we're testing remote CVS, make sure rsh itself is
875         working before running any tests.  It's confusing when basica-1
876         fails just because you don't have the local host in your .rhosts
877         file.
879         * version.c (version_string): Bump to 1.8.85.
881 Thu Sep 19 09:15:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
883         * options.h.in: Define SERVER_FLOWCONTROL, SERVER_HI_WATER,
884         SERVER_LO_WATER.  Several large sites (FreeBSD, Cygnus) have been
885         pounding on this code without problems, and it doesn't seem to
886         have any significant downsides.
888 Tue Sep 17 01:13:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
890         * status.c (status_fileproc): Instead of a default case, set sstat
891         before the switch.  This way gcc -Wall can detect a missed case.
892         Add explicit T_TITLE case.
894 Tue Sep 17 00:09:44 1996  Assar Westerlund  <assar@pdc.kth.se>
896         * login.c (login): Print usage if argc < 0.
898 Tue Sep 17 00:09:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
900         * lock.c: In comment, mention one more function of readlocks
901         (fileattr not updated atomically).  Note similarity between
902         solutions #2 and #5.
904         * checkout.c (safe_location): Do not reject a location merely
905         because it textually starts with hardpath; insist that it be
906         hardpath or a subdirectory thereof.
908 Mon Sep 16 11:46:36 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
910         * server.c (server_cleanup): Add comment about ignoring errors
911         from unlink_file_dir.
913 Mon Sep 16 10:31:48 1996  Norbert Kiesel  <nk@col.sw-ley.de>
915         * main.c: Add support for -T <tmpdir> command line option.  This
916         is needed for servers started via inetd.
917         (usg): Added line for -T.  Improved -z documentation.
918         (main): Read default for tmpdir from the environment. Test for 'T'
919         in getopt loop.  Use '/tmp' as ultimative fallback.  Update
920         environment if possible.
922         * cvs.h (TMPDIR_ENV): Added for -T <tmpdir> command line option.
924         * options.h.in: Add TMPDIR_DFLT
926         * import.c (update_rcs_file): Use global variable Tmpdir instead
927         of reading the environment.
929         * server.c (server_cleanup): Use global variable Tmpdir instead of
930         reading the environment.  Also, replace system("rm -rf") with
931         unlink_file_dir.
932         (server): Use global variable Tmpdir instead of reading the
933         environment.
935 Thu Sep 12 1996  Jim Kingdon  <kingdon@cyclic.com>
937         * main.c (main): If ARGV0_NOT_PROGRAM_NAME, then just set
938         program_name to "cvs" rather than argv[0].
940 Thu Sep 12 12:06:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
942         * client.c (update_entries): If we can't write the file, don't
943         make it a fatal error.
945 Wed Sep 11 12:46:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
947         * client.c (start_server): Move START_SERVER_RETURNS_SOCKET code
948         so that it is only run for server_method.  It is wrong for
949         pserver_method (in which connect_to_pserver sets server_sock).
951         * login.c (construct_cvspass_filename): If NO_SLASH_AFTER_HOME,
952         don't put a '/' between $HOME and .cvspass.  Reindent function.
953         * build_src.com: Add zlib.c, login.c, and scramble.c.
955         * rcs.c (RCS_deltas): When looking for our branch in ->branches,
956         check the branch number.
957         * sanity.sh (multibranch): New tests test for above fix.
959         * commit.c (precommit_list_proc): Fix typo in last change
960         (->status to ->type).
962 Tue Sep 10 23:05:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
964         * Makefile.in (DISTFILES): Add build_src.com.
965         * build_src.com: Add buffer.c, buffer.obj, and zlib.olb.
967 Tue Sep 10 20:35:23 1996  Juergen Renz  <renz@conware.de>
968                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
970         * commit.c (precommit_list_proc): Update to reflect Jul 22 change
971         in which p->data was changed from a Ctype to a struct
972         logfile_info *.  This means that commitinfo scripts again get
973         passed the file list like they should.
975 Tue Sep 10 20:35:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
977         * client.c (auth_server_port_number): Change name of service from
978         "cvs" to "cvspserver".  The latter is what the manual has always
979         recommended, and it is also officially registered with IANA.
981 Tue Sep 10 11:12:42 1996  Mark A. Solinski <markso@mcs.com>
982                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
984         * client.c (socket_buffer_output): Change ifdef VMS to ifdef
985         SEND_NEVER_PARTIAL. 
986         (start_server): Change ifdef VMS to ifdef START_SERVER_RETURNS_SOCKET.
988 Tue Sep 10 17:15:21 1996  Jim Blandy  <jimb@totoro.cyclic.com>
990         * client.c (auth_server_port_number): Look up "cvs" in the
991         services database, and use the value it returns; fall back to
992         CVS_AUTH_PORT if no entry is present.
993         (connect_to_pserver): Use the correct port number in any error
994         messages.
996 Tue Sep 10 11:12:42 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
998         * sanity.sh (newb): New test newb-123j0 tests for another "cvs
999         status" case.
1001 Sun Sep  8 15:20:37 1996  Ian Lance Taylor  <ian@cygnus.com>
1003         * rcs.c (RCS_checkout): Clarify handling of options parameter.
1005         * rcs.c (RCS_checkout): Free buffer allocated by RCS_deltas.
1007 Sat Sep  7 21:28:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1009         * main.c (struct cmd): Add comment concerning recognizing unique
1010         abbreviations.
1012 Fri Sep  6 22:31:52 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1014         * rcs.c (RCS_checkout): Fix indentation.
1016 Fri Sep  6 11:48:08 1996  Ian Lance Taylor  <ian@cygnus.com>
1018         * rcs.c (RCS_checkout): Replace tag parameter with rev and nametag
1019         parameters.  Change all callers.
1020         * rcs.h (RCS_checkout): Update declaration.
1022         * rcs.c (RCS_getversion): Replace return_both parameter with
1023         simple_tag.  Change all callers.
1024         (RCS_gettag): Likewise.
1025         * rcs.h (RCS_getversion, RCS_gettag): Update declarations.
1026         * vers_ts.c (Version_TS): Simplify vn_tag initialization using new
1027         simple_tag rather than old return_both.
1028         * cvs.h (struct vers_ts): Clarify vn_tag comment a bit.
1030         * main.c (usg): Only mention -x if ENCRYPTION is defined.
1031         (main): Mention ENCRYPTION define in comment for -x.
1032         * client.h (krb_encrypt_buffer_initialize): Only declare if
1033         ENCRYPTION is defined.
1034         * client.c (start_server): Only encrypt if ENCRYPTION is defined.
1035         * server.c (serve_kerberos_encrypt): Only define if ENCRYPTION is
1036         defined.
1037         (requests): Only include Kerberos-encrypt is ENCRYPTION is
1038         defined.
1039         (krb_encrypt_*): Only define if ENCRYPTION is defined.
1041 Thu Sep  5 17:32:39 1996  Ian Lance Taylor  <ian@cygnus.com>
1043         * sanity.sh: When testing remote, use :ext: instead of :server: to
1044         match change made earlier today.
1046 Thu Sep  5 13:57:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1048         * client.c (start_tcp_server): Don't allow :kserver: to mean
1049         "direct tcp" (root.c already takes care of this, but I want to
1050         make it clear what is intended, and not intended, here).
1051         (start_server): Handle ext_method (external rsh program) and
1052         server_method (internal rsh client) separately.
1053         * client.c: Take rsh_pid and start_rsh_server out of
1054         RSH_NOT_TRANSPARENT ifdefs.  It is useful for things like SSH on NT.
1055         * cvs.h (CVSmethod), root.c (method_names): Add ext_method.
1056         * root.c (parse_cvsroot): Recognize "ext" access method.
1057         If access method is not specified and CVSROOT contains a colon,
1058         use either ext_method or server_method depending on
1059         RSH_NOT_TRANSPARENT.
1061 Thu Sep  5 00:09:49 1996  Ian Lance Taylor  <ian@cygnus.com>
1063         * rcs.c (RCS_checkout): Remove flags parameter, which was not
1064         serving any useful purpose.  Change all callers.
1065         * rcscmds.c (RCS_exec_checkout): Likewise.
1067         * rcscmds.c (RCS_exec_checkout): Rename from RCS_checkout.  Change
1068         all callers.
1069         * rcs.c (RCS_checkout): Rename from RCS_fast_checkout.  Change all
1070         callers.
1072 Wed Sep  4 14:42:28 1996  Ian Lance Taylor  <ian@cygnus.com>
1074         * rcs.c (RCS_fast_checkout): If tracing, output a message.  If
1075         noexec, and workfile is not NULL, just return immediately.  Assert
1076         that sout is RUN_TTY or workfile is NULL, rather than using it as
1077         a conditional.  Replace found variable with two variables--gothead
1078         and keywords--reflecting what it actually means.
1080         * rcs.c (RCS_fast_checkout): Don't handle the case of workfile set
1081         to "".
1082         * rcscmds.c (RCS_checkout): Likewise.
1083         * checkin.c (Checkin): Pass explicit file name, not "", to
1084         RCS_fast_checkout.
1085         * update.c (join_file): Likewise.
1086         * commit.c (remove_file): Pass explicit file name to
1087         RCS_fast_checkout and RCS_checkin.
1089         * rcs.c (RCS_reparsercsfile): Always continue after seeing
1090         RCSSYMBOLS, even if the value is NULL.  Clear the NODELTA flag
1091         after setting delta_pos.
1092         (free_rcsnode_contents): New static function.
1093         (freercsnode): Call free_rcsnode_contents.
1094         (RCS_fast_checkout): If NODELTA is set, reparse the RCS file.
1095         (RCS_settag): New function.  Change all callers to old function.
1096         (RCS_deltag, RCS_setbranch): Likewise.
1097         (RCS_lock, RCS_unlock): Likewise.
1098         (RCS_deltas): If NODELTA is set, reparse the RCS file.
1099         * rcs.h (NODELTA): Define.
1100         (RCS_settag, RCS_deltag, RCS_setbranch): Declare.
1101         (RCS_lock, RCS_unlock): Declare.
1102         * rcscmds.c (RCS_exec_settag): Rename from RCS_settag.  Don't
1103         check tag against BASE or HEAD (now done in new RCS_settag).
1104         (RCS_exec_deltag): Rename from RCS_deltag.
1105         (RCS_exec_setbranch): Rename from RCS_setbranch.
1106         (RCS_exec_lock): Rename from RCS_lock.
1107         (RCS_exec_unlock): Rename from RCS_unlock.
1108         * cvs.h: Update declarations of renamed functions.
1109         * checkin.c (Checkin): Remove rcscopy variable (no longer needed
1110         because of change in RCS_unlock call).
1111         * commit.c: Include <assert.h>.
1112         (remove_file): Update RCSNode path if the file is renamed.
1113         (unblockrcs): Change rcs parameter to RCSNode.  Change all
1114         callers.
1115         (fixbranch): Likewise.
1116         (lock_RCS): Likewise.  Don't call RCS_parsercsfile.
1117         (checkaddfile): Update RCSNode path if the file is renamed.  After
1118         creating a new file, call RCS_parse.  When stubbing a branch, use
1119         the passed in RCSNode if there is one, rather than calling
1120         RCS_Parse.  Don't call RCS_Parse again after calling RCS_settag.
1121         Free head and magicrev even if RCS_settag fails.
1122         * import.c (add_rev): Change rcs parameter to RCSNode.  Change all
1123         callers.
1124         (add_tag): Likewise.
1126         * rcs.c (RCS_fast_checkout): Amend last patch: if workfile is
1127         NULL, but sout is not NULL, use sout in error message.
1129 Wed Sep  4 13:35:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1131         * version.c: Increment version number to 1.8.8.
1133         * Version 1.8.7.
1135 Wed Sep  4 1996  Jim Kingdon  <kingdon@cyclic.com>
1137         * client.c (send_file_names): Look for the name to send in
1138         Entries even if the file doesn't exist; we should send the
1139         name as it appears in Entries in the "rm foo; cvs update FOO"
1140         case.
1142 Tue Sep  3 20:50:11 1996  William A. Hoffman  <hoffman@albirio.crd.ge.com>
1144         * rcs.c (RCS_fast_checkout): If workfile is NULL, don't try to
1145         include it in error message.
1147 Mon Aug 26 12:27:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1149         * mkmodules.c (mkdir_if_needed): Move from here ...
1150         * filesubr.c, cvs.h (mkdir_if_needed): ... to here.  Have it
1151         return a value saying whether the directory was created.
1152         * client.c (call_in_directory), edit.c (edit_fileproc): Call it.
1154 Fri Aug 23 19:19:44 1996  Ian Lance Taylor  <ian@cygnus.com>
1156         * checkin.c (Checkin): Copy rcs parameter in case it is freed when
1157         finfo->rcs is freed.
1159 Fri Aug 23 14:55:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1161         * remove.c (remove_fileproc): Revert change of 23 Aug to print
1162         getwd and finfo->file in message.  The latter is redundant with
1163         fullname and the former is redundant with fullname and the working
1164         directory when CVS was invoked.  The implementation was also
1165         lacking as the getwd call could overflow the buffer.
1167 Fri Aug 23 18:40:35 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1169         * remove.c (cvsremove): fix remove -f for client/server
1171 Fri Aug 23 11:28:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1173         * wrapper.c, cvs.h: Remove conflictHook field of WrapperEntry,
1174         WRAP_CONFLICT in WrapMergeHas, and 'c' option in wrap_add; they
1175         are never used.
1177 Fri Aug 23 11:41:46 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1179         * server.c (switch_to_user): use #ifdef SETXID_SUPPORT instead of
1180         #if SETXID_SUPPORT
1182 Thu Aug 22 14:18:43 1996  Ian Lance Taylor  <ian@cygnus.com>
1184         * checkin.c (Checkin): Remove local variable xfinfo.  Reparse the
1185         RCS file after the checkin.  Call RCS_fast_checkout rather than
1186         RCS_checkout.
1188         * cvs.h (RCS_FLAGS_LOCK): Don't define.
1189         (RCS_FLAGS_*): Adjust values to fill in hole left by removal of
1190         RCS_FLAGS_LOCK.
1191         * rcs.c (RCS_fast_checkout): Don't check for RCS_FLAGS_LOCK.
1192         * rcscmds.c (RCS_checkout): Likewise.
1193         * commit.c (commit_fileproc): Remove rcs local variable.  If
1194         status is T_MODIFIED, require that finfo->rcs be set, call
1195         Lock_RCS directly, and don't call locate_rcs.  If adding to a tag,
1196         require that finfo->rcs be set, and don't call locate_rcs.
1197         (remove_file): Remove rcs local variable.  Require that finfo->rcs
1198         be set.  Don't call locate_rcs.  Don't pass RCS_FLAGS_LOCK to
1199         RCS_checkout; use RCS_lock instead.  Call RCS_fast_checkout rather
1200         than RCS_checkout.
1201         (unlockrcs): Use a single rcs parameter rather than two parameters
1202         for file and repository.  Change all callers.  Don't call
1203         locate_rcs.
1204         (fixbranch): Likewise.
1205         (lockrcsfile): Remove; no more callers.
1207 Tue Aug 20 10:13:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1209         * buffer.c, rcs.c: Don't use inline.  It wasn't being used in a
1210         loop or any such place where it would matter for performance, and
1211         it was a (minor) portability hassle.
1213         * server.c (server): Change "Dummy argument 0" to "cvs server" and
1214         add comment explaining why.
1216         * rcs.c (linevector_add): Add comment regarding changing \n to \0.
1218 Tue Aug 20 09:19:19 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1220         * checkout.c (checkout_proc): Call RCS_parse to get the default
1221         options from the RCS file.
1223         * sanity.sh (binfiles): Add tests 5.5b0 and 5.5b1 for the above fix
1225 Mon Aug 19 18:13:32 1996  Ian Lance Taylor  <ian@cygnus.com>
1227         * rcs.c (linevector_init): Make inline.  Set lines_alloced to 0,
1228         not 10.  Set vector to NULL.
1229         (linevector_add): Remove assertion that lines_alloced is greater
1230         than zero.  Initialize lines_alloced if necessary.
1231         (linevector_copy): Initialize lines_alloced if necessary.
1232         (linevector_free): Only free vector if it is not NULL.
1233         (RCS_deltas): Always call linevector_init and linevector_free on
1234         curlines, headlines, and trunklines.
1235         (RCS_fast_checkout): Remove #if 0 around code that calls
1236         RCS_deltas.
1238 Fri Aug 16 17:52:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1240         * rcs.c (linevector_add): Handle zero length correctly.
1241         (RCS_deltas): In RCS_FETCH case, the data is in headlines, not
1242         curlines.
1243         (RCS_fast_checkout): Update comment about RCS_deltas: the
1244         testsuite now passes.
1246         * rcs.c (RCS_fully_parse): Use the length of the value, rather
1247         than assuming that there are no embedded zero bytes.
1248         (struct line): Add len field.
1249         (linevector_add): Add len parameter.  Change all callers.  Use
1250         len, rather than assuming that there are no embedded zero bytes.
1251         Set the len field in new lines.
1252         (RCS_deltas): Use the length of the value, rather than assuming
1253         that there are no embedded zero bytes.  Use the line length when
1254         outputting it and when copying it.
1255         (RCS_fast_checkout): Update comment about RCS_deltas to remove
1256         note about supporting zero bytes correctly.
1258 Thu Aug 15 23:38:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1260         * commit.c, import.c: Revise comments regarding the fact that we
1261         call start_server before do_editor.
1263 Thu Aug 15 11:30:55 1996  Ian Lance Taylor  <ian@cygnus.com>
1265         * server.c: Include <sys/socket.h> if AUTH_SERVER_SUPPORT.
1266         (pserver_authenticate_connection): Set SO_KEEPALIVE on
1267         STDIN_FILENO.
1268         (kserver_authenticate_connection): Likewise.
1270 Thu Aug 15 10:26:41 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1272         * server.c (switch_to_user): Fix previous patch to compile it for
1273         both HAVE_KERBEROS and AUTH_SERVER_SUPPORT
1275 Wed Aug 14 14:02:00 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1277         * server.c (check_password): if available use getspnam instead of
1278         getpwnam when reading system passwords.  This allows cvs pserver
1279         to run on systems with shadow passwords.
1280         (switch_to_user): new static function.  Contains the extracted
1281         common tail of kserver_authenticate_connection and
1282         pserver_authenticate_connection.  If compiled with SETXID_SUPPORT,
1283         honor the setgid bit if it is set.
1284         (check_repository_password): turn into a static function
1285         (check_password): ditto
1286         (pserver_authenticate_connection): little code cleanup
1288 Wed Aug 14 01:07:10 1996  Greg A. Woods  <woods@most.weird.com>
1290         * history.c (history): apply fix posted by Steven Meyer
1291         <steve@blacksmith.com> to info-cvs to correct handling of '-D'
1292         argument.  Message-Id: <9608122335.AA01385@nijel.blacksmith.com>
1294 Tue Aug 13 13:42:36 1996  Ian Lance Taylor  <ian@cygnus.com>
1296         * log.c (cvslog): Remove comment about calling rlog.
1297         * rcs.c (translate_symtag): Correct typo in comment (l ist ->
1298         list).
1299         * server.c (server_write_entries): Add omitted word (lists) in
1300         comment.
1302 Tue Aug 13 14:01:49 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1304         * wrapper.c (wrap_rcsoption): fix memory access error
1306         * rcs.c (RCS_fast_checkout): fix memory access error (triggered
1307         by an empty option string)
1309 Mon Aug 12 17:45:15 1996  Jim Kingdon  (unknown@beezley)
1311         * buffer.c, zlib.c: If EIO is not defined, try to define it.
1313 Mon Aug 12 10:33:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1315         * import.c (comtable): Add comment concerning applicability with
1316         RCS 5.7.
1318         * server.c (server): If TMPDIR is not an absolute pathname, give
1319         an error.
1321 Mon Aug 12 10:34:43 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1323         * main.c: add synonym "ann" for "annotate" again
1325 Sun Aug 11 17:54:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1327         * rcs.h (RCS_RLOG): Removed; no longer used.
1329 Fri Aug  9 20:16:20 1996  Ian Lance Taylor  <ian@cygnus.com>
1331         * server.c (dirswitch): Open the Entries file with mode "a" rather
1332         than "w+".
1333         (server_write_entries): Open the Entries file with mode "a" rather
1334         than "w".
1335         * sanity.sh (modules): Add topfiles module and 155cN tests for
1336         above patch.
1338 Fri Aug  9 12:11:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1340         * main.c (cmd): Add comment regarding synonyms.
1342 Thu Aug  8 14:40:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1344         * main.c: Remove synonyms for "cvs annotate".  Synonyms create
1345         user confusion.
1347 Thu Aug  8 10:24:04 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1349         * main.c: Revert (undocumented) change to rename the cvs history
1350         alias "his" to "hist"
1352 Wed Aug  7 18:26:25 1996  Ian Lance Taylor  <ian@cygnus.com>
1354         * server.c (cvs_output): Change str parameter to const char *.
1355         Correct loop to print from p, not str.
1356         (cvs_outerr): Likewise.
1357         * cvs.h (cvs_output, cvs_outerr): Update declarations.
1359         * server.c (receive_partial_file): Read and discard remaining file
1360         data on a write error.
1361         (serve_modified): Discard data while size > 0, not >=.
1363 Wed Aug  7 15:11:40 1996  Norbert Kiesel  <nk@col.sw-ley.de>
1365         * main.c (cmds): Add some aliases for "annotate".
1366         (usg): Improve usage message text
1367         (cmd_synonyms): New function to print the command synonym list
1368         (main): Add new option --help-synonyms
1370 Wed Aug  7 00:07:31 1996  Ian Lance Taylor  <ian@cygnus.com>
1372         Keep track of subdirectories in the Entries file.
1373         * cvs.h (enum ent_type): Define.
1374         (struct entnode): Add type field.
1375         (struct stickydirtag): Add subdirs field.
1376         (Subdirs_Known, Subdir_Register, Subdir_Deregister): Declare.
1377         (ignore_files): Update declaration for new parameter.
1378         (FILESDONEPROC): Add entries parameter.
1379         (DIRENTPROC, DIRLEAVEPROC): Likewise.
1380         * entries.c (Entnode_Create): Add type parameter.  Change all
1381         callers.
1382         (write_ent_proc): If closure is not NULL, treat it as a pointer to
1383         an int, and set it to 1 if a node is seen which is not ENT_FILE.
1384         (write_entries): If subdirectory information is known, but no
1385         subdirectories were written, write an unadorned D to the file.
1386         (Scratch_Entry): Write an R command to Entries.Log.  Don't rewrite
1387         the Entries file.
1388         (Register): Set entfilename.  Write an A command rather than an
1389         unadorned entries line.
1390         (fgetentent): Add cmd and sawdir parameters.  Change all callers.
1391         If CMD is not NULL, expect and return a single character command.
1392         Handle an initial D by setting the type to ENT_SUBDIR.
1393         (fputentent): Output an initial D for an ENT_SUBDIR entry.
1394         (Entries_Open): Handle removal commands in Entries.Log.  Record
1395         whether subdirectory information is known in the list private
1396         data.
1397         (Subdirs_Known): New function.
1398         (subdir_record): New static function.
1399         (Subdir_Register, Subdir_Deregister): New functions.
1400         * find_names.c (add_entries_proc): Skip entries that are not
1401         ENT_FILE.
1402         (add_subdir_proc): New static function.
1403         (register_subdir_proc): New static function.
1404         (Find_Directories): If the Entries file has subdirectory
1405         information, get the directories out of it.  Otherwise, call
1406         find_dirs, and add the information to the Entries file.
1407         * recurse.c (struct frame_and_entries): Define.
1408         (do_recursion): Don't call Entries_Close until after processing
1409         dirlist.  Pass entries to filesdoneproc.  Pass a frame_and_entries
1410         structure to do_dir_proc via walklist.
1411         (do_dir_proc): Expect a frame_and_entries structure in closure,
1412         not a recursion_frame.  Pass entries to direntproc and
1413         dirleaveproc.
1414         * ignore.c (ignore_files): Add entries parameter.  Change all
1415         callers.  If we have subdirectory information, check for
1416         directories in entries.
1417         * add.c (add): If client_active, call Subdir_Register on each new
1418         directory.
1419         (add_directory): Add entries parameter.  Change caller.  Call
1420         Subdir_Register.
1421         * checkout.c (build_dirs_and_chdir): Call Subdir_Register.
1422         * client.c (call_in_directory): Call Subdir_Register for newly
1423         created directories.  Call Subdirs_Known or Find_Directories after
1424         calling Entries_Open.
1425         (process_prune_candidates): Call Subdir_Deregister.
1426         * commit.c (findmaxrev): Skip entries that are not ENT_FILE.
1427         * server.c (dirswitch): Call Subdir_Register.
1428         * update.c (update_dirent_proc): Call Subdir_Register.
1429         (update_dirleave_proc): Call Subdir_Deregister.
1430         * Several files: Change direntproc, dirleaveproc, and
1431         filesdoneproc routines to expect an entries argument.
1433         * rcs.c (translate_symtag): New static function.
1434         (RCS_gettag): Use translate_symtag rather than RCS_symbols.
1435         (RCS_nodeisbranch, RCS_whatbranch): Likewise.
1437 Tue Aug  6 15:36:09 1996  Ian Lance Taylor  <ian@cygnus.com>
1439         Finish the conversion of cvs log so that it never invokes rlog.
1440         * log.c (struct log_data): Remove dorlog field.  Add nameonly,
1441         header, long_header, statelist, and authorlist fields.
1442         (log_usage): Remove rlog-options.  Add -R, -h, -t, -b, -s, -w.
1443         (cvslog): Don't clear opterr.  Handle -h, -R, -s, -t, -w.  If an
1444         unrecognized option is seen, call usage.
1445         (log_parse_list): New static function.
1446         (log_fileproc): Remove code that called rlog.  Check nameonly,
1447         header, and long_header fields in log_data.
1448         (log_version_requested): Check statelist and authorlist.
1450         * log.c (struct datelist): Define.
1451         (struct log_data): Add datelist and singledatelist fields.
1452         (log_usage): Add -d.
1453         (cvslog): Handle -d.
1454         (log_parse_date): New static function.
1455         (log_fileproc): Do special single date handling.
1456         (log_version_requested): Check datelist and singledatelist.
1457         (log_fix_singledate): New static function.
1459 Mon Aug  5 23:48:16 1996  Ian Lance Taylor  <ian@cygnus.com>
1461         * log.c (struct option_revlist): Define.
1462         (struct revlist): Define.
1463         (struct log_data): Add default_branch and revlist fields.
1464         (struct log_data_and_rcs): Define.
1465         (log_usage): Add -N and -r.
1466         (cvslog): Handle -N and -r.
1467         (log_parse_revlist): New static function.
1468         (log_fileproc): Call log_expand_revlist and log_free_revlist.
1469         Pass log_data_and_rcs structure to log_count_print via walklist.
1470         (log_expand_revlist, log_free_revlist): New static functions.
1471         (log_version_requested): New static function.
1472         (log_count_print): New static function.
1473         (log_tree): Add log_data and revlist parameter.  Change all
1474         callers.
1475         (log_abranch): Likewise.
1476         (log_version): Likewise.  Call log_version_requested.
1477         (version_compare): New static function.
1478         * sanity.sh (log): New tests for -r, -b, and -N options to log.
1480 Sun Aug  4 11:19:30 1996  Ian Lance Taylor  <ian@cygnus.com>
1482         Handle simple cases of cvs log without invoking rlog.
1483         * log.c (struct log_data): Define.
1484         (cvslog): Use getopt to parse options.  Set up a log_data
1485         structure, and pass it to start_recursion.
1486         (log_fileproc): Get arguments form callerdat rather than static
1487         variables.  In simple cases, print the log information directly,
1488         rather than invoking rlog.
1489         (log_symbol, log_count, log_tree): New static functions.
1490         (log_abranch, log_version, log_branch): New static functions.
1491         * rcs.h (struct rcsnode): Add other field.
1492         (struct rcsversnode): Add other field.
1493         (RCS_fully_parse): Declare.
1494         * rcs.c (getrcsrev): Move declaration to start of file.
1495         (RCS_reparsercsfile): Add all parameter.  Change all callers.
1496         (RCS_fully_parse): New function.
1497         (freercsnode): Free other list.
1498         (rcsvers_delproc): Free other list.
1499         * hash.h (enum ntype): Add RCSFIELD.
1500         * hash.c (nodetypestring): Handle RCSFIELD.
1502 Sat Aug  3 19:39:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1504         * log.c (cvslog): Correct position of CLIENT_SUPPORT #endif.
1506 Thu Jul 25 12:06:45 1996  Ian Lance Taylor  <ian@cygnus.com>
1508         * update.c (join_file): If merging a branch, and the branch
1509         revision does not exist, just return without doing anything.
1510         * sanity.sh (join): Add cases file7 and file8 to test above
1511         patch.
1513         * server.c (cvsencrypt): Rename from encrypt, to avoid conflict
1514         with NetBSD unistd.h.  Rename all uses.
1516         * server.c (krb_encrypt_buffer_output): Fix typo in comment (reply
1517         -> replay).
1519 Thu Jul 25 10:37:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1521         * server.c (krb_encrypt_buffer_output): Fix typo in comment
1522         (krb_recv_auth -> krb_recvauth).
1524 Wed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1526         * lock.c (set_lock): Adjust comment regarding why we call stat.
1528 Wed Jul 24 15:06:08 1996  Ian Lance Taylor  <ian@cygnus.com>
1530         Add encryption support over a Kerberos connection.
1531         * main.c (usg): Mention -x if CLIENT_SUPPORT.
1532         (main): Handle -x.
1533         * client.h (encrypt): Declare.
1534         (krb_encrypt_buffer_initialize): Declare.
1535         * client.c (kblock, sched): New static variables if
1536         HAVE_KERBEROS.
1537         (start_tcp_server): Remove sched local variable.  Copy
1538         cred.session into kblock.
1539         (start_server): Turn on encryption if requested.
1540         * server.c (kblock, sched): New static variables if
1541         HAVE_KERBEROS.
1542         (serve_kerberos_encrypt): New static function.
1543         (requests): Add "Kerberos-encrypt" if HAVE_KERBEROS.
1544         (kserver_authenticate_connection): Remove sched local variable.
1545         Copy auth.session into kblock.
1546         (encrypt): New global variable.
1547         (struct krb_encrypt_buffer): Define.
1548         (krb_encrypt_buffer_initialize): New function.
1549         (krb_encrypt_buffer_input): New static function.
1550         (krb_encrypt_buffer_output): New static function.
1551         (krb_encrypt_buffer_flush): New static function.
1552         (krb_encrypt_buffer_block): New static function.
1553         (krb_encrypt_buffer_shutdown): New static function.
1555 Wed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1557         * recurse.c (do_recursion): Add comment about calling
1558         Name_Repository in !(which & W_LOCAL) case.
1560         * expand_path.c (expand_variable): Fix typo (varaible -> variable).
1562 Tue Jul 23 15:05:01 1996  Ian Lance Taylor  <ian@cygnus.com>
1564         * update.c (update_fileproc): In T_REMOVE_ENTRY case, only call
1565         server_scratch_entry_only if ts_user is NULL.
1566         * sanity.sh (death2): Add death2-20 test for above patch.
1568         * diff.c (diff_fileproc): If a file is not in the working
1569         directory, check that the tag is present before warning that no
1570         comparison is possible.
1571         * sanity.sh (death2): Add death2-diff-9 and death2-diff-10 tests
1572         for above patch.
1574 Tue Jul 23 12:05:42 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1576         * tag.c (tag_check_valid): Fix indentation.
1578         * client.c (handle_e): Flush stdout before writing to stderr.
1579         (handle_m): Flush stderr before writing to stdout.
1581 Fri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
1583         * client.c: Added NO_CLIENT_GZIP_PROCESS to deal with the MacOS
1584         client where Gzip-stream is supported, but "gzip-file-contents" is
1585         not.
1587 Fri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
1589         * repos.c: Fixed recent patch which added plain fopen rather than
1590         CVS_FOPEN
1592 Mon Jul 22 22:25:53 1996  Ian Lance Taylor  <ian@cygnus.com>
1594         * logmsg.c (tag): New static variable.
1595         (setup_tmpfile): Don't print the prefix before calling fmt_proc.
1596         Free tag if it is set.
1597         (find_type): Get type from logfile_info struct.
1598         (fmt_proc): Likewise.  Print tag information.  Handle all prefix
1599         printing.
1600         (revision): Remove static variable.
1601         (Update_Logfile): Remove xrevision parameter.  Change all
1602         callers.
1603         (title_proc): Get type from logfile_info struct.
1604         (logfile_write): Remove revision parameter.  Change all callers.
1605         * cvs.h (struct logfile_info): Define.
1606         (Update_Logfile): Update prototype.
1607         * commit.c (find_fileproc): Set logfile_info information.
1608         (check_fileproc): Likewise.
1609         (commit_filesdoneproc): Don't call ParseTag.
1610         (update_delproc): Free logfile_info information.
1611         * add.c (add_directory): Set logfile_info information.
1612         * import.c (import): Likewise.
1614         * tag.c (tag_check_valid): The special BASE and HEAD tags are
1615         always valid.
1616         * sanity.sh (basica): Add basica-6.3 test for above patch.
1618 Mon Jul 22 14:41:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1620         * update.c (merge_file): Pass 0 not NULL to checkout_file (20 Jul
1621         96 change changed other calls to checkout_file but missed this one).
1623 Sat Jul 20 00:21:54 1996  Ian Lance Taylor  <ian@cygnus.com>
1625         * update.c (join_file): Check whether the target of the merge is
1626         the same as the working file revision before checking whether the
1627         file was added during the merge.
1629         * update.c (scratch_file): Remove existing parameters, and add a
1630         single parameter of type struct file_info.  Change all callers.
1631         Warn if unlink_file fails.
1632         (checkout_file): Remove resurrecting_out parameter.  Add adding
1633         parameter.  Change all callers.  Remove joining code.
1634         (join_file): Remove resurrecting parameter.  Rewrite to handle
1635         joining dead or added revisions.
1636         * classify.c (Classify_File): If there is no user file, and the
1637         RCS file is dead, return T_UPTODATE rather than T_CHECKOUT.
1638         * checkout.c (checkout_proc): Set W_ATTIC if there is a join tag.
1639         * sanity.sh (join): New set of tests for above patches.
1640         (death): Adjust tests 86, 89, 89a, 92.1c, 95 for above patches.
1641         (import): Adjust test 113 for above patches.
1643 Thu Jul 18 19:24:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1645         * lock.c: Add comment explaining what locks are for.  Also discuss
1646         various changes to locking which get proposed from time to time.
1648         * sanity.sh (death2): Change a number of test names from death-*
1649         to death2-*.
1651         * wrapper.c (wrap_setup): Don't look in repository if client_active.
1652         * wrapper.c, cvs.h (wrap_send): New function.
1653         * update.c (update), import.c (import): Call it.
1654         * sanity.sh (binwrap): Do binwrap tests for remote as well as
1655         local; tests for above fixes.
1657         * wrapper.c: Add a few FIXME comments.
1659 Thu Jul 18 18:43:50 1996  Ian Lance Taylor  <ian@cygnus.com>
1661         * sanity.sh (patch): Fix names of a couple of tests to say patch
1662         rather than death2.
1664 Thu Jul 18 16:19:21 1996  Bill Bumgarner <bbum@friday.com>
1665                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
1667         * add.c (add), import.c (add_rcs_file): Check for options from
1668         wrappers and use them if specified.
1669         * cvs.h (WrapMergeHas): Add WRAP_RCSOPTION.
1670         * wrapper.c (WrapperEntry): Add rcsOption field.
1671         (wrap_add): Allow a single character argument to an option.
1672         (wrap_add): Handle -k option.
1673         (wrap_add_entry): Handle rcsOption field.
1674         (wrap_name_has): Handle WRAP_RCSOPTION.
1675         * wrapper.c, cvs.h (wrap_rcsoption): New function.
1676         * add.c, import.c, wrapper.c: Minor beautification (mostly
1677         removing trailing spaces).
1678         * sanity.sh (binwrap): New tests test for this feature.
1680 Wed Jul 17 10:14:20 1996  Ian Lance Taylor  <ian@cygnus.com>
1682         * checkout.c (checkout): Remove extraneous else accidentally
1683         inserted in last checkin.
1685 Tue Jul 16 11:37:41 1996  Ian Lance Taylor  <ian@cygnus.com>
1687         * sanity.sh (import): Use quoting to avoid expansion of RCS ID
1688         strings.
1690         * sanity.sh (import): Use dotest to examine the output of test
1691         113, and the actual contents of the file in test 116.
1693         * update.c (join_file): Always skip rcsmerge if the two revisions
1694         are the same (the old code always did the rcsmerge when two -j
1695         options were specified).
1697         * checkout.c (history_name): New static variable.
1698         (checkout): Permit both tag and date to be specified.  Set
1699         history_name.
1700         (checkout_proc): Use history_name when calling history_write.
1701         * rcs.c (RCS_getversion): If both tag and date are set, use
1702         RCS_whatbranch to get the branch revision number of a symbolic
1703         tag.
1704         (RCS_getdatebranch): If the branch revision itself is early
1705         enough, then use it if the first branch is not early enough.  Add
1706         comment for invalid RCS file.  Don't bother to check for NULL
1707         before calling xstrdup, since xstrdup checks anyhow.
1709         * client.h (file_gzip_level): Declare.
1710         * client.c (file_gzip_level): Define.
1711         (start_server): Don't set gzip_level to zero after sending
1712         Gzip-stream command.  Set file_gzip_level after sending
1713         gzip-file-contents command.
1714         (send_modified): Use file_gzip_level rather than gzip_level.
1715         * server.c (server_updated): Likewise.
1716         (serve_gzip_contents): Likewise.
1718         * sanity.sh (patch): New tests.  Test remote CVS handling of
1719         unpatchable files.
1721         * sanity.sh (death2): Accept a '.' in the temporary file name
1722         printed by diff.
1724         * rcscmds.c (RCS_checkin): Remove noerr parameter.  Change all
1725         callers.
1726         * cvs.h (RCS_checkin): Update declaration.
1727         * commit.c (remove_file): Pass RCS_FLAGS_QUIET to RCS_checkin.
1729         * history.c (history): Cast sizeof to int to use correct type in
1730         error printf string.
1731         (report_hrecs): Cast strlen result to int to use correct type in
1732         printf string.
1734         * server.c (cvs_flusherr): Correct typo in comment.
1736         * rcs.c (getrcskey): Hoist three constant strcmp calls out of the
1737         value reading loop.
1739         * fileattr.c (fileattr_get): Change parameter types from char * to
1740         const char *.
1741         (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
1742         (fileattr_newfile): Likewise.
1743         * fileattr.h (fileattr_get): Update declaration.
1744         (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
1745         (fileattr_newfile): Likewise.
1747 Thu May 16 11:12:18 1996  Mark P. Immel <immel@radix.net>
1748                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
1750         * client.h, client.c, checkout.c (client_send_expansions):
1751         Pass an additional parameter indicating where the checkout is
1752         to occur, to avoid passing the wrong information to send_files().
1753         * sanity.sh (basicb): New test basicb-cod-1 tests for above fix.
1755 Mon Jul 15 18:26:56 1996  Ian Lance Taylor  <ian@cygnus.com>
1757         * recurse.c (do_recursion): Require a repository before calling
1758         Find_Names.
1759         * repos.c (Name_Repository): Remove sanity checks which spend time
1760         examining the filesystem.
1762 Mon Jul 15 1996  Jim Kingdon  <kingdon@cyclic.com>
1764         * client.c (send_file_names): Send file names as they appear
1765         in CVS/Entries, rather than as specified (in cases where they
1766         might differ in case).
1767         (send_fileproc): Use file name from CVS/Entries (vers->entdata->user)
1768         rather than file name as specified (finfo->file) when available.
1770 Sun Jul 14 15:39:44 1996  Mark Eichin  <eichin@cygnus.com>
1771                           and Ian Lance Taylor  <ian@cygnus.com>
1773         Improve diff -N handling of nonexistent tags and removed files.
1774         * diff.c (enum diff_file): New definition for whole file, moving
1775         unnamed enum out of diff_fileproc, renaming DIFF_NEITHER to
1776         DIFF_DIFFERENT, and adding DIFF_SAME.
1777         (diff): Look through the repository even if only one revision is
1778         given.
1779         (diff_fileproc): Change empty_file to be enum diff_file.  If there
1780         is no user revision, but there is a repository file, treat it as a
1781         removed file.  Pass empty_file to diff_file_nodiff, and set it
1782         from the return value.
1783         (diff_file_nodiff): Change return type to enum diff_file.  Replace
1784         just_set_rev parameter with enum diff_file empty_file parameter.
1785         Change handling of a missing tag to return an enum diff_file value
1786         if empty_files is set, rather than reporting an error.  Free tmp
1787         if xcmp returns 0.
1788         * sanity.sh (death2): Add tests for above patches.
1790 Sat Jul 13 19:11:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1792         * rcs.c (annotate): In sending options to server, reverse sense of
1793         test so that we send -f iff -f was specified, rather than iff -f was
1794         not specified.
1796 Fri Jul 12 20:23:54 1996  Greg A. Woods  <woods@most.weird.com>
1798         * zlib.c (compress_buffer_input): add a couple of casts for
1799         uses of z_stream's next_in and next_out
1801 Fri Jul 12 18:55:26 1996  Ian Lance Taylor  <ian@cygnus.com>
1803         * zlib.c: New file.
1804         * client.c (log_buffer_block): Call set_block and set_nonblock,
1805         rather than lb->buf->block.
1806         (log_buffer_shutdown): New static function.
1807         (get_responses_and_close): Call buf_shutdown on to_server and
1808         from_server.
1809         (start_server): If "Gzip-stream" is supported, use it rather than
1810         "gzip-file-contents".
1811         * server.c (print_error): Call buf_flush rather than
1812         buf_send_output.
1813         (print_pending_error, serve_valid_responses): Likewise.
1814         (serve_expand_modules, serve_valid_requests): Likewise.
1815         (do_cvs_command): Call buf_flush rather than buf_send_output
1816         before the fork, and in the parent after the child has completed.
1817         In the child, set buf_to_net and buf_from_net to NULL.
1818         (serve_gzip_stream): New static function.
1819         (requests): Add "Gzip-stream".
1820         (server_cleanup): Don't do anything with buf_to_net if it is
1821         NULL.  Call buf_flush rather than buf_send_output.  Call
1822         buf_shutdown on buf_to_net and buf_from_net.  Call error for an
1823         malloc failure rather than buf_output to buf_to_net.
1824         * buffer.h (struct buffer): Add shutdown field.
1825         (buf_initialize): Update declaration for new shutdown parameter.
1826         (compress_buffer_initialize): Declare.
1827         (buf_shutdown): Declare.
1828         * buffer.c (buf_initialize): Add shutdown parameter.  Change all
1829         callers.
1830         (buf_shutdown): New function.
1831         * Makefile.in (SOURCES): Add zlib.c
1832         (OBJECTS): Add zlib.o.
1833         ($(PROGS)): Depend upon ../zlib/libz.a.
1834         (cvs): Link against ../zlib/libz.a.
1835         (zlib.o): New target.
1837 Fri Jul 12 1996  Jim Kingdon  <kingdon@cyclic.com>
1839         * client.c (log_buffer_input, log_buffer_output): Use size_t
1840         to avoid Visual C++ signed/unsigned warnings.
1842 Thu Jul 11 22:01:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1844         * client.c (handle_f): Reindent.
1846         * client.c (mode_to_string, handle_m, handle_e,
1847         auth_server_port_number, get_responses_and_close), server.c
1848         (pserver_authenticate_connection, serve_modified,
1849         serve_enable_unchanged, wait_sig, server_cleanup): Reindent.
1850         * server.c: Remove #if 0'd block of code above
1851         check_repository_password; it was yanked out of some unknown
1852         context and didn't seem to be very useful.
1854 Thu Jul 11 20:10:21 1996  Ian Lance Taylor  <ian@cygnus.com>
1856         * server.c (do_cvs_command): Pass new special parameter to
1857         buf_copy_counted.  If it gets set to -1, send an 'F' response if
1858         the client supports it, and call cvs_flusherr.
1859         (cvs_flusherr): New function.
1860         * cvs.h (cvs_flusherr): Declare.
1861         * client.c (handle_f): New static function.
1862         (responses): Add "F".
1863         * buffer.c (buf_send_special_count): New function.
1864         (buf_copy_counted): Add special parameter.  Handle negative counts
1865         specially.
1866         * buffer.h (buf_send_sepcial_count): Declare.
1867         (buf_copy_counted): Update declaration.
1868         * lock.c (lock_wait, lock_obtained): Call cvs_flusherr.
1870         Change the client to use the buffer data structure.
1871         * client.c: Include "buffer.h".
1872         (to_server): Change to be struct buffer *.
1873         (to_server_fp): New static variable.
1874         (from_server): Change to be struct buffer *.
1875         (from_server_fp): New static variable.
1876         (from_server_logfile, to_server_logfile): Remove.
1877         (buf_memory_error): New static function.
1878         (struct log_buffer): Define.
1879         (log_buffer_initialize, log_buffer_input): New static functions.
1880         (log_buffer_output, log_buffer_flush): New static functions.
1881         (log_buffer_block): New static function.
1882         (struct socket_buffer): Define if NO_SOCKET_TO_FD.
1883         (socket_buffer_initialize): New static function if
1884         NO_SOCKET_TO_FD.
1885         (socket_buffer_input, socket_buffer_output): Likewise.
1886         (socket_buffer_flush): Likewise.
1887         (read_line): Rewrite to use buf_read_line.  Remove eof_ok
1888         parameter (it was always passed as 0); change all callers.
1889         (send_to_server): Rewrite to use buf_output.
1890         (try_read_from_server): Rewrite to use buf_read_data.
1891         (get_responses_and_close): Use from_server_fp and to_server_fp for
1892         the streams.  Check buf_empty_p when checking for dying gasps.
1893         (start_server): Don't set from_server_logfile and
1894         to_server_logfile; instead, call log_buffer_initialize.  If
1895         NO_SOCKET_TO_FD and use_socket_style, call
1896         socket_buffer_initialize; otherwise, call
1897         stdio_buffer_initialize.
1898         * buffer.c: Compile if CLIENT_SUPPORT is defined.
1899         (buf_flush): Fix comment to describe return value.
1900         (buf_read_line): Add lenp parameter.  Change all callers.  Look
1901         for a line terminated by \012 rather than \n.
1902         * buffer.h: Compile if CLIENT_SUPPORT is defined.
1903         (buf_read_line): Update declaration.
1905         * server.c (server): Initialize buf_to_net, buf_from_net,
1906         saved_output, and saved_outerr before setting error_use_protocol.
1907         (pserver_authenticate_connection): Don't set error_use_protocol.
1908         Errors before the authentication is complete aren't handled
1909         cleanly anyhow.  Change error call after authentication to use
1910         printf.
1912 Thu Jul 11 1996  Jim Kingdon  <kingdon@cyclic.com>
1914         * client.c (start_server): Open logfiles in binary, not text, mode.
1916 Wed Jul 10 19:24:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1918         * server.c (print_pending_error, print_error): Remove comments
1919         about deadlocks; they don't apply here.  Add comments saying
1920         that these functions must only be called when it is OK to
1921         send output (which is why the deadlock concern doesn't apply).  The
1922         comments remain for server_cleanup and serve_valid_responses,
1923         where they are an example of the "print a message and exit"
1924         behavior which is noted in cvsclient.texi and which also exists
1925         places like kserver_authenticate_connection.
1927 Wed Jul 10 18:24:46 1996  Ian Lance Taylor  <ian@cygnus.com>
1929         * server.c (print_error): Add comment warning about potential
1930         deadlock.
1931         (print_pending_error, serve_valid_responses): Likewise.
1932         (server_cleanup): Likewise.
1933         (serve_directory): Don't call buf_send_output.
1934         (serve_modified, serve_notify, server, cvs_outerr): Likewise.
1935         (serve_expand_modules): Call buf_send_output.
1936         (serve_valid_requests): Likewise.
1938 Wed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1940         * main.c (main): Print a warning for rlog command.
1942 Wed Jul 10 15:00:55 1996  Ian Lance Taylor  <ian@cygnus.com>
1944         Abstract the buffer data structure away from the underlying
1945         communication medium.
1946         * buffer.h (struct buffer): Remove fd and output fields.  Add
1947         input, output, flush, block, and closure fields.
1948         (buf_initialize, buf_nonio_initialize): Declare.
1949         (stdio_buffer_initialize, buf_flush): Declare.
1950         (buf_read_line, buf_read_data): Declare.
1951         * buffer.c: Include <assert.h>.  Don't include <fcntl.h>.
1952         (O_NONBLOCK, blocking_error): Don't define.
1953         (buf_initialize, buf_nonio_initialize): New functions.
1954         (buf_send_output): Use output function, rather than write.
1955         (buf_flush): New function.
1956         (set_nonblock, set_block): Use block function, rather than calling
1957         fcntl.
1958         (buf_send_counted): Don't check output.
1959         (buf_input_data): Call input function, rather than read.
1960         (buf_read_line, buf_read_data): New functions.
1961         (buf_copy_lines, buf_copy_counted): Don't check output.
1962         (stdio_buffer_initialize): New function.
1963         (stdio_buffer_input, stdio_buffer_output): New static functions.
1964         (stdio_bufer_flush): New static function.
1965         * server.c: Include "getline.h".
1966         (buf_to_net): Change to be a pointer.  Change all uses.
1967         (protocol, saved_output, saved_outerr): Likewise.
1968         (buf_from_net): New static variable.
1969         (no_mem_error, NO_MEM_ERROR, read_line): Remove.
1970         (struct fd_buffer): Define.
1971         (fd_buffer_initialize, fd_buffer_input): New static functions.
1972         (fd_buffer_output, fd_buffer_flush): New static functions.
1973         (fd_buffer_block): New static function.
1974         (serve_directory): Call buf_read_line rather than read_line.
1975         (serve_notify, server): Likewise.
1976         (receive_partial_file): Call buf_read_data rather than fread.
1977         (serve_modified): Call buf_read_line rather than read_line.  Call
1978         buf_read_data rather than fread.
1979         (do_cvs_command): Initialize buffers with fd_buffer_initialize.
1980         Change stdoutbuf, stderrbuf, and protocol_inbuf to be pointers.
1981         (server): Initialize buffers using fd_buffer_initialize,
1982         stdio_buffer_initialize, and buf_nonio_initialize.
1983         (check_repository_password): Call getline rather than read_line.
1985 Wed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1987         * commit.c (find_fileproc): Add comments describing a few cases
1988         that we aren't handling.
1990 Tue Jul  9 04:33:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
1992         * rcs.c (RCS_deltas): New function, created from guts of old
1993         annotate_fileproc.
1994         (annotate_fileproc): Call RCS_deltas.
1995         (RCS_fast_checkout): Call it (commented out for now; see comment
1996         for reasons).
1998         * cvs.h, recurse.c (start_recursion): Add callerdat argument.
1999         * cvs.h: Add callerdat argument to recursion processor callbacks.
2000         * recurse.c: add it to struct recursion_frame and pass it to all
2001         the callbacks.
2002         * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
2003         patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
2004         watch.c: Update all the functions used as callbacks.  Update calls
2005         to start_recursion.
2006         * commit.c (find_filesdoneproc, find_fileproc, find_dirent_proc,
2007         commit), tag.c (val_fileproc, tag_check_valid): Use callerdat
2008         instead of a static variable.
2010         * recurse.c (do_recursion): Make static and move declaration to here...
2011         * cvs.h: ...from here.
2012         * recurse.c (do_recursion): Replace plethora of arguments with
2013         single struct recursion_frame *.  Change callers.
2014         * recurse.c: New structure frame_and_file.  Use it and existing
2015         struct recursion_frame structures to pass info to do_file_proc and
2016         do_dir_proc.  Remove globals fileproc, filesdoneproc, direntproc,
2017         dirleaveproc, which, flags, aflag, readlock, and dosrcs.
2019 Tue Jul  9 11:13:29 1996  Ian Lance Taylor  <ian@cygnus.com>
2021         * modules.c (do_module): Call cvs_outerr rather than fprintf.
2023 Mon Jul 8 1996  Jim Kingdon  <kingdon@cyclic.com>
2025         * rcs.c (RCS_fast_checkout): If -kb is not in use, open the
2026         working file in text, not binary, mode.
2028 Sun Jul  7 10:36:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2030         * rcscmds.c (RCS_settag): Add comment regarding moving check for
2031         reserved tag names to RCS_check_tag.
2033         * rcscmds.c: Add comment regarding librarifying RCS and related
2034         issues.  This is a lightly edited version of a message I sent to
2035         the CVS developers and didn't get flamed for, so it would appear
2036         to be relatively uncontroversial.
2038         * rcs.c (annotate): Remove comment suggesting -r option and
2039         related functionality; it is done.
2041 Fri Jul  5 17:19:57 1996  Ian Lance Taylor  <ian@cygnus.com>
2043         * client.c (last_entries): Make file static, rather than function
2044         static within call_in_directory.
2045         (get_responses_and_close): If last_entries is not NULL, pass it to
2046         Entries_Close.
2048         * server.c (server_pause_check): Check for errors when reading
2049         from flowcontrol_pipe.
2051         * client.c (call_in_directory): If dir_name is ".", call
2052         Create_Admin if there is no CVS directory.
2053         (send_dirent_proc): If there is no CVS subdirectory, pretend that
2054         the directory does not exist (i.e., don't try to send any files in
2055         the directory).
2056         * server.c (dirswitch): If dir is "." in the top level repository,
2057         add "/." after the Repository entry.
2058         * sanity.sh (modules): Add test 155b for above patches.
2060 Thu Jul  4 15:57:34 1996  Ian Lance Taylor  <ian@cygnus.com>
2062         * server.c (buf_to_net): Move definition near top of file.
2063         (read_line): Call buf_send_output rather than fflush.
2064         (print_error): Output information to buf_to_net buffer rather than
2065         stdout.
2066         (print_pending_error, serve_valid_responses): Likewise.
2067         (server_notify, do_cvs_command, server_co): Likewise.
2068         (expand_proc, serve_expand_modules, server_prog): Likewise.
2069         (serve_valid_requests, server_cleanup, server): Likewise.
2070         (server_notify): Don't call fflush on stdout.
2071         (do_cvs_command): Flush saved_output and saved_outerr to
2072         buf_to_net before fork.  Flush buf_to_net before fork.  In child,
2073         just initialize memory_error field of saved_output and
2074         saved_outerr.
2075         (server_cleanup): Flush buf_to_net.
2076         (server): Initialize saved_output and saved_outerr.
2077         (cvs_output): Add support for error_use_protocol case.
2078         (cvs_outerr): Likewise.
2079         * error.c (error): In HAVE_VPRINTF case, just call cvs_outerr.
2081         * buffer.c: New file; buffer support functions taken from
2082         server.c.
2083         * buffer.h: New file; declarations for buffer.c.
2084         * server.c: Move buffer support functions into buffer.c and
2085         buffer.h.  Include "buffer.h".
2086         * Makefile.in (SOURCES): Add buffer.c.
2087         (OBJECTS): Add buffer.o.
2088         (HEADERS): Add buffer.h.
2090 Thu Jul  4 00:12:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2092         * version.c: Increment version number to 1.8.6.
2094 Wed Jul  3 22:31:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2096         * version.c: Version 1.8.5.
2098 Wed Jul  3 21:51:23 1996  Ian Lance Taylor  <ian@cygnus.com>
2100         * server.c (blocking_error): Define macro.
2101         (buf_send_output, buf_input_data): Use blocking_error rather than
2102         #ifdef EWOULDBLOCK.
2104 Tue Jul  2 20:38:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2106         * add.c (add): Change message which said "version 1.2 of foo.c
2107         will be resurrected"; the message was confusing because it made
2108         people think that the old contents of the file would come back
2109         instead of the contents in the working directory.
2111 Mon Jul  1 01:38:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2113         * find_names.c (find_dirs): Add comment explaining why we bother
2114         with the entries stuff.
2116 Sat Jun 29 20:23:50 1996  Ian Lance Taylor  <ian@cygnus.com>
2118         * find_names.c (Find_Directories): Add entries parameter, and pass
2119         it to find_dirs.
2120         (find_dirs): Add entries parameter, and skip all files it names.
2121         * cvs.h (Find_Directories): Update declaration.
2122         * recurse.c (start_recursion): Pass NULL to Find_Directories.
2123         (do_recursion): Pass entries to Find_Directories.
2125         * client.c (send_modified): Add trace output.
2127         * diff.c (diff_fileproc): Always call diff_file_nodiff.  Handle
2128         dead versions correctly.  Handle diffs between a specified
2129         revision to a dead file correctly.
2130         (diff_file_nodiff): Add just_set_rev parameter.  Change caller.
2131         * patch.c (patch_fileproc): Check for dead versions.
2132         * sanity.sh (death2): Add tests for above patches.
2134 Fri Jun 28 20:30:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2136         For reference, this takes CVS's text segment from 271136 bytes to
2137         270352 bytes, a saving of 784.  Not as good as I had hoped (oh well,
2138         the source *seems* simpler at least).
2139         * checkin.c (Checkin), commit.c (finaladd, remove_file), update.c
2140         (join_file, checkout_file, patch_file), no_diff.c
2141         (No_Differences), server.c (server_updated), classify.c
2142         (Classify_File), vers_ts.c (Version_TS), diff.c (diff_file_nodiff):
2143         Use a single struct file_info * argument instead of a bunch of
2144         separate arguments for each of its fields.  Remove local fullname
2145         emulations.  Use fullname in error messages where file had
2146         erroneously been used.
2147         * cvs.h: Update declarations of above functions and move them to
2148         after the struct file_info declaration.
2149         * server.h: Update declarations.
2150         * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
2151         commit.c, diff.c, history.c, import.c, update.c, status.c,
2152         remove.c, rtag.c, tag.c: Change callers.
2154         * diff.c (diff): Remove -q and -Q command options.  This somehow
2155         slipped through the cracks of the general removal of -q and -Q
2156         command options on Jul 21 1995.  Note that there is no need to
2157         accept and ignore these options in server mode, like there is for
2158         some of the commands, because the client has never sent -q and -Q
2159         command options for "cvs diff".
2161 Fri Jun 28 16:50:18 1996  Ian Lance Taylor  <ian@cygnus.com>
2163         * add.c (add): Pass force_tag_match as 1 when calling Version_TS.
2164         * sanity.sh (death2): Add test for above patch.  Also add
2165         commented out test for adding a file on a nonbranch tag, which CVS
2166         currently, mistakenly, permits.
2168 Thu Jun 27 23:20:49 1996  Ian Lance Taylor  <ian@cygnus.com>
2169                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
2171         * diff.c (longopts): New static array.
2172         (diff): Handle long options and new short options in diff 2.7.
2173         Fix arbitrary limit associated with the tmp variable.
2174         * client.c (send_option_string): Parse options as space separated,
2175         rather than requiring all options to be single characters.
2176         * diff.c, options.h.in: Remove CVS_DIFFDATE; the need for it is gone
2177         now that we have --ifdef (the new behavior is the behavior which
2178         was the default, which is that -D specifies a date).
2180 Wed Jun 26 22:36:29 1996  Ian Lance Taylor  <ian@cygnus.com>
2182         * commit.c (check_fileproc): If there is a tag, permit adding a
2183         file even if the RCS file already exists.
2184         (checkaddfile): If there is a tag, use the file in the regular
2185         repository, rather than the Attic, if it exists.
2186         * sanity.sh (death2): New set of tests for above patch.
2188 Tue Jun 25 23:34:13 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2190         * update.c (checkout_file): Add comments about two cases which
2191         seem fishy.
2193         * sanity.sh (basic2, death): Add comments encouraging people to
2194         stop making these sections bigger and more complex.  I'm not (yet
2195         at least) trying to figure out the ideal size for a section (my
2196         current best estimate is 10-20 tests), but surely these
2197         two sections are pushing the limit, whatever it is.
2199 Tue Jun 25 19:52:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2201         * update.c (checkout_file): Rewrite handling of dead files when
2202         joining.  Avoid space leaks.  Avoid unnecessary file
2203         resurrections.
2204         (join_file): Add checks to skip merging a dead revision onto a
2205         dead revision, and to skip merging a common ancestor onto a dead
2206         revision.  Move check for non-existent working file after new
2207         checks.
2208         * sanity.sh (death): Use dotest for tests 86 and 95, and add test
2209         death-file2-1, to test above changes.
2211 Mon Jun 24 11:27:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2213         * update.c (merge_file): Replace file, repository, entries, and
2214         update_dir arguments with finfo argument.  Use fullname field
2215         instead of locally emulating it.
2216         (update_fileproc): Update caller.
2217         (merge_file): If -kb is in effect, call it a conflict, leave
2218         the two versions in the file and the backup file, and tell the
2219         user to deal with it.  The previous behavior was that the merge
2220         would fail and then there was no way to do a checkin even once you
2221         resolved the conflict (short of kludges like moving the file
2222         aside, updating, and then moving it back).
2223         * sanity.sh (binfiles): New tests binfiles-con* test for above
2224         behavior.  Adjust remaining tests to reflect changes in revision
2225         numbers.
2227 Mon Jun 17 15:11:09 1996  Ian Lance Taylor  <ian@cygnus.com>
2229         * sanity.sh (import): Remove sleep.  Requiring it was a bug, and
2230         it is fixed in the current sources.
2232 Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2233                  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2235         * sanity.sh (TMPPWD): Set to real name of /tmp directory.
2236         (basic2-64, conflicts-126.5): Use ${TMPPWD}.
2238 Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2240         * rcscmds.c (RCS_checkout): Remove noerr parameter.  Change all
2241         callers.
2242         * rcs.c (RCS_fast_checkout): Likewise.
2244 Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
2246         Cleaner implementation of tag locking code added Jun 13 1996:
2247         * cvs.h (tag_lockdir, tag_unlockdir): Declare.
2248         * rtag.c (locked_dir, locked_list): Remove.
2249         (rtag_fileproc): Don't lock here; just call tag_lockdir.
2250         (rtag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
2251         * tag.c (locked_dir, locked_list): Move farther down in file.
2252         (tag_fileproc): Don't lock here; just call tag_lockdir.
2253         (tag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
2254         (tag_lockdir, tag_unlockdir): New functions.
2256 Wed Jun 15 07:52:22 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2258         * client.c (send_modified, update_entries): Fixed bug which didn't
2259         handle binary file transfers in BROKEN_READWRITE_CONVERSION.
2261 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2262                  and Jim Kingdon  <kingdon@harvey.cyclic.com>
2264         * update.c (checkout_file): Call server_scratch_entry_only when a
2265         non-pertinent file is found that does not exist.
2266         * sanity.sh (newb): Add test case for above patch.
2268 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2270         * update.c (update_fileproc): Call server_scratch_entry_only when
2271         handling T_REMOVE_ENTRY on the server.
2272         * sanity.sh (conflicts2): Remove special case for remote server
2273         bug fixed by above patch.
2275 Thu Jun 13 21:16:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2277         * sanity.sh (basica-9): Update to reflect change to "sufficient
2278         access" message.
2280 Thu Jun 13 20:13:55 1996  Ian Lance Taylor  <ian@cygnus.com>
2281                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
2283         * recurse.c, cvs.h (start_recursion): Remove wd_is_repos argument;
2284         add comment about meaning of which argument.  Use !(which &
2285         W_LOCAL) instead of wd_is_repos.
2286         * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
2287         patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
2288         watch.c: Change callers.  This is a semantic change in only two
2289         cases: (1) tag_check_valid, where repository was not "", and (2)
2290         the pipeout case in checkout_proc.  In both of those cases the
2291         previous setting of wd_is_repos did not reflect whether we
2292         actually were cd'd into the repository.
2293         * recurse.c (start_recursion): Only check for the CVS subdirectory
2294         if which & W_LOCAL.
2295         * sanity.sh (devcom): Add test case fixed by above patch.
2297 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2299         * ignore.c (ignore_files): Skip based on the file name before
2300         calling lstat.
2302         * client.c (last_register_time): New static variable.
2303         (update_entries): Set last_register_time when calling Register.
2304         (get_responses_and_close): If the current time is the same as
2305         last_register_time, sleep for a section to avoid timestamp races.
2307 Thu Jun 13 17:24:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2309         * client.c (supported_request): Reindent.
2311 Thu Jun 13 1996  Mark H. Wilkinson  <mhw@minster.york.ac.uk>
2313         * options.h.in, mkmodules.c: Corrections to allow compilation of
2314         non-client-server version.
2316 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2318         * tag.c (tag_check_valid_join): New function.
2319         * cvs.h (tag_check_valid_join): Declare.
2320         * checkout.c (join_tags_validated): New static variable.
2321         (checkout_proc): Check validity of join tags.
2322         * update.c (update): Likewise.
2324         * tag.c (tag_check_valid): Correct sizeof CVSROOTADM_HISTORY to
2325         use CVSROOTADM_VALTAGS.
2327         * lock.c (Writer_Lock): If we called lock_wait to wait for a lock,
2328         then call lock_obtained when we get it.
2329         (set_lock): Likewise.
2330         (lock_obtained): New static function.
2332 Thu Jun 13 13:55:38 1996  Ian Lance Taylor  <ian@cygnus.com>
2333                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
2335         * main.c (main): If we can't read cvs root, don't say "you don't
2336         have sufficient access"; just print the message from errno.  It
2337         might be "No such file or directory" or something else for which
2338         "you don't have sufficient access" doesn't make any sense.
2340 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2342         * commit.c (remove_file): Pass noerr as 0 to RCS_checkout.
2344 Thu Jun 13 12:55:56 1996  Ian Lance Taylor  <ian@cygnus.com>
2346         * patch.c: Initialize rev1_validated and rev2_validated to 0, not 1.
2348 Thu Jun 13 12:55:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2350         * rtag.c (locked_dir): Revise comments regarding locking; the rtag
2351         and tag situations are different (changing from readlocking one
2352         directory at a time to writelocking one directory at a time does
2353         not do everything we might want, but it does fix simultaneous tags
2354         and it doesn't make anything worse).
2356 Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
2358         Prevent simultaneous tag operations from interfering with each
2359         other.
2360         * rtag.c (rtag_proc): Pass rtag_filesdoneproc to start_recursion,
2361         and pass readlock as 0.
2362         (locked_dir, locked_list): New static variables.
2363         (rtag_fileproc): Write lock the repository if it is not already
2364         locked.
2365         (rtag_filesdoneproc): New static function to unlock the
2366         repository.
2367         * tag.c (tag): Pass tag_filesdoneproc to start_recursion, and pass
2368         readlock as 0.
2369         (locked_dir, locked_list): New static variables.
2370         (tag_fileproc): Write lock the repository if it is not already
2371         locked.
2372         (tag_filesdoneproc): New static function.
2374 Thu Jun 13 11:42:25 1996  Mike Sutton <mws115@llcoolj.dayton.saic.com>
2376         * sanity.sh: Allow digits in usernames.
2378 Wed Jun 12 16:23:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2380         * client.c (send_modified, update_entries): Reindent and add
2381         comments to BROKEN_READWRITE_CONVERSION code.
2383 Wed Jun 12 16:23:03 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2385         * client.c (send_modified, update_entries): Add
2386         BROKEN_READWRITE_CONVERSION code.
2388 Mon Jun 10 20:03:16 1996  J.T. Conklin  <jtc@cygnus.com>
2390         * rcs.c (RCS_gettag): No longer set p to NULL if rcs is also NULL.
2391         rcs will never be null, thanks to the assertion at top of function.
2393 Mon Jun 10 16:28:14 1996  Ian Lance Taylor  <ian@cygnus.com>
2394                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
2396         * main.c (main): Ignore CVS/Root file when doing an import.
2398 Fri Jun  7 18:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2400         * status.c (status_fileproc, tag_list_proc): Use cvs_output rather
2401         than writing to stdout directly.
2403 Wed Jun  5 13:54:57 1996  Ian Lance Taylor  <ian@cygnus.com>
2405         * rcs.c (force_tag_match, tag, date): New static variables.
2406         (annotate_fileproc): Redo the loop to look for the version
2407         specified by tag/date/force_tag_match, and handle branches
2408         correctly.
2409         (annotate_usage): Mention -f, -r, and -D.
2410         (annotate): Handle -f, -r, and -D.
2412 Tue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
2414         * rcs.c (annotate_fileproc): Skip unrelated branch deltas.
2416 Fri Jun  7 13:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2418         * main.c (main): Change INITIALIZE_SOCKET_SUBSYSTEM to
2419         SYSTEM_INITIALIZE and pass it pointers to argc and argv.  Rename
2420         CLEANUP_SOCKET_SUBSYSTEM to SYSTEM_CLEANUP.
2422 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2424         * import.c (add_rcs_file): make buf char[] not unsigned char[]
2426 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2427                           and Jim Kingdon  <kingdon@cyclic.com>
2429         * main.c (main): Add CLEANUP_SOCKET_SUBSYSTEM hook at end.  Revise
2430         comments regarding INITIALIZE_SOCKET_SUBSYSTEM.
2432 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2433                           and Jim Kingdon  <kingdon@cyclic.com>
2435         * main.c (main): Don't mess with signals if DONT_USE_SIGNALS is
2436         defined.
2438 Thu Jun  6 15:32:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2440         * modules.c (cat_module): Always format for 80 columns rather than
2441         trying to determine how wide the screen is.  The code we had for
2442         the latter didn't cover all cases, was a portability headache, and
2443         didn't work client/server.
2445 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2447         * error.c: Don't declare strerror if it is #defined.
2449 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2450                           and Jim Kingdon  <kingdon@cyclic.com>
2452         * cvs.h: If ENUMS_CAN_BE_TROUBLE, typedef Dtype to int not an enum.
2454 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2455                           and Jim Kingdon  <kingdon@cyclic.com>
2457         * update.c (update):  If DONT_USE_PATCH, don't request patches.
2458         Also call supported_request rather than reimplementing it.
2460 Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
2462         * client.c (read_line): Changed an occurence of '\n' to '\012'.
2464 Wed Jun  5 17:18:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2466         * add.c (add_directory): Don't create the directory if noexec.
2467         * sanity.sh (basica): New tests basica-1a10, basica-1a11 test for
2468         above fix.
2469         * sanity.sh (basicb): New tests basicb-2a10, basicb-2a11,
2470         basicb-3a1 test for analogous situation with files rather than
2471         directories.
2473 Tue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
2475         * sanity.sh: When doing a remote check, use :server: in CVSROOT.
2477 Wed Jun  5 13:32:40 1996  Larry Jones  <larry.jones@sdrc.com>
2478                           and Jim Kingdon  <kingdon@cyclic.com>
2480         * ignore.c: Set ign_hold to -1 when not holding instead of 0 so 
2481         that holding an empty list works correctly.
2482         * sanity.sh (ignore): New tests 190 & 191 for above fix.
2484 Wed Jun 5 1996  Jim Kingdon  <kingdon@cyclic.com>
2486         Visual C++ lint:
2487         * client.c (update_entries): Copy the size to an unsigned variable
2488         before comparing it with unsigned variables.
2489         (handle_created, handle_update_existing): Prototype.
2491 Tue Jun  4 10:02:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2493         * client.c (responses): Add Created and Update-existing responses.
2494         * server.c (server_updated): If they are supported, use them
2495         instead of Updated.
2496         * client.c (struct update_entries_data): Add existp field.
2497         (handle_checked_in, handle_updated, handle_new_entry,
2498         handle_merged, handle_patched): Set it.
2499         (handle_update_existing, handle_created): New functions,
2500         for new responses.
2501         (update_entries): Based on existp, check for
2502         existence/nonexistence of file.
2503         (try_read_from_server): Expand comment.
2504         * server.c, server.h (server_updated): New argument vers.
2505         * checkin.c (Checkin), commit.c (commit_fileproc), update.c
2506         (update_fileproc, merge_file, join_file): Pass it.
2507         * cvs.h: Move include of server.h after Vers_TS declaration.
2508         * sanity.sh (conflicts2): New tests conflicts2-142d* test for
2509         above fix.
2511         * sanity.sh (ignore): Fix typo in comment.
2513         * tag.c (tag_check_valid): Add comment clarifying when val-tags
2514         entries are created.
2516 Mon Jun  3 07:26:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2518         * version.c: Increment version number to 1.8.4.
2520 Mon Jun  3 02:20:30 1996  Noel Cragg  <noel@gargle.rain.org>
2522         * version.c: version 1.8.3.
2524 Thu May 30 10:07:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2526         * main.c (cmds): Fix typo ("bdif" -> "dif") which was accidentally
2527         introduced 24 May 96.
2529         * main.c (main_cleanup): Add comment stating default case will
2530         never be reached.
2532 Wed May 29 21:43:43 1996  noel  <noel@BOAT_ANCHOR>
2534         * main.c (main_cleanup): check to see if SIGHUP, SIGINT, SIGQUIT,
2535         SIGPIPE, and SIGTERM are defined before using them.  Also add a
2536         default case to print out those errors numerically which are not
2537         found.
2539 Wed May 29 18:43:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2541         * expand_path.c (expand_path): Document LINE == 0 and allocation
2542         of return value.
2543         * modules.c (do_module): Pass 0, not -1, to indicate line number
2544         not known.  Free value returned from expand_path.  Deal with NULL
2545         return from expand_path.
2547 Wed May 29 15:56:47 1996  Greg A. Woods  <woods@most.weird.com>
2549         * modules.c (do_module): call expand_path() on the program name
2550         specfied by one of '-o', '-t', or '-e' in the modules file before
2551         passing it to run_setup().  This makes it possible to use $CVSROOT
2552         (or indeed ~user or any other user-specified variable) to specify
2553         pathnames for programs not installed in the normal execution path.
2555 Sun May 26 21:57:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2557         * client.c (start_server): Don't include %s in error message;
2558         there is no argument to go with it.  Do include "internal error"
2559         in error message since that might not be clear to the user otherwise.
2561 Sun May 26 11:58:13 1996  Greg A. Woods  <woods@most.weird.com>
2563         * root.c (set_local_cvsroot): enforce a wee bit of portability
2564         (parse_cvsroot): same....
2565         (DEBUG main): same, plus style guidelines
2566         (DEBUG error): deleted -- not necessary here (use fprintf instead)
2568         * mkmodules.c (modules_contents): updated notes about what must be
2569         done if you change any of the options for a module.
2570         (loginfo_contents): fixed grammar, re-pargraphed, and added 'echo
2571         %s;' to the example.
2572         (editinfo_contents): minor grammar fix.
2574 Sun May 26 17:51:18 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2576         * vers_ts.c (Version_TS): Remove case where we get options from
2577         sdtp->options.  Whatever case that was intended to handle is
2578         probably lost in the mists of time, but sdtp->options isn't set
2579         anywhere, and I think that has been true for a long time.
2580         * cvs.h (struct stickydirtag): remove options field.
2581         * entries.c (freesdt): Don't free ->options.
2582         * sanity.sh (binfiles): New tests binfiles-13a* test for above fix.
2584         * tag.c (check_fileproc): Use fullname not file in error message.
2585         Say "locally modified" not "up-to-date"; the file need not match
2586         the head revision it only need match some revision.
2588 Sun May 26 16:57:02 1996  Norbert Kiesel  <nk@col.sw-ley.de>
2590         * tag.c: added support for new option -c to make sure all tagged
2591           files are up-to-date
2592           (tag): check for option and set check_uptodate
2593           (check_fileproc): check status of file if check_uptodate is set
2595 Sat May 25 15:22:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2597         * main.c (main): Revert change to look for a -H command option;
2598         command option parsing should be up to each subcommand and the -H
2599         global option works fine.
2601 Mon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2603         * client.c (process_prune_candidates): Set prune_candidates to
2604         NULL at the end of the function.
2606 Mon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2608         * checkout.c (checkout): In code to handle multiple arguments,
2609         pass preload_update_dir, not where, to Create_Admin.
2610         (checkout_proc): Pass preload_update_dir, not where, to
2611         Create_Admin.
2613 Thu May 23 19:14:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2615         * server.c (server_set_sticky): Assert that update_dir != NULL.
2616         * sanity.sh (basicb): New test; tests for Ian's fix to checkout.c
2617         above.
2619 Thu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2621         * patch.c (patch_fileproc): Don't ignore a file just because it is
2622         in the Attic directory.
2624 Thu May 23 10:40:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2626         * sanity.sh (death): New tests death-{72a,76a0,76a1} test for bug
2627         fixed by Ian's patch_fileproc change above.
2629         * sanity.sh (death): Remove "temporary hack" in test 89.
2631         * rcs.c (RCS_fast_checkout): If error closing file, and workfile
2632         is NULL, use sout in error message instead of workfile.
2634 Thu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
2636         * rcs.c (RCS_fast_checkout): Do a fast checkout in the case where
2637         workfile is NULL and sout is a file name.
2639 Wed May 22 19:06:23 1996  Mark Immel  <immel@centerline.com>
2641         * update.c (checkout_file): New arg resurrecting_out, to provide
2642         resurrecting flag to caller.
2643         (join_file): New arg resurrecting.  Register with "0" if we are
2644         the server and are resurrecting.
2645         (update_fileproc): Pass the flag from checkout_file to join_file.
2647 Wed May 22 19:06:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2649         * sanity.sh (death): Test for above fix, in test 89 and new test 89a.
2651 Tue May 21 09:49:04 1996  Greg A. Woods  <woods@most.weird.com>
2653         * update.c (update_usage): oops -- fix my spelling typo.
2655 Mon May 20 10:53:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2657         * commit.c (find_fileproc): Call freevers_ts.
2659         * commit.c (find_*): Keep an ignlist, like update.c and client.c do.
2660         * commit.c (commit): Process the files from the ignlists, once we
2661         are connected to the server.
2662         * sanity.sh (ignore): New tests 189e and 189f test for new
2663         commit.c behavior (and client.c behavior, which is unchanged).
2664         * sanity.sh (conflicts): Remove dir1 and sdir in parts of the test
2665         where we aren't prepared for "? dir1" and similar output.
2667 Mon May 20 13:23:36 1996  Greg A. Woods  <woods@most.weird.com>
2669         * main.c (cmd_usage): minor corrections to descriptions of status,
2670         rtag, tag, and rdiff.  Sort alphabetically by command name.
2672 Mon May 20 10:36:07 1996  Ian Lance Taylor  <ian@cygnus.com>
2674         * client.c (call_in_directory): Move the call to Entries_Close
2675         before the call to chdir, since Entries_Close examines files in
2676         the current directory.
2678 Fri May 17 12:13:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2680         * client.c (start_tcp_server, start_server, start_rsh_server,
2681         read_line, filter_through_gzip, filter_through_gunzip,
2682         call_in_directory): Reindent as needed.
2684         * main.c (main): Add missing #endif.  Use indentation to indicate
2685         nesting.
2687 Thu May 16 17:15:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2689         * main.c (cmd_usage): Add "init" command.
2691 Thu May 16 16:45:51 1996  Noel Cragg  <noel@gargle.rain.org>
2693         * client.c (start_tcp_server): Error message modified to tell the
2694         user to use ":server:" instead of setting CVS_CLIENT_PORT to a
2695         negative number.
2697         * main.c (main): Add #ifdefs for turning off buffering of
2698         stdio/stderr, so we don't get it by default.
2700 Thu May 16 01:29:47 1996  noel  <noel@BOAT_ANCHOR>
2702         * commit.c (commit_filesdoneproc): Print the repository and root
2703         directories as part of the error message.
2705         * main.c (main): Don't buffer stdout or stderr.  It's inefficient,
2706         but it then produces the right output for sanity.sh.
2708 Thu May 16 09:44:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2710         * fileattr.c (fileattr_set): In the case where we are about to
2711         call delproc, don't free ->data; delproc does that.
2712         * sanity.sh (devcom): New tests devcom-b* test for this fix.
2714         * sanity.sh (conflicts): Remove redundant clean up from previous
2715         tests at the beginning of the test.  Use dotest a few more places.
2716         (conflicts2): New test, tests for Ian's fix to Classify_File.
2718         * client.c (remove_entry_and_file): Add comment about
2719         existence_error's.
2721 Sat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
2723         * update.c (update_dirleave_proc): Don't try to chdir .. and check
2724         for an empty directory if there is a slash in the directory name.
2726 Thu May 16 09:02:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2728         * sanity.sh (deep): New tests deep-4a* test for Ian's fix to
2729         update_dirleave_proc.
2731 Sat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
2733         * main.c (main_cleanup): Report signal name before dying.
2735 Wed May 15 23:47:59 1996  Noel Cragg  <noel@gargle.rain.org>
2737         * main.c (usg): revert usage strings for `-H' flag change.
2739 Sat May 15 1996  Ian Lance Taylor  <ian@cygnus.com>
2741         * server.c (serve_static_directory): Return immediately if there
2742         is a pending error.
2743         (serve_sticky): Likewise.
2744         (serve_modified): Read the file data even if there is a pending
2745         error.
2747 Wed May 15 14:26:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2749         * main.c (main): If -d and CVS/Root both specified, after writing
2750         the value from -d into CVS/Root, use the value from -d, not the
2751         old value from CVS/Root.  Don't write CVS/Root with value from -d
2752         until we have verified that it works.
2753         * sanity.sh: Reenable test basica-9 and adjust for new behavior.
2755 Tue May 14 1996  Jim Kingdon  <kingdon@cyclic.com>
2757         * logmsg.c (do_editor): If user aborts the commit, still remove the
2758         temporary file.
2760 Tue May 14 11:45:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2762         * filesubr.c, cvs.h (cvs_temp_name): New function.  Move L_tmpnam
2763         define from cvs.h to filesubr.c.
2764         * client.c, diff.c, import.c, login.c, logmsg.c, no_diff.c,
2765         patch.c, wrapper.c: Call cvs_temp_name not tmpnam.
2766         * login.c (login): Reindent function.
2768 Tue May 14 10:56:56 1996  Ian Lance Taylor  <ian@cygnus.com>
2770         * rcs.c (RCS_fast_checkout): If workfile is NULL, don't call chmod.
2772 Mon May 13 10:52:10 1996  Greg A. Woods  <woods@most.weird.com>
2774         * checkout.c (export_usage): note which options cause a sticky
2775         version to be set, and which option avoids this.
2776         * update.c (update_usage): likewise
2778 Sat May 11 18:57:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2780         * sanity.sh: Comment out test basica-9 until I get around to
2781         actually fixing it (the -d vs. CVS/Root change broke it).
2783 Fri May 10 09:39:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2785         * main.c (main): -d now overrides CVS/Root.
2787 Thu May  9 19:45:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2789         * main.c: Remove comment listing commands at beginning.  It was
2790         out of date and redundant with the help.
2792 Thu May  9 09:33:55 1996  Greg A. Woods  <woods@most.weird.com>
2794         * main.c: add 'init' to opening comment listing commands
2796         * mkmodules.c (init): fix to recognize argc==-1 as hint to call
2797         usage() [should make "cvs init -H" work as expected]
2799 Wed May  8 15:02:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2801         * sanity.sh: Set EXPR in the case that the expr in the path is the
2802         one that we want.
2804 Wed May  8 14:06:24 1996  Greg A. Woods  <woods@most.weird.com>
2806         * sanity.sh (test): - convert all '[' to test ala GCD
2808 Wed May  8 13:46:56 1996  Greg A. Woods  <woods@most.weird.com>
2810         * sanity.sh (expr): - make a valiant attempt to find GNU expr
2811         - Patch from Larry Jones:
2812         sanity test deep-4 failed with "expr: arg list too long"
2813         sanity test 56 failed because the stderr and stdout output was not
2814         interleaved as expected.
2815         sanity test modules-155a4 failed with "ls: illegal option -- 1"
2817         * main.c (main): - Patch from Larry Jones for SysV setvbuf
2819 Tue May  7 16:41:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2821         * version.c: Increment version number to 1.8.2 to work around fact
2822         that CVS 1.8 (confusingly) calls itself 1.8.1 not 1.8.
2824 Tue May  7 10:44:20 MET DST 1996  Norbert Kiesel  <nk@col.sw-ley.de>
2826         * rcs.c (rcsvers_delproc): fix memory leak by freeing author
2827           field.
2829 Mon May  6 10:40:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2831         * sanity.sh (conflicts): New test conflicts-126.5 tests for bug
2832         which Ian fixed May 5 in update.c
2834 Mon May  6 06:00:10 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2836         * Version 1.8.1
2838 Sun May  5 21:39:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2840         * vers_ts.c (Version_TS): If sdtp is NULL, go ahead and check
2841         RCS_getexpand for options.  Fixes binaries and non-unix clients.
2842         * sanity.sh: Fix binfiles-5.5 to test for the correct behavior
2843         rather than the buggy behavior which existed when the binfiles-5.5
2844         test was written.
2845         (binfiles-14c,binfiles-14f): Likewise.
2847 Sun May  5 17:38:21 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2849         Integrated changes submitted by Ian Taylor <ian@cygnus.com>
2851         * update.c (update_dirent_proc): cvs co -p doesn't print
2852         anything when run from an empty directory.
2854         * import.c (import_descend_dir): Check for a file in the
2855         repository which will be checked out to the same name as the
2856         directory.
2858 Sat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2860         Extract the head revision directly from the RCS file when
2861         possible, rather than execing co.
2862         * rcs.c (RCS_reparsercsfile): Set delta_pos field.
2863         (getrcskey): Add lenp parameter.  Change all callers.
2864         (RCS_fast_checkout): New function.
2865         (annotate_fileproc): If PARTIAL is not set, just fseek to
2866         delta_pos.
2867         * rcs.h (struct rcsnode): Add delta_pos field.
2868         (RCS_fast_checkout): Declare.
2869         * diff.c (diff_file_nodiff): Call RCS_fast_checkout rather than
2870         RCS_checkout.
2871         * import.c (update_rcs_file): Likewise.
2872         * no_diff.c (No_Difference): Likewise.
2873         * patch.c (patch_fileproc): Likewise.
2874         * update.c (checkout_file): Likewise.
2875         (patch_file): Likewise.
2876         (join_file): Likewise.
2878 Sat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
2880         * classify.c (Classify_File): Don't report a conflict for a
2881         pending remove if somebody else has already removed the file.
2883 Thu May  2 13:34:37 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2885         * Version 1.7.88
2887 Thu May  2 01:40:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
2889         * server.c (HAVE_INITGROUPS): Use initgroups() only if
2890         located by configure, in the event a system has crypt(), but
2891         no initgroups()
2893 Wed May 01 21:08:21 1996  noel  <noel@BOAT_ANCHOR>
2895         * client.c (filter_through_gunzip): use "gzip -d" instead of
2896         "gunzip," since there's no good reason (on NT at least) to have an
2897         extra copy of gzip.exe copied to gunzip.exe (Arrrrgh!  No symbolic
2898         links!).
2900         * mkmodules.c (init): check to see that we have the correct number
2901         of arguments or print out the usage message (used to be argc > 1,
2902         should be argc != 1, because help forces argc == -1 as a special
2903         case).
2905 Wed May  1 18:05:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2907         * sanity.sh (basica): When testing rejection of reserved tag name,
2908         use BASE instead of RESERVED.
2910 Wed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
2912         * rcs.c (linevector_delete): Only copy up to vec->nlines - nlines,
2913         not to vec->nlines.
2915 Wed May  1 15:43:21 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2917         * rcscmds.c (RCS_settag): Instead of reserving all tag names
2918         containing only uppercase letters, reserve only BASE and HEAD.
2919         * sanity.sh (mflag): Revert 26 Mar change; use all-uppercase tag
2920         name again.
2922 Wed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
2924         * rcs.c (linevector_add): Move increment of i out of larger
2925         statement, to avoid assumptions about evaluation order.
2927 Tue Apr 30 15:46:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
2929         * Version 1.7.87.
2931         * server.c (check_password): Don't use ANSI string concatenation.
2932         Reindent function.
2934 Mon Apr 29 10:48:38 1996  Noel Cragg  <noel@gargle>
2936         * root.c (parse_cvsroot): removed "rsh" as an alias to "server" in
2937         the method section.
2939         * main.c (main): new variable help so we can support the `cvs -H
2940         cmd' convention.  Reverts change of 26 Apr 96 which removed this
2941         feature.
2943 Sun Apr 28 14:57:38 1996  Noel Cragg  <noel@gargle>
2945         * main.c (main): update error message if parse_cvsroot fails.
2946         * server.c (serve_root): same.
2947         (serve_init): same.
2948         
2949         * client.c (start_tcp_server): get rid of the "fall through"
2950         stuff, now that we have access methods.
2951         (start_server): switch off the access method to choose routine
2952         that starts the server.
2953         (start_tcp_server): tofd wasn't getting set to -1 early enough,
2954         because a call to error for bind or gethostbyname might fail and
2955         the subsequent error check to see if the connection had been made
2956         would fail.
2958         * root.c: new variable method_names for error reporting purposes.
2960 Sun Apr 28 17:22:15 1996  Noel Cragg  <noel@occs.cs.oberlin.edu>
2962         * server.c: moved kerberos #includes from main.c for the
2963         kserver_authenticate_connection routine.
2965 Fri Apr 26 07:59:44 1996  Noel Cragg  <noel@gargle>
2967         * server.c (serve_init): use the new return value from
2968         parse_cvsroot.
2969         (serve_root): same.
2970         * main.c (main): same.
2972         * root.c (parse_cvsroot): fix indentation, add a return value
2973         which tells whether the command succeeded or failed.
2975         * main.c (main): move the setting of the UMASK environment
2976         variable inside the stuff that gets done if the user is NOT asking
2977         for help, so we don't signal any errors prematurely (don't want to
2978         give an error because we can't parse an environment variable
2979         correctly if the user asks for help).  Similar mods for the code
2980         that tries to get the working directory.
2982         Also make CVSADM_Root a local variable instead of a global, since
2983         its scope is only about 20 lines here!
2985         * server.c (kserver_authenticate_connection): moved code from
2986         main.c to clean up MAIN.  Makes sense, since we already have a
2987         pserver_authenticate_connection.
2988         (pserver_authenticate_connection): rename from
2989         authenticate_connection.
2991         * main.c (main): reorganized the routine to eliminate variables
2992         help, help_commands, and version_flag.  Now the routine is much
2993         clearer, since we don't have to be checking to see if these
2994         variables are set.  One behavior that was a bug/feature which is
2995         now gone is an invocation like "cvs -H rtag" -- previously this
2996         would give usage for rtag, but now gives usage for cvs itself.
2997         The first behavior didn't make sense, especially since we say in
2998         the docs that command-line flags are position-specific.  *Reverted
2999         Above*
3001 Thu Apr 25 20:05:10 1996  Noel Cragg  <noel@gargle>
3003         * main.c (main): make sure we have a valid command name before we
3004         do anything else (moved the thing that looks for a command in CMDS
3005         to right after the GETOPT loop).  Added `kserver' and `pserver' to
3006         the table so they will be recognized; set their functions to
3007         SERVER so that help will be given when asked for.
3008         
3009         * expand_path.c (expand_variable): return CVSroot_original rather
3010         than CVSroot_directory.
3012         * main.c (main): save CVSroot in the env rather than
3013         CVSroot_original, since we might not have called PARSE_CVSROOT
3014         (this can happen if we use the -H option to a command).
3016         * root.c (parse_cvsroot): the parsing method was bogus for
3017         guessing when we had hostnames vs. directories specified.  Any
3018         ambiguity should be removed by having the user specify the access
3019         method.  If the access method isn't specified, choose
3020         server_method if the string contains a colon or local_method
3021         otherwise.
3023         * Changed CVSroot_remote back to client_active since the code
3024         reads better.
3025         
3026 Wed Apr 24 17:27:53 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3028         * vers_ts.c (Version_TS): xmalloc enough space (1 more
3029           byte). Thanks to purify!
3031 Mon Apr 22 00:38:08 1996  Noel Cragg  <noel@gargle>
3033         * create_adm.c (Create_Admin): pass CVSroot_original instead of
3034         CVSroot_directory (oops!).
3035         * update.c (update_filesdone_proc): same.
3037         * server.c (serve_root): modify to use parse_cvsroot rather than
3038         goofing around with other variables.  Will need to fix
3039         parse_cvsroot to have a return value so we can return an error and
3040         quit gracefully if in server mode.
3041         (serve_init): same.
3043         * main.c: modify command table to remove client_* routines, since
3044         they no longer exist.
3045         (main): don't try to switch off non-existent field in command
3046         table! ;-)
3048         * client.h (client_*): removed prototypes for now non-existent
3049         functions.
3051         * client.c: remove proto for get_cvs_password, since it is now in
3052         cvs.h.  Modify routines to use new globals that describe CVSROOT
3053         rather than client_active, server_host, server_user, and
3054         server_cvsroot.
3055         (parse_cvsroot): removed function, since a more generic version
3056         now lives in root.c.
3057         (connect_to_pserver): remove call to parse_cvsroot, since main.c
3058         has already done it for us.
3059         (client_*): removed all of these routines, since they only call
3060         parse_cvsroot and then their respective operation functions.
3061         Since main.c has already called parse_cvsroot, we shouldn't bother
3062         with the extra function call, since client-server diffs are
3063         already handled in the core routines themselves.
3065         * main.c: remove CVSroot as a global variable.  Remove
3066         use_authenticating_server variable since we have a new
3067         `CVSroot_method' variable instead.
3068         (main): add `CVSroot' as a local variable.  Call parse_cvsroot
3069         after we're sure we have the right setting for `CVSroot.'
3071         * login.c (login): update to use new global variables.  Instead of
3072         old behavior which let the user type in user@host when prompted,
3073         it makes them do it in CVSROOT proper.  The routine still lets the
3074         user type the password, however.
3075         (get_cvs_password): make sure that CVSROOT is fully qualified
3076         before trying to find the entry in the .cvspass file.
3077         * cvs.h: add prototype for get_cvs_password.
3079         * add.c: use new globals that describe CVSROOT.
3080         * admin.c: same.
3081         * checkout.c: same.
3082         * commit.c: same.
3083         * create_adm.c: same.
3084         * diff.c: same.
3085         * edit.c: same.
3086         * expand_path.c: same.
3087         * history.c: same.
3088         * ignore.c: same.
3089         * import.c: same.
3090         * log.c: same.
3091         * mkmodules.c: same.
3092         * modules.c: same.
3093         * parseinfo.c: same.
3094         * patch.c: same.
3095         * rcs.c: same.
3096         * recurse.c: same.
3097         * release.c: same.
3098         * remove.c: same.
3099         * repos.c: same.
3100         * rtag.c: same.
3101         * status.c: same.
3102         * tag.c: same.
3103         * update.c: same.
3104         * watch.c: same.
3105         * wrapper.c: same.
3106         
3107         * root.c (Name_Root): remove error message that reports missing
3108         CVSROOT, since new code in main.c will catch it and also print out
3109         an error.
3110         (parse_cvsroot): new function -- takes a CVSROOT string and breaks
3111         it up into its component parts -- method, hostname, username, and
3112         repository directory.  Sets new global variables that describe the
3113         repository location more precisely: CVSroot_original,
3114         CVSroot_remote, CVSroot_method, CVSroot_username,
3115         CVSroot_hostname, CVSroot_directory for use by all other
3116         functions.  Checks for obvious errors in format of string.
3117         (main): a short routine to test parse_cvsroot from the command
3118         line.
3119         * cvs.h: add prototype for parse_cvsroot and extern definitions
3120         for new globals.
3122         * cvs.h: removed CVSroot variable, since we don't want other
3123         routines using the raw CVSROOT (also helped to find all of the
3124         refs to the variable!).
3126 Fri Apr 19 11:22:35 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3128         * Version 1.7.86
3130 Thu Apr 18 1996  Jim Kingdon  <kingdon@cyclic.com>
3132         * client.c (try_read_from_server): Compare return value from fwrite
3133         with a size_t not an int (Visual C++ lint).
3135 Wed Apr 17 11:56:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3137         * client.c (try_read_from_server): New function.
3138         (read_from_server): Use it.
3139         (read_counted_file): New function.
3140         * client.c, server.c: Add Template response.
3141         * cvs.h (CVSADM_TEMPLATE): Added.
3142         * logmsg.c (do_editor): If repository is NULL, use CVSADM_TEMPLATE
3143         file in place of rcsinfo.
3144         * server.c, server.h (server_template): New function.
3145         * create_adm.c (Create_Admin): Call it.
3147 Tue Apr 16 13:56:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3149         * repos.c (Name_Repository): Fix comments.
3150         * create_adm.c (Create_Admin): Fix indentation.
3152 Wed Apr 10 16:46:54 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3154         * options.h.in: Include relevant information here rather than
3155         citing (former) FAQ.
3157         * ChangeLog-9395: Fix typo in introductory paragraph.
3159 Wed Apr 10 14:55:10 1996  code by Mike Spengler  mks@msc.edu
3160         comments by Jim Kingdon  <kingdon@harvey.cyclic.com>
3162         * filesubr.c (unlink_file_dir,deep_remove_dir): Don't call unlink
3163         on something which might be a directory; check using isdir instead.
3165 Wed Apr 10 14:55:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3167         * checkout.c (build_dirs_and_chdir): Pass path, not cp, to
3168         Create_Admin.  The former is the correct update dir.
3169         * sanity.sh (modules): New tests modules-155* test, for above fix.
3171 Mon Apr  8 13:53:27 1996  Samuel Tardieu  <sam@inf.enst.fr>
3173         * rcs.c (annotate_fileproc): If the file is not under CVS control,
3174         return instead of dumping a core. Don't bug on files with an empty
3175         first revision.
3177 Fri Mar 29 16:08:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3179         * rcs.c (annotate_fileproc): If last line of add-chunk is not
3180         newline terminated, end the loop when we find that out.
3182 Fri Mar 29 16:59:34 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3184         * rcs.c (annotate_fileproc): allow last line of add-chunk not to
3185           be newline terminated
3187 Thu Mar 28 10:56:36 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3189         Add more diff tests:
3190         * sanity.sh (basic2): Use dotest for test 61.
3191         (basica): Add test basica-6.2.
3192         (branches): Add tests branches-14.4 and branches-14.5.
3193         (basic1): Remove tests 19, 20, 25, and 26.  The only thing this
3194         might miss out on is diff's interaction with added and removed
3195         files, but those tests didn't test that very well anyway.
3197         * rcs.c (RCS_getrevtime): Add comment regarding years after 1999.
3199         * rcs.c: Add "cvs annotate" command and related code.
3200         (getrcskey): Move special handling of RCSDESC from here to
3201         callers.  Handle those keys (desc, log, text) which do not
3202         end in a semicolon.
3203         * rcs.h (RCSVers): Add author field.
3204         * rcs.c (RCS_reparsercsfile): Set it.
3205         * cvs.h (annotate), main.c (cmd_usage, cmds), client.h client.c
3206         (client_annotate), server.c (serve_annotate, requests): Usual
3207         machinery to add a new command.
3208         * sanity.sh (basica): Test cvs annotate.
3210         * sanity.sh (branches): More tests, of things like adding files on
3211         the trunk after a branch has been made.
3213 Tue Mar 26 09:48:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3215         * expand_path.c: Don't declare free and xmalloc; cvs.h already
3216         takes care of that.
3218         * sanity.sh (mflag): Don't use tag name reserved to CVS.
3220         NT local changes plus miscellaneous things noticed in the process:
3221         * import.c (add_rcs_file): Use binary mode to write RCS file.  Use
3222         \012 where linefeed is intended.  Copy data a small block at a
3223         time, until we hit EOF, rather than trying to read the whole file
3224         into memory at once.
3225         * client.c (send_modified): Add comments regarding st_size.
3226         * commit.c (commit): Add comments regarding binary mode and read().
3227         * logmsg.c (do_editor): Add comments regarding st_size.
3228         * server.c (server_updated): Use binary mode to read file we are
3229         sending.
3231         * rcscmds.c (RCS_settag): Complain if user tries to add a tag name
3232         reserved to CVS.
3233         * sanity.sh (basica): Test for this behavior.
3235         * sanity.sh (binfiles): New tests test ability to change keyword
3236         expansion.
3238 Mon Mar 25 1996  Jim Kingdon  <kingdon@cyclic.com>
3240         * cvs.h, filesubr.c (expand_wild): New function.
3241         * recurse.c (start_recursion): Call expand_wild at beginning and
3242         free its results at the end.
3243         * cvs.h, subr.c (xrealloc): Make argument and return value void *.
3244         * client.h, client.c (send_file_names): Add flags argument.   If
3245         SEND_EXPAND_WILD flag is passed, call expand_wild at beginning and
3246         free its results at the end.
3247         * admin.c, add.c, log.c, tag.c, status.c, edit.c, watch.c,
3248         update.c, commit.c, remove.c, client.c, diff.c: Update callers.
3250 Fri Mar 22 10:09:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3252         * error.c (error, fperror): Exit with status EXIT_FAILURE rather
3253         than STATUS.  We had been neglecting to check for 256, and the
3254         value of providing a count of errors is probably minimal anyway.
3255         * add.c, modules.c, mkmodules.c, tag.c, server.c, main.c,
3256         import.c, client.c, scramble.c, recurse.c: Exit with status
3257         EXIT_FAILURE rather than 1.  On VMS, 1 is success, not failure.
3258         * main.c (main): Return EXIT_FAILURE or 0.  The value of providing
3259         a count of errors is minimal.
3261         * client.c (init_sockaddr): Exit with status 1 rather than
3262         EXIT_FAILURE.  The latter apparently doesn't exist on SunOS4.
3263         Reindent function.
3265 Mon Mar 18 14:28:00 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3267         * cvs.h, ignore.c: New variable ign_case.
3268         * ignore.c (ign_name): If it is set, match in a case-insensitive
3269         fashion.
3270         * server.c (serve_case): New function.
3271         (requests): Add Case request.
3272         * client.c (start_server): If FILENAMES_CASE_INSENSITIVE is
3273         defined, send Case request.
3275 Sat Mar 16 08:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3277         For reference, this change takes cvs's text segment from 315392
3278         bytes to 311296 bytes (one 4096 byte page).
3279         * cvs.h (struct file_info): Add fullname field.
3280         * recurse.c (do_file_proc): Set it.
3281         * commit.c (find_fileproc), client.c (send_fileproc), commit.c
3282         (check_fileproc), diff.c (diff_fileproc), edit.c
3283         (unedit_fileproc), patch.c (patch_fileproc), remove.c
3284         (remove_fileproc), rtag.c (rtag_fileproc), tag.c (tag_fileproc),
3285         update.c (update_fileproc), watch.c (watchers_fileproc): Use it
3286         instead of computing it each time.
3287         * diff.c (diff_fileproc), remove.c (remove_fileproc): Use fullname
3288         where we had been (bogusly) omitting the directory from user
3289         messages.
3290         * edit.c (unedit_fileproc, edit_fileproc): If we cannot close
3291         CVSADM_NOTIFY, mention CVSADM_NOTIFY rather than finfo->file in
3292         error message.
3293         * rtag.c (rtag_fileproc), tag.c (tag_fileproc): Reindent.
3295 Fri Mar 15 15:12:11 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3297         * server.h: fix prototype of server_pause_check (was
3298           server_check_pause)
3300 Thu Mar 14 1996  Jim Kingdon  <kingdon@cyclic.com>
3302         * vers_ts.c (Version_TS), entries.c (Scratch_Entry, AddEntryNode):
3303         Change findnode to findnode_fn.
3305         * main.c: Depending on HAVE_WINSOCK_H, include winsock.h or
3306         declare gethostname.
3307         * cvs.h: Don't declare it here.
3309 Thu Mar 14 07:06:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3311         * commit.c (find_fileproc): If vn_user is NULL and ts_user is not,
3312         print an error rather than silently succeeding.
3313         * sanity.sh (basica-notadded): New test, for above fix.
3314         (dotest_internal): New function.
3315         (dotest,dotest_fail): Call it instead of duplicating code between
3316         these two functions.
3318         * sanity.sh: Skip tests binfiles-9 through binfiles-13 for remote.
3320         * options.h.in: Adjust comment to reflect kfogel change.
3322 Thu Mar 14 01:38:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3324         * options.h.in (AUTH_CLIENT_SUPPORT): turn on by default.
3326 Wed Mar 13 09:25:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3328         * vers_ts.c (Version_TS): Don't try to override options from rcs
3329         file if there isn't an rcs file (e.g. called from send_fileproc).
3330         This fixes a bug detected by test 59 in "make remotecheck".
3332         * rcs.c (RCS_reparsercsfile, RCS_getexpand): Assert that argument
3333         is not NULL.
3335         Fix a gcc -Wall warning:
3336         * rcs.c, rcs.h (RCS_getexpand): New function.
3337         * vers_ts.c (Version_TS): Call it.
3338         * rcs.c (RCS_reparsercsfile): Make static.
3340         Add a "cvs init" command.  This is needed because cvsinit.sh
3341         invoked mkmodules which doesn't exist any more.
3342         * mkmodules.c: Break filelist out of mkmodules function, rename
3343         struct _checkout_file to struct admin_file (for namespace
3344         correctness), and add contents field.
3345         (init,mkdir_if_needed): New functions.
3346         * cvs.h (init): Declare.
3347         * main.c (cmds): Add init.
3348         (main): If command is init, don't require cvsroot to exist.
3349         * client.c, client.h (client_init, send_init_command): New functions.
3350         * client.c (start_server): Don't send Root request if command is init.
3351         * server.c (serve_init): New function.
3352         (requests): Add "init".
3354 Wed Mar 13 09:51:03 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3356         * vers_ts.c (Version_TS): set options to default option if the
3357           file if no -k option but -A was given.  This avoids the (wrong)
3358           update message for binary files which are up-to-date when
3359           running 'cvs -A'.
3361         * update.c (checkout_file): remove test of -k option stored in the
3362           file itself because it was moved to vers_ts.c
3364         * sanity.sh: added tests for the above fix.
3366 Tue Mar 12 13:47:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3368         * hash.c (findnode): Adjust comment regarding errors.
3370         * hash.c (findnode, findnode_fn): Assert that key != NULL.  This
3371         way the check still happens even if the function is later
3372         rewritten to not start out by calling hashp.
3374 Mon Mar 11 10:21:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3376         * sanity.sh: If expr accepts multi-line patterns but is too
3377         liberal in matching them, print a warning but keep going.
3379         * sanity.sh: Add QUESTION variable, analogous to PLUS.  Use it
3380         instead of \? to match a question mark.
3382         * cvs.h (CVSMODULE_OPTS, CVSMODULE_SPEC): Move from here...
3383         * modules.c: ...to here.  They are only used here and the code to
3384         handle the syntax of modules files should not be scattered all over.
3385         * modules.c (CVSMODULE_OPTS): Add "+" as first character.
3386         * sanity.sh (modules): New tests 148a0 and 148a1 test for
3387         above-fixed bug.
3389 Mon Mar 11 13:11:04 1996  Samuel Tardieu  <sam@inf.enst.fr>
3391         * modules.c (cat_module): set optind to 0 to force getopt() to
3392         reinitialize its internal nextchar
3394 Mon Mar 11 00:09:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3396         * hash.c (findnode, findnode_fn): Revert changes of 7-8 Mar 1996.
3397         The correct style is to assert() that key != NULL (see HACKING),
3398         which is already done in the hashp function.
3399         * fileattr.c (fileattr_delproc): Likewise, assert() that
3400         node->data != NULL rather than trying to deal with it being NULL.
3402 Fri Mar  8 01:31:04 1996  Greg A. Woods  <woods@most.weird.com>
3404         * hash.c (findnode_fn): one more place to avoid calling hashp()
3405         with a NULL key
3407 Thu Mar  7 17:30:01 1996  Greg A. Woods  <woods@most.weird.com>
3409         * hash.c (findnode): also return NULL if key is not set
3410         [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
3411         supposedly in a PR that should be marked "fixed"..... ]]
3413         * fileattr.c (fileattr_set): set node->data to NULL after freeing
3414         it to prevent subsequent accesses
3415         (fileattr_delproc): don't free node->data if it's NULL, and set it
3416         to NULL after freeing
3417         [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
3418         supposedly in a PR that should be marked "fixed"..... ]]
3420 Fri Mar  1 14:56:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3422         * sanity.sh (basica): New test basica-4a tests for bug fixed by
3423         sam@inf.enst.fr on 1 Mar 96.
3425 Fri Mar  1 18:10:49 1996  Samuel Tardieu  <sam@inf.enst.fr>
3427         * tag.c (check_fileproc): Check for file existence before trying
3428         to tag it.
3430 Fri Mar  1 07:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3432         * client.c (update_entries): If command is export, set options to
3433         NULL.
3435 Thu Feb 29 16:54:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3437         * lock.c (write_lock, Reader_Lock): Remove
3438         BOGUS_UNLESS_PROVEN_OTHERWISE code.  It was pretty bogus, and has
3439         been ifdeffed out for a long time.
3440         * cvs.h (CVSTFL): Removed; no longer used.
3442         * cvsrc.c, cvs.h (read_cvsrc): Pass in command name rather than
3443         using global variable command_name.
3444         * main.c (command_name): Initialize to "", not "cvs" so that error
3445         messages don't say "cvs cvs".  Update calls to read_cvsrc to pass
3446         in command_name or "cvs" as appropriate.
3447         * sanity.sh (basica): New test basica-9 tests for above-fixed bug.
3449         * lock.c: Rename unlock to lock_simple_remove to avoid conflict
3450         with builtin function on QNX.
3452 Thu Feb 29 17:02:22 1996  Samuel Tardieu  <sam@inf.enst.fr>
3454         * fileattr.c (fileattr_get): Removed NULL pointer dereference
3455         which occurred in the absence of default attribute.
3457 Thu Feb 29 07:36:57 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3459         * rcs.c (RCS_isbranch, RCS_whatbranch): Remove no longer used file
3460         argument, swap order of remaining two arguments to be like other
3461         RCS_* functions.
3462         (RCS_nodeisbranch): swap order of arguments to be like other RCS_*
3463         functions.
3464         * rcs.h (RCS_isbranch, RCS_whatbranch, RCS_nodeisbranch): Update
3465         prototypes for above changes.
3466         * commit.c, rtag.c, status.c, tag.c: Update for above calling
3467         convention changes.
3469 Thu Feb 29 08:39:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3471         * client.c (start_server): Revert changes which claimed to fall
3472         back to a different way of connecting.  Add comments explaining
3473         why.  (I don't think the changes did what they claimed, anyway).
3474         Use indentation rather than comments to line up #if, #else, and
3475         #endif.
3477         * patch.c (patch, patch_fileproc): Revert change to add optional
3478         arguments to -c and -u.  Optional arguments are evil and in
3479         violation of the POSIX argument syntax guidelines.  The correct
3480         way to do this is -C and -U.  Also change DIFF back to "diff" in
3481         output (see comments).
3483         gcc -Wall lint:
3484         * client.c (copy_a_file): Declare p inside the #ifdef in which is
3485         it used.
3486         * commit.c (remove_file): Remove unused variable p.
3487         * commit.c (checkaddfile): Remove unused variables p.
3488         * rcs.c (RCS_isbranch): Remove unused variable p.
3489         * rcs.c: Remove unused declarations and definitions of
3490         parse_rcs_proc, rcsnode_delproc, rcslist, and repository.
3491         * rtag.c (rtag_fileproc): Remove unused variable p.
3492         * patch.c (patch_fileproc): Remove unused variable p.
3493         * tag.c (val_fileproc): Remove unused variable node.
3494         * client.c, import.c, lock.c, server.c: Cast pid_t to long before
3495         passing it to %ld.
3497         * cvs.h: Don't prototype gethostname; merely declare it (on linux,
3498         second argument is size_t not int).
3500 Thu Feb 29 10:29:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3502         * sanity.sh: added "cat > /dev/null" to loginfo entry to avoid the
3503           SIGPIPE signal
3505 Thu Feb 29 10:28:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3507         * patch.c: added new variable diff_opt
3508         (patch): allow optional parameter to -c and -u option, send it to
3509         server
3510         (patch_fileproc): cleaned up the code which prints the current
3511         filename.  For "-s" option, print the pathname relative to CVSROOT
3512         instead of just the filename.
3514         * filesubr.c (xchmod): added cast to shut up gcc
3516         * cvs.h: added prototype for gethostname
3518 Thu Feb 29 10:27:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
3520         * lock.c (write_lock), (Reader_Lock), import.c (update_rcs_file),
3521           client.c (update_entries), (send_modified), server.c (server),
3522           (receive_file), (server_updated): use %ld for printing pid_t
3523           variables
3525 Thu Feb 29 02:22:12 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3527         * run.c (run_exec): Added VMS return status support.
3529 Thu Feb 29 01:07:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3531         * client.c (send_to_server): wrtn wasn't being declared under
3532         VMS for some reason.
3534 Wed Feb 28 23:27:04 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3536         * client.c: Changed #ifdef VMS && NO_SOCKET_TO_FD to
3537         #if defined(VMS) && defined(NO_SOCKET_TO_FD)
3539 Wed Feb 28 22:28:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3541         * build_src.com: Added DCL command procedure to build
3542         and link CVS client for VMS.
3544 Wed Feb 28 22:07:20 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3546         * client.c: VMS CVS client specific changes.
3548         Added USE_DIRECT_TCP to allow CVS_PORT to be used to specify
3549         a TCP connection port (no Kerberos).  Changed
3550         start_kerberos_server() to start_tcp_server().
3552         In copy_a_file(): transform a backup file to have a
3553         VMS-friendly name. 
3555         Added HAVE_CONFIG_H to include "config.h".  
3557         start_server() will starts the first successful of any
3558         mutually exclusive methods of starting the CVS server
3559         which might be enabled.
3561         Initialized use_socket_style and server_sock for VMS in
3562         start_server().
3564 Wed Feb 28 21:49:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3566         * find_names.c, recurse.c, cvs.h: Changed Find_Dirs() to
3567         Find_Directories().
3568         * cvs.h: Added VMS filenames enabled through USE_VMS_FILENAMES
3569         VMS POSIX will require to use the regular CVS filenames
3570         while VMS is #define'd.
3572 Wed Feb 28 21:26:22 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3574         * ignore.c: Added the patterns *.olb *.exe _$* *$ to default
3575         ignore list for VMS.
3577 Wed Feb 28 13:32:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3579         * logmsg.c (do_editor): Fix indentation.
3581 Wed Feb 28 12:56:49 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3583         * logmsg.c (do_editor): If no editor is defined, exit and print
3584         a message.
3586 Wed Feb 28 10:40:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3588         * vers_ts.c (time_stamp, time_stamp_server): Reindent and revise
3589         comments.
3591 Tue Feb 27 23:57:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3593         * vers_ts.c: gmtime() returns NULL on some systems (VMS)
3594         revert to local time via ctime() if GMT is not avaiable.
3596 Tue Feb 27 13:07:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3598         The changes listed below cause cvs to parse each rcs file (and
3599         free the associated rcsnode after the file has been processed)
3600         sequentially.  cvs used to parse all files in a directory, an
3601         approach that does not scale to huge repositories with lots 
3602         of revisions/branches/tags/etc.  
3603         
3604         * cvs.h (struct file_info): Removed srcfiles field.  Added rcs
3605         (node) field.
3606         * recurse.c (do_recursion): Removed code that pre-parsed all
3607         rcs files in the directory.
3608         (do_file_proc): Parse current rcs file.
3609         * rcs.c (RCS_parsefiles, parse_rcs_proc, RCS_addnode): Removed.
3610         (RCS_isbranch, RCS_whatbranch): Changed srcfiles argument to
3611         rcs (node).
3612         * rcs.h (RCS_parsefiles, RCS_addnode): Removed prototypes.
3613         (RCS_isbranch, RCS_whatbranch): Updated prototypes.
3614         * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c, 
3615         commit.c, diff.c, history.c, import.c, log.c, patch.c, remove.c, 
3616         rtag.c, status.c, tag.c, update.c, vers_ts: Updated for above
3617         calling convention / data structure changes.
3619 Mon Feb 26 16:07:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3621         * Version 1.7.3.
3623         * Version 1.7.2.
3625 Mon Feb 26 1996  Jim Kingdon  <kingdon@cyclic.com>
3627         * recurse.c (start_recursion): Use last_component rather than
3628         checking for '/' directly.
3629         (do_dir_proc): Likewise.
3631         Visual C++ lint:
3632         * client.c (send_to_server): Change wrtn to size_t.
3633         (connect_to_pserver): Put tofd and fromfd declarations inside
3634         #ifndef NO_SOCKET_TO_FD.
3635         * scramble.c (shifts): Change from array of char to array of
3636         unsigned char.
3638 Mon Feb 26 13:31:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3640         * server.c (check_repository_password): Remove unused variables
3641         linelen, ch.
3643         * client.c (send_file_names): Translate ISDIRSEP characters to '/'.
3645 Sat Feb 24 21:25:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3647         * checkout.c (safe_location): Re-indent one line.
3649 Sat Feb 24 10:50:42 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3651         * checkout.c (safe_location): put assignment to hardpath[x] in an
3652         `else'-clause, so we don't do it when x == -1.
3654 Sat Feb 24 01:40:28 1996  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
3655                           via Karl Fogel  <kfogel@floss.red-bean.com>
3657         * server.c (check_repository_password): Return by reference an
3658           optional username, the `host_user', from the passwd file.  The
3659           host_user will be the user-id under which the cvs repository is
3660           run.
3661           (check_repository_password): Use `read_line' instead of fgets to
3662           allow for passwords larger than 32 characters, as well as the
3663           optional host user argument.
3664           (check_password): Modify to use host_user.
3665           (authenticate_connection): Modify to use host_user.
3667 Sat Feb 24 01:05:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3669         * scramble.c (descramble): just shift descrambled string to get
3670         rid of tag char, instead of allocating a whole new copy.
3671         (scramble): cast return value of xmalloc to avoid unsightly
3672         compiler warnings.
3674         * options.h.in (RCSBIN_DFLT): don't refer to AUTH_SERVER_SUPPORT
3675         in comment anymore, now that it's not defined in this file.
3677 Fri Feb 23 1996  Jim Kingdon  <kingdon@cyclic.com>
3679         * client.c: Ifdef HAVE_WINSOCK_H, include winsock.h
3680         instead of sys/socket.h and friends.
3681         * login.c: Don't include sys/socket.h and friends.
3682         * login.c (login): Only fclose fp in the case where it was
3683         successfully fopen'd.
3684         * login.c: Declare getpass.
3685         * filesubr.c, cvs.h (get_homedir): New function.
3686         * cvsrc.c, expand_path.c, history.c, login.c: Call it instead
3687         of getenv ("HOME").
3689 Fri Feb 23 09:23:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3691         * client.c (connect_to_pserver): Remove unused variable host.
3692         * login.c: Include getline.h.
3693         (login): Remove unused variables i and username.
3694         (get_cvs_password): Move free of linebuf to where it actually will
3695         be called.  Add a "return NULL" at the end of the function to shut
3696         up gcc -Wall.
3698         * options.h.in: Remove AUTH_SERVER_SUPPORT.
3699         * client.h (authenticate_connection): Declare.
3700         * scramble.c (scramble): Cast char to unsigned char before using
3701         it to look up in table (char might be signed).
3702         * server.c [AUTH_SERVER_SUPPORT]: Include grp.h
3703         (authenticate_connection): Remove unused variables len and
3704         server_user.
3706         * sanity.sh (basica): Add comments regarding creating a top-level
3707         directory.
3708         (basic1): Don't try to remove first-dir and
3709         ${CVSROOT_DIRNAME}/first-dir at start of test; tests are now
3710         responsible for cleaning up at the end.
3711         (PLUS,DOTSTAR,ENDANCHOR): Add comments regarding fixed GNU expr.
3713 Thu Feb 22 22:34:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3715         * cvs.h: Remove alloca cruft.
3717 Wed Feb 21 07:30:16 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3719         * modules.c (do_module): call free_cwd before exiting.
3721         * recurse.c: Removed entries global variable.
3722         (do_recursion): Declare entries.  Moved call to Entries_Close so
3723         entries list is closed on all code paths.
3724         (start_recursion): Removed call to Entries_Close, entries list has
3725         been moved to do_recursion only.
3727 Tue Feb 20 22:10:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3729         * update.c (update_dirent_proc): If dir lacks a CVS subdirectory,
3730         don't recurse into it.
3731         * sanity.sh (conflicts): Test for above-fixed bug.
3733         * update.c (merge_file): Use write_letter not printf.
3735 Tue Feb 20 12:34:07 EST 1996: Gary Oberbrunner <garyo@avs.com>
3736                               and Jim Kingdon <kingdon@cyclic.com>
3738         * history.c (history_write): Change username to char * and call
3739         getcaller() to set it.  Setting username accidentally got deleted
3740         8 Feb 96.
3741         * sanity.sh: Revise test 64 to test for above-fixed bug.
3742         * sanity.sh (PLUS): New variable, work around yet another GNU expr
3743         bug.
3745 Tue Feb 20 14:07:50 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3747         * sanity.sh: Merge test rtags into test basic2.  They never were
3748         capable of running separately of each other.
3750         * sanity.sh (deep): New test, to test ability to operate in deeply
3751         nested directories (more quickly than basic2 test did).
3752         (basic2,rtags): Remove directories dir3 and dir4.  Remove file8,
3753         file10, file12, file9, file11, file13, file15, file16, file17.
3754         These additional files slowed down the tests considerably without
3755         significantly increasing coverage.
3757         * sanity.sh (PROG): New variable.  Use it instead of "cvs"
3758         to match the name cvs prints out for itself.
3760 Mon Feb 19 09:00:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3762         This fixes a bug whereby old default attributes would get
3763         clobbered instead of added to on "cvs watch add".
3764         * hash.c (findnode): Don't check for key == NULL; let the
3765         assertion in hashp take care of it.
3766         * fileattr.h, fileattr.c (fileattr_get): If filename is NULL,
3767         return default attributes.
3769         * client.c (send_repository): Fix indentation.
3771 Mon Feb 19 01:10:01 1996  Karl Fogel  <kfogel@floss.red-bean.com>
3773         * login.c (login): print out full repos so user knows which server
3774         she's logging into.
3776         * client.c (send_repository): die if `repos' is NULL.  This is a
3777         lame solution; see comments in code.
3779 Thu Feb 15 15:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3781         * error.c (error): Free entire and mess when done with them.
3783         * sanity.sh (info): Correct syntax of .cvsrc file.
3785         * cvs.h, expand_path.c, edit.c, parseinfo.c, wrapper.c:
3786         expand_path now takes arguments containing file and line for error
3787         message, and it prints the error message itself.
3788         * sanity.sh (info-6a): Test printing of error message.
3790         * expand_path.c (expand_variable): Add USER internal variable.
3791         * sanity.sh (info): Test USER and CVSROOT internal variables too.
3793 Wed Feb 14 19:11:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3795         * main.c (usg): Add -s option.
3797 Tue Feb 13 20:26:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3799         gcc -Wall lint:
3800         * mkmodules.c (mkmodules_usage): Remove declaration of
3801         non-existent function.
3802         * cvs.h (mkmodules): Declare.
3804 Mon Feb 12 12:20:04 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3806         * mkmodules.c: Rename main to mkmodules and remove various pieces
3807         of scaffolding which it used to emulate non-existent parts of CVS.
3808         Change calling convention to just take a char * not argc,argv.
3809         Save and restore working directory.
3810         * commit.c (commit_filesdoneproc): Call it if checking files into
3811         CVSROOT.
3812         * Makefile.in (SOURCES): Add mkmodules.c.
3813         (OBJECTS): Add mkmodules.o.
3814         (MSOURCES,MOBJECTS): Removed.
3815         (COMMON_OBJECTS): Removed; move former contents into OBJECTS.
3816         Update other rules accordingly.
3817         * sanity.sh: Adjust to reflect nonexistence of mkmodules.
3819         These changes introduce functions cvs_output and cvs_outerr;
3820         eventually all server output will go through them rather than
3821         stdio directly.
3822         * server.c (saved_output, saved_outerr): New variables.
3823         (do_cvs_command): Initialize them.
3824         (buf_output): Don't require that buf->output be set; saved_* use
3825         this to shove some data in a buffer which buf_copy_lines will
3826         later want to get data from.
3827         * server.c, cvs.h (cvs_output, cvs_outerr): New functions.
3828         * mkmodules.c (cvs_outerr): New function, so error() works.
3829         * error.c: Reindent.  Don't declare program_name and command_name;
3830         cvs.h declares them.
3831         (error): Use vasprintf and cvs_outerr (or fputs in the
3832         error_use_protocol case) rather than stdio directly.
3833         * import.c (import_descend_dir): Remove kludge which had prevented
3834         messages from error() from being out of order with respect to
3835         messages from printf; cvs_output and cvs_outerr are a cleaner
3836         solution to the problem.
3837         (add_log, import): Use cvs_output not printf.
3838         * update.c (write_letter): Use cvs_output not printf.
3839         (checkout_file): Use write_letter not printf.
3840         * sanity.sh: Use dotest for test 56 (test that output is actually
3841         correct).  In theory should test that the import.c bug is fixed,
3842         but I was unable to reproduce the bug (it is timing dependent).
3844 Mon Feb 12 16:07:45 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3846         * commit.c: define last_register_time
3847         (commit): make sure cvs doesn't exit in the same second it wrote
3848         the last timestamp
3849         (commit_fileproc): set last_register_time
3850         (finaladd): set last_register_time
3852         * run.c, cvs.h: Changed more Popen() to run_popen()
3854 Mon Feb 12 03:06:50 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3856         * release.c, rtag.c, tag.c: changed 'delete' to 'delete_flag'
3857         to avoid symbol collision with DEC C RTL function delete()
3859 Mon Feb 12 03:01:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3861         * mkmodules.c: changed 'void Lock_Cleanup()' to 'void static
3862         Lock_Cleanup() to avoid conflict with more substantial
3863         Lock_Cleanup() in lock.c
3865 Mon Feb 12 02:50:19 1996  Benjamin J. Lee  <benjamin@cyclic.com>
3867         * edit.c, logmsg.c, release.c, run.c: Changed Popen() to
3868         run_popen().  VMS' linker is not case sensitive and considered
3869         popen() and Popen() to be identical symbols.
3871 Sun Feb 11 10:51:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3873         * main.c (main) [!CLIENT_SUPPORT]: Silently ignore gzip level
3874         rather than printing usage message.
3876         * cvs.h, expand_path.c (variable_list): New variable.
3877         (variable_set): New function.
3878         * hash.h (enum ntype), hash.c (nodetypestring): Add VARIABLE.
3879         * expand_path.c (expand_path, expand_variable): Reindent.
3880         (expand_variable): Use user variables not environment variables
3881         for ${=VAR} syntax.  The environment variables didn't work
3882         client/server.
3883         * main.c (main): Process new -s global option.
3884         * client.c (send_variable_proc): New function.
3885         (start_server): Call it, to send user variables.
3886         * server.c (serve_set): New function.
3887         (requests): Add Set request.
3888         * sanity.sh: Revise info test to use user variables rather than
3889         environment variables.
3891 Sat Feb 10 16:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3893         By itself this is only a small cleanup, but in the long run it
3894         will be way cool (for reference, it takes CVS's text segment from
3895         290816 bytes to 294912, which I expect will be made up by future
3896         changes which this enables):
3897         * cvs.h (struct file_info): Added.
3898         (FILEPROC): Replace 5 args with single struct file_info *.
3899         * recurse.c (do_file_proc): Adjust args to fileproc; passed in
3900         instead of from globals.
3901         (do_recursion): Call do_file_proc accordingly.  Remove srcfiles
3902         global variable.
3903         * update.c (update_fileproc): Renamed from update_file_proc.
3904         * admin.c, client.c, commit.c, diff.c, edit.c, log.c, patch.c,
3905         remove.c, rtag.c, status.c, tag.c, update.c, watch.c: Update
3906         fileprocs to new calling convention.
3908 Fri Feb  9 15:30:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3910         * expand_path.c (expand_variable): Accept a variable name starting
3911         with '=' as a way to specify an environment variable.
3912         * sanity.sh (info): New tests, for above behavior.
3914         * Makefile.in (clean): Also remove check.log check.plog.
3916         * import.c (comtable): Remove SYSTEM_COMMENT_TABLE; the table
3917         should *not* depend on what kind of machine the server happens to
3918         be.  Add "mak", "rc", "dlg", "frm", and "bas" types which were
3919         formerly included via SYSTEM_COMMENT_TABLE.
3921         * cvs.h, rcs.h, add.c, checkin.c, classify.c, commit.c, diff.c,
3922         import.c, patch.c, rcs.c, update.c, vers_ts.c: Remove
3923         DEATH_SUPPORT ifdefs.  They were introduced to facilitate merging
3924         between Cygnus and Berliner variants of CVS, not because it was
3925         intended to subset CVS this way.  And they clutter up the code
3926         quite a bit.
3927         * cvs.h, create_adm.c, main.c, update.c: Likewise, remove
3928         CVSADM_ROOT ifdefs (it is still a #define, of course).  I believe
3929         they had a more-or-less similar motivation.
3931         * sanity.sh: Move setting of HOME from ignore test to the start of
3932         the tests so it applies to all tests.
3933         (CVS): Remove -f; the above change takes care of it.
3935         * rcs.h (RCS_MERGE): Removed; unused.
3937         * commit.c (checkaddfile): Fix memory leak.
3939         * admin.c, commit.c, diff.c, log.c, mkmodules.c: Pass -x,v/ to RCS
3940         commands.
3942         * rcscmds.c, cvs.h (RCS_checkin): New function.
3943         * checkin.c, commit.c, import.c: Call it, rather than run_*.
3944         * cvs.h, commit.c: Remove DEATH_STATE define; the behavior
3945         which used to be the default (DEATH_STATE) is now the only one.
3946         Failing to define DEATH_STATE has been commented as obsolete at
3947         least since CVS 1.5.  We still can read repositories created with
3948         such a CVS, however.
3949         * rcs.h, rcs.c: Adjust comments regarding DEATH_STATE.
3950         * subr.c (make_message_rcslegal): Add comment, describing
3951         allocation of returned value.
3953 Fri Feb  9 09:53:44 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
3955         * sanity.sh: use "${testcvs}" instead of "cvs" in devcom tests
3957         * hash.c: fix "dereferencing a NULL pointer" bug triggered with
3958           "cvs watch add"
3959         (findnode): return NULL if key == NULL
3960         (hashp): assert (key != NULL)
3961         
3962 Fri Feb  9 00:46:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
3964         * rcs.c (RCS_reparsercsfile): Remove unused variable date.
3966         * myndbm.c (mydbm_load_file): Fix typo ('015' -> '\015').
3968 Thu Feb  8 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
3970         * rcs.c (RCS_parse, RCS_parsercsfile, RCS_reparsercsfile),
3971         fileattr.c (fileattr_read), myndbm.c (myndbm_open):
3972         Use FOPEN_BINARY_READ.
3973         * fileattr.c (fileattr_write), myndbm.c (myndbm_close):
3974         Use FOPEN_BINARY_WRITE.
3975         * history.c (history_write, read_hrecs): Specify OPEN_BINARY.
3976         * rcs.c: Remove calls to abort.
3977         * myndbm.c (myndbm_load_file): Ignore CRs from ends of lines
3978         if present.
3979         * myndbm.c, fileattr.c: While I am at it, change \n to \012
3980         a few places where LF is intended.
3981         * history.c (history_write): Use getenv ("HOME"), not getpwnam,
3982         to find home directory.  If it isn't set, just keep going; don't
3983         print a message.
3984         * rcscmds.c, cvs.h (RCS_checkout): New function.
3985         * update.c, checkin.c, commit.c, diff.c, import.c, no_diff.c, 
3986         patch.c: Call it instead of run_*.
3987         * patch.c (patch_fileproc): Clean up inconsistent handling of
3988         noexec flag.
3989         * rcscmds.c (RCS_*): Pass -x,v/ to RCS commands; elsewhere in
3990         CVS it is assumed that ,v is a suffix.
3992 Fri Feb  2 14:07:32 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
3994         * rcs.h (struct rcsnode): Remove dates field (list of rcsversnodes
3995         indexed by date).  CVS maintained this list for each RCS file even
3996         though it was never used.  This resulted in higher then necessary 
3997         memory requirements (and run time too).  Even if revision info was
3998         needed, CVS' List data structure is inappropriate because can't
3999         handle duplicate keys.  The above was discovered by tracking down
4000         a memory leak.
4001         * rcs.c (RCS_reparsercsfile): Don't build dates list.
4002         (freercsnode): Don't delete dates list.
4003         (rcsvers_delproc): Free date field.
4004         (null_delproc): Removed.
4005         
4006 Thu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4008         * remove.c (cvsremove): Don't tell user the name of the program
4009         which they use to remove files; we don't have any way of knowing
4010         that, and besides which they might use a GUI or emacs 'dired' anyway.
4011         * update.c (update_filesdone_proc, update_dirleave_proc): Call
4012         unlink_file_dir instead of rm -rf.
4013         * options.h.in: Remove RM; no longer used.
4015         * sanity.sh: New tests devcom-a* test "cvs watch add",
4016         "cvs watch remove", and "cvs watchers".
4018         * sanity.sh: New test 171a0 tests for watch.c bug just fixed by kfogel.
4020         * Most .c files: Remove rcsids.
4021         * cvs.h: Remove USE macro.
4023 Thu Feb  1 13:07:15 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4025         * tag.c, rtag.c: Update various comments to reflect function name
4026         changes.
4028 Thu Feb  1 14:14:31 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4030         * recurse.c (do_recursion): comment #endif.
4032         * edit.c (notify_check): surround with #ifdef CLIENT_SUPPORT; else
4033         CVS won't compile if CLIENT_SUPPORT is undefined.
4034         
4035         * edit.h (notify_check): surround declaration with #ifdef
4036         CLIENT_SUPPORT.
4038         * watch.c (watch): if argc <= 1, then just give usage (previously
4039         was "argc == -1").
4041 Thu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4043         * README-rm-add: Remove information which is now in cvs.texinfo.
4045         * sanity.sh: Remove basic0 tests.  Move a few to new tests
4046         basica-1a* (but there is no need to test that *every* command
4047         gracefully does nothing on an empty directory; exhaustive testing
4048         is impractical and the generic recursion processor handles this
4049         anyway).
4051         * sanity.sh: New tests 69a* test use of update -p to restore old
4052         version of dead file.
4054 Wed Jan 31 18:32:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4056         * ChangeLog-9395: Remove duplicate entries from 1996 which
4057         accidentally got into this file.
4059         * client.c (read_line, read_from_server): Change "premature end of
4060         file from server" message to "end of file from server (consult
4061         above messages if any)" because 99% of the time it means rsh has
4062         printed an error message and exited.
4064 Wed Jan 31 15:09:51 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4066         * edit.c (ncheck_fileproc): Fix memory leak; free line before
4067         returning.
4069 Tue Jan 30 18:06:12 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4071         * recurse.c (do_recursion): Add comment about the fact that we
4072         don't have locks in place at certain points.
4074 Tue Jan 30 09:43:34 1996  Vince Demarco  <vdemarco@bou.shl.com>
4076         * edit.c (notify_proc): have notify_proc call expand_path with
4077         the name of the filter program. The user may have used a
4078         cvs environmental variable. (Popen will expand it, but it may not
4079         use the correct value)
4081 Tue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4083         * ChangeLog: take the pre-1996 changes and put them in a new file
4084         ChangeLog-9395.
4085         * ChangeLog-9194: Renamed from ChangeLog.fsf.
4086         * ChangeLog-9194, ChangeLog-9395, ChangeLog: Add additional text
4087         explaining the difference between all these logs and pointing to
4088         older logs.
4089         * Makefile.in (DISTFILES): Add ChangeLog-9194 and ChangeLog-9395;
4090         remove ChangeLog.fsf.
4092         * modules.c (do_module): Don't fall through from 'l' to 'o' case
4093         of option processing switch statement.
4095 Tue Jan 30 06:50:19 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4097         * client.c (send_repository): Fix memory leak; free adm_name
4098         before returning.
4099         * diff.c (diff_file_nodiff): Fix memory leak; free xvers before
4100         returning.
4101         * rtag.c (rtag_fileproc): Fix memory leak; if branch_mode is set,
4102         free rev before returning.
4103         * status.c (status_fileproc, tag_list_proc): Fix memory leak; free
4104         return value of RCS_whatbranch.
4105         * tag.c (tag_fileproc): Fix memory leak; free vers before
4106         returning.
4107         (val_fileproc): Fix memory leak; free return value of RCS_gettag.
4108         * watch.c (watch_modify_watchers): Fix memory leak; free mynewattr
4109         before returning.
4111 Tue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4113         * lock.c (readers_exist): If stat gave an error, print an error
4114         message saying it was from stat, rather than from "reading
4115         directory".  Skip the message completely if it was an
4116         existence_error.
4118         * sanity.sh (branches): New tests (branches off of branches, etc.).
4120 Tue Jan 30 11:55:34 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4122         * main.c (main): Add change to run getopt_long twice again.
4124 Mon Jan 29 15:59:31 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4126         gcc -Wall lint:
4127         * client.c: Include edit.h
4129 Sun Jan 28 09:45:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4131         * edit.c, edit.h (mark_up_to_date): New function, to remove file
4132         in CVS/Base.
4133         * client.c (update_entries): Call it if file is up to date.
4134         * checkin.c (Checkin): Call it in non-server (local) case.
4135         * sanity.sh: New test 182.5, tests for above-fixed bug.
4137 Sun Jan 28 01:07:22 1996  Jim Kingdon  (kingdon@beezley)
4139         * client.c (change_mode): Separate out CHMOD_BROKEN code to parse
4140         mode_string, rather than going through a mode_t.  Cleaner than
4141         the previous CHMOD_BROKEN code (which also had a typo of && not &).
4143 Sat Jan 27 23:29:46 1996  Jim Kingdon  (kingdon@beezley)
4145         * edit.c (edit_fileproc): Check for EACCESS as well as EEXIST.
4147 Sat Jan 27 16:26:30 1996  Karl Fogel  (kfogel@floss.cyclic.com)
4149         * client.c (notified_a_file): use rename_file() instead of
4150         rename() (but temporarily set `noexec' to 0 so it runs
4151         unconditionally).
4152         (change_mode): deal with CHMOD_BROKEN.        
4154 Fri Jan 26 00:14:00 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4156         * server.c: renamed `dirname' to `dir_name', to avoid conflicts
4157         with system headers.
4159         * client.c: renamed `dirname' and `last_dirname' to `dir_name' and
4160         last_dir_name' (see above).  Not strictly necessary, but
4161         consistency is nice -- as long as you do it all the time.
4163 Thu Jan 25 00:41:59 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4165         * options.h.in (AUTH_SERVER_SUPPORT, AUTH_CLIENT_SUPPORT): change
4166         comment now that no longer under construction.
4168 Wed Jan 24 15:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4170         * Version 1.7.1.
4172         * Version 1.7.
4174 Sat Jan 20 00:05:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4176         * Version 1.6.87.
4178 Mon Jan 15 18:14:55 1996  Gary Oberbrunner  <garyo@avs.com>
4179                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
4181         * tag.c (val_direntproc):  New function to ignore
4182           nonexistent dirs when recursing to check tag validity.
4183           (tag_check_valid): Pass it to start_recursion.
4184         * sanity.sh (death): New tests 65a0-65a6 cause test 74 to test for
4185         above-fixed bug.
4187 Mon Jan 15 12:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4189         * main.c: Revert change to run getopt_long twice.  This can go in
4190         after 1.7.
4192 Mon Jan 15 13:03:28 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4194         * filesubr.c (deep_remove_dir): added test of EEXIST for nonempty
4195           directory (Posix states that both ENOTEMPTY (BSD) and EEXIST
4196           (SYSV) are valid)
4198         * main.c (main): run getopt_long twice to allow command-line
4199           suppression of reading the cvsrc file
4201 Fri Jan 12 10:02:43 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4203         * Version 1.6.86.
4205 Thu Jan 11 23:28:05 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
4206                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
4208         * fileattr.h (fileattr_startdir): Add comment about REPOS == NULL.
4209         * fileattr.c (fileattr_read, fileattr_write): Assert that
4210         fileattr_stored_repos != NULL.
4211         (fileattr_free): If fileattr_stored_repos is NULL, don't free it.
4213 Thu Jan 11 18:03:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4215         * scramble.c (descramble): deal with DIAGNOSTIC better.
4217 Thu Jan 11 12:04:42 1996  Norbert Kiesel  <nk@col.sw-ley.de>
4219         * main.c: remove CVS_NOADMIN.
4221         * options.h.in: remove CVS_NOADMIN
4223 Thu Jan 11 10:28:44 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4225         * scramble.c (descramble): make sure the string returned is safe
4226         to free().
4228 Wed Jan 10 01:11:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4230         * server.c (serve_notify): Cast return value from malloc.
4232         * edit.c (notify_do): Use struct assignment, not struct
4233         initialization (which SunOS4 /bin/cc doesn't have).
4235 Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4237         * Version 1.6.85.
4239         We use version numbers instead of patchlevels.  But there was some
4240         confusing patchlevel stuff lying around.  Nuke it:
4241         * Makefile.in (HEADERS): Remove patchlevel.h
4242         * patchlevel.h: Removed.
4243         * main.c: Don't include patchlevel.h.
4244         (main): Don't print patch level.
4246         * server.c (check_repository_password): Check for errors from
4247         system calls; reindent function.
4249 Tue Jan  9 23:15:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4251         * expand_path.c: fix comments (explain expand_path()'s behavior
4252         correctly).
4254 Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4256         * edit.c (notify_proc): After copying in string following %s,
4257         don't clobber it.  Instead set up q to end of string.
4259         * watch.c (watch_modify_watchers), edit.c (editor_set): Fix sense
4260         of test in trying to decide whether attributes are changed.
4262         * cvs.h (CVSROOTADM_USERS): New macro.
4263         * edit.c (notify_do): Look up notifyee in CVSROOTADM_USERS if it
4264         exists.
4266 Tue Jan  9 21:39:45 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4268         * expand_path.c: don't redundantly #include things that cvs.h
4269         already #includes (i.e., stdio.h, ctype.h, string[s].h).
4271 Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4273         * ignore.c (ign_default): Add *.obj.
4275         * server.c: Put /* */ around #endif comment.
4277 Mon Jan  8 20:37:17 1996  Karl Fogel  <kfogel@floss.red-bean.com>
4279         * client.c (connect_to_pserver): check return value of recv().
4281 Mon Jan  8 11:37:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4283         * client.c (connect_to_pserver): Check for error from connect;
4284         reindent function.
4286         * sanity.sh (4.75): Use dotest, so we get a PASS if test passes.
4288         * sanity.sh (dotest): New argument OUTPUT2.
4289         (188a): Use it instead of \|.
4291         * sanity.sh (import): Avoid using string $ followed by Id followed
4292         by $ in sanity.sh source, in case sanity.sh itself is under CVS.
4293         I hate keyword expansion.
4295         * sanity.sh: If expr cannot handle multiline expressions, fail and
4296         tell the user to get one which can.
4298         * release.c (release_delete): Remove unused variable retcode.
4300 Fri Jan  5 13:30:00 1996  Jim Kingdon   <kingdon@peary.cyclic.com>
4302         * release.c (release_delete): Call unlink_file_dir rather 
4303         than "rm -rf".
4305 Thu Jan  4 09:58:30 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4307         * commit.c (find_fileproc): Print "nothing known about foo" and
4308         return 1 if the file doesn't exist and isn't in CVS/Entries.
4309         (commit): If the recursion over find_fileproc returns an error,
4310         print "correct above errors first!" just like local CVS.
4311         * sanity.sh (basica): Test for above-fixed bug.
4313         * release.c (release): If we are the client, only unedit if the
4314         server supports it.
4316         * sanity.sh: Remove STARTANCHOR stuff; expr patterns are
4317         automatically anchored to the start.  ENDANCHOR remains.
4319         * commit.c (commit): Don't start the server until we have
4320         determined that there is something to commit.
4322 Thu Jan  4 09:48:33 1996  Ben Laurie  <ben@gonzo.ben.algroup.co.uk>
4323                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
4325         * client.c (start_server): dup the file descriptor before
4326         fdopening it.
4328 Wed Jan  3 18:25:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4330         * sanity.sh: Remove tests 5, 5.5, and 5.75.  All that stuff is
4331         tested elsewhere.
4333         * ignore.c (ign_default): Change CVS* to CVS CVS.adm.  CVS* is too
4334         broad, especially in a case-insensitive filesystem.
4336         * Makefile.in (cvsbug): version.c is in srcdir.
4338 Wed Jan  3 17:30:45 1996  Phi-Long Tran  <ptran@autodesk.com>
4340         * modules.c (do_module): Honor error_use_protocol in printing trace.
4341         * server.c (server_register): Move check for options NULL to above
4342         printing of the trace.
4344 Wed Jan  3 01:19:53 1996  Mark Immel <immel@centerline.com>
4345                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
4347         * update.c (checkout_file): Do not resurrect file on join if it
4348         doesn't contain the revisions we are joining.  Probably not a
4349         perfect test, but should be an improvement.
4350         * sanity.sh (death): New death-file4-* tests, for bug fixed above.
4352 Wed Jan  3 01:19:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4354         * add.c, admin.c, checkout.c, client.c, commit.c, diff.c, edit.c,
4355         history.c, import.c, log.c, patch.c, release.c, remove.c, rtag.c,
4356         status.c, tag.c, update.c, watch.c: In calling send_to_server,
4357         pass \012 not \n.  On the Mac \n is CR, not LF, and we want to
4358         send LF.  I didn't try to deal with whether files in CVSADM should
4359         contain CR or LF--in fact there is some code in client.c which
4360         reads \n from CVSADM files and passes it to send_to_server; it
4361         needs to be cleaned up one way or the other.
4363         * entries.c (Entries_Open): Don't try to close fpin twice.
4365         * client.c (update_entries): Fix typo ("strlen (filename + 10)"
4366         -> "strlen (filename) + 10").
4368         * commit.c (checkaddfile): Remove arbitrary limit.
4370 Tue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4372         * commit.c (commit): Only pass files which were modified, added,
4373         or removed to send_file_names.  This has as a side effect a
4374         semantic change--the up-to-date check is now skipped for other
4375         files--but probably a good one, or at least not a bad one.
4376         * sanity.sh (basica): New test; tests for bug fixed above.
4377         * sanity.sh (187a3): Adjust for new 'cvs commit' output.  Set up
4378         DOTSTAR to match arbitrary text (another GNU expr bug/misfeature,
4379         sigh).
4381         * sanity.sh: Test that the commit in test 43 actually worked.
4382         Merge tests basic2 and basic3 and make them independent of basic1.
4383         (pass,fail): Don't insert spurious space.
4384         (45.5): Fix typo in directory name.
4386 Tue Jan  2 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
4388         Visual C++ lint:
4389         * myndbm.c: Prototype write_item.
4391 Tue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4393         gcc -Wall lint:
4394         * client.c (client_expand_modules): Pass error message not "" to error.
4395         * client.c (supported_request), server.c (supported_response):
4396         Return a value (gcc -Wall can't know that error doesn't return).
4397         * commit.c (copy_ulist): Return a value.
4398         * history.c (fill_hrec): Don't make assumptions about whether
4399         time_t is "int" or "long" or what.
4400         * cvs.h: Declare link_file.
4401         * server.c: Include fileattr.h.
4402         * server.c (server_notify): Remove unused variable val.
4403         * tag.c (val_fileproc): Remove unused variable foundtag.
4405 Mon Jan  1 09:49:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
4407         * Version 1.6.5.
4409         * Version 1.6.4.
4411         * filesubr.c (link_file): Add comment about link vs. copy semantics.
4413         * cvs.h (struct vers_ts): Fix comments.
4414         * commit.c (commit): Before we ask for a log message, figure out
4415         what is modified and what is not and pass the information to
4416         do_editor.
4417         (copy_ulist,find_fileproc): New helper functions for above code.
4419         * client.c (read_line): When writing to from_server_logfile, write
4420         the \n too.
4422         * client.c (send_files): No longer call send_file_names.
4423         * client.h: Update comment.
4424         * add.c, admin.c, commit.c, diff.c, edit.c, log.c, remove.c,
4425         status.c, tag.c, update.c, watch.c: Call send_file_names before
4426         send_files.
4427         * client.c: New variables module_argc, module_argv.
4428         (client_expand_modules): Set them, to arguments.
4429         (client_send_expansions): Use them instead of modules_vector to
4430         send arguments.
4431         * sanity.sh (modules): Add test of modules -d flag.
4434 For older changes see ChangeLog-9395.