Sync usage with man page.
[netbsd-mini2440.git] / external / gpl2 / xcvs / dist / src / ChangeLog-97
blobce7180b39d366469a6f020e963fb7a2680038fbf
1 1997-12-30  enami tsugutomo  <enami@but-b.or.jp>
3         * rcs.c (RCS_checkin): Use gmtime() instead of localtime()
4         (restores behavior from RCS 5.x which was broken with RCS library
5         -kingdon).
7 Mon Dec 29 12:53:00 1997  Ian Lance Taylor  <ian@cygnus.com>
9         * modules.c (do_module): Check for a request for a file within a
10         module which is not a directory.
11         * sanity.sh (modules): Add test 149b1 for above patch.
13         * client.c (start_tcp_server): Remove useless assignment, left
14         behind by Dec 15 patch.
16 Sat Dec 27 17:41:11 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
18         * client.c, options.h.in, history.c, import.c, main.c, rcs.c,
19         update.c: Remove !HAVE_RCS5 code.  It had bit-rotted a while ago,
20         and more to the point is obsolete with the RCS library.
22 27 Dec 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
24         * zlib.c, server.h (gunzip_and_write): New function.
25         * client.c (update_entries): Call it instead of a gunzip subprocess.
26         * zlib.c, server.h (read_and_gzip): New function.
27         * client.c (send_modified): Call it instead of a gzip subprocess.
29 Sat Dec 27 13:07:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
31         Decrease RCS_deltas memory usage to what we need (approximately
32         the size of the file we are patching plus the size of the largest
33         patch).  Previously memory usage had been approximately the size
34         of the RCS file because we never freed lines until the end.
35         * rcs.c (linevector_free, linevector_copy, linevector_add,
36         linevector_delete):
37         Instead of having all the lines and struct line's in the alloc_*
38         space, have each line and its struct line in its own malloc'd
39         space.  Use a refcount to deal with curlines vs. headlines
40         vs. trunklines in RCS_deltas.
41         (struct allocblock, blocks, block_alloc, block_free): Remove; no
42         longer used.
43         (apply_rcs_changes, RCS_deltas): Don't copy lines into allocated
44         space; linevector_add now does that for us.
45         (rcs_change_text, RCS_deltas): Don't call block_free.
47 Tue Dec 23 08:28:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
49         * cvsbug.sh: Change bug-cvs address from prep.ai.mit.edu to gnu.org
50         per email from Martin Hamilton.
52 Sun Dec 21 21:49:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
54         * rcs.c (RCS_checkin): Disable keyword expansion when generating
55         the change text.
56         * sanity.sh: Move tests keyword-24 through keyword-27 into
57         new section keywordlog and expand greatly.  Note that CVS 1.9.18
58         passes the new tests both local and remote but the current
59         version failed them both local and remote before this fix.
61 Sat Dec 20 19:56:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
63         * rcs.c (RCS_delete_revs): Clean up temporary files even if noexec.
64         Without this fix, basica-o5a in sanity.sh would leave files around.
66 Thu Dec 18 13:05:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
68         * run.c: Fix typo in declaration (evecvp -> execvp) (credit to
69         Erik Walthinsen for reporting this).  Only declare it if not
70         HAVE_UNISTD_H.  Move declaration to before the first use.
72 Tue Dec 16 12:59:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
74         * update.c: Collapse two identical declarations for join_file.
76 Mon Dec 15 16:01:49 1997  Ian Lance Taylor  <ian@cygnus.com>
78         * client.c (start_tcp_server): Remove calls to htons and add one
79         call to ntohs (init_sockaddr calls htons on the port argument).
81 Mon Dec 15 00:07:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
83         * client.c (failure_exit): New variable.
84         (get_server_responses): If it is set, then return
85         failure.
86         (updated_seen, updated_fname): New variables.
87         (update_entries): Use updated_fname if set.  In the "move away
88         foo.c; it is in the way" case print "C" not "U", and set
89         failure_exit.
90         (handle_mt): If we get +updated tagged text, stash it away in
91         updated_fname rather than printing it immediately.
92         (handle_mt, get_server_responses): If we stashed a filename and
93         didn't get around to printing it, go ahead and print it.
94         * sanity.sh (conflicts2-142d2): Adjust to test for fix.  Remote is
95         now like local was in terms of exit status and "C aa.c" message.
97 Sun Dec 14 00:27:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
99         Implement tagged text feature:
100         * update.c (write_letter): Take a single finfo argument rather
101         than file and update_dir.  While we are at it change it to return
102         void (since the returned value always had been 0).
103         * update.c: Update callers.
104         * server.c, cvs.h (cvs_output_tagged): New function.
105         * client.c (responses): Add "MT" response.
106         (handle_mt): New function.
107         * update.c (write_letter): Output via cvs_output_tagged.
109 Sun Dec 14 14:13:05 1997  Ian Lance Taylor  <ian@cygnus.com>
111         * recurse.c (do_dir_proc): Only check for CVS/Repository if
112         W_LOCAL.
113         * sanity.sh (devcom-t2, devcom-t3): New tests for above patch.
115 Sun Dec 14 00:27:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
117         * root.c (parse_cvsroot): Initialize check_hostname (fixes thinko
118         in GSSAPI changes).
120 Sat Dec 13 13:15:35 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
122         * server.c: Use indentation to indicate nesting of #ifdef's.
124         * client.c (connect_to_gserver): Reindent (in one place).
126 Fri Dec 12 17:38:15 1997  Chris Provenzano <proven@cygnus.com>
127         and Ian Lance Taylor  <ian@cygnus.com>
129         * cvs.h (CVSmethod): Add gserver_method.
130         * root.c (method_names): Add gserver.
131         (parse_cvsroot): Handle :gserver:.
132         * client.h (cvsauthenticate): Declare.
133         (cvs_gssapi_encrypt): Declare if HAVE_GSSAPI and ENCRYPTION.
134         (cvs_gssapi_wrap_buffer_initialize): Declare if HAVE_GSSAPI.
135         (connect_to_pserver): Update declaration.
136         (pserver_authenticate_connection): Declare when HAVE_GSSAPI and
137         SERVER_SUPPORT is defined in addition to other case.
138         * client.c: If HAVE_GSSAPI, include GSSAPI header files.
139         (gcontext): New static variable if HAVE_GSSAPI.
140         (connect_to_pserver): Add do_gssapi parameter.  Change all
141         callers.  Move rejection handling to bottom of function.
142         (recv_bytes): New static function if HAVE_GSSAPI.
143         (connect_to_gserver): Likewise.
144         (start_server): Handle gserver_method.  Handle GSSAPI encryption
145         and authentication.
146         * server.c: Include <sys/socket.h> if HAVE_GSSAPI, in addition to
147         existing cases.  If HAVE_GSSAPI, include GSSAPI header files.
148         Include <grp.h> even if AUTH_SERVER_SUPPORT is not defined.
149         (gcontext, cvs_gssapi_wrapping): New static variables if
150         HAVE_GSSAPI.
151         (cvs_gssapi_encrypt): New global variable if HAVE_GSSAPI and
152         ENCRYPTION.
153         (serve_gssapi_encrypt): New static function if HAVE_GSSAPI and
154         ENCRYPTION.
155         (serve_gssapi_authenticate): New static function if HAVE_GSSAPI.
156         (requests): Add Gssapi-encrypt if HAVE_GSSAPI and ENCRYPTION.  Add
157         Gssapi-authenticate if HAVE_GSSAPI.
158         (switch_to_user): Compile if HAVE_GSSAPI, in addition to existing
159         cases.
160         (pserver_authenticate_connection): Likewise.  Ifdef out part of
161         the code for AUTH_SERVER_SUPPORT.  Handle a GSSAPI request.
162         (gserver_authenticate_connection): New static function if
163         HAVE_GSSAPI.
164         (cvsauthenticate): New global variable.
165         (struct cvs_gssapi_wrap_data): Define if HAVE_GSSAPI.
166         (cvs_gssapi_wrap_buffer_initialize): New function if HAVE_GSSAPI.
167         (cvs_gssapi_wrap_input): New static function if HAVE_GSSAPI.
168         (cvs_gssapi_wrap_output): Likewise.
169         * main.c (opt_usage): Mention -a.
170         (main): Handle -a.  Handle pserver if HAVE_GSSAPI, in addition to
171         existing cases.
172         * login.c (login): Pass new argument to connect_to_pserver.
174 Fri Dec 12 15:33:19 1997  Ian Lance Taylor  <ian@cygnus.com>
176         * buffer.c (PACKET_SLOP): Define.
177         (packetizing_buffer_initialize): Use PACKET_SLOP when allocating
178         holdbuf.
179         (packetizing_buffer_input): Allow up to PACKET_SLOP bytes in
180         stackoutbuf.
181         (packetizing_buffer_output): Use just BUFFER_DATA_SIZE + 2 for
182         inbuf.  Allow PACKET_SLOP + 4 extra bytes in stack_outbuf.
183         Correct >= to > in test of incoming number of bytes.  Use
184         PACKET_SLOP in other tests.
186 Fri Dec 12 10:27:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
188         * client.c (start_tcp_server): Revise comment to reflect
189         SOCK_STRERROR and SOCK_ERRNO now being in use.
191 Thu Dec 11 15:32:31 1997  Ian Lance Taylor  <ian@cygnus.com>
193         * client.c (init_sockaddr): Compile if HAVE_KERBEROS, as well as
194         if AUTH_CLIENT_SUPPORT.  Return a pointer to a struct hostent.
195         (start_tcp_server): Clean up.  Use init_sockaddr.  Use
196         SOCK_STRERROR and SOCK_ERRNO.  Don't bind the socket.
198         Generalize buffering code used by Kerberos encryption routines
199         into a generic packetizing buffer.  The new code in buffer.c is a
200         modified version of the code removed from server.c.
201         * buffer.c (struct packetizing_buffer): Define.
202         (packetizing_buffer_initialize): New function.
203         (packetizing_buffer_input): New static function.
204         (packetizing_buffer_output): New static function.
205         (packetizing_buffer_flush): New static function.
206         (packetizing_buffer_block): New static function.
207         (packetizing_buffer_shutdown): New static function.
208         * buffer.h (packetizing_buffer_initialize): Declare.
209         * server.c (struct krb_encrypt_data): Rename from
210         krb_encrypt_buffer, and remove all fields not related to
211         encryption.
212         (krb_encrypt_buffer_initialize): Just call
213         packetizing_buffer_initialize.
214         (krb_encrypt_input): New static function.
215         (krb_encrypt_output): New static function.
216         (krb_encrypt_buffer_input): Remove.
217         (krb_encrypt_buffer_output): Remove.
218         (krb_encrypt_buffer_flush): Remove.
219         (krb_encrypt_buffer_block): Remove.
220         (krb_encrypt_buffer_shutdown): Remove.
222 Wed Dec 10 15:39:44 1997  Ian Lance Taylor  <ian@cygnus.com>
224         * buffer.c (stdio_buffer_initialize): Correct formatting.
226 Sun Dec  7 09:37:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
228         * sanity.sh (basicb-0d0): New test, for checkout on existing
229         directory.
231 Sat Dec  6 00:25:11 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
233         * sanity.sh (binwrap3): Clean up repository too.  Clean up working
234         directory with "rm -r" not "rm -rf".
236 Thu Dec  4 17:11:18 1997  Larry Jones  <larry.jones@sdrc.com>
238         * subr.c (check_numeric): Don't reference argv[1] when argc is 1
239         (should be argv[0]).
241         * sanity.sh: Fix lines that look like conflict markers but aren't
242         to prevent problems checking in.
243         (binwrap3): Remove local CVSROOT when done so that later
244         tests that expect to create it don't fail.
246 Thu Dec  4 18:19:21 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
248         * cvs.h: Remove mempcpy definition.  I think the polite way to
249         describe my feelings about mempcpy is something like "we don't
250         have agreement that it is a good idea".
251         * rcs.c (truncate_revnum): Don't call it.
252         * sanity.sh: Run multibranch2 test by default.
253         (multibranch2): Use ${TESTDIR} a few places.
254         (multibranch2-9): Accept "P file1" as well as "U file1".
256         * sanity.sh: Don't add 1997 to the copyright notice.  Add GPL
257         terms.  Add discussion of copyright issues.
258         * rcs.c (truncate_revnum, truncate_revnum_in_place,
259         compare_truncated_revnums): Reindent.
261 1997-12-04  Jim Meyering  <meyering@na-net.ornl.gov>
263         * subr.c (xstrdup): Use memcpy rather than strcpy.
264         (compare_revnums): Declare parameters to be `const'.
265         Remove unnecessary uses of xstrdup and corresponding frees.
266         (increment_revnum): Declare parameter to be `const'.
267         Use memcpy rather than strcpy.
268         (gca): Declare parameters to be `const'.
269         (check_numeric): Declare REV parameter to be `const'.
270         (file_has_markers): Declare parameter to be `const'.
271         (get_file): Declare `char*' parameters to be `const'.
272         * run.c (run_exec): Declare `char*' parameters to be `const'.
273         * cvs.h (mempcpy) [! HAVE_MEMPCPY]: Define it.
274         Add `const' to types in several prototypes.
276         * rcs.c (truncate_revnum): New function.
277         (truncate_revnum_in_place): New function.
278         (compare_truncated_revnums): New function.
279         (max_rev): New function.
280         (RCS_addbranch): Make BRANCH parameter `const'.
281         Use the above functions rather than open-coding them.
282         When BRANCH is a revision number, insert it *in order*
283         in the sorted list of branch numbers, not at the end.
284         Add assertion that insertion succeeds.
285         * sanity.sh (multibranch2): Test for this.
286         (Copyright): Add 1997.
288 Dec 1997  Karl Fogel  <kfogel@floss.red-bean.com>
290         * wrapper.c (wrap_name_has): loop as far as wrap_count +
291         wrap_temp_count, not wrap_count + wrap_saved_count, otherwise
292         some wrappers get skipped.
293         (wrap_matching_entry): same.
294         * sanity.sh (binwrap3): new test, for import with
295         CVSROOT/cvswrappers and .cvswrappers specifying -k 'b' options.
297 1997-11-30  Jim Meyering  <meyering@na-net.ornl.gov>
299         * client.c (send_a_repository): Strip trailing slashes from the name
300         of the update directory.  Otherwise, running `cvs update dir/' provokes
301         this failure `protocol error: illegal directory syntax in dir/' when
302         running in client/server mode.
304         * hash.c (insert_before): New function derived from addnode.
305         (addnode): Simply return insert_before.
306         (addnode_at_front): Simply return insert_before.
307         * hash.h (insert_before): Add prototype.
309         * server.c (dirswitch): Compute `strlen(dir)' once and save it,
310         rather than computing it four times.  Also do s/illegal/invalid/ to
311         this diagnostic: "E protocol error: illegal directory syntax in %s".
313 Sun Nov 30 18:03:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
315         * admin.c: Fix comment (no longer a front-end to "rcs").
317         * error.c, error.h (rcserror): Remove.
318         * admin.c, rcs.c: Call error instead of rcserror.  This changes
319         the format of these messages from "rcs: <path>: error" to "cvs
320         <command>: <path>: error".  The former format wasn't quite what
321         RCS printed anyway (because RCS would sometimes print "ci", "co",
322         &c, not "rcs"), and preserving RCS's exact output probably is not
323         a good idea anyway (because it will make people think that the
324         error was caused by an external program).  In two cases, I tidied
325         up the message in a more drastic fashion ("cannot stat" in
326         RCS_checkin and "could not diff" in RCS_delete_revs).
328         * sanity.sh (basica-o2b, binfiles2-o1, admin-18, admin-22-o10,
329         admin-22-o17): Look for "cvs <command>" not "rcs".
331         * run.c, cvs.h (run_setup): Replace varargs nonsense with a single
332         argument which gets parsed as the result of the vasprintf
333         used to.
334         * client.c, commit.c, logmsg.c, modules.c, rtag.c, tag.c, update.c,
335         wrapper.c: Update callers, either to do the sprintf themself or to
336         just call run_arg if it will do the job.
337         * rcscmds.c: Likewise for call_diff_setup and callers.
339         * run.c, cvs.h (run_args): Remove; nowhere used.
341 Sat Nov 29 22:15:06 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
343         * options.h.in: Remove declaration of getwd; see lib/ChangeLog for
344         rationale.
346 1997-11-29  Jim Meyering  <meyering@na-net.ornl.gov>
348         * update.c (checkout_file): Initialize `backup'.
350         * diff.c (diff_fileproc): Initialize `tmp' and `fname'.
352         * modules.c (do_module): Initialize `server_dir_to_restore'.
353         (do_module): Initialize `value' in an else clause.
355         * rcs.c (RCS_checkin): Initialize `commitpt'.
356         (RCS_delete_revs): Initialize `revp'.
357         (RCS_copydeltas): Always initialize `insertbefore'.
359         * run.c (run_print): Define `outfn' even in error case.
361 Mon Nov 24 17:28:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
363         * rcs.c (RCS_findlock_or_tip): Prototype.
364         (RCS_checkin): Fix call to pass correct number of arguments.
366 Sun Nov 23 10:34:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
368         * recurse.c (do_dir_proc): Move check for CVS/Repository and
369         CVS/Entries to before where we call the direntproc.
370         * client.c (send_dirent_proc): Remove code to check for
371         CVS/Repository, now that recurse.c does it.
372         * sanity.sh (conflicts3-18 through conflicts3-19): New tests, for this.
374 Sat Nov 22 10:54:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
376         * recurse.c (do_dir_proc): Check that CVS/Repository and
377         CVS/Entries exist.
378         * sanity.sh (conflicts3-14 through conflicts3-17): New tests, for this.
380         * client.c (send_fileproc): Send options field from
381         vers->entdata->options not vers->options.
382         * cvs.h (struct entnode): Add comment (options and timestamp must
383         not be NULL).
384         * sanity.sh (binfiles-9 through binfiles-13, binfiles-sticky5,
385         keyword-17): Remove kludges for remote; tests for fix.
387         * update.c (update_fileproc): Fix comment; direct checkout is
388         still faster than patches for local but not for quite the
389         same reasons.
391         * add.c (add): Pass SEND_NO_CONTENTS to send_files.
393 Wed Nov 19 18:25:03 1997  Mike Glendinning  <mikeg@sequent.com>
395         * update.c (patch_file_write): Missing cast provided.
397 Wed Nov 19 15:57:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
399         * rcs.c (RCS_deltas): Solve trigraph problem (once and for all, I
400         hope) with 3 calls to cvs_output.
402 Wed Nov 19 01:52:57 1997  Andy Piper <andyp@parallax.co.uk>
403         and Jim Kingdon  <kingdon@harvey.cyclic.com>
405         * classify.c (Classify_File), cvs.h (struct vers_ts), vers_ts.c
406         (Version_TS): Clarify NULL versus "" for options in comments.
407         * vers_ts.c (Version_TS): Treat "" the same way as NULL in options
408         and vers_ts->options.
409         * sanity.sh: New tests binfiles-sticky5 through binfiles-17 test
410         for this.
412 1997-11-16  Karl Fogel  <kfogel@floss.red-bean.com>
414         * client.c (update_entries): parse server-sent entries line even
415         in the case of "cvs export", because we need to know if -kb option
416         is set.
417         Init `options' to NULL like anything else.
419 Tue Nov 18 09:20:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
421         * version.c: Change version number to 1.9.21.
423         * Version 1.9.20.
425 Mon Nov 17 14:35:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
427         * server.c (server_updated): If scratched_file and noexec are set,
428         clean up so we don't get a "duplicate Scratch_Entry" warning
429         later.
430         * sanity.sh: New tests conflicts3-10 to conflicts3-13, for this.
432         * sanity.sh (conflicts3): Don't allow "file1 was lost" messages
433         here; I don't think CVS actually produced them, and they don't
434         belong.
436 Sun Nov 16 23:19:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
438         * sanity.sh: Accept either "U file1" or "P file1".
440 Fri Nov 14 12:32:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
442         * rcs.c: Add comment about cleaning up ,foo, file on ^C.
444 Fri Nov 14 11:56:29 1997  Andy Piper <andyp@parallax.co.uk>
445         and Jim Kingdon  <kingdon@harvey.cyclic.com>
447         * filesubr.c (unlink_file_dir): Don't print trace message in the
448         server.
450 Fri Nov 14 11:28:55 1997  Jim Meyering and Jim Kingdon
452         * rcs.c (RCS_getdatebranch): If the branch we are looking for
453         doesn't exist, return a revision which matches the date, not
454         just NULL.
455         * sanity.sh (tagdate): New test, for this.
457 Thu Nov 13 10:11:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
459         * sanity.sh (basicb-21): Fix comment which described a behavior
460         which no longer exists.
462 Wed Nov 12 16:24:45 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
464         Clean up infrastructure made unnecessary by RCS library:
465         * rcscmds.c (diff_exec, diff_execv): Use literal "diff" not DIFF.
466         * options.h.in (DIFF), rcs.h (RCS, RCS_CI, RCS_DIFF,
467         RCS_RCSMERGE): Removed; no longer used.
468         * commit.c (commit), patch.c (patch_fileproc),
469         rcscmds.c (RCS_exec_rcsdiff), start of rcscmds.c: Update comments
470         to reflect librarification of RCS.
471         * options.h.in (RCSBIN_DFLT): Removed.
472         * main.c, cvs.h (Rcsbin, free_Rcsbin): Removed.
473         * main.c (main): Don't check RCSBIN environment variable.  -b
474         global option is now a noop.
475         * cvs.h (RCSBIN_ENV): Removed.
476         * expand_path.c (expand_variable): $RCSBIN is now an error.
477         * mkmodules.c (config_contents): Remove RCSBIN.
478         * parseinfo.c (parse_config): RCSBIN now a noop.
479         * server.c (server): Don't put Rcsbin in PATH.
481 Mon, 10 Nov 1997  Jim Kingdon
483         * rcs.c (RCS_checkin): Actually, when we get a change text
484         for a text file using get_file, we want text mode, although
485         the reasons are kind of subtle (see comment).
487         * rcs.c (RCS_checkin): Pass correct mode to get_file for
488         binary files.
490         * rcscmds.c: Declare vasprintf.
492 Mon Nov 10 11:11:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
494         This fixes problems with windows-NT/run.c improperly quoting, and
495         is cleaner anyway.
496         * rcscmds.c (call_diff_setup, call_diff_arg, call_diff_add_arg,
497         call_diff_argv, call_diff_argc, call_diff_argc_allocated): New
498         functions/variables, lightly adapted from src/run.c.
499         * cvs.h, run.c (call_diff, call_diff3): Move from here...
500         * rcscmds.c: ...to here.
502 Sun, 9 Nov 1997  Jim Kingdon
504         * rcs.c (rcs_internal_unlockfile): Call rename_file not rename.
505         This makes it work on NT again.
507 Sun Nov  9 16:54:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
509         * sanity.sh (diffmerge2): Protect keywords against unwanted
510         expansion.  They got clobbered and the testcase stopped working
511         when I checked it in.
513 Fri Nov  7 13:23:38 1997  Karl Fogel  <kfogel@floss.red-bean.com>
514         and Jim Kingdon  <kingdon@harvey.cyclic.com>
516         * sanity.sh (diffmerge1, diffmerge2): new tests, for bugs, or
517         potential bugs, in ../diff/analyze.c which were fixed by Paul
518         Eggert's patch.
520 Sun Nov  9 10:28:43 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
522         * rcs.c (RCS_settag): Reindent.
524         * rcs.c (rcs_internal_lockfile): Fix typo (thow -> throw).
526 Sat Nov  8 15:58:53 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
528         * sanity.sh (cvsadm): Remove most of the tests which tested
529         CVS/Root.  This takes the run time for the cvsadm tests from
530         about 5 minutes 15 seconds to about 4 minutes 10 seconds with no
531         significant loss in coverage.
533         * rcs.c (rcs_internal_lockfile): Check for errors from system
534         calls.  If open() gives an error, don't muck with stat and errno
535         (I don't know what the RCS code that this comes from was trying to
536         do, but it clearly isn't accomplishing anything here).
537         (RCS_rewrite, RCS_delete_revs): Check for errors from system calls.
539 Sat Nov  1 14:21:29 1997  Michael L.H. Brouwer  <michael@thi.nl>
541         * rcs.c (RCS_checkin): Change type of bufsize from int to size_t.
542         (RCS_delete_revs): Change type of bufsize and len from int to size_t.
543         (RCS_getdeltatext): Change type of textlen from int to size_t.
544         * rcs.h (struct deltatext): Change len from int to size_t to keep
545         the compiler happy on systems where size_t is unsigned int.
546         [This goes well beyond keeping the compiler happy; if sizeof
547         (size_t) != sizeof (int), the old code was quite broken -kingdon]
549 Sat Nov  1 14:21:29 1997  Michael L.H. Brouwer  <michael@thi.nl>
550         and Jim Kingdon  <kingdon@harvey.cyclic.com>
552         * rcs.c (RCS_checkin): When checking if we were holding the lock
553         use delta->author instead of user since the latter might have been
554         clobbered by a call to getcaller.  This resulted in the failure of
555         test basica-7.
556         [I don't completely follow the scenario where it gets clobbered,
557         it but sounds vaguely plausible and the replacement seems
558         cleaner, precisely because it avoids allocation issues -kingdon]
560 Wed Nov  5 20:16:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
562         * checkin.c, checkout.c, commit.c, cvs.h, import.c, login.c,
563         main.c, update.c: Change FALSE to 0 and TRUE to 1 and replace
564         monstrosities like "cvswrite == TRUE" with just "cvswrite".  FALSE
565         and TRUE sometimes conflicted with system headers (NextStep3.3?),
566         but more to the point, good old 1 and 0 are fine and were used by
567         most of CVS already.
569 Tue Nov  4 12:19:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
571         * rcs.c (RCS_checkin, RCS_lock, RCS_unlock): Rename local variable
572         quiet to checkin_quiet or some such, to avoid confusion with
573         global variable quiet.
575         * lock.c: Update comment to refer to add_rcs_file rather than "rcs
576         -i".
578         * rcs.h (struct rcsnode): Add comments for all fields.
579         * rcs.c (RCS_delete_revs): Refuse to delete revisions which have
580         symbolic names.  Fix fencepost bug which caused us to sometimes
581         check one more revision than we should for locks, branches, and
582         this.
583         (findtag): New function, to help above code.
585         * admin.c (admin): Take out writelocks not readlocks.  This has
586         been a bug "forever", but may become more noticeable with
587         rcs_internal_lockfile relying on the writelocks.
589 Mon Nov  3 10:17:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
591         * rcs.c (RCS_rewrite): Don't write the file if noexec.
592         * sanity.sh (basica, branches): Test for this.
594 Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
596         * rcs.h (struct deltatext): Comment text and log fields.
598         * admin.c (admin_fileproc): Call RCS_reparsercsfile not
599         RCS_fully_parse.  Don't muck with ->other field in RCSVers (it
600         doesn't need to be set).
601         * rcs.h, rcs.c (RCS_reparsercsfile): No longer static.  No point
602         in having this static when RCS_rewrite and RCS_fully_parse are not.
603         * rcs.c (getdelta): Remove obsolete comment about not storing the
604         newphrases from the deltas, since we now do.
606 Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
607                           and Paul Eggert
609         * rcs.c (rcs_internal_lockfile): Clarify the comments about O_EXCL
610         and such matters.
612 Sat Nov  1 10:01:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
614         * rcs.c (RCS_delete_revs): Pass force_tag_match to RCS_settag.
615         * sanity.sh (basica-o2a, basica-o2b): Test for this.
617 1997-11-01  Peter Brandstrom  <d91-pbr@nada.kth.se>
619         * sanity.sh: Use ${username} more places.
621 Sat Nov  1 00:14:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
623         * rcs.c (rcs_internal_lockfile): Add comments about what we are
624         trying to accomplish here (versus what RCS tries to accomplish).
626         * rcs.c (RCS_parsercsfile_i): Clarify/expand comment about
627         the purpose of having both this and RCS_reparsercsfile.
628         (RCS_rewrite): Add comment about how this works.
630         * admin.c (admin_fileproc): Add comment about call to
631         RCS_fully_parse not RCS_reparsercsfile.
632         * rcs.h: Comment on what delta_pos field of struct rcsnode is.
634 Fri Oct 31 16:38:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
635                           and Abe Feldman
637         * client.c (update_entries): If UTIME_EXPECTS_WRITABLE, if
638         necessary change the file to be writable temporarily to set its
639         modification time.
641 Thu Oct 30 17:42:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
643         * admin.c (admin): Deal with new :: syntax for ranges.
644         * rcs.c, rcs.h (RCS_delete_revs): New arg inclusive (set for the old
645         behavior, clear to enable new code).
646         * admin.c (admin_fileproc): Set it if :, clear it if ::.
647         * sanity.sh (basica, head, branches, log): Add tests for this feature.
649         * admin.c (admin_fileproc): Clean up the error message which
650         happens if one of the RCS_* functions returns an error status; it
651         is confusing to say that "rcs" failed now that this is implemented
652         internally.
653         * sanity.sh (admin): Update accordingly.
655 Wed Oct 29 07:07:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
657         * sanity.sh (admin-22-o24): New test, tests that admin -o
658         correctly munged the deltatexts on a branch too.
660         * rcs.c (RCS_delete_revs): If we are deleting an entire branch,
661         delete the node in ->branches rather than setting the ->key to the
662         bogus value NULL.
663         * rcs.c (RCS_delete_revs): If "rev1" equals "branchpoint", then set
664         "before" to the revision on the trunk that we branch from.
665         * rcs.c (RCS_delete_revs): Don't set rev2 to revp->version (the
666         code is missing an xstrdup, but it doesn't matter because rev2
667         isn't used after this point).
668         * sanity.sh (binfiles2-o2 to binfiles2-o4): New tests, for this.
670 Tue Oct 28 19:30:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
672         * rcs.c (RCS_delete_revs): Restore code which passes rev2 to
673         RCS_getbranchpoint if rev1 is NULL; it still makes sense for the
674         non-trunk case.  Fixes admin-22-o22 in testsuite.
676         * sanity.sh (admin-18): Adjust to reflect "rcs failed" no longer
677         being suppressed by global -q option.
679         * rcs.c (RCS_delete_revs): If rev1 == NULL and rev2 is on the
680         trunk, handle it the same way we do everything else--by swapping
681         the two.  This replaces the code which tried to kludge what we
682         passed to RCS_getbranchpoint (which didn't work).
683         * sanity.sh (binfiles2-o1 to binfiles2-o4): New tests, for this fix.
684         * admin.c (admin_fileproc): Don't have -q global option suppress
685         "rcs failed" message.
687 1997-10-28  Jim Kingdon
689         * log.c (printlock_proc), rcs.c (putlock_proc): Prototype.
690         * rcs.c (rcs_internal_lockfile): Only try to call fchmod if
691         HAVE_FCHMOD is defined.
693 Tue Oct 28 10:27:03 1997  Ian Lance Taylor  <ian@cygnus.com>
695         * rcs.c (RCS_deltas): Don't use \? in string if __STDC__ is not
696         defined.
698         * rcs.c (make_file_label): Remove extraneous `+'.
700 Mon Oct 27 14:40:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
702         * status.c (status): Don't pass SEND_NO_CONTENTS to send_files.
704 Sat Oct 25 00:33:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
706         * rcs.c (RCS_delete_revs): Use : not - for range in error message.
708         * rcs.h: Add comment about '\0' in RCS fields.
710         * rcs.c (getdelta): Add comment about branches and next field
711         being mandatory.
713         * rcs.c (RCS_reparsercsfile, RCS_deltas), sanity.sh (reserved):
714         Reindent sections which were misindented as a result of recent
715         changes.
717 Fri Oct 24 10:22:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
719         * rcs.c (RCS_findlock_or_tip): Don't worry about file ownership
720         and nonstrict locking when returning the default branch or head.
721         The most conspicuous problem with the old code is that in the
722         error case it would examine rstat.st_uid when it had not been
723         set.  For a discussion of more fundamental reasons, see comment.
725         * admin.c (admin_fileproc): In handling -A, don't handle relative
726         pathnames differently from absolute pathnames.  See comment for
727         rationale.  If problem opening the file, give a nice error not a
728         coredump.
729         * sanity.sh (admin-19a-admin, admin-19a-log, admin-19a-fix):
730         New tests, test for traditional "cvs admin -A" behavior with
731         relative pathnames.
732         * sanity.sh (admin-19a-nonexist): Test for the core dump fix.
733         * sanity.sh (admin-22-o1): Look for ${PROG} not cvs.
735         * sanity.sh (reserved-16): Remove commitinfo change with "cvs
736         commit" not "cvs admin -o".  In addition to commit being The Right
737         Thing on general principles, cvs admin -o doesn't work because it
738         doesn't rebuild the administrative file database.
740         * update.c (patch_file): If the first revision does not exist in
741         the RCS file, fall back to sending entire file.  Fixes
742         admin-22-o15 in make remotecheck.
744 1997-10-23  enami tsugutomo  <enami@but-b.or.jp>
746         * rcs.c (RCS_checkin): Unlink temporary files stored in variable
747         `tmpfile' and `changefile'.
749 Wed Oct 22 12:16:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
751         * rcs.c (rcs_lockfilename): Allocate enough memory for terminating
752         '\0'.
754         * admin.c (admin_fileproc): Don't support '-' for ranges in "cvs
755         admin -o".
756         (admin): Adjust comment.
758         * rcs.h (RCSVers): New field other_delta.
759         * rcs.c (free_rcsvers_contents): Also free other_delta.
760         (getdelta): Read newphrases from deltas into other_delta field.
761         (putdelta): Write those newphrases.
762         * sanity.sh (rcs-8a): New test, for this fix.
763         * admin.c (admin_fileproc): If "-b" without argument, then set
764         branch to NULL, not "" (uncovered by rcs-8a test).
765         * rcs.c (putrcsfield_proc): Add comment about how we (mis)handle
766         values in newphrases.
768         * sanity.sh (reserved): Instead of looking for rcslock.pl in CVS
769         distribution, just use our own equivalent.
771         * rcs.c (RCS_rewrite): Call ferror before fclose to avoid "Invalid
772         argument" warnings.
774 Mon Oct 20 00:30:16 1997  Tim Pierce  <twp@twp.tezcat.com>
776         [I removed a ChangeLog entry for a change to sanity.sh (editor),
777         because the actual change was not made.  With this change, CVS no
778         longer runs RCS.  I'll be checking in my cleanups shortly. -kingdon]
780         Librarify `ci'.
781         * rcscmds.c, cvs.h (RCS_checkin): Removed.
782         * rcs.c, rcs.h (RCS_checkin, RCS_getbranchpoint, RCS_addbranch,
783         RCS_findlock_or_tip): New functions.  RCS_checkin completely
784         rewritten to eliminate RCS 5.7; change `rcs' parameter from string
785         to RCSNode, so we can update RCSNode without re-reading from
786         disk.
787         * checkin.c (Checkin): Updated RCS_checkin caller, moved RCS_parse
788         call to before RCS_checkin.
789         * import.c (add_rev): Updated caller.
790         * commit.c (remove_file): Updated caller.
791         (checkaddfile): Updated caller.  Parse `rcsfile' after
792         calling add_rcs_file.  Free `rcsfile' instead of asserting it to
793         be NULL.
795         Librarify `rcs'.
796         * rcscmds.c, cvs.h (RCS_exec_settag, RCS_exec_deltag,
797         RCS_exec_setbranch, RCS_exec_lock, RCS_exec_unlock): Removed.
799         * rcs.c (RCS_settag): Rewritten to eliminate RCS 5.7.
800         * commit.c (checkaddfile): Call RCS_rewrite after calling RCS_settag.
801         * import.c (add_tags): Same.
802         * rtag.c (rtag_fileproc): Same.
803         * tag.c (tag_fileproc): Same.
805         * rcs.c (RCS_deltag): Rewritten to eliminate RCS 5.7.  Remove
806         `quiet' parameter, since this function no longer prints any output.
807         * commit.c (remove_file): Update caller.  Also call RCS_rewrite
808         after RCS_deltag.
809         * rtag.c (rtag_delete): Same.
810         * tag.c (tag_fileproc): Same.
812         * rcs.c (RCS_setbranch): Rewritten to eliminate RCS 5.7.
813         * commit.c (remove_file): Call RCS_rewrite after calling RCS_setbranch.
814         (fixbranch): Same.
815         (lock_RCS): Same.
817         * rcs.c (RCS_lock): Rewritten to eliminate RCS 5.7. Change third
818         arg to mean `quiet' and not `noerr', permitting admin_fileproc to
819         run RCS_lock verbosely.
820         * commit.c (lock_RCS): Update callers; call
821         RCS_rewrite after RCS_lock.
822         (remove_file): Same.  Call RCS_lock quietly.
823         * import.c (add_rev): Same.  Do not print `fork failed' error
824         message, since we're no longer forking.
826         * rcs.c (RCS_unlock): Rewritten to eliminate RCS 5.7.  Change
827         `noerr' arg to mean `quiet', permitting admin_fileproc to run
828         RCS_unlock verbosely.  Use notify_do when breaking another user's
829         lock.  Include "edit.h" for notify_do prototype.
830         * checkin.c (Checkin): Update caller; use RCS_rewrite after RCS_unlock.
831         * commit.c (unlockrcs): Same.
832         * import.c (add_rev): Same.
834         * rcs.c, rcs.h (RCS_getlocks, RCS_addaccess, RCS_delaccess,
835         RCS_getaccess, RCS_delete_revs): New functions.
836         (expand_keywords, RCS_lock, RCS_unlock): Use RCS_getlocks.
837         * log.c (log_fileproc, log_version): Call RCS_getlocks.  Don't add
838         bogus ";locker" nodes to RCSVers nodes -- walk lock list with
839         printlock_proc.
840         (printlock_proc): New function.
842         * admin.c (admin_fileproc): Largely rewritten: call internal RCS
843         library functions instead of forking RCS processes.
844         (admin, admin_fileproc): Obsolete -V option.
845         (struct admin_data): Remove `version' member.
846         * sanity.sh (admin-24): Remove -V test case.
848         New functions for reading and writing RCS files.
849         * rcs.h (struct deltatext, Deltatext): New types.
850         (struct rcsversnode): New members `text' and `outdated'.
851         (struct rcsnode): New members `access', `locks', `strict_locks',
852         `comment', and `desc'.
853         * rcs.c (RCS_reparsercsfile, expand_keywords): Use new RCSNode members.
854         (free_rcsnode_contents): Free them.
855         * log.c (log_fileproc): Use new RCSNode members instead of ->other.
857         * rcs.c (getdelta, RCS_getdeltatext, freedeltatext, do_locks,
858         RCS_putadmin, RCS_putdtree, RCS_putdesc, putdelta,
859         putrcsfield_proc, putsymbol_proc, RCS_copydeltas, putdeltatext,
860         RCS_rewrite, getrevnum, rcs_internal_lockfile,
861         rcs_internal_unlockfile, rcs_lockfilename): New functions.
863         (RCS_reparsercsfile): Use getdelta, making sure fp is positioned
864         correctly before calling it.  Skip `head' and `branch' nodes: we
865         have already parsed them, and they were being added incorrectly to
866         rcs->other.  Do not signal error if the RCS file has an empty
867         delta tree; this made it impossible for RCS_checkin to perform an
868         initial checkin.  Remove `all' parameter; always store all RCS
869         fields.
870         (RCS_fully_parse, RCS_gettag, RCS_getbranch, RCS_getdate,
871         RCS_getdatebranch, RCS_getrevtime, RCS_symbols, translate_symtag,
872         RCS_isdead, RCS_getexpand, RCS_checkout, annotate_fileproc):
873         Update all callers to remove `all' parameter.
875         (getrcskey): Do not append trailing whitespace to a value.  This
876         corrupted some log fields and wrecked some sanity.sh test cases.
878         (free_rcsvers_contents): New function.
879         (rcsvers_delproc): Call it.
881         * rcs.h (NODELTA): Removed symbol; now obsolete (since RCSNodes
882         do not go stale).
883         * import.c (add_rev): Removed NODELTA reference.
884         * rcs.c (RCS_reparsercsfile, RCS_checkout, RCS_settag, RCS_deltag,
885         RCS_setbranch, RCS_lock, RCS_unlock, RCS_deltas): Removed NODELTA
886         references.
888         Miscellaneous changes to support RCS librarification and fix some bugs.
889         * subr.c, cvs.h (line2argv): Add `sepchars' argument.
890         * modules.c (cat_module, admin_fileproc): Update all callers.
892         * subr.c, cvs.h (compare_revnums, increment_revnum): New functions.
893         (make_message_rcslegal): Strip whitespace from end of
894         lines and end of string, a la `cleanlogmsg' in RCS 5.7.
895         (get_file): Terminate buf with \0, extending it if
896         necessary.  Read from stdin if `name' arg is NULL.
897         * admin.c (admin_fileproc): Call get_file to read -t arg from stdin.
899         * error.c, error.h (rcserror): New function, used everywhere.
901         * hash.c, hash.h (addnode_at_front): New function.
902         * rcs.c (RCS_settag, RCS_lock): Call it.
904         * import.c, cvs.h (expand_at_signs): Make extern.
905         * rcs.c (putrcsfield_proc, RCS_putadmin, RCS_putdesc,
906         putdeltatext): Call it.
908         * rcs.c (make_file_label): Use last_component to get file's basename.
910         * sanity.sh (srcdir): New variable.
911         (rcs-7): Remove newphrase warning, no longer produced by CVS.
912         (rcs-8): Permit random whitespace around newphrase fields.
913         (admin-22): New test cases for -o options: admin-22-o{1..23}.
914         (reserved): New test cases for rcslock.pl: reserved-{8..16}.
916 Tue Oct 21 16:48:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
918         * tag.c (tag_check_valid): Add comment about locking or lack
919         thereof.
921 1997-10-20  Jim Kingdon  <kingdon@harvey.cyclic.com>
923         * version.c: Change version number to 1.9.19.
925 1997-10-19  Jim Kingdon
927         * Version 1.9.18.
929 Wed Oct 15 15:21:43 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
931         * sanity.sh (username): Add '-' to characters allowed in user name.
933         * rcscmds.c (diff_exec): Remove item about external diff
934         programs.  It doesn't really belong here now that diff is
935         librarified and TODO #191 now mentions this.
937         * checkout.c (checkout_proc): Add comment about assuming '/' is
938         the only path separator.
939         * options.h.in: Fix thinko (CVS/Repository -> CVS/Root).
941 Mon Oct 13 22:46:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
943         * commit.c (commit): Add comment about CVS_BADROOT and command
944         other than "commit".
946 1997-10-11  Noel Cragg  <noel@swish.red-bean.com>
948         * options.h.in: RELATIVE_REPOS has been checked for bitrot -- it
949         now works again.  Change the comment before the #define to say
950         that we'll be switching to it soon.
952         * sanity.sh (basicb-1, basicb-1a): update dotest strings to match
953         no matter if we're running with RELATIVE_REPOS defined or not.
954         (basicb-9b, basicb-9c): same.
956         * sanity.sh (basicb-9b, basicb-9c): modified tests, since the
957         checkout.c fix changes the way this test module is checked out.
958         (basicb-9d, basicb-9e, basicb-9f): new tests, same.
959         (basicb-18): modify test, same.
960         (cvsadm): new set of exhaustive tests to check the contents of
961         CVS/Root and CVS/Repository files under various conditions.  As a
962         side effect, it tests the behavior of the "-d" flags (command line
963         and modules file).
964         (modules3-7e through modules3-7h): removed, since these tests were
965         a small subset of what is tested in the new cvsadm section.
966         (modules-1b, modules-1c): same.
967         (modules-2b, modules-2c): same.
968         (modules-3b, modules-3c, modules-3e, modules-3f): same.
970         * create_adm.c (Create_Admin): be a bit more verbose when using
971         trace mode.
973         * checkout.c (checkout_proc): rewrote the code that sets the where
974         variable and the code that matches directory names with repository
975         directories.  This fixes a long-standing bug in CVS.  (It used to
976         be the case that "cvs co -d foo <mod1> <mod2>" would not properly,
977         where <mod1> and <mod2> where defined in the modules file.  While
978         the first module would be checked out correctly, the second would
979         be checked out under the name of the directory to which the module
980         referred rather than the module name!).  This fix also allows us
981         to check out things into directories that are more than one deep
982         (e.g. "cvs -d foo/bar/baz co blah" will now work).
983         (checkout): remove code that performed a CHDIR if the
984         number of arguments specified was greater than one, since it's no
985         longer necessary.  Also remove the code that prevented us from
986         doing "cvs co -d <dir1>/<dir2>" without <dir1> existing, since
987         checkout_proc handles things correctly now.
989         * cvs.h: fix typo.
991         * rtag.c (rtag): reformat so that we don't run over 80 characters
992         per line.
993         (rtag_dirproc): same.
995         * sanity.sh: change all old test cases to use pass and fail
996         functions rather than doing some combination of echo and exit
997         themselves.
999         * commit.c (commit_direntproc): remove the "warm fuzzy" -- this
1000         code never gets called when running in client/server mode, and we
1001         should have CVS' output match as much as possible between the two
1002         modes.  Moreover, there is no analogous place to put this same
1003         message when we're running in c/s mode.
1004         (find_direntproc): print the same "fuzzy" as in check_direntproc
1005         so that local and c/s mode have the same messages.
1006         * sanity.sh (187a3): update test case to reflect the above.
1008 Thu Oct  9 10:57:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1010         * parseinfo.c (parse_config): Add comment about compatibility
1011         issues with adding keywords.
1013 Wed Oct  8 16:40:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1015         * recurse.c (do_dir_proc), commit.c (check_direntproc,
1016         commit_direntproc, find_dirent_proc): If this
1017         directory doesn't exist, skip it.
1018         * diff.c (diff_dirproc): Reindent.
1019         * sanity.sh (deep-4b0a, deep-4b0b): Check for this fix.
1021 Thu Sep 26 16:30:00 1997  Larry Jones <larry.jones@sdrc.com>
1022         and Jim Kingdon  <kingdon@harvey.cyclic.com>
1024         * update.c (checkout_file): Don't set timestamp in noexec mode.
1025         * vers_ts.c (Version_TS): Add comment about ignoring errors from
1026         utime.
1027         * sanity.sh (conflicts3): New tests, for this fix.
1029 Fri Oct  3 09:47:04 1997  Noel Cragg  <noel@swish.red-bean.com>
1031         * sanity.sh (168): use PROG instead of CVSBASE, since they are
1032         equal.
1033         (importb-2): refer to PROG instead of "cvs" in error message.
1035         * add.c (add): use PROGRAM_NAME in the error message rather than
1036         "cvs".
1037         * classify.c (Classify_File): same.
1038         * commit.c (find_fileproc): same.
1039         * sanity.sh: change all add notification messages to refer to PROG
1040         rather than "cvs".  Fixed nasty quoting in several places at the
1041         same time, replacing older "'command'" forms with newer
1042         ".command." for simplicity.
1044 Sat Sep 27 01:37:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1046         * sanity.sh (rcslib-merge-8): Accept "P file1" as well as "U file1".
1048 Fri Sep 26 22:24:10 1997  Noel Cragg  <noel@swish.red-bean.com>
1050         * create_adm.c (Create_Admin): assign our duplicate pointer `cp'
1051         after the xrealloc of `reposcopy' because the latter might have
1052         changed addresses.
1054 Fri Sep 26 14:25:59 1997  Tim Pierce  <twp@twp.tezcat.com>
1056         * run.c (call_diff): Don't reset optind; this is done by diff_run now.
1058         Librarify rcsmerge/diff3.
1059         * rcscmds.c, cvs.h (RCS_merge): Rewritten from scratch: check out
1060         selected files and diff3 them.  Take new `rcs' and `workfile'
1061         arguments, so we can resolve symbolic tags and manipulate the
1062         working file.
1063         * update.c (merge_file, join_file): Update RCS_merge calls.
1064         * run.c, cvs.h (call_diff3): New function.
1066         * sanity.sh (rcslib): New tests, rcslib-merge-{1..13}.
1068 Fri Sep 26 22:59:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1070         * create_adm.c (Create_Admin): Fix thinko in Noel's change: keep
1071         track of the originally allocated "cp" and free it, rather than
1072         calling free on a pointer which may point halfway into the allocation.
1073         * repos.c (Sanitize_Repository_Name): Per HACKING, assert that
1074         repository != NULL, rather than just silently returning if NULL.
1075         Reindent a line.
1077 Fri Sep 26 15:40:00 1997  Noel Cragg  <noel@swish.red-bean.com>
1079         * sanity.sh (modules): add tests modules-[123]* that make sure the
1080         administrative files get rebuilt in various cases.
1082         * add.c (combine_dir): removed function, since we no longer need
1083         to worry about stripping the "." path element out.  Changed the
1084         two callers to simply concatenate their two arguments.
1086         * recurse.c (do_dir_proc): don't bother trying to strip off "." in
1087         the repository name since the below changes fix that behavior --
1088         simply concatenate the repository and directory names together.
1090         * checkout.c (checkout_proc): sanitize the repository name after
1091         constructing it (we may create "/path/to/repos/.", but we don't
1092         want that to be passed around).  Remove the code that tacks on
1093         "/." when constructing top_repository, since the below changes fix
1094         that behavior.  Added comments to the part of this function that
1095         builds administrative files.
1097         * sanity.sh (basicb): now that the below weirdness is fixed, the
1098         extra "." path element in test basicb-0c doesn't appear when a
1099         top-level file is checked out.  Remove it from the expect string.
1101         * create_adm.c (Create_Admin): now that the repository name isn't
1102         floating around with "." as the last path element, make creation
1103         of the top-level administrative files a special case -- save the
1104         repository name as "/path/to/repos/."  Why?  I considered not
1105         including the "." but didn't know how it would affect the remote
1106         protocol when RELATIVE_REPOS was defined (do we have a way of
1107         sending "" via the protocol?).  After I make sure that the
1108         RELATIVE_REPOS patches still work, I'll check the "" possibility
1109         so we don't have to have a this special case.
1111         * repos.c (Sanitize_Repository_Name): new function that removes
1112         (if present) the trailing slash and "." component from the
1113         repository name.  Many routines break if we don't guarantee this.
1114         See the comment before the function for complete information.
1115         (Name_Repository): call Sanitize_Repository_Name before returning
1116         the value.
1117         * cvs.h: add prototype for Sanitize_Repository_Name.
1119 Fri Sep 26 14:19:25 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1121         * cvs.h (CVS_CMD_USES_WORK_DIR): Fix comment (the sense of the
1122         flag is not reversed from what it would seem; when I thought so it
1123         was because I was misreading the lookup_command_attribute code).
1125 Thu Sep 25 23:14:47 1997  Noel Cragg  <noel@swish.red-bean.com>
1127         * parseinfo.c (Parse_Info): fix typo in the trace message.
1129 Thu Sep 25 14:22:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1131         * build_src.com: Also link with diff.olb.
1133         * main.c (Make_Date): If gmtime returns NULL, try localtime.
1135 Wed Sep 24 19:18:40 1997  Noel Cragg  <noel@swish.red-bean.com>
1137         * checkout.c (checkout): fix typo in comment.
1139 Wed Sep 24 08:31:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1141         * update.c (patch_file): Revise comments about diff -a now that
1142         diff is librarified.
1144 Sun Sep 21 21:28:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1146         * run.c (call_diff): Sleep for a second, in hopes of helping with
1147         out of order bugs.
1149 Sat Sep 20 07:19:18 1997  Tim Pierce  <twp@twp.tezcat.com>
1151         Integrate diff library into CVS.
1152         * run.c, cvs.h (call_diff): New function.
1153         * rcscmds.c (diff_exec, diff_execv): Get diffs from call_diff
1154         instead of running diff as a subprocess.
1155         * Makefile.in (cvs): Add ../diff/libdiff.a.
1157         * diff.c (longopts, diff): Use 131 for --ifdef, fixing Jim's thinko
1158         (using 147 for both --side-by-side and --ifdef).
1160         * sanity.sh (rcslib): Added tests rcslib-diffrgx-*, to test
1161         handling of regex diff options.
1163 1997-09-21  Jim Kingdon  <kingdon@harvey.cyclic.com>
1165         (Note that this requires that DIFF support -L.  I'll be checking
1166         in a fix to that in a moment, but I wanted separate checkins in
1167         case that helps with clarity).
1168         Tweaks to rcsdiff librarification:
1169         * sanity.sh (rcslib): Change "cvs" to "${PROG}" and subcommand
1170         names (e.g. "add") to "[a-z]*".  Former should deal with ${testcvs}
1171         being "cvs.old" or something; latter fixes make remotecheck.
1172         * rcs.c (make_file_label): Take into account strlen (rev) when
1173         allocating space.  Removes a FIXME and probably fixes a buffer
1174         overrun security hole.
1175         * rcscmds.c (RCS_exec_rcsdiff): Remove #if 0'd code to call
1176         rcsdiff.  Tim says he has compared the new code with rcsdiff code
1177         and is confident that the behavior is preserved, so we need to
1178         nuke the comment which says this has not been done.  #if 0 isn't
1179         really a very good way to document the way it used to work anyway;
1180         the old code is still in CVS.
1181         * diff.c: Add comment about rcsdiff options that we don't support,
1182         which Tim had sent in email.  Remove -T and -y, as the
1183         previous meaning had been very confused.
1185 1997-09-21  Tim Pierce  <twp@xochi.tezcat.com>
1187         Librarify rcsdiff.
1189         * diff.c (have_rev1_label, have_rev2_label): New variables.
1190         (diff): Generate file labels with make_file_label if necessary;
1191         pass labels, revisions and working file name to RCS_exec_rcsdiff.
1192         * rcscmds.c, cvs.h (RCS_exec_rcsdiff): Completely revised function
1193         to eliminate rcsdiff dependency, based on patch from JimK.
1194         (diff_execv): New function, to exec diff with explicit -L args.
1195         * rcs.c, rcs.h (make_file_label): New function.
1196         (RCS_output_diff_options): New function.
1197         * sanity.sh (rcslib): New test.
1199 Fri Sep 19 15:08:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1201         * rcs.c (RCS_nodeisbranch): Assert that RCS is non-NULL.
1202         * commit.c (remove_file), rcs.c (RCS_getversion), rtag.c
1203         (rtag_fileproc), status.c (status_fileproc, tag_list_proc), tag.c
1204         (tag_fileproc): Call RCS_nodeisbranch not RCS_isbranch
1205         in contexts where we know the RCS argument is non-NULL.
1207         * commit.c (find_fileproc): Pass tag not NULL to Version_TS for
1208         the tag.
1209         * vers_ts.c (Version_TS): Improve (somewhat) the introductory
1210         comment.
1211         * sanity.sh (editor): New test editor-9 tests for above fix.
1212         Renumber/tweak surrounding tests to fit.
1214         * log.c (log_version): If p->data is NULL, it is an empty log
1215         message.
1216         * sanity.sh (rcs-14): New test, tests for above fix (previously
1217         this was a coredump).
1219 Thu Sep 18 08:45:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1221         * sanity.sh (rcs-7): Fix stupid ${TESTDIR} omission.
1223 Wed Sep 17 16:27:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1225         * sanity.sh (rcs): New tests rcs-5 through rcs-13 test for
1226         getdate.y fix (rcs-12 and rcs-13 both failed with the buggy
1227         getdate.y).
1229 Tue Sep 16 00:07:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1231         * sanity.sh (editor): Clean up first-dir at end of test.
1233         * sanity.sh (editor): New tests test do_editor.
1235         * commit.c (commit): For the client, if we got the log message
1236         from do_editor and there was an error, don't toss the message.
1238 Mon Sep 15 14:27:54 1997  martin.sjoelin@ubs.com
1239         and Jim Kingdon  <kingdon@harvey.cyclic.com>
1241         * rcs.c (RCS_checkout): fwrite in bite-size pieces, not the whole
1242         file in one fwrite.
1244 Sun Sep 14 12:23:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1246         * commit.c (check_fileproc): If the file has "conflict
1247         indicators", spit a warning and proceed with the checkin.
1248         * sanity.sh (conflicts): Adjust tests conflicts-132,
1249         conflicts-status-3, conflicts-133, and conflicts-status-4
1250         for new behavior.
1252 Fri Sep 12 11:12:34 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1254         * add.c, admin.c, checkin.c, checkout.c, classify.c, commit.c,
1255         create_adm.c, cvsrc.c, diff.c, entries.c, find_names.c, hash.c,
1256         import.c, lock.c, log.c, logmsg.c, main.c, modules.c, myndbm.c,
1257         no_diff.c, parseinfo.c, patch.c, rcs.c, rcscmds.c, recurse.c,
1258         remove.c, repos.c, root.c, rtag.c, status.c, subr.c, tag.c,
1259         update.c, vers_ts.c, hash.h, rcs.h, options.h.in: Change "CVS 1.4
1260         kit" to "CVS source distribution".
1262         * sanity.sh: Comment out call to "whoami".
1264 Thu Sep 11 10:09:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1266         * commit.c (classify_file_internal): Add comment about saving
1267         quiet vs. saving really_quiet.
1269         * sanity.sh (newb-123j0): Use two regexps instead of assuming that
1270         expr has "\(", "\|", and "\)".  If we want to require the latter,
1271         we should check for it up front, rather than let people get
1272         halfway through and wonder why the test failed.
1274 Tue Sep  9 19:22:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1276         * expand_path.c (expand_path): If GETPWNAM_MISSING is defined,
1277         just give an error instead of calling getpwnam.
1279         * subr.c (getcaller): If SYSTEM_GETCALLER is defined, call it
1280         instead of all the getlogin/getpwuid/etc.
1281         * wrapper.c (wrap_setup): Call get_homedir not getpwuid.
1283 Mon Sep  8 17:54:14 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1285         * sanity.sh (basicc): Change ls -1 to echo *; according to
1286         larry.jones@sdrc.com, ls -1 isn't portable.
1288 Sun Sep  7 07:45:35 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1290         * sanity.sh (basic2): In test basic2-64, match usernames with
1291         ${username}.
1293         * root.c: Reindent a few things.
1294         * root.c, cvs.h (same_directories): Remove.  Never used,
1295         portability hassle.
1297         * add.c (add_directory): When checking for CVSADM, call fncmp not
1298         strcmp.  I actually suspect this code doesn't do much these days,
1299         but fncmp clearly will make more sense than strcmp.
1301         * rtag.c (rtag_usage), tag.c (tag_usage): Reword to hopefully be
1302         clearer that -r takes either numeric or symbolic revision.
1304         * ignore.c (ign_dir_add, ignore_directory): Reindent.  Tweaks to
1305         comments.
1307         * update.c (checkout_file): Only ignore existence_error from
1308         unlink_file_dir, not all errors.
1310         * checkout.c (safe_location): Check for errors from xgetwd.
1311         * create_adm.c (Create_Admin): Remove call to xgetwd; it is just
1312         debugging code anyway and it wasn't checking for errors.
1314         * sanity.sh: Add comment about default value for TESTDIR.
1316         * server.c (serve_log): Change "cvslog" to "log".  This
1317         (accidental, I presume) error had made it impossible for anonymous
1318         users to run "cvs log".
1320         * classify.c (sticky_ck): Change to take an finfo argument rather
1321         than several arguments taken from there.  Cleans up the way the
1322         calling convention had depended on SERVER_SUPPORT.
1323         (Classify_File): Change callers.
1325         * version.c: Change version number to 1.9.17.
1327         * Version 1.9.16.
1329         * recurse.c (do_dir_proc): In combining repository and dir, omit
1330         trailing "/." from repository.
1331         * sanity.sh (modules3): Adjust test modules3-4 so we test for
1332         this fix (this is not just cosmetic; the bug prevented the
1333         "Rebuilding administrative file database" from happening).
1334         modules2 already tests the "co CVSROOT/modules" usage.
1336         * checkout.c (checkout_proc): When building top-level CVSADM
1337         directory, continue the process of walking up the repository one
1338         more level, rather than putting in the same repository as for the
1339         first-level directory.
1340         * sanity.sh: Adjust tests basicb-1b, basicb-9b, modules3-7f,
1341         toplevel-9, and toplevel-11 to test for this fix.
1343         (For reference, this takes CVS's text segment from 344460 to
1344         344140 bytes.  I know, this may seem unimportant, but it is so
1345         unusual for programs to shrink and I think it is so cool when they
1346         do without losing functionality/clarity/etc).
1347         * checkout.c, cvs.h (emptydir_name): New function.
1348         * checkout.c (checkout, checkout_proc), modules.c (do_module):
1349         Call it instead of duplicating the code to do that.
1351         * sanity.sh (basicc): Clean up first-dir at end of test.
1353 Sat Sep  6 09:48:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1355         * sanity.sh (join): Fix cut and paste error in join-28
1356         (/home/kingdon/... -> ${TESTDIR}).
1358         * recurse.c (start_recursion): If there is no CVSADM and no
1359         subdirectories, give an error.
1360         * sanity.sh (basicc): New tests, test for this fix.
1362         * sanity.sh (join): New tests join-25 through join-29 test merging
1363         from one branch to a different branch.
1365         * release.c: In comment about CVSROOTADM_IGNORE, also mention
1366         comment just added to entries.c.
1367         * entries.c: Expand this comment, especially the part about
1368         CVS/Template.
1370         Keep track of what revisions CVS/Base correspond to:
1371         * cvs.h (CVSADM_BASEREV, CVSADM_BASEREVTMP): Added.
1372         * entries.c, cvs.h (base_register, base_deregister, base_get,
1373         base_walk): New functions.
1374         * edit.c (edit_fileproc): Call base_register when setting up CVS/Base.
1375         (unedit_fileproc): When taking a file out of CVS/Base, put its
1376         revision back into entries, and base_deregister it.
1377         * sanity.sh (watch4): New tests watch4-10 through watch4-18 test
1378         for above fix.
1380 Fri Sep  5 09:14:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1382         * client.c: Only declare start_rsh_server if we are going to
1383         define it (!NO_EXT_METHOD).
1385         * subr.c, cvs.h (check_numeric): New function.
1386         * admin.c (admin): Call it.
1387         * sanity.sh (admin): New tests admin-10a and admin-10b test for fix.
1389 Thu Sep  4 15:55:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1391         * sanity.sh (binwrap2): New tests, test for the ability to specify
1392         all files are binary except certain patterns.
1394         * sanity.sh (modules3): New tests modules3-16 and modules3-17 test
1395         for another behavior involving '/' in a module name.
1397 Sun Aug 31 12:03:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1399         * add.c (add): Remove checks for '/' in pathnames.
1400         (add): Move code which handles entries and repository inside loop,
1401         since these now might be different for each argument.  Add code to
1402         set finfo.update_dir, finfo.file, and finfo.fullname appropriately
1403         even if pathname contains '/'.  Replace user variable with
1404         finfo.file or finfo.fullname, depending on which is meant.  chdir
1405         into update_dir for each argument.  Likewise for the client code
1406         which creates directories.
1407         (add_directory): Replace arguments with a single finfo argument.
1408         Replace dir with finfo->fullname as needed.
1409         (add): Update call to add_directory.
1410         * client.c, client.h (send_a_repository): No longer static.
1411         * sanity.sh (errmsg2): Adjust tests to test for '/' in pathname.
1413         * sanity.sh (errmsg2): New tests errmsg2-13 through errmsg2-16
1414         test the status quo with respect to '/' in cvs add argument.
1416 Sat Aug 30 17:37:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1418         * run.c (run_popen): Add comment on return value.
1419         * release.c (release): Check for NULL return from popen.
1421 Fri Aug 29 17:49:20 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1423         * client.c (get_server_responses): Add comment about "ok^M".
1425 Thu Aug 28 13:35:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1427         * edit.c (edit_fileproc): If file doesn't exist, give an error.
1428         * sanity.sh (devcom2): Tests devcom2-12 through devcom2-17 test
1429         for above fix.
1431 Tue Aug 26 16:42:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1433         * subr.c (xmalloc): Reword error message to clarify that memory,
1434         not disk space or some other resource, is in question.
1436 Tue Aug 26 01:04:48 1997  Steve Ralston <sralston@ppdpost.ks.symbios.com>
1437         and Jim Kingdon  <kingdon@harvey.cyclic.com>
1439         * add.c (add_directory): In allocating message, also allocate
1440         enough for tag and date related text.
1442 Tue Aug 26 01:04:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1444         * update.c (update_dirent_proc): Use update_dir not dir in "new
1445         directory" message.
1446         * find_names.c (find_dirs): Skip CVSNULLREPOS.
1447         (Find_Directories): Add comment about find_dirs skipping CVSATTIC
1448         and CVSLCK in working directories.
1449         * sanity.sh (basicb): New tests basicb-edir-* test for find_dirs
1450         fix.  Change other tests to test that Emptydir is not special in
1451         non-CVSNULLREPOS contexts.
1453 Sun Aug 17 14:44:57 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1455         * import.c (add_rcs_file): Add comment about -k overriding wrappers.
1457 Sat Aug 16 18:09:05 1997   Martin Sjoelin <martin.sjoelin@ubs.ch>
1458         and Jim Kingdon  <kingdon@harvey.cyclic.com>
1460         * import.c (add_rcs_file): Before opening the input file
1461         when importing, if options is binary, open the file in
1462         binary mode.
1464 1997-08-16  enami tsugutomo  <enami@ba2.so-net.or.jp>
1466         * sanity.sh (mcopy): Unset CVSWRAPPERS last of all.
1468 Fri Aug 15 11:11:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1470         * add.c (add_directory): Copy default file attributes from the
1471         parent directory to the directory we are creating.
1472         * fileattr.h, fileattr.c (fileattr_getall, fileattr_setall):
1473         New functions, in support of above.
1474         * fileattr.c (fileattr_free): Add comment about fileattr_write
1475         maybe not clearing attrs_modified.
1476         * sanity.sh (watch4): New test, tests for above fix.
1478 Thu Aug 14 11:08:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1480         * update.c (merge_file, join_file): If wrap_merge_is_copy, treat
1481         files as nonmergeable (as we had been treating binary files).
1482         (join_file, update_fileproc): Remove previous wrap_merge_is_copy
1483         cruft.
1484         * sanity.sh (mcopy): New tests, test for above fix.
1485         (binfiles2): New tests binfiles2-9a-* correct an oversight.
1486         (binfiles, binfiles2): Adjust to reflect wording change from
1487         "binary file" to "nonmergeable file".
1488         (mwrap): Adjust tests mwrap-8 through mwrap-10 for new behavior.
1490         * main.c (main): Reword copyright notices to include the latest
1491         year, to refer to "other authors" in addition to the ones listed,
1492         and to be more concisely formatted.
1494 Wed Aug 13 13:50:00 1997  Larry Jones  <larry.jones@sdrc.com>
1496         * sanity.sh: Replace hard-coded directory with ${TESTDIR}, add
1497         join3 to default tests
1499 Wed Aug 13 11:42:24 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1501         * rcscmds.c: Adjust comment to reflect progress on removing RCS
1502         execs outside this file.
1504 Mon Aug 11 10:14:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1506         * vers_ts.c (Version_TS): If vers_ts->vn_rcs == NULL, skip setting
1507         modification time in server case as well as local case.
1508         * server.c (server_modtime): Add assertion to clarify that caller
1509         must assure that vers_ts->vn_rcs != NULL.
1510         * sanity.sh (join3): Add file "file2" to test for above fix.
1512         * modules.c (save_d): When parsing -s option, don't assume that
1513         we will hit a space before we hit the '\0'.
1514         (struct sortrec): Document allocation policies (status quo except
1515         status field is now malloc'd).
1516         (cat_module): No longer need to set the '\0' at the end of the
1517         status field back to ' ', as it no longer shares storage with the
1518         rest field.
1519         * sanity.sh (modules): Add "statusmod" to test for above fix.
1521 Sun Aug 10 12:18:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1523         * sanity.sh: Remove TODO item about more keyword expansion tests.
1524         The keyword test and others cover it pretty well, and such an item
1525         isn't useful unless it is specific.
1527         * sanity.sh (importb): New tests test "cvs import -b".
1529         * mkmodules.c: Update comment with more reasons why having
1530         CVSROOT/passwd be a regular administrative file would be a Bad
1531         Idea.
1533         * server.c (switch_to_user): Add comment about checking for errors
1534         from setuid and friends.
1536 Wed Aug  6 13:48:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1538         * main.c (main): Add comment about errors writing CVS/Root in
1539         need_to_create_root code.
1541 Tue Aug  5 22:05:20 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1543         * entries.c (write_entries): If trouble writing Entries.Backup,
1544         make it a warning not an error.
1546 Wed Jul 30 08:42:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1548         * parseinfo.c (parse_config): If AUTH_SERVER_SUPPORT is not
1549         defined, don't set system_auth.
1551         * version.c: Change version number to 1.9.15.
1553         * Version 1.9.14.
1555         * create_adm.c, cvs.h (Create_Admin): If new argument WARN is set,
1556         then make creating the CVS directory itself a warning not a fatal
1557         error.  New return value indicates whether we did this.
1558         * checkout.c (build_one_dir), client.c (call_in_directory):
1559         Pass WARN as one.
1560         * add.c, client.c, checkout.c, modules.c, update.c: Pass WARN as
1561         zero for all other Create_Admin callers.
1562         * sanity.sh (toplevel): New test toplevel-12 tests for this fix.
1563         * filesubr.c (mkdir_if_needed): Also check EACCES/isdir.  Needed
1564         to make toplevel-12 test work.
1566         * sanity.sh (toplevel): New test toplevel-11 and friends test for
1567         another variation of the toplevel-9 bug.
1569 Tue Jul 29 12:11:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1571         * login.c (construct_cvspass_filename): Revert this change.  The
1572         main reason is procedural; Karl is not a current CVS developer.
1573         The other thing is that the new text doesn't say anything about
1574         HOMEDRIVE and HOMEPATH.
1576 Tue Jul 29 11:36:22 1997  Karl Fogel  <kfogel@harvey.cyclic.com>
1578         * login.c (construct_cvspass_filename): error message informs user
1579         she may need to set HOME environment variable by hand.
1581 Sun Jul 27 15:36:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1583         * admin.c (admin): Remove comment "XXX send -ko too with i = 0".
1584         It turns out to be a description of a bugfix which was applied on
1585         8 Oct 1995, and never should have been in a comment in the first
1586         place.
1588         * admin.c (admin, admin_fileproc): Parse options ourself rather
1589         than blindly passing them to RCS.
1590         Accordingly, add struct admin_data and function arg_add, and delete
1591         global variables ac and av.
1592         * sanity.sh (admin): Change admin-3 test to reflect cvs admin -i
1593         now being an error.
1594         (basicb): Change basicb-21 test to relect the improved error
1595         message here.
1597 Sat Jul 26 11:34:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1599         * sanity.sh (join3): New tests, test a new branch topology and
1600         greatest common ancestor.
1602 Fri Jul 25 09:51:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1604         * server.c (serve_directory): Repository must start with
1605         CVSroot_directory rather than some random pathname.
1607         * remove.c (remove_fileproc): If there is a numeric sticky tag,
1608         don't allow the remove.
1609         * commit.c (check_fileproc): Add comment about this case.
1610         * sanity.sh (sticky): New tests sticky-15 through sticky-23
1611         test for this behavior and the analogous behavior with
1612         non-branch sticky tags (which is unchanged).
1614         * client.c (update_entries): Clear the stored mode, modtime, and
1615         checksum even on an error.
1616         * sanity.sh (contents2-142d*): Also test cvs status.  Also test
1617         the case in which the contents of the file are unchanged.  Also
1618         test running diff to see the conflict, and resolving the conflict.
1619         Without the fix above, the new contents2-142d2 test would get a
1620         "duplicate Mod-time" warning.
1622 Thu Jul 24 13:29:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1624         * server.c (pserver_authenticate_connection): Call parse_config
1625         here too.
1626         * parseinfo.c (parse_config): If we are called several times, the
1627         times beyond the first do nothing.
1628         * cvs.h, parseinfo.c (parse_config): New argument cvsroot.
1629         * server.c, main.c: Update callers.
1630         * server.c, server.h (system_auth): New variable.
1631         * parseinfo.c (parse_config): Parse new keyword SystemAuth.
1632         * mkmodules.c (config_contents): Add comments for SystemAuth.
1633         * server.c (check_password): If !system_auth, then skip the check
1634         for a system username/password.
1636         * main.c (main): No fatal error if parse_config returned an error.
1637         * server.c (serve_root): Likewise.
1638         * error.c (error): Add comment about calling from the server.
1639         * parseinfo.c, cvs.h (parse_config): Remove NOERR crock.
1640         Closer reading of server.c makes it seem like calling error
1641         here is OK after all.
1642         * sanity.sh (config): New test, tests for above fix.
1644         * server.c (serve_root): Fix typo ("doign" -> "doing").
1646 Wed Jul 23 13:55:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1648         * vers_ts.c (Version_TS): If entdata is for a directory, don't set
1649         vn_user and friends.
1650         * server.c (dirswitch): Add comment about why Subdir_Register is
1651         sometimes a noop here.
1652         * cvs.h (struct vers_ts): Fix comments about NULL vs. "" in vn_user.
1653         * sanity.sh (errmsg2): New tests errmsg2-10 through errmsg2-12 test
1654         for above fix.
1655         * add.c (add_directory): Call cvs_output not printf.  This fixes
1656         an out-of-order bug which was showing up in the testcase.
1658 21 Jul 1997  Jim Kingdon
1660         * subr.c (get_file): Put st_size into an unsigned variable to
1661         avoid signed/unsigned warnings.
1663 Mon Jul 21 00:19:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1665         * version.c: Change version number to 1.9.13.
1667         * Version 1.9.12.
1669         * sanity.sh (toplevel, head): Delete our files from the repository
1670         when done with them.
1672 Sun Jul 20 15:53:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1674         * sanity.sh (admin, reserved): New tests, test most cvs admin
1675         behaviors.
1676         (log2): New tests log2-5 through log2-10 test setting the
1677         description via cvs admin.
1679 Thu Jul 17 12:39:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1681         * client.c (socket_buffer_input, socket_buffer_output): Add
1682         comment regarding size of of buffer we pass to send and recv.
1684 Sat Jul 12 15:21:24 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1686         * import.c, rcs.h (add_rcs_file): New argument key_opt replaces
1687         access to global variable keyword_opt.  New arguments desctext and
1688         desclen allow one to set the description.  If add_vhead is NULL,
1689         then omit a revision, like rcs -i.
1690         * import.c (process_import_file), mkmodules.c (init): Change
1691         callers.
1692         * subr.c, cvs.h (get_file): New function, adapted from code in
1693         update_entries.
1694         * client.c (update_entries): Call it.
1695         * commit.c (checkaddfile): Create new RCS files with add_rcs_file
1696         rather than rcs -i.
1698 Fri Jul 11 12:14:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1700         * update.c (join_file): Handle binary files ourself rather than
1701         passing them to RCS_merge (which sort of tries to handle binary
1702         files, but does so badly).
1703         * sanity.sh (binfile2): New "brmod", "brmod-trmod", and
1704         "brmod-wdmod" tests test for this fix.
1706         * add.c (add): Exit status is now nonzero if any of the arguments
1707         failed (already was mostly true, make it true for the new sanity
1708         check).  Move check for '/' (now ISDIRSEP) up to sanity check, so
1709         the client does it too.
1710         * sanity.sh (errmsg2): Test for this fix.
1712 Thu Jul 10 00:02:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1714         * add.c (add): Check for CVSADM, ".", and "..", and skip any
1715         attempt to add them.
1716         * sanity.sh (errmsg2): New tests, tests for above fix.
1718         * main.c (main): In text printed upon --version, also refer
1719         people to --help.
1721         * rcscmds.c (RCS_exec_rcsdiff): Add comment about timezones.
1723         * server.c, cvs.h (cvs_output_binary): New function.
1724         * rcs.c (RCS_checkout): For a binary file, call cvs_output_binary
1725         rather than cvs_output.
1726         * client.c (handle_mbinary): New function.
1727         (responses): Add "Mbinary".
1729 Tue Jul  8 12:18:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1731         * filesubr.c (get_homedir): Add comment about root vs. user
1732         directory in pserver server.
1734 Mon Jul  7 14:39:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1736         * sanity.sh (big): Also test Rcs-diff case.
1738         * client.c (update_entries): Reindent a line.
1740         * sanity.sh (death2): Add comment about Sun diff.  Thanks to
1741         Warren Jones <wjones@TC.FLUKE.COM> for reporting this.
1743         * client.c (update_entries): If DONT_USE_PATCH, then just treat a
1744         Patched response as an indication to try again with complete files.
1745         * update.c (update): Remove DONT_USE_PATCH ifdefs, since a CVS
1746         with DONT_USE_PATCH defined can still handle Rcs-diff.
1747         * sanity.sh (serverpatch): Add comment about this coming up in
1748         real life if the user modifies the file while CVS is running.
1750         * client.c (start_server): Add comment about logfiles if there are
1751         several connections to the server.
1752         (log_buffer_shutdown): Close the logfile after shutting down the
1753         underlying buffer.  This way at least we get the last set of
1754         logfiles rather than a bizarre mishmash.
1756 1997-07-06  enami tsugutomo  <enami@but-b.or.jp>
1758         * logmsg.c (do_verify): Unlink temporary file before call error().
1759         Remove unneeded `return' statement.  Fix comment.
1761 Sun Jul  6 13:36:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1763         * diff.c (diff_fileproc): Change message from "during rcsdiff of"
1764         to "while diffing".  For a while now, that message might be
1765         printed after a call to DIFF instead of rcsdiff.
1767         * diff.c (diff_fileproc): Call cvs_output not printf.  Remove
1768         calls to fflush (should be handled now by call to cvs_outflush in
1769         recurse.c).
1770         * patch.c (patch_fileproc): Likewise.
1772         * rcscmds.c, cvs.h (diff_exec): New function.
1773         * diff.c (diff_fileproc), patch.c (patch_fileproc),
1774         update.c (patch_file): Call it.
1776         * rcscmds.c: Adjust comments concerning diff library to point to
1777         new, expanded comments at diff_exec.  Remove comments concerning
1778         patch library; Rcs-diff should be adequate.
1780         * client.c (update_entries): Add comment about GNU patch usage (-b
1781         option and so on).
1783 Sat Jul  5 04:13:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1785         * rcscmds.c, cvs.h (RCS_exec_rcsdiff): New function.
1786         * diff.c (diff_fileproc): Call it.
1788 Thu Jul  3 09:50:07 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1790         * main.c (main): Add comment about how long we should keep the
1791         deprecated "cvs rlog" alias.
1793         * server.c (cvs_output): Add comment about whether to fflush.
1795 Wed Jul  2 18:57:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1797         * sanity.sh (join2): New tests join2-19 and friends test for a
1798         case that we can't readily get right (see comments).
1800 Tue Jul  1 09:52:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1802         * main.c (cmd_usage): Say "specify" --help rather than the vague
1803         "use".
1804         (opt_usage, cmd_synonyms): Mention --help here too.
1805         * add.c, admin.c, checkout.c, commit.c, diff.c, edit.c, import.c,
1806         log.c, login.c, mkmodules.c, patch.c, rcs.c, release.c, remove.c,
1807         rtag.c, status.c, tag.c, update.c, watch.c: Likewise, for all the
1808         other help messages.
1810         * sanity.sh (join2): New tests.
1812         * repos.c (Name_Repository): Check for errors from fclose.
1814 Fri Jun 27 10:27:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1816         * scramble.c, login.c: Reindent.
1818         * client.c (connect_to_pserver): Check for errors from send().
1819         If socket() fails, include SOCK_STRERROR (SOCK_ERRNO) in message.
1821 Wed Jun 25 11:21:52 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1823         * main.c: New option --help-options, with much of the text
1824         from --help.  Fix a few capitalization and punctuation problems.
1825         Rewrite text for --help to be an intro to all the --help-*
1826         options.
1828         * sanity.sh (head): New tests, concerning meaning of HEAD.
1830 Tue Jun 24 10:14:18 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1832         * client.c (recv_line): New function.
1833         (connect_to_pserver): Call it, and rewrite accordingly.  Also
1834         accept new "E" and "error" responses.  Change \n to \012.
1835         * server.c (pserver_authenticate_connection): Adjust comment
1836         accordingly, concerning sending I HATE YOU not "error".
1838 Sun, 22 Jun 1997  Jim Kingdon
1840         * main.c (main): Move setting of server_active inside #ifdef
1841         SERVER_SUPPORT; otherwise the variable doesn't exist.
1842         * main.c (main): Call return after exit to shut up warning.
1844 Fri Jun 20 22:56:34 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1846         * client.c (connect_to_pserver): On "I HATE YOU", give
1847         "authorization failed" fatal error regardless of verify_only.
1848         * login.c (login): Don't print that "incorrect password" message;
1849         it now is possible with an --allow-root failure as well as an
1850         incorrect password.  cvsclient.texi doesn't really specify what I
1851         HATE YOU means in any detail, and it seems a little silly for
1852         login to give different messages than the other commands.
1853         * client.c, client.h (connect_to_pserver): Return type now void.
1855 Thu Jun 19 12:16:10 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1857         * server.c (serve_root): Give error on duplicate Root request.
1858         Call parse_config.
1859         * parseinfo.c, cvs.h (parse_config): New function.
1860         * cvs.h (CVSROOTADM_CONFIG): Added.
1861         * main.c (main): Set server_active here...
1862         * server.c (server): ...not here.  That seems cleaner than
1863         strcmp's between command_name and "server" in main.c.
1864         * main.c (main): Call parse_config.
1865         * main.c, cvs.h (free_Rcsbin): Make global.
1866         * mkmodules.c (filelist): Add CVSROOTADM_CONFIG.
1868 Wed Jun 18 11:24:31 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1870         * version.c: Change version number to 1.9.11.
1872         * Version 1.9.10.
1874 Tue Jun 17 22:48:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1876         * main.c (main): Add --allow-root=ROOT argument; call
1877         root_allow_add for each time it is specified.  Call
1878         root_allow_free before exiting.
1879         * root.c, cvs.h (root_allow_add, root_allow_free, root_allow_ok):
1880         New function.
1881         * server.c (pserver_authenticate_connection): If root_allow_ok
1882         doesn't like the CVSROOT directory, don't allow access.
1884 Tue Jun 17 14:30:14 1997  Jim Kingdon  (unknown@beezley)
1886         * client.c: Add "copyright" notice.  If NO_EXT_METHOD, omit
1887         start_rsh_method.
1888         * client.c (update_entries): Cast argument to MD5Update from
1889         char * to unsigned char *.
1891 Mon Jun 16 16:46:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1893         * run.c (piped_child, filter_stream_through_program):
1894         If USE_SETMODE_BINARY, then put the pipes into binary mode.
1895         * find_names.c, ignore.c, lock.c, wrapper.c: Change fnmatch to
1896         CVS_FNMATCH.
1897         * client.c (start_server): If NO_EXT_METHOD, then give a fatal
1898         error on any use of :ext:.
1900 Sun Jun 15 22:30:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1902         * sanity.sh (toplevel): Match U CVSROOT/* lines with DOTSTAR in
1903         test toplevel-9.
1905 Thu Jun 12 10:27:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1907         * sanity.sh (toplevel): Remove Emptydir before starting.
1909         * sanity.sh: Change "rm -rf" to "rm -r" when deleting working
1910         directories (except a few watches cases).  Helps detect cases
1911         where the testsuite has cd'd to somewhere other than where we
1912         think it has.
1913         (basic2): Remove "rm -r first-dir" between tests 49 and 50.  The
1914         directory was already deleted in test 45.5.
1915         (rcs): Add "cd .." at end of tests.
1916         (stamps): No longer cd to TESTDIR; shouldn't be necessary with
1917         fix to "rcs" test.
1919 Wed Jun 11 22:28:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1921         * sanity.sh (basicb): Also remove CVSROOT/Emptydir at end of
1922         test.  Otherwise it affects the toplevel-9 test for remote.
1924 Tue Jun 10 14:03:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1926         * sanity.sh (toplevel): Change "update" and "checkout" to "[a-z]*"
1927         as these read "server" instead for "make remotecheck".  Change
1928         expect strings for toplevel-9 to accept the behavior of remote CVS
1929         (see comments for more discussion).
1931         * sanity.sh: New tests stamps-9 through stamps-11 test timestamp
1932         behavior on cvs update.
1934 Mon Jun  9 22:42:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1936         * sanity.sh: Remove "#! /bin/zsh" line at end.  I assume it was
1937         added accidentally.
1939 Tue Jun 10 03:08:46 1997  Norbert Kiesel  <nk@psycho.de>
1941         * sanity.sh: new tests "toplevel" for the new toplevel CVS
1942         directory creation (including one test which shows an error in
1943         this area).
1945 Sun Jun  8 20:52:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1947         * rcs.c (getrcsrev): Before printing error, check whether it was
1948         feof or ferror.
1950         * rcs.h, import.c (add_rcs_file): No longer static.  New arguments
1951         add_vbranch, add_vhead, and add_logfp replace access to static
1952         variables vbranch, vhead, and logfp.
1953         * mkmodules.c: Call it instead of RCS_CI.
1954         * import.c (process_import_file): Adjust call to add_rcs_file.
1956 Tue Jun  3 10:18:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1958         * sanity.sh (basicb): Match "." with "\." not ".".
1960 Tue Jun  3 13:02:37 1997  Norbert Kiesel  <nk@cosa.de>
1962         * checkout.c (checkout): Removed restriction of not sending -k in
1963         remote export (I think this was introduced while the -k handling
1964         was still broken in remote mode).  Give better error texts
1965         regarding -c and -s options.  Use error() instead of usage() for
1966         reporting errors in all places.  Reindented some lines.  Free
1967         xmalloc'd space of options.
1969 Thu May 29 16:32:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1971         * rcscmds.c (RCS_checkin), mkmodules.c (init): Pass -w option to
1972         "ci", specifying getcaller ().
1973         * server.h, server.c (CVS_Username): Now extern.
1974         * subr.c (getcaller): Return CVS_Username if it is set.
1976 Wed May 28 22:31:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1978         * update.c (update_fileproc): If wrap_merge_is_copy and we would
1979         like to do a merge, give a fatal error.  See comment for why.
1980         * sanity.sh (mwrap): New tests, tests for above fix.
1982 Tue May 27 21:59:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1984         * sanity.sh (stamps): cd to ${TESTDIR} before starting.
1986 Mon May 26 15:31:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1988         * client.c (handle_mod_time): New function.
1989         (responses): Add "Mod-time".
1990         (stored_modtime_valid, stored_modtime): New variables.
1991         (update_entries): If it is set, change the file's modtime.
1992         * server.c, server.h (server_modtime): New function.
1993         * vers_ts.c (Version_TS): Call it.
1994         * patch.c (patch_fileproc): Add comment about why we don't.
1995         * sanity.sh (stamps): Added, tests for above fix.
1997 Fri May 16 13:14:30 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
1999         * subr.c (free_names): Update documentation to reflect fact that
2000         free_names is now called to free vectors allocated by expand_wild
2001         as well as by line2argv.
2003         * main.c (main): Use "xstrdup (foo)" not "xstrdup(foo)" as
2004         specified in HACKING.
2006 Fri May 16 15:10:37 1997  Norbert Kiesel  <nk@cosa.de>
2008         * modules.c (do_module): initialize optind to 0.  use local copies
2009         of optarg's (because they might me freed within free_names).
2011 Thu May 15 11:50:15 1997  Norbert Kiesel  <nk@cosa.de>
2013         * main.c (main): initialize optind to 0.  use local copies of
2014         optarg's (because they might me freed within read_cvsrc).
2016         * cvsrc.c (read_cvsrc): free old argv after constructing a new
2017         one.  This fixes a memory leak.
2019         * recurse.c (start_recursion): use free_names() instead of
2020         reimplementing it
2022         * rcs.c (RCS_deltas): free branchversion (memory leak).
2024         * parseinfo.c (Parse_Info): free some vars (3 memory leaks).
2026         * logmsg.c (logfile_write): free str_list_format (memory leak).
2028         * watch.c (watch_addremove), (watchers), update.c (update), tag.c
2029         (cvstag), status.c (status), rtag.c (rtag), remove.c (cvsremove),
2030         release.c (release), patch.c (patch), log.c (cvslog), import.c
2031         (import), history.c (history), edit.c (watch_onoff), (edit),
2032         (unedit), (editors), diff.c (diff), commit.c (commit), checkout.c
2033         (checkout), add.c (add): initialize optind to 0
2035         * diff.c (diff_fileproc): cosmetic change (whitespace added).
2037         * checkout.c (checkout): move local variable definition into the
2038         block where the variable is used.
2040         * client.c (update_entries): initialize some local variables to shut up
2041         gcc -O -Wall.
2043         * buffer.c (buf_read_line): initialize a local variable to shut up
2044         gcc -O -Wall.
2047 Wed May 14 16:29:50 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2049         * admin.c (admin): When sending options to server, don't try to
2050         send av[ac].  It may contain one of the names that we'll send in
2051         send_file_names (which caused tests like keyword-6 to work,
2052         sort of accidentally), or it may contain NULL (which would tend to
2053         cause a coredump).
2054         * sanity.sh (basicb): New test basicb-21 tests for above fix.
2056 Mon May 12 16:22:00 1997  Larry Jones  <larry.jones@sdrc.com>
2058         * add.c (add): Free message and repository in client code.
2059         * checkout.c (checkout): Don't free repository unless allocated.
2060         * client.c (start_rsh_server): Free command.
2062 Sun May 11 11:43:54 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2064         * client.c: Remove all references to USE_DIRECT_TCP; see
2065         ../ChangeLog for rationale.
2067 Fri May  9 22:19:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2069         * main.c (main): Add comment explaining why we call exit.  Pass 0
2070         not EXIT_SUCCESS, because lib/system.h has portability cruft for
2071         EXIT_FAILURE but not EXIT_SUCCESS.
2073 Fri May  9 17:25:00 1997  Larry Jones  <larry.jones@sdrc.com>
2075         Fix miscellaneous memory allocation problems:
2076         * add.c (add): Free repository.
2077         * client.c (notified_a_file): Free getline buffer.
2078         * edit.c (notify_check): Free getline buffer.
2079         * hash.c (dellist): Free header node when not caching.
2080         * login.c (login): Don't continually free & allocate getline
2081         buffer, use xstrdup instead of xmalloc/strcpy, free getline
2082         buffer before returning.
2083         * main.c (main): Call exit instead of returning so tools like
2084         Purify won't consider permanently allocated memory as leaks.
2085         * mkmodules.c (mkmodules): Free getline buffer.
2086         * modules.c (cat_module): Call close_module.
2087         * rcs.c (rcsvers_delproc): Free state.
2088         * recurse.c (start_recursion): Free files_by_dir.
2089         (unroll_files_proc): NULL out p->data after using it to set
2090         filelist to avoid multiple frees.
2091         * server.c (check_command_legal_p): Don't continually free &
2092         allocate getline buffer, free getline buffer before returning.
2093         (check_repository_password): Ditto, use xstrdup instead of
2094         xmalloc/strcpy.
2095         * wrapper.c (wrap_add_file): Free getline buffer.
2097 Thu May  8 14:21:00 1997  Larry Jones  <larry.jones@sdrc.com>
2098         and Jim Kingdon  <kingdon@harvey.cyclic.com>
2100         * checkout.c (checkout_proc): Free finfo.rcs (memory leak).
2102 8 May 1997  Larry Jones  <larry.jones@sdrc.com>
2103         and Jim Kingdon  <kingdon@harvey.cyclic.com>
2105         * hash.c: Add #ifdef's to disable caching.  This makes it easier
2106         to track down memory allocation problems.
2108 Thu May  8 11:40:39 1997  Larry Jones  <larry.jones@sdrc.com>
2110         * sanity.sh: In setting "tests" use a number of statements rather
2111         than one very long line.
2113 Thu May  8 11:40:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2115         * cvsbug.sh: Remove $Id; we decided to get rid of these some time
2116         ago.
2118 Thu May  8 11:34:02 1997  Larry Jones  <larry.jones@sdrc.com>
2120         * cvsbug.sh: Put separate statements on separate lines, so it
2121         works if awk is AT&T nawk.
2123 Tue May  6 16:56:00 1997  Larry Jones  <larry.jones@sdrc.com>
2124         and Jim Kingdon  <kingdon@harvey.cyclic.com>
2126         * cvsrc.c (read_cvsrc): Fix various memory allocation problems:
2127         rearrange code to avoid leaks, use xrealloc instead of xmalloc/
2128         copy/free, make sure there's room for the remaining args before
2129         appending them.
2131 Tue May  6 14:20:00 1997  Larry Jones  <larry.jones@sdrc.com>
2133         * edit.c (watch_onoff, edit, unedit, editors): Add -R like
2134         other things with -l.
2135         * watch.c (watch_addremove, watchers): Ditto.
2137 Mon May  5 18:10:37 1997  larry.jones@sdrc.com
2138         and Jim Kingdon  <kingdon@harvey.cyclic.com>
2140         * sanity.sh: Change all /tmp/cvs-sanity to TESTDIR.  If TESTDIR
2141         environment variable is set, use it instead of /tmp/cvs-sanity.
2142         * sanity.sh: Make TMPPWD the pwd equivalent of TESTDIR, not of /tmp.
2144 4 May 1997  Larry jones  <larry.jones@sdrc.com>
2145             and Jim Kingdon
2147         * checkout.c, diff.c, patch.c, rcs.c: Update usage messages.
2148         * rcs.c (annotate): Add -R like other things with -l.
2150 Sat May  3 14:57:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2152         * sanity.sh (basic1): Rewrite test (use dotest, unroll the loops
2153         which IMHO makes the test a zillion times more understandable, and
2154         only do the variant which tests for 4 files at a time--we test one
2155         file at a time lots of places).
2157 2 May 1997  Ziv Gigus <ziv@rest.home.net>
2158             and Jim Kingdon
2160         * client.c, client.h (client_process_import_file): New argument
2161         all_files_binary means treat all files as binary.
2162         * import.c (import_descend): Pass it if -kb is specified.
2163         * client.c (client_process_import_file): In the
2164         non-all_files_binary case, call wrap_rcsoption to determine
2165         whether the file is binary.
2167 Thu May  1 13:44:51 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2169         * sanity.sh (binfiles2): New tests, for update -j and binary files.
2171 Wed Apr 30 11:18:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2173         * recurse.c (start_recursion): Also free reposfile.
2174         Don't look in repository if client_active (latter bug reported by Paul
2175         Sanders <p.sanders@dial.pipex.com>).
2177 Mon Apr 28 22:36:39 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2179         * diff.c (diff_file_nodiff): Remove SERVER_SUPPORT ifdefs.  They
2180         were not based on server_active, which doesn't really make any
2181         sense (it meant that compiling --disable-server could affect the
2182         behavior of the non-client/server CVS).  This affected the output
2183         in tests death2-diff-11 and death2-diff-12 in the testsuite.
2184         * sanity.sh (newb-123j0): Also accept "Needs Checkout", for a
2185         --disable-server CVS.
2187         * main.c (cmd_usage): Change "run diffs" to "show differences";
2188         the former is jargon.
2189         * edit.c (edit_usage): Fix typo ("." -> ",").
2190         * edit.c (editors_usage), watch.c (watchers_usage): Mention -l.
2191         * checkout.c (export_usage): Say what -P does.
2192         * history.c (history_usg): Add comment about message wording.
2194 Mon Apr 28 14:47:45 1997  Norbert Kiesel  <nk@cosa.de>
2196         * checkin.c (Checkin): use filename without path when calling
2197         wrapper (bug found by Michal Schmitz <ms@cosa.de>).
2199 Fri Apr 25 13:28:55 1997  Ian Lance Taylor  <ian@cygnus.com>
2201         * client.c (update_entries): In UPDATE_ENTRIES_RCS_DIFF case,
2202         write to a temporary file and then rename it.
2204 Thu Apr 24 11:35:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2206         * subr.c, cvs.h (pathname_levels): New function, from a piece of
2207         send_file_names.
2208         * client.c (send_file_names): Call pathname_levels in place of the
2209         code which was moved there.
2210         * server.c, server.h (server_pathname_check): New function.
2211         * recurse.c (start_recursion): Call it.
2212         * sanity.sh (modules3): New test modules3-11b tests for above fix.
2214         * filesubr.c: Do not define L_tmpnam.  It is in ANSI and SunOS4,
2215         so I don't think there will be a problem with it being missing.
2216         Defining it too small can cause memory corruption.
2217         (cvs_temp_name): Do not use L_tmpnam in the mktemp code; this
2218         could cause a buffer overflow if the -T global option was in use.
2220 Thu Apr 24 13:21:15 1997  Norbert Kiesel  <nk@cosa.de>
2222         * filesubr.c (cvs_temp_name): Use tempnam if available, else
2223         mktemp, else tmpnam. See the comment for rationale.
2225         * sanity.sh: use "tar cf - ." instead of "tar cf - *" for
2226         directory copies.
2228 Wed Apr 23 23:41:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2230         * server.c (serve_update_prog): If in readonly mode, give an error.
2232 Wed Apr 23 19:07:41 1997  Norbert Kiesel  <nk@cosa.de>
2234         * subr.c (line2argv): Allocate at least 4 slots for argv.
2236         * checkout.c (checkout_proc): Add a comment which says why the
2237         above change was necessary to avoid writing to unallocated memory.
2239 Wed Apr 23 11:20:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2241         * entries.c (ParseTag): Always set *NONBRANCHP.
2243 21 Apr 1997  Jim Kingdon
2245         * client.c (update_entries), rcs.c (expand_keywords): Rewrite
2246         test to avoid signed/unsigned warning.
2248 Mon Apr 21 09:02:22 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2250         * update.c (patch_file): Add comment about whether auto-detecting
2251         features of the DIFF program is a good idea.
2253 Mon Apr 21 00:03:34 1997  Ian Lance Taylor  <ian@cygnus.com>
2255         Don't require the patch program:
2256         * client.c (struct update_entries_data): Add
2257         UPDATE_ENTRIES_RCS_DIFF to contents enum.
2258         (update_entries): Handle UPDATE_ENTRIES_RCS_DIFF.
2259         (handle_rcs_diff): New static function.
2260         (responses): Add "Rcs-diff".
2261         * server.c (server_updated): Handle SERVER_RCS_DIFF.
2262         (server_use_rcs_diff): New function.
2263         * server.h (enum server_updated_arg4): Add SERVER_RCS_DIFF.
2264         (server_use_rcs_diff): Declare.
2265         * update.c (rcs_diff_patches): New static variable.
2266         (update): Set rcs_diff_patches.
2267         (update_fileproc): If rcs_diff_patches, pass SERVER_RCS_DIFF
2268         rather than SERVER_PATCHED to server_updated.
2269         (patch_file): Correct initial comment to say diff rather than
2270         rcsdiff.  If rcs_diff_options, pass -n to diff rather than -c.
2271         * rcs.c (rcs_change_text): New function.
2272         * rcs.h (rcs_change_text): Declare.
2274 Mon Apr 21 00:08:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2276         * diff.c (diff_fileproc): Add comment concerning updating the
2277         client timestamp.
2279 Sun Apr 20 23:20:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2281         * commit.c (commit): Add comment regarding SEND_FORCE rationale.
2283 Sat Apr 19 17:10:36 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2285         * server.c (dirswitch): If directory ends in '/', complain.
2287 Fri Apr 18 18:09:57 1997  Ian Lance Taylor  <ian@cygnus.com>
2289         * rcs.c (apply_rcs_changes): New static function, broken out of
2290         RCS_deltas.
2291         (RCS_deltas): Call it.
2292         (linevector_add): Change return type to int.  Return an indication
2293         of an error for an invalid add, rather than calling error.
2295 Fri Apr 18 11:24:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2297         * version.c: Change version number to 1.9.9.
2299         * version.c: Version 1.9.8.
2301         * commit.c (struct find_data): Add field force.
2302         (find_fileproc, commit): Use it instead of force_ci to decide
2303         whether to send files to server.
2304         (commit): Set it if either -f or -r is specified.
2305         * sanity.sh (basica): Add tests basica-8a0, basica-8a1, and
2306         basica-8a2; tests for above fix.
2308 Wed Apr 16 11:50:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2310         * zlib.c: Remove paragraph with Free Software Foundation address.
2311         See 2 Jan 1997 entry in ../ChangeLog for rationale.
2313 Tue Apr 15 00:36:23 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2315         * update.c (patch_file_write): Always assign to final_nl, so that
2316         it ends up reflecting whether the data from the last call had a
2317         newline, not whether the data from any of the calls ended in a
2318         newline.  Doesn't matter with the current RCS_checkout
2319         implementation, but it will if RCS_checkout is changed to pass
2320         less than the entire file.
2322         * rcs.c (RCS_cmp_file): Change NULL to RUN_TTY in passing sout to
2323         RCS_checkout, for clarity.
2325         * import.c (update_rcs_file): Remove unused variable ierrno.
2327         * add.c, checkout.c, commit.c, diff.c, edit.c, import.c,
2328         history.c, log.c, main.c, patch.c, release.c, remove.c, rtag.c,
2329         status.c, tag.c, update.c, watch.c: Pass "+" to all calls to
2330         getopt.  This ensures that we maintain existing behavior even with
2331         glibc2.
2333         * filesubr.c (fopen_case): Don't set *PATHP if we return an
2334         error.  Since the 9 Apr 1997 change, the behavior has been to
2335         sometimes set it and sometimes not.
2336         * rcs.c (RCS_parse): Adjust callers to not free it.  Without this
2337         change, they could call free() on an uninitialized variable.
2339         * checkout.c (checkout): Add comment about export -k.
2341         * root.c (check_root_consistent): Add comment about wording of
2342         message.
2344 Mon Apr 14 11:51:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2346         * client.c (call_in_directory): If rdirp reaches the end of
2347         reposdirname, then just set it to NULL.  If server does not create
2348         directories one at a time, give a warning.
2349         * sanity.sh (modules3): Enable tests modules3-8 through
2350         modules3-11 for remote; tests for above fix.
2352         * client.c (call_in_directory): Don't set short_pathname to
2353         pathname for a while; just use pathname itself (cleans up a relic
2354         of the old "Repository" (not "Directory") code).  Add comment
2355         explaining short_pathname.
2357 Sun Apr 13 18:07:50 1997  Ian Lance Taylor  <ian@cygnus.com>
2359         * rcs.c (RCS_checkout): Add pfn and callerdat parameters.  Change
2360         all callers.  Move setting of expand after retrieval of file
2361         data.
2362         (struct cmp_file_data): Define.
2363         (RCS_cmp_file): New function.
2364         (cmp_file_buffer): New static function.
2365         * rcs.h (RCSCHECKOUTPROC): Define type.
2366         (RCS_checkout): Update declaration.
2367         (RCS_cmp_file): Define.
2368         * diff.c (diff_file_nodiff): Call RCS_cmp_file rather than
2369         RCS_checkout and xcmp.
2370         * import.c (update_rcs_file): Likewise.
2371         * no_diff.c (No_Difference): Likewise.
2372         * update.c (struct patch_file_data): Define.
2373         (patch_file): Just return if noexec, or if binary file.  Pass
2374         patch_file_write to RCS_checkout.  Don't check for newlines or
2375         compute checksums here.  Stat RCS file to set modes.
2376         (patch_file_write): New static function.
2378         * update.c (patch_file): Checkout directly to file2, rather than
2379         to finfo->file followed by rename.  Remove check for whether
2380         result of checkout is readable; that was for an old, obsolete,
2381         form of death support.
2383 Sun Apr 13 13:16:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2385         * checkout.c (build_one_dir): New function.
2386         (struct dir_to_build): New structure.
2387         (build_dirs_and_chir): Rewritten to accept a linked list of struct
2388         dir_to_build rather than the silly string processing we had been
2389         doing before.
2390         (checkout_proc): Rewrite code that calls build_dirs_and_chdir
2391         accordingly.
2392         * sanity.sh: Enable tests modules3-10 and modules3-11 for local CVS;
2393         tests for above fix.
2395         * rcs.h (RCS_CO): Removed; no longer used.
2397 Sun Apr 13 00:04:34 1997  Ian Lance Taylor  <ian@cygnus.com>
2399         Expand RCS keywords internally; never call co:
2400         * rcs.h (struct rcsversnode): Add state field.
2401         * rcs.c (kflags): Move out of RCS_check_kflag, and make file
2402         static.
2403         (enum kflag): Define.
2404         (RCS_reparsercsfile): Always save lock information.  Save state in
2405         new state field, rather than other field.
2406         (struct rcs_keyword): Define.
2407         (keywords): New static variable.
2408         (enum keyword): Define.
2409         (printable_date, escape_keyword_value): New static functions.
2410         (expand_keywords): New static function.
2411         (RCS_checkout): Call expand_keywords.  Don't call
2412         RCS_exec_checkout.
2413         (RCS_deltas): Add log and loglen parameters.  Change all callers.
2414         * log.c (log_version_requested): Use new state field.
2415         (log_version): Likewise.
2416         * cvs.h (RCS_exec_checkout): Don't declare.
2417         * rcscmds.c (RCS_exec_checkout): Remove.
2419 Sat Apr 12 17:32:59 1997  Ian Lance Taylor  <ian@cygnus.com>
2421         * sanity.sh (modules3): Remove second-dir at end of tests.
2422         (sticky): Correct removal of directories at end of tests.
2424         * sanity.sh (keyword): New tests for RCS keyword expansion.
2426 Sat Apr 12 16:47:13 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2428         * sanity.sh (basicb): New tests basicb-1b, basicb-1c, basicb-9b,
2429         basic-9c test current build_dirs_and_chdir behavior.
2431 Fri Apr 11 23:54:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2433         * sanity.sh (modules3): New tests modules3-7* test for ability to
2434         supply a path in -d in modules.  Similar to modules3-8 through
2435         modules3-11 except because the nesting is different, these ones
2436         work.
2438 Thu Apr 10 00:14:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2440         * sanity.sh (modules3): New tests modules3-12 through modules3-15
2441         test use of a module name which contains a slash.
2443         * sanity.sh (basicb): New tests basicb-14 to basicb-20 test use of
2444         co -d with two or more arguments.
2446         * rcscmds.c: Refer to doc/RCSFILES in comment.
2448 Wed Apr  9 09:49:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2450         * sanity.sh (basicb): New tests basicb-11 through basicb-13 test
2451         ability to specify several directory levels in co -d (commented
2452         out).
2454         * filesubr.c (fopen_case): If CVS_OPENDIR gives an
2455         existence_error, return it to the caller instead of giving a fatal
2456         error.
2458         * client.c (update_entries): Fix typo in call to error (1 -> errno).
2460 Tue Apr  8 23:02:22 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2462         * error.h, error.c: Test for #ifdef __STDC__, not #if __STDC__.
2463         This is consistent with other parts of CVS; it means that the
2464         declaration for fperror will match the definition even if __STDC__
2465         is defined to 0 as the SunPro 4.0 compiler does.  Reported by
2466         Richard Smith <rjsmith@cisco.com>.
2468 2 Apr 1997  Jim Kingdon
2470         * entries.c (ParseTag): Add "break;" after "default:" to avoid
2471         error from Visual C++.
2473 Wed Apr  2 12:06:44 1997  Vince Del Vecchio  <vdelvecc@spd.analog.com>
2474                           and Jim Kingdon
2476         * client.c: In reporting errors from socket calls, use
2477         SOCK_STRERROR and SOCK_ERRNO since strerror(errno) doesn't work
2478         for Win32.
2480 Tue Apr  8 10:45:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2482         * sanity.sh (modules3): Add tests modules3-8 to modules3-11, to
2483         test for ability to supply a path to -d in modules.  Mostly
2484         commented out as CVS is buggy in this area.
2486 Mon Apr  7 12:41:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2488         * add.c (add): Add comment about SEND_NO_CONTENTS.
2490 Sun Apr  6 21:46:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2492         * update.c (update): Add comment about noexec and SEND_NO_CONTENTS.
2494 Sun Apr  6 17:34:08 1997  Robert Bihlmeyer  <robbe@orcus.priv.at>
2496         * Pass +f not f to getopt_long to prevent options from being
2497         permuted with glibc 2.0.1.
2499 Sun Mar 30 00:07:05 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2501         * cvs.h (struct vers_ts): Adjust comment regarding ts_user.
2502         * server.c (serve_is_modified): New function.  Set entries to show
2503         that the file is modified but we don't know the contents.
2504         * server.c (requests): Add "Is-modified" request.
2505         * vers_ts.c (time_stamp_server): If the timestamp in entdata is
2506         "M" or "D", just copy that over into ts_user.
2507         * vers_ts.c (Version_TS): If timestamp is "D", use the entries
2508         line for the sole purpose of passing it to time_stamp_server.
2509         * no_diff.c (No_Difference): If ts_user is "M", conclude the files
2510         are different.
2511         * client.h, client.c (send_files): Replace arguments build_dirs
2512         and force with argument flags.  Add flag SEND_NO_CONTENTS and add
2513         to struct send_data.
2514         (send_fileproc): If no_contents, then send Is-modified instead of
2515         Modified.
2516         * add.c, admin.c, client.c, commit.c, diff.c, edit.c, log.c,
2517         rcs.c, remove.c, status.c, tag.c, update.c, watch.c: Change all
2518         send_files callers.
2520 Fri Mar 28 22:32:25 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2522         * server.c (requests): Change "Repository" to rq_optional.  I'm
2523         not sure whether I overlooked this when I removed support for
2524         Repository, or whether I was thinking that servers would need to
2525         support it anyway, for CVS 1.5 to 1.9 clients, but making it
2526         optional doesn't prevent the server from supporting it and it
2527         seems silly for the client to complain about absence of a request
2528         that it never will use.
2530 Fri Mar 28 10:06:59 1997  Steven Miller  <Miller@wingra.com>
2532         * entries.c (Subdirs_Known): Don't create Entries.Log if noexec.
2534 Thu Mar 27 18:14:12 1997  Ian Lance Taylor  <ian@cygnus.com>
2536         * sanity.sh (death2): Remove commented out test death2-21.  It
2537         would now pass, but it duplicates the new test sticky-11.
2539 Thu Mar 27 10:21:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2541         * sanity.sh (dotest_internal): Write test output to logfile even
2542         if test succeeds.  This was the behavior prior to 30 Sep 1996.
2543         See the comment for rationale.
2545 Tue Mar 25 13:26:52 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2547         * cvs.h, entries.c (WriteTag): Add arguments nonbranch,
2548         update_dir, and repository.  Move the server_set_sticky call from
2549         callers to here.
2550         * cvs.h, create_adm.c (Create_Admin): New argument nonbranch.
2551         * cvs.h, entries.c (ParseTag): Add argument nonbranchp.
2552         * cvs.h (struct stickydirtag): Add field nonbranch.
2553         * entries.c (Entries_Open): Set it.
2554         * cvs.h (Vers_TS): Add field nonbranch.
2555         * vers_ts.c (Version_TS): Copy it from struct stickydirtag.
2556         * server.c, server.h (server_set_sticky): Add argument nonbranch.
2557         * add.c, client.c, checkout.c, modules.c, update.c, create_adm.c,
2558         commit.c: Update callers.
2559         * add.c (add): If nonbranch, don't add the file on that "branch".
2560         * commit.c (write_dirnonbranch): New variable.
2561         (commit_fileproc, commit): Set it.
2562         (commit_dirleaveproc): Pass it to WriteTag.
2563         * update.c (rewrite_tag, nonbranch): New variables.
2564         (update, update_dirent_proc, update_fileproc): Set them.
2565         (update_filesdoneproc): If rewrite_tag, call WriteTag.
2566         * sanity.sh (sticky): New tests, test for above fix.
2568         * version.c: Change version number to 1.9.7.
2570         * version.c: Version 1.9.6.
2572 Mon Mar 24 13:02:04 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2574         * entries.c (ParseTag): Add comment about unrecognized characters
2575         in CVS/Tag file.
2577         * classify.c (Classify_File): Add comment about how specifying a
2578         tag (bogusly?) suppresses certain messages.
2580 Fri Mar 21 13:37:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2582         * rcs.h (struct rcsnode): Add comment about case of PATH.
2583         * rcs.c (RCS_parse): If ign_case, then try opening the file with
2584         fopen_case.
2585         * ignore.c (ign_case): Adjust comment.
2586         * cvs.h, filesubr.c (cvs_casecmp, fopen_case): New functions.
2588 20 Mar 1997  Jim Kingdon
2590         * client.c (send_repository): When sending Directory request,
2591         send any ISDIRSEP character as '/'.  Fixes
2592         "cvs log foo\bar\baz.c" on NT & friends.
2594         * client.c (send_file_names): Don't try to read Entries file if
2595         CVSADM directory does not exist.  Fixes fairly serious regression
2596         (warning on all fresh checkouts) introduced by 1997-01-08 change.
2598 Tue Mar 18 13:03:33 1997  Jim Meyering  <meyering@totoro.cyclic.com>
2600         * sanity.sh (RCSINIT): Define to be empty and export, to hide any
2601         existing value that might cause spurious failures.
2603         * Makefile.in: (install): Depend on installdirs.
2604         Remove `CYGNUS LOCAL' comment saying not to.
2606 Tue Mar 18 09:36:26 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2608         * recurse.c (struct recursion_frame): Reindent.
2609         (do_dir_proc): Print message if we try to recurse into a CVSADM
2610         directory.
2611         * sanity.sh (basicb): New test basicb-4a tests for above fix.
2613 Sun Mar 16 10:18:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2615         * sanity.sh (death2): Replace regexp matching temporary file name
2616         with new variable ${tempname}.  For most of the tests this is a
2617         cosmetic change, but death2-diff-6 had been missing _ which caused
2618         it to fail on Solaris (at least sometimes).
2620         * sanity.sh (modes): Don't use export -n; it doesn't seem
2621         to be sufficiently portable.
2623         * version.c: Change version number to 1.9.5.
2625         * version.c: Version 1.9.4.
2627         * rcscmds.c (RCS_checkin): Preserve the mode of the rcsfile.
2628         RCS_CI usually, but not always, does this for us.
2629         * commit.c (fix_rcs_modes): Replace algorithm with a more
2630         CVSUMASK-friendly one.
2631         * sanity.sh (modes): Update tests modes-5, modes-7, modes-10, and
2632         modes-15 so they test that CVSUMASK is honored.
2634 Sun Mar 16 10:18:28 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2636         * sanity.sh (modes): New tests modes-7a and modes-7b test behavior
2637         if one manually changes the modes in the repository.
2639         * server.c (server): Revise code which checks for errors creating
2640         temporary directory.  This won't solve the intermittent
2641           can't create temporary directory
2642           Unknown error -1
2643         but it will mean (a) the right message based on errno gets
2644         printed, instead of "unknown error -1", and (b) the message says
2645         that it happened in chmod instead of mkdir_p.
2647 Sat Mar 15 16:47:12 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2649         * sanity.sh (modes): New tests.  Note that (for now) these are
2650         just testing how CVS already behaves; I want to record that before
2651         I move on to changing CVS's behavior with modes of RCS files.
2653 13 Mar 1997  Jim Kingdon
2655         * subr.c (line2argv): Change argv_allocated from size_t to int.
2657 Wed Mar 12 22:16:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2659         * add.c (add_directory): If repository has an extraneous "."
2660         directory at the end, strip it off.  This fixes a bug which was
2661         introduced when strip_path was nuked (this fix is much more
2662         limited in scope than strip_path was; I _think_ that is a good
2663         thing).
2664         (add): Likewise, for client.
2665         (combine_dir): New function, helps with above.
2666         * sanity.sh (modules3): Reenable tests for this behavior.
2667         (basica-0b, basicb-0e): Adjust test to reflect "foo/bar" instead
2668         of "foo/./bar" in message.  As with the rest of this, I believe
2669         this is just restoring the behavior prior to the strip_path nuking
2670         (I tried it with CVS 1.9).
2672 Sun Mar  9 10:06:29 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2674         * root.c (parse_cvsroot), server.c (serve_root, serve_init):
2675         If CVSroot_directory is not an absolute pathname, give a fatal error.
2676         * sanity.sh (crerepos): New tests crerepos-6* test for above fixes.
2678 Sat Mar  8 22:06:17 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2680         This cleans up the last known code which can overflow its buffers
2681         (except the Mac client).  I've skimmed through much of CVS looking
2682         for other such places; but I didn't read everything.  If I missed
2683         any please report it to bug-cvs.
2684         * logmsg.c (logfile_write, title_proc): Realloc str_list as
2685         needed; don't assume MAXLISTLEN is enough.
2686         * cvs.h (MAXLISTLEN, MAXFILEPERDIR): Removed; no longer used.
2687         * add.c, myndbm.c, parseinfo.c, update.c: Nuke MAXLINELEN limit.
2688         * parseinfo.c, update.c, mkmodules.c: Check for errors reading file.
2689         * cvs.h (MAXLINELEN): Removed; no longer used.
2690         * logmsg (MAXHOSTNAMELEN): Removed; not used.
2691         * main.c (cmd_synonyms): Allocate based on fullname, nick1, and
2692         nick2, just in case someone makes those big enough so that 100
2693         bytes is not enough.
2694         (Make_Date): Use MAXDATELEN rather than our own fixed size.
2695         * mkmodules.c (mkmodules): Nuke arbitrary limit on line length.
2696         * rcs.c (ALLOCINCR): Remove; not used.
2697         (RCS_check_kflag): Add comment concerning karg size.
2698         * run.c: Allocate run_prog to the needed size, rather than
2699         allocating a fixed size buffer.
2701 Fri Mar  7 22:39:08 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2703         * logmsg.c (logfile_write): Allocate prog to needed length rather
2704         than assuming MAXPROGLEN is enough.
2705         * cvs.h (MAXPROGLEN): Removed; no longer used.
2706         * subr.c (MIN_INCR): Update comment to reflect MAXPROGLEN's demise.
2708         * subr.c (free_names): Fix comment: this function is not used to
2709         free memory allocated by Find_Names (at least it hasn't for a long
2710         time).
2711         * subr.c, cvs.h (line2argv): Change calling convention so that we
2712         allocate argv array rather than the caller.  The previous one had
2713         no way of checking whether we overflowed the passed-in buffer.
2714         * subr.c (free_names): Free the argv array too.
2715         * modules.c (do_module, cat_module): Update callers.
2717 Thu Mar  6 12:44:42 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2719         * import.c: Allocate vhead and vbranch dynamically; removes
2720         arbitrary limit.
2721         * history.c: Likewise (since_rev, since_tag, backto, rec_types).
2722         * ignore.c: Likewise (line).  Also check for errors from getline
2723         and add 'copyright' notice to top of file.
2724         * wrapper.c (wrap_add_file): Likewise (line).  Also check for
2725         errors from various calls and add 'copyright' notice to top of file.
2727 Tue Mar  4 17:39:15 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2729         * client.c (update_entries): Add comment about "move away <file>"
2730         message.
2732 Mon Mar  3 21:51:40 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2734         * sanity.sh (basicb): Clean up topfile,v at end of test.  Fixes
2735         failure in modules-155b.
2737 Sun Mar  2 18:11:09 1997  Dan Wilder  <dan@gasboy.com>
2738                           and Jim Kingdon
2740         * admin.c (admin): Arrange to perform recursion if "cvs admin"
2741         is passed only options.
2743 Sun Mar  2 18:11:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2745         * sanity.sh (basicb): New tests basicb-0* test for files at top
2746         level.
2748         * error.c (error): Add newline to "out of memory" message.  I think
2749         that its omission probably could cause the message to be lost in
2750         the bowels of server.c and never passed to the user.
2752         * client.c (start_rsh_server): Add comment about "remsh" vs. "rsh".
2754         * cvs.h: Move copyright notice to top of file.
2756 Sun Mar  2 13:44:36 1997  Ian Lance Taylor  <ian@cygnus.com>
2758         * sanity.sh: Use -n when testing whether rsh works.
2760         * server.c (serve_root): Free path.
2762 Sun Mar  2 13:12:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2764         The following are things that I noticed in the process of trying
2765         to track down:
2766           can't create temporary directory
2767           Unknown error -1
2768           FAIL: test 28
2769         from nightly testing.  I'm not sure that either item explains that
2770         message however.
2771         * server.c (server): Allocate pending_error_text;
2772         print_pending_error will try to free it so
2773           pending_error_text = "foo"
2774         won't work.
2775         (mkdir_p): Don't assume that isdir will leave errno unmolested.
2777 Thu Feb 27 15:29:58 1997  Ian Lance Taylor  <ian@cygnus.com>
2779         * remove.c (cvsremove): When forcing removal in client mode, use
2780         start_recursion rather than calling CVS_UNLINK on each argument.
2781         (remove_force_fileproc): New static function.
2782         * sanity.sh (deep): Add tests deep-rm7 through deep-rm10 for above
2783         patch.
2785         * sanity.sh (death): Enable death-76a0 and death-76a1 tests for
2786         remote, since they now work.
2788 Wed Feb 26 16:13:26 1997  Ian Lance Taylor  <ian@cygnus.com>
2790         * client.c (add_prune_candidate): Skip adding this directory if
2791         it is the same as the first directory already on the list.
2793 Mon Feb 24 21:36:43 1997  Noel Cragg  <noel@gargle.rain.org>
2795         * main.c (lookup_command_attribute): Add the "init" command to the
2796         list of commands that don't use the current working directory.
2798 Sun Feb 23 09:54:49 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2800         * sanity.sh (devcom3): Clean up at end of test.
2802         * sanity.sh (basicb): Add commented out test basicb-8a0, for
2803         whether CVS can print an error on bad numeric revision to diff.
2804         Commented out until we get around to fixing CVS.
2805         * diff.c (diff_file_nodiff): Add comment about this case.
2807         * fileattr.c (fileattr_read): If a filename is duplicated,
2808         continue to ignore subsequent lines but free the node so that we
2809         don't leak memory.
2810         * sanity.sh (devcom3): New tests devcom3-8 and devcom3-9 test for
2811         behavior on duplicated filenames.
2813         * fileattr.h: Add comment about unrecognized ENT-TYPE and order of
2814         lines in fileattr file.
2815         * fileattr.c (struct unrecog, unrecog_head): New variables, to
2816         record unrecognized lines.
2817         (fileattr_startdir): Assert that unrecog_head == NULL.
2818         (fileattr_read): Record unrecognized lines in unrecog_head linked
2819         list rather than ignoring them.
2820         (fileattr_write): Also write out unrecognized lines, if any.
2821         * sanity.sh (devcom3): New tests, test for above fix.
2823         * fileattr.h (fileattr_modify): Fix example in comment.
2825 Sat Feb 22 08:30:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2827         * sanity.sh: Add variable username.
2828         (basica rdiff multibranch log log2): Use it instead of our own
2829         (inconsistent) ways of matching an author name.
2831         * filesubr.c, root.c, rtag.c, server.c, subr.c, update.c,
2832         wrapper.c: Nuke PATH_MAX.
2833         * cvs.h, wrapper.c (wrap_fromcvs_process_file): Now returns void
2834         (return value had been unused).
2835         * cvs.h: Adjust comment to reflect the fact that PATH_MAX is
2836         gone, at least from src/*.c (except safe_location, as noted).
2838 22 Feb 1997  patch by Tom Hageman  <tom@basil.icce.rug.nl> (4 Jun 1996)
2839         updated and commented by Jim Kingdon  <kingdon@harvey.cyclic.com>
2841         * update.c (checkout_file): Call unlink_file_dir on backup, not
2842         unlink_file.
2844 Fri Feb 21 16:40:03 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2846         * Makefile.in (DISTFILES): Remove NOTES.
2848         * NOTES: Removed.  bcopy->memcpy is done.  "static buffers" I
2849         assume refers to what is covered by reentrancy text in HACKING.
2850         Obstack idea moved to comment in hash.c (at nodecache).  Checking
2851         system calls for error returns largely done, and isn't a very
2852         helpful suggestion unless you know where the bogus calls are
2853         anyway.  Sizing limits--we're in the progress of removing them
2854         (assuming it meant things like PATH_MAX and earlier, already
2855         nuked, limits).  Removed various items about changes which were
2856         done a long time ago (I realize that the ChangeLog's probably
2857         aren't reliable that far back, but I'm not convinced anyone cares
2858         anymore).  CONFIRM_DIRECTORY_ADDS: I assume this is a
2859         reference to the #if 0'd code in add_directory which asks for
2860         confirmation--a better way of making it harder to accidentally add
2861         directories would be to have to add and commit directories like
2862         for files.  I don't know what FORCE_MESSAGE_ON_ADD meant.
2864         * rcs.c (RCS_getrevtime): Fix documentation (in particular, the
2865         size of the array that DATE must point to, but many other things
2866         too).
2867         * patch.c, recurse.c, release.c, remove.c, repos.c: Nuke PATH_MAX.
2868         (patch_fileproc): Use MAXDATELEN not hardcoded 50.
2870 Sun Feb 16 12:00:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2872         * client.c (client_process_import_file): New variable fullname;
2873         pass it to send_modified.  This finishes the job of untangling the
2874         old short_pathname variable into update_dir vs. fullname.
2876         * client.c (client_process_import_file): Nuke first_time.  If
2877         toplevel_repos were ever NULL here, the code would dump core in
2878         strncmp a few lines down.  And client_import_setup ensures
2879         toplevel_repos is not NULL.
2881 Sun Feb 16 08:16:48 1997  Ian Lance Taylor  <ian@cygnus.com>
2883         * client.c (client_process_import_file): Rename short_pathname to
2884         update_dir (to reflect its function) and make sure that it doesn't
2885         point to uninitialized memory if repository and toplevel_repos
2886         contain the same string.
2888 Sun Feb 16 08:16:48 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2890         * client.c (start_rsh_server): Nuke comment about weirdnesses with
2891         pre-1.5 versions of CVS and .bashrc/.cshrc.  The remote protocol
2892         is interoperable only back to 1.5, and people who need to know are
2893         unlikely to see this comment anyway.
2895 Sun Dec 15 13:12:30 1996  Michael Douglass <mikedoug@texas.net>
2896                           and Jim Kingdon  <kingdon@harvey.cyclic.com>
2898         * main.c (cmds): Added an entry for new logout command.
2899         (cmd_usage): Added an entry for new logout command.
2900         (lookup_command_attribute): Added 'logout' to list of commands
2901         that set need_to_crate_root to 1.
2902         * login.c, cvs.h (logout): New command for removing entries from
2903         the .cvspass file.
2904         (logout_usage): Usage information on the logout command.
2906 Wed Feb 12 11:19:42 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2908         * client.c (struct send_data): Fix indentation.
2910 Wed Feb 12 08:48:04 1997  Greg A. Woods  <woods@most.weird.com>
2912         * mkmodules.c (loginfo_contents): add missing comma in
2913         initializer statement (caused syntax error on SunOS-4).
2915 Tue Feb 11 21:14:28 1997  Ian Lance Taylor  <ian@cygnus.com>
2917         * commit.c (find_fileproc): If force_ci is set, set the status to
2918         T_MODIFIED even if the file hasn't changed.
2919         (commit): Pass force_ci to send_files as new force argument.
2920         * client.c (struct send_data): Define.
2921         (send_fileproc): The callerdat parameter now points to a send_data
2922         struct.  If force is set, always call send_modified.
2923         (send_dirent_proc): The callerdat parameter now points to a
2924         send_data struct.
2925         (send_files): Add force parameter. Change all callers.  Set up a
2926         send_data struct and pass it to start_recursion as callerdat.
2927         * client.h (send_files): Update declaration.
2928         * sanity.sh (basica): Add a simple test for the above patch.
2930 Sun Feb  9 12:58:59 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2932         * tag.c (cvstag), rtag.c (rtag): Pass -f to server if specified in
2933         the client.  I haven't tried to come up with a test case because
2934         the fix seems obvious.
2936         * import.c (add_rcs_file): Change size of altdate1 and altdate2 to
2937         MAXDATELEN.
2938         * cvs.h (MAXDATELEN): Fix comments; describe what this is for.
2940         * diff.c (diff_usage): Document --ifdef and try to briefly say
2941         what "rcsdiff-options" means.
2943         * update.c (update): If update had a nonzero status and we haven't
2944         yet tried to fetch unpatchable files, go ahead and try it again.
2945         The previous behavior was to quit, which meant that updates would
2946         keep failing until you hacked around the problem.  Patch and bug
2947         report by Ian; comment, ChangeLog entry, and willingness to take
2948         the flak if checking it is premature by Jim.
2950         * server.c (alloc_pending): New function.
2951         * server.c: Call it.  Fixes places where we had neglected to
2952         check for NULL return from malloc.
2954         * sanity.sh (binwrap): Add test binwrap-0, tests for import.c fix
2955         below.
2957 Sun, 9 Feb 1997 (submitted 19 Jul 1996)  John Polstra  <jdp@polstra.com>
2959         * import.c (import): Give error if the same tag is specified more
2960         than once.  The previous behavior was to write an RCS file which
2961         had the same tag listed twice, once pointing to each revision,
2962         which is not legal.
2964 Sun Feb  9 12:37:09 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2966         * checkin.c (Checkin): Use cvs_output to print message (should
2967         make out of order bugs no worse, as it merely substitues a
2968         protocol_pipe vs. stderr_pipe race instead of a stdout_pipe
2969         vs. stderr_pipe race).  Add comment about stdout vs. stderr.
2971 Fri Feb  7 08:29:52 1997  Josef Nelissen  <josef.nelissen@munich.ixos.de>
2973         * server.c (check_command_legal_p): Don't use ANSI-style definition.
2975 Thu Feb  6 10:55:37 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2977         * patch.c (patch): Give a fatal error for -V option (see comment
2978         for rationale).
2980         * diff.c (diff): Also send "options" to server.  Pretty much the
2981         patch submitted independently by josef.nelissen@munich.ixos.de and
2982         Ronald Khoo <ronald@demon.net>.
2984 Wed Feb  5 18:57:14 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
2986         * modules.c (do_module): Fix typo in 30 Jan 97 PATH_MAX nuking
2987         (free -> free_cwd).  Testsuite test 151 gets credit for catching
2988         this one.
2990 Mon Feb  3 16:14:54 1997  Ian Lance Taylor  <ian@cygnus.com>
2992         * main.c (lookup_command_attribute): Don't use an ANSI prototype
2993         when defining the function.
2995 Fri Jan 31 12:49:02 1997  Ian Lance Taylor <ian@cygnus.com>
2997         * modules.c (do_module): Actually goto found if is_found is set
2998         (fixes thinko in PATH_MAX nuking of 30 Jan 97).
3000 Fri Jan 31 12:49:02 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3002         * sanity.sh: Add modules3 and big to list of tests to run
3003         by default; they were omitted by accident.
3005 Thu Jan 30 11:46:33 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3007         * logmsg.c, main.c, mkmodules.c, modules.c, parseinfo.c, patch.c:
3008         Nuke more PATH_MAX.
3010         * server.c (server_updated): After we send Created or
3011         Update-existing for a file, mark it as unchanged, in case we
3012         process it again.
3013         * sanity.sh (modules3): New tests, test for above fix.
3015         * logmsg.c (do_verify): Error return from fopen is NULL, not -1.
3016         Pass errno to error().
3018         * login.c [_CRAY]: Don't declare getpass.
3020 Mon Jan 27 17:25:27 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3022         * import.c (process_import_file): Fix freeing of rcs (Don't free
3023         it before we are done using it, and don't free it twice).
3025         * modules.c (cat_module): Allocate line right before we use
3026         it.  The previous code was wrong because the length of the
3027         s_h->rest changes between the time we allocate line and the time we
3028         sprintf s_h->rest into it.
3030 Sun Jan 26 21:58:16 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3032         * expand_path.c (expand_path): Revise to call expand_string as
3033         needed.  Nuke PATH_MAX.
3034         * find_names.c (find_dirs): Likewise.
3035         * import.c, lock.c: Nuke more PATH_MAX.
3037         * server.c (mkdir_p): Set retval to 0 at start of function.
3038         Previously it had been uninitialized for some cases.  Thanks are
3039         due to nightly testing for catching this one.
3041 Sat Jan 25 21:34:19 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3043         * subr.c, cvs.h (expand_string): New function.
3044         * rcs.c (getrcskey, getrcsrev): Call it.  This greatly reduces the
3045         number of calls to realloc if there is a very large file in the
3046         RCS file.  Credit goes to Mike Heath <mike@pswtech.com> for
3047         pointing out the problem and the basic solution (MIN_INCR,
3048         MAX_INCR); I adapted it into the separate function expand_string.
3049         * sanity.sh (big): New test helps insure this hasn't broken
3050         anything obvious.
3052 Wed Jan 22 10:06:13 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3054         * status.c (status_fileproc): Change message which is printed for
3055         T_MODIFIED and ts_conflict set, so that it doesn't say "unresolved
3056         confict".  This message occurs whether the conflict is resolved or
3057         not.
3058         * sanity.sh (conflicts): Add tests conflicts-status-* to test
3059         output of "cvs status" in the context of conflicts.  Tests for
3060         above fix.
3062         * rtag.c (rtag): Send -n if run_module_prog is NOT true.
3064 Thu Jan 16 00:06:00 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3066         * version.c: Change version number to 1.9.3.
3068         * version.c: Version 1.9.2.
3070 Wed Jan 15 09:14:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3072         * client.c (call_in_directory): Take code that creates CVSADM at
3073         top level, move it before the CVS_CHDIR (dir_name) call, and do it
3074         regardless of whether dir_name is ".".  Pass "." not dir_name to
3075         Create_Admin (when the code was written they were always the
3076         same).  Don't add reposdirname to the repository we pass to
3077         Create_Admin (when the code was written, I think reposdirname
3078         probably would always be ".").  Don't create CVSADM if
3079         reposdirname_absolute.
3080         * sanity.sh (basicb): Enable tests basicb-1a and basicb-9a for
3081         remote; tests for above fix.
3082         (basic1): Do entire test within a "1" directory to deal with
3083         creation of CVS directories at top level.  Support --keep.
3084         (conflicts): In test conflicts-136, only update first-dir.
3085         (basica): Uncomment the part that tests "cvs co -l .".  That tests
3086         the existing functionality which I might have (but hopefully did not)
3087         perturbed with the call_in_directory changes.
3089 Mon Jan 13 11:04:32 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3091         * server.c (check_command_legal_p): Do not call error (1, ...)
3092         here; that will always cause a protocol violation by shutting down
3093         the connection prematurely.  Remove croak_on_illegal arg.
3094         (do_cvs_command): Move call to check_command_legal_p until after
3095         the call to print_pending_error.  Print the error message ourself.
3097         * mkmodules.c (filelist): Add readers and writers.  Add comment
3098         about why passwd is not included.  Add comment about meaning of
3099         NULL contents field.
3101 Fri Jan 10 13:23:09 1997  Norbert Kiesel  <nk@col.sw-ley.de>
3103         * release.c (release): Initialize delete_flag before reading it
3104         (found by running purify)
3106         * logmsg.c (do_verify): Fix reading unallocated memory (found by
3107         running purify)
3109 Thu Jan  9 16:32:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3111         * checkout.c (build_dirs_and_chdir): Partially revert 3 Jan
3112         change--move call to Subdir_Register back above the CVS_CHDIR call
3113         (we need to register in the old, not the new, directory).  Instead
3114         of calling CVS_MKDIR and ignoring errors, call mkdir_if_needed;
3115         this is an effort to catch errors there rather than catching them
3116         in the CVS_CHDIR.  This makes test 27-add-add in sanity.sh work
3117         again.
3119         * find_names.c (Find_Directories): Remove code inside
3120         #ifdef ATTIC_DIR_SUPPORT and replace it with a comment explaining
3121         why we don't look in the attic.  ATTIC_DIR_SUPPORT was never defined.
3123         * find_names.c (find_dirs): Add comment about tmp being unset.
3125         * commit.c (checkaddfile): Report errors with errno and specific
3126         error messages.
3128         * rcs.c, commit.c, create_adm.c, entries.c, find_names.c,
3129         ignore.c, history.c: Nuke PATH_MAX arbitrary limits.
3131 Wed Jan  8 23:07:41 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3133         * add.c (add): Reindent a portion which needed it.
3135 1997-01-08  Jim Kingdon
3137         * client.c (send_file_names): When looking name up in Entries,
3138         call Entries_Open and Entries_Close.  This has two effects:
3139         (1) we look at Entries.Log, and (2) we don't skip 'D' entries,
3140         both of which are needed to make us get the right (command
3141         line) name for a directory we are adding.
3143 Wed Jan  8 14:50:47 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3145         * Makefile.in, cvs.h, hash.h, myndbm.h, rcs.h: Remove CVSid; we
3146         decided to get rid of these some time ago.
3148 Tue Jan  7 12:56:10 1997  Karl Fogel  <kfogel@ynu38.ynu.edu.cn>
3150         * root.c (check_root_consistent): new func, compares below new
3151         global var with CVSroot_directory, assuming both set.
3152         (set_local_cvsroot): use above new func for security check.
3153         (parse_cvsroot): same.
3154         But do all of above only #ifdef AUTH_SERVER_SUPPORT.
3156         * server.c: (Pserver_Repos): new global var, init to NULL.
3157         (pserver_authenticate_connection): set above new global.
3158         (check_repository_password): be a good scout and use
3159         CVSROOTADM and CVSROOTADM_PASSWD, now that they are the standard.
3160         Make sure all of above is in #ifdef AUTH_SERVER_SUPPORT.
3161         (check_command_legal_p): wrap most of body in #ifdef
3162         AUTH_SERVER_SUPPORT.
3163         Everywhere: wrap all references to CVS_Username in #ifdef
3164         AUTH_SERVER_SUPPORT.
3166         * cvs.h (Pserver_Repos): new var, used in consistency [security]
3167         check.  Defined only #ifdef AUTH_SERVER_SUPPORT.
3168         (CVSROOTADM_PASSWD): new #define, trying to get with the program.
3170 Fri Jan  3 18:10:39 1997  Ian Lance Taylor  <ian@cygnus.com>
3172         * checkout.c (build_dirs_and_chdir): Move call to Subdir_Register
3173         until after we know that the directory exists.
3175 Thu Jan  2 13:30:56 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3177         * Makefile.in, cvsbug.sh, edit.c, edit.h, error.c, error.h,
3178         fileattr.c, fileattr.h, filesubr.c, run.c, update.h, watch.c,
3179         watch.h: Remove "675" paragraph; see ../ChangeLog for rationale.
3181 Thu Jan  2 12:27:46 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3183         * sanity.sh (info): New test info-cleanup-verifymsg gets rid of
3184         verifymsg when we are done with it.
3186         * sanity.sh (basicb): Skip tests basicb-1a and basicb-9a for remote.
3187         * sanity.sh (modules-155a4): It is OK if a CVS directory exists.
3188         * sanity.sh (ignore): Do everything inside a "1" directory.  The
3189         change to create CVS directories at top-level causes messages such as
3190         "? home" otherwise.  In test 191, specify -I CVS so that new CVS
3191         directory is ignored.
3192         * sanity.sh (crerepos): Manually remove CVS directory which had not
3193         existed before.
3195 Thu Jan  2 09:06:20 1997  Karl Fogel  <kfogel@ynu38.ynu.edu.cn>
3197         * server.c: Changes for pserver read-only repository access:
3198         (check_command_legal_p): new func.  Right now, just checks if
3199         repository modification is permitted, and that only if pserver is
3200         active.
3201         (do_cvs_command): take new parameter `cmd_name', a string.  All
3202         callers changed.  Pass it on to new func check_command_legal_p()
3203         before executing the command.
3204         (CVS_Username): new global, init to NULL.  Used by
3205         check_command_legal_p(), set in check_password().
3206         (check_password): set above new global CVS_Username; reorganized a
3207         bit to facilitate this.
3208         (check_repository_password): give *host_user_ptr permanent
3209         storage iff success.
3211         * main.c: Changes for pserver read-only repository access:
3212         (lookup_command_attribute): new func.
3213         (main): use new func lookup_command_attribute() to establish if
3214         CVS_CMD_IGNORE_ADMROOT and CVS_CMD_USES_WORK_DIR.
3216         * cvs.h: Changes for pserver read-only repository access:
3217         (CVSROOTADM_READERS, CVSROOTADM_WRITERS): new #defines.
3218         Prototype lookup_command_attribute().
3219         (CVS_CMD_IGNORE_ADMROOT, CVS_CMD_USES_WORK_DIR,
3220         CVS_CMD_MODIFIES_REPOSITORY): new #defines for
3221         lookup_command_attribute() and its callers.
3223 Wed Jan  1 19:50:38 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3225         * options.h.in: Reword comment for TMPDIR_DFLT to make it clear
3226         that this isn't specific to the pserver server.
3228         * modules.c (do_module): Give an error message if one tries to
3229         specify -a together with another option.
3230         * sanity.sh (modules2): New tests modules2-a* test for above fix.
3232         * sanity.sh (devcom): Add tests devcom-a-nonexist and
3233         devcom-t-nonexist for "cvs watchers" on nonexistent argument.
3235 1997-01-01  Fred Fish  <fnf@ninemoons.com>
3237         * run.c (piped_child, filter_stream_through_program): Actually
3238         install these HAVE_VFORK patches that got missed.
3239         (There was a log entry for these changes for 29 Nov 1996 but it
3240         seems I accidentally forgot to actually check them in -kingdon).
3242 Wed Jan  1 18:32:44 1997  Jim Kingdon  <kingdon@harvey.cyclic.com>
3244         * Makefile.in: Add ChangeLog-96.
3245         * ChangeLog-96: New file, contains former contents of ChangeLog.
3246         * ChangeLog: Now just contains 1997 changes.
3249 For older changes see ChangeLog-96.