home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / cvs-1.8.7-src.tgz / tar.out / fsf / cvs / src / ChangeLog < prev    next >
Text File  |  1996-09-28  |  128KB  |  3,305 lines

  1. Wed Sep  4 13:35:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2.  
  3.     * Version 1.8.7.
  4.  
  5. Wed Sep  4 1996  Jim Kingdon  <kingdon@cyclic.com>
  6.  
  7.     * client.c (send_file_names): Look for the name to send in
  8.     Entries even if the file doesn't exist; we should send the
  9.     name as it appears in Entries in the "rm foo; cvs update FOO"
  10.     case.
  11.  
  12. Tue Sep  3 20:50:11 1996  William A. Hoffman  <hoffman@albirio.crd.ge.com>
  13.  
  14.     * rcs.c (RCS_fast_checkout): If workfile is NULL, don't try to
  15.     include it in error message.
  16.  
  17. Mon Aug 26 12:27:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  18.  
  19.     * mkmodules.c (mkdir_if_needed): Move from here ...
  20.     * filesubr.c, cvs.h (mkdir_if_needed): ... to here.  Have it
  21.     return a value saying whether the directory was created.
  22.     * client.c (call_in_directory), edit.c (edit_fileproc): Call it.
  23.  
  24. Fri Aug 23 19:19:44 1996  Ian Lance Taylor  <ian@cygnus.com>
  25.  
  26.     * checkin.c (Checkin): Copy rcs parameter in case it is freed when
  27.     finfo->rcs is freed.
  28.  
  29. Fri Aug 23 14:55:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  30.  
  31.     * remove.c (remove_fileproc): Revert change of 23 Aug to print
  32.     getwd and finfo->file in message.  The latter is redundant with
  33.     fullname and the former is redundant with fullname and the working
  34.     directory when CVS was invoked.  The implementation was also
  35.     lacking as the getwd call could overflow the buffer.
  36.  
  37. Fri Aug 23 18:40:35 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  38.  
  39.     * remove.c (cvsremove): fix remove -f for client/server
  40.  
  41. Fri Aug 23 11:28:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  42.  
  43.     * wrapper.c, cvs.h: Remove conflictHook field of WrapperEntry,
  44.     WRAP_CONFLICT in WrapMergeHas, and 'c' option in wrap_add; they
  45.     are never used.
  46.  
  47. Fri Aug 23 11:41:46 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  48.  
  49.     * server.c (switch_to_user): use #ifdef SETXID_SUPPORT instead of
  50.      #if SETXID_SUPPORT
  51.  
  52. Thu Aug 22 14:18:43 1996  Ian Lance Taylor  <ian@cygnus.com>
  53.  
  54.     * checkin.c (Checkin): Remove local variable xfinfo.  Reparse the
  55.     RCS file after the checkin.  Call RCS_fast_checkout rather than
  56.     RCS_checkout.
  57.  
  58.     * cvs.h (RCS_FLAGS_LOCK): Don't define.
  59.     (RCS_FLAGS_*): Adjust values to fill in hole left by removal of
  60.     RCS_FLAGS_LOCK.
  61.     * rcs.c (RCS_fast_checkout): Don't check for RCS_FLAGS_LOCK.
  62.     * rcscmds.c (RCS_checkout): Likewise.
  63.     * commit.c (commit_fileproc): Remove rcs local variable.  If
  64.     status is T_MODIFIED, require that finfo->rcs be set, call
  65.     Lock_RCS directly, and don't call locate_rcs.  If adding to a tag,
  66.     require that finfo->rcs be set, and don't call locate_rcs.
  67.     (remove_file): Remove rcs local variable.  Require that finfo->rcs
  68.     be set.  Don't call locate_rcs.  Don't pass RCS_FLAGS_LOCK to
  69.     RCS_checkout; use RCS_lock instead.  Call RCS_fast_checkout rather
  70.     than RCS_checkout.
  71.     (unlockrcs): Use a single rcs parameter rather than two parameters
  72.     for file and repository.  Change all callers.  Don't call
  73.     locate_rcs.
  74.     (fixbranch): Likewise.
  75.     (lockrcsfile): Remove; no more callers.
  76.  
  77. Tue Aug 20 10:13:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  78.  
  79.     * buffer.c, rcs.c: Don't use inline.  It wasn't being used in a
  80.     loop or any such place where it would matter for performance, and
  81.     it was a (minor) portability hassle.
  82.  
  83.     * server.c (server): Change "Dummy argument 0" to "cvs server" and
  84.     add comment explaining why.
  85.  
  86.     * rcs.c (linevector_add): Add comment regarding changing \n to \0.
  87.  
  88. Tue Aug 20 09:19:19 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  89.  
  90.     * checkout.c (checkout_proc): Call RCS_parse to get the default
  91.      options from the RCS file.
  92.  
  93.     * sanity.sh (binfiles): Add tests 5.5b0 and 5.5b1 for the above fix
  94.  
  95. Mon Aug 19 18:13:32 1996  Ian Lance Taylor  <ian@cygnus.com>
  96.  
  97.     * rcs.c (linevector_init): Make inline.  Set lines_alloced to 0,
  98.     not 10.  Set vector to NULL.
  99.     (linevector_add): Remove assertion that lines_alloced is greater
  100.     than zero.  Initialize lines_alloced if necessary.
  101.     (linevector_copy): Initialize lines_alloced if necessary.
  102.     (linevector_free): Only free vector if it is not NULL.
  103.     (RCS_deltas): Always call linevector_init and linevector_free on
  104.     curlines, headlines, and trunklines.
  105.      (RCS_fast_checkout): Remove #if 0 around code that calls
  106.     RCS_deltas.
  107.  
  108. Fri Aug 16 17:52:54 1996  Ian Lance Taylor  <ian@cygnus.com>
  109.  
  110.     * rcs.c (linevector_add): Handle zero length correctly.
  111.     (RCS_deltas): In RCS_FETCH case, the data is in headlines, not
  112.     curlines.
  113.     (RCS_fast_checkout): Update comment about RCS_deltas: the
  114.     testsuite now passes.
  115.  
  116.     * rcs.c (RCS_fully_parse): Use the length of the value, rather
  117.     than assuming that there are no embedded zero bytes.
  118.     (struct line): Add len field.
  119.     (linevector_add): Add len parameter.  Change all callers.  Use
  120.     len, rather than assuming that there are no embedded zero bytes.
  121.     Set the len field in new lines.
  122.     (RCS_deltas): Use the length of the value, rather than assuming
  123.     that there are no embedded zero bytes.  Use the line length when
  124.     outputting it and when copying it.
  125.     (RCS_fast_checkout): Update comment about RCS_deltas to remove
  126.     note about supporting zero bytes correctly.
  127.  
  128. Thu Aug 15 23:38:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  129.  
  130.     * commit.c, import.c: Revise comments regarding the fact that we
  131.     call start_server before do_editor.
  132.  
  133. Thu Aug 15 11:30:55 1996  Ian Lance Taylor  <ian@cygnus.com>
  134.  
  135.     * server.c: Include <sys/socket.h> if AUTH_SERVER_SUPPORT.
  136.     (pserver_authenticate_connection): Set SO_KEEPALIVE on
  137.     STDIN_FILENO.
  138.     (kserver_authenticate_connection): Likewise.
  139.  
  140. Thu Aug 15 10:26:41 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  141.  
  142.     * server.c (switch_to_user): Fix previous patch to compile it for
  143.      both HAVE_KERBEROS and AUTH_SERVER_SUPPORT
  144.  
  145. Wed Aug 14 14:02:00 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  146.  
  147.     * server.c (check_password): if available use getspnam instead of
  148.      getpwnam when reading system passwords.  This allows cvs pserver
  149.      to run on systems with shadow passwords.
  150.     (switch_to_user): new static function.  Contains the extracted
  151.      common tail of kserver_authenticate_connection and
  152.      pserver_authenticate_connection.  If compiled with SETXID_SUPPORT,
  153.      honor the setgid bit if it is set.
  154.     (check_repository_password): turn into a static function
  155.     (check_password): ditto
  156.     (pserver_authenticate_connection): little code cleanup
  157.  
  158. Wed Aug 14 01:07:10 1996  Greg A. Woods  <woods@most.weird.com>
  159.  
  160.     * history.c (history): apply fix posted by Steven Meyer
  161.     <steve@blacksmith.com> to info-cvs to correct handling of '-D'
  162.     argument.  Message-Id: <9608122335.AA01385@nijel.blacksmith.com>
  163.  
  164. Tue Aug 13 13:42:36 1996  Ian Lance Taylor  <ian@cygnus.com>
  165.  
  166.     * log.c (cvslog): Remove comment about calling rlog.
  167.     * rcs.c (translate_symtag): Correct typo in comment (l ist ->
  168.     list).
  169.     * server.c (server_write_entries): Add omitted word (lists) in
  170.     comment.
  171.  
  172. Tue Aug 13 14:01:49 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  173.  
  174.     * wrapper.c (wrap_rcsoption): fix memory access error
  175.  
  176.     * rcs.c (RCS_fast_checkout): fix memory access error (triggered
  177.     by an empty option string)
  178.  
  179. Mon Aug 12 17:45:15 1996  Jim Kingdon  (unknown@beezley)
  180.  
  181.     * buffer.c, zlib.c: If EIO is not defined, try to define it.
  182.  
  183. Mon Aug 12 10:33:27 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  184.  
  185.     * import.c (comtable): Add comment concerning applicability with
  186.     RCS 5.7.
  187.  
  188.     * server.c (server): If TMPDIR is not an absolute pathname, give
  189.     an error.
  190.  
  191. Mon Aug 12 10:34:43 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  192.  
  193.     * main.c: add synonym "ann" for "annotate" again
  194.  
  195. Sun Aug 11 17:54:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  196.  
  197.     * rcs.h (RCS_RLOG): Removed; no longer used.
  198.  
  199. Fri Aug  9 20:16:20 1996  Ian Lance Taylor  <ian@cygnus.com>
  200.  
  201.     * server.c (dirswitch): Open the Entries file with mode "a" rather
  202.      than "w+".
  203.     (server_write_entries): Open the Entries file with mode "a" rather
  204.     than "w".
  205.     * sanity.sh (modules): Add topfiles module and 155cN tests for
  206.     above patch.
  207.  
  208. Fri Aug  9 12:11:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  209.  
  210.     * main.c (cmd): Add comment regarding synonyms.
  211.  
  212. Thu Aug  8 14:40:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  213.  
  214.     * main.c: Remove synonyms for "cvs annotate".  Synonyms create
  215.     user confusion.
  216.  
  217. Thu Aug  8 10:24:04 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  218.  
  219.     * main.c: Revert (undocumented) change to rename the cvs history
  220.     alias "his" to "hist"
  221.  
  222. Wed Aug  7 18:26:25 1996  Ian Lance Taylor  <ian@cygnus.com>
  223.  
  224.     * server.c (cvs_output): Change str parameter to const char *.
  225.     Correct loop to print from p, not str.
  226.     (cvs_outerr): Likewise.
  227.     * cvs.h (cvs_output, cvs_outerr): Update declarations.
  228.  
  229.     * server.c (receive_partial_file): Read and discard remaining file
  230.     data on a write error.
  231.     (serve_modified): Discard data while size > 0, not >=.
  232.  
  233. Wed Aug  7 15:11:40 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  234.  
  235.     * main.c (cmds): Add some aliases for "annotate".
  236.     (usg): Improve usage message text
  237.     (cmd_synonyms): New function to print the command synonym list
  238.     (main): Add new option --help-synonyms
  239.  
  240. Wed Aug  7 00:07:31 1996  Ian Lance Taylor  <ian@cygnus.com>
  241.  
  242.     Keep track of subdirectories in the Entries file.
  243.     * cvs.h (enum ent_type): Define.
  244.     (struct entnode): Add type field.
  245.     (struct stickydirtag): Add subdirs field.
  246.     (Subdirs_Known, Subdir_Register, Subdir_Deregister): Declare.
  247.     (ignore_files): Update declaration for new parameter.
  248.     (FILESDONEPROC): Add entries parameter.
  249.     (DIRENTPROC, DIRLEAVEPROC): Likewise.
  250.     * entries.c (Entnode_Create): Add type parameter.  Change all
  251.     callers.
  252.     (write_ent_proc): If closure is not NULL, treat it as a pointer to
  253.     an int, and set it to 1 if a node is seen which is not ENT_FILE.
  254.     (write_entries): If subdirectory information is known, but no
  255.     subdirectories were written, write an unadorned D to the file.
  256.     (Scratch_Entry): Write an R command to Entries.Log.  Don't rewrite
  257.     the Entries file.
  258.     (Register): Set entfilename.  Write an A command rather than an
  259.     unadorned entries line.
  260.     (fgetentent): Add cmd and sawdir parameters.  Change all callers.
  261.     If CMD is not NULL, expect and return a single character command.
  262.     Handle an initial D by setting the type to ENT_SUBDIR.
  263.     (fputentent): Output an initial D for an ENT_SUBDIR entry.
  264.     (Entries_Open): Handle removal commands in Entries.Log.  Record
  265.     whether subdirectory information is known in the list private
  266.     data.
  267.     (Subdirs_Known): New function.
  268.     (subdir_record): New static function.
  269.     (Subdir_Register, Subdir_Deregister): New functions.
  270.     * find_names.c (add_entries_proc): Skip entries that are not
  271.     ENT_FILE.
  272.     (add_subdir_proc): New static function.
  273.     (register_subdir_proc): New static function.
  274.     (Find_Directories): If the Entries file has subdirectory
  275.     information, get the directories out of it.  Otherwise, call
  276.     find_dirs, and add the information to the Entries file.
  277.     * recurse.c (struct frame_and_entries): Define.
  278.     (do_recursion): Don't call Entries_Close until after processing
  279.     dirlist.  Pass entries to filesdoneproc.  Pass a frame_and_entries
  280.     structure to do_dir_proc via walklist.
  281.     (do_dir_proc): Expect a frame_and_entries structure in closure,
  282.     not a recursion_frame.  Pass entries to direntproc and
  283.     dirleaveproc.
  284.     * ignore.c (ignore_files): Add entries parameter.  Change all
  285.     callers.  If we have subdirectory information, check for
  286.     directories in entries.
  287.     * add.c (add): If client_active, call Subdir_Register on each new
  288.     directory.
  289.     (add_directory): Add entries parameter.  Change caller.  Call
  290.     Subdir_Register.
  291.     * checkout.c (build_dirs_and_chdir): Call Subdir_Register.
  292.     * client.c (call_in_directory): Call Subdir_Register for newly
  293.     created directories.  Call Subdirs_Known or Find_Directories after
  294.     calling Entries_Open.
  295.     (process_prune_candidates): Call Subdir_Deregister.
  296.     * commit.c (findmaxrev): Skip entries that are not ENT_FILE.
  297.     * server.c (dirswitch): Call Subdir_Register.
  298.     * update.c (update_dirent_proc): Call Subdir_Register.
  299.     (update_dirleave_proc): Call Subdir_Deregister.
  300.     * Several files: Change direntproc, dirleaveproc, and
  301.     filesdoneproc routines to expect an entries argument.
  302.  
  303.     * rcs.c (translate_symtag): New static function.
  304.     (RCS_gettag): Use translate_symtag rather than RCS_symbols.
  305.     (RCS_nodeisbranch, RCS_whatbranch): Likewise.
  306.  
  307. Tue Aug  6 15:36:09 1996  Ian Lance Taylor  <ian@cygnus.com>
  308.  
  309.     Finish the conversion of cvs log so that it never invokes rlog.
  310.     * log.c (struct log_data): Remove dorlog field.  Add nameonly,
  311.     header, long_header, statelist, and authorlist fields.
  312.     (log_usage): Remove rlog-options.  Add -R, -h, -t, -b, -s, -w.
  313.     (cvslog): Don't clear opterr.  Handle -h, -R, -s, -t, -w.  If an
  314.     unrecognized option is seen, call usage.
  315.     (log_parse_list): New static function.
  316.     (log_fileproc): Remove code that called rlog.  Check nameonly,
  317.     header, and long_header fields in log_data.
  318.     (log_version_requested): Check statelist and authorlist.
  319.  
  320.     * log.c (struct datelist): Define.
  321.     (struct log_data): Add datelist and singledatelist fields.
  322.     (log_usage): Add -d.
  323.     (cvslog): Handle -d.
  324.     (log_parse_date): New static function.
  325.     (log_fileproc): Do special single date handling.
  326.     (log_version_requested): Check datelist and singledatelist.
  327.     (log_fix_singledate): New static function.
  328.  
  329. Mon Aug  5 23:48:16 1996  Ian Lance Taylor  <ian@cygnus.com>
  330.  
  331.     * log.c (struct option_revlist): Define.
  332.     (struct revlist): Define.
  333.     (struct log_data): Add default_branch and revlist fields.
  334.     (struct log_data_and_rcs): Define.
  335.     (log_usage): Add -N and -r.
  336.     (cvslog): Handle -N and -r.
  337.     (log_parse_revlist): New static function.
  338.     (log_fileproc): Call log_expand_revlist and log_free_revlist.
  339.     Pass log_data_and_rcs structure to log_count_print via walklist.
  340.     (log_expand_revlist, log_free_revlist): New static functions.
  341.     (log_version_requested): New static function.
  342.     (log_count_print): New static function.
  343.     (log_tree): Add log_data and revlist parameter.  Change all
  344.     callers.
  345.     (log_abranch): Likewise.
  346.     (log_version): Likewise.  Call log_version_requested.
  347.     (version_compare): New static function.
  348.     * sanity.sh (log): New tests for -r, -b, and -N options to log.
  349.  
  350. Sun Aug  4 11:19:30 1996  Ian Lance Taylor  <ian@cygnus.com>
  351.  
  352.     Handle simple cases of cvs log without invoking rlog.
  353.     * log.c (struct log_data): Define.
  354.     (cvslog): Use getopt to parse options.  Set up a log_data
  355.     structure, and pass it to start_recursion.
  356.     (log_fileproc): Get arguments form callerdat rather than static
  357.     variables.  In simple cases, print the log information directly,
  358.     rather than invoking rlog.
  359.     (log_symbol, log_count, log_tree): New static functions.
  360.     (log_abranch, log_version, log_branch): New static functions.
  361.     * rcs.h (struct rcsnode): Add other field.
  362.     (struct rcsversnode): Add other field.
  363.     (RCS_fully_parse): Declare.
  364.     * rcs.c (getrcsrev): Move declaration to start of file.
  365.      (RCS_reparsercsfile): Add all parameter.  Change all callers.
  366.     (RCS_fully_parse): New function.
  367.     (freercsnode): Free other list.
  368.     (rcsvers_delproc): Free other list.
  369.     * hash.h (enum ntype): Add RCSFIELD.
  370.     * hash.c (nodetypestring): Handle RCSFIELD.
  371.  
  372. Sat Aug  3 19:39:54 1996  Ian Lance Taylor  <ian@cygnus.com>
  373.  
  374.     * log.c (cvslog): Correct position of CLIENT_SUPPORT #endif.
  375.  
  376. Thu Jul 25 12:06:45 1996  Ian Lance Taylor  <ian@cygnus.com>
  377.  
  378.     * update.c (join_file): If merging a branch, and the branch
  379.     revision does not exist, just return without doing anything.
  380.     * sanity.sh (join): Add cases file7 and file8 to test above
  381.     patch.
  382.  
  383.     * server.c (cvsencrypt): Rename from encrypt, to avoid conflict
  384.     with NetBSD unistd.h.  Rename all uses.
  385.  
  386.     * server.c (krb_encrypt_buffer_output): Fix typo in comment (reply
  387.     -> replay).
  388.  
  389. Thu Jul 25 10:37:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  390.  
  391.     * server.c (krb_encrypt_buffer_output): Fix typo in comment
  392.     (krb_recv_auth -> krb_recvauth).
  393.  
  394. Wed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  395.  
  396.     * lock.c (set_lock): Adjust comment regarding why we call stat.
  397.  
  398. Wed Jul 24 15:06:08 1996  Ian Lance Taylor  <ian@cygnus.com>
  399.  
  400.     Add encryption support over a Kerberos connection.
  401.     * main.c (usg): Mention -x if CLIENT_SUPPORT.
  402.     (main): Handle -x.
  403.     * client.h (encrypt): Declare.
  404.     (krb_encrypt_buffer_initialize): Declare.
  405.     * client.c (kblock, sched): New static variables if
  406.     HAVE_KERBEROS.
  407.     (start_tcp_server): Remove sched local variable.  Copy
  408.     cred.session into kblock.
  409.     (start_server): Turn on encryption if requested.
  410.     * server.c (kblock, sched): New static variables if
  411.     HAVE_KERBEROS.
  412.     (serve_kerberos_encrypt): New static function.
  413.     (requests): Add "Kerberos-encrypt" if HAVE_KERBEROS.
  414.     (kserver_authenticate_connection): Remove sched local variable.
  415.     Copy auth.session into kblock.
  416.     (encrypt): New global variable.
  417.     (struct krb_encrypt_buffer): Define.
  418.     (krb_encrypt_buffer_initialize): New function.
  419.     (krb_encrypt_buffer_input): New static function.
  420.     (krb_encrypt_buffer_output): New static function.
  421.     (krb_encrypt_buffer_flush): New static function.
  422.     (krb_encrypt_buffer_block): New static function.
  423.     (krb_encrypt_buffer_shutdown): New static function.
  424.  
  425. Wed Jul 24 09:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  426.  
  427.     * recurse.c (do_recursion): Add comment about calling
  428.     Name_Repository in !(which & W_LOCAL) case.
  429.  
  430.     * expand_path.c (expand_variable): Fix typo (varaible -> variable).
  431.  
  432. Tue Jul 23 15:05:01 1996  Ian Lance Taylor  <ian@cygnus.com>
  433.  
  434.     * update.c (update_fileproc): In T_REMOVE_ENTRY case, only call
  435.     server_scratch_entry_only if ts_user is NULL.
  436.     * sanity.sh (death2): Add death2-20 test for above patch.
  437.  
  438.     * diff.c (diff_fileproc): If a file is not in the working
  439.     directory, check that the tag is present before warning that no
  440.     comparison is possible.
  441.     * sanity.sh (death2): Add death2-diff-9 and death2-diff-10 tests
  442.     for above patch.
  443.  
  444. Tue Jul 23 12:05:42 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  445.  
  446.     * tag.c (tag_check_valid): Fix indentation.
  447.  
  448.     * client.c (handle_e): Flush stdout before writing to stderr.
  449.     (handle_m): Flush stderr before writing to stdout.
  450.  
  451. Fri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  452.  
  453.     * client.c: Added NO_CLIENT_GZIP_PROCESS to deal with the MacOS
  454.     client where Gzip-stream is supported, but "gzip-file-contents" is
  455.     not.
  456.  
  457. Fri Jul 19 16:02:11 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  458.  
  459.     * repos.c: Fixed recent patch which added plain fopen rather than
  460.     CVS_FOPEN
  461.  
  462. Mon Jul 22 22:25:53 1996  Ian Lance Taylor  <ian@cygnus.com>
  463.  
  464.     * logmsg.c (tag): New static variable.
  465.     (setup_tmpfile): Don't print the prefix before calling fmt_proc.
  466.     Free tag if it is set.
  467.     (find_type): Get type from logfile_info struct.
  468.     (fmt_proc): Likewise.  Print tag information.  Handle all prefix
  469.     printing.
  470.     (revision): Remove static variable.
  471.     (Update_Logfile): Remove xrevision parameter.  Change all
  472.     callers.
  473.     (title_proc): Get type from logfile_info struct.
  474.     (logfile_write): Remove revision parameter.  Change all callers.
  475.     * cvs.h (struct logfile_info): Define.
  476.     (Update_Logfile): Update prototype.
  477.     * commit.c (find_fileproc): Set logfile_info information.
  478.     (check_fileproc): Likewise.
  479.     (commit_filesdoneproc): Don't call ParseTag.
  480.     (update_delproc): Free logfile_info information.
  481.     * add.c (add_directory): Set logfile_info information.
  482.     * import.c (import): Likewise.
  483.  
  484.     * tag.c (tag_check_valid): The special BASE and HEAD tags are
  485.     always valid.
  486.     * sanity.sh (basica): Add basica-6.3 test for above patch.
  487.  
  488. Mon Jul 22 14:41:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  489.  
  490.     * update.c (merge_file): Pass 0 not NULL to checkout_file (20 Jul
  491.     96 change changed other calls to checkout_file but missed this one).
  492.  
  493. Sat Jul 20 00:21:54 1996  Ian Lance Taylor  <ian@cygnus.com>
  494.  
  495.     * update.c (join_file): Check whether the target of the merge is
  496.     the same as the working file revision before checking whether the
  497.     file was added during the merge.
  498.  
  499.     * update.c (scratch_file): Remove existing parameters, and add a
  500.     single parameter of type struct file_info.  Change all callers.
  501.     Warn if unlink_file fails.
  502.     (checkout_file): Remove resurrecting_out parameter.  Add adding
  503.     parameter.  Change all callers.  Remove joining code.
  504.     (join_file): Remove resurrecting parameter.  Rewrite to handle
  505.     joining dead or added revisions.
  506.     * classify.c (Classify_File): If there is no user file, and the
  507.     RCS file is dead, return T_UPTODATE rather than T_CHECKOUT.
  508.     * checkout.c (checkout_proc): Set W_ATTIC if there is a join tag.
  509.     * sanity.sh (join): New set of tests for above patches.
  510.     (death): Adjust tests 86, 89, 89a, 92.1c, 95 for above patches.
  511.     (import): Adjust test 113 for above patches.
  512.  
  513. Thu Jul 18 19:24:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  514.  
  515.     * lock.c: Add comment explaining what locks are for.  Also discuss
  516.     various changes to locking which get proposed from time to time.
  517.  
  518.     * sanity.sh (death2): Change a number of test names from death-*
  519.     to death2-*.
  520.  
  521.     * wrapper.c (wrap_setup): Don't look in repository if client_active.
  522.     * wrapper.c, cvs.h (wrap_send): New function.
  523.     * update.c (update), import.c (import): Call it.
  524.     * sanity.sh (binwrap): Do binwrap tests for remote as well as
  525.     local; tests for above fixes.
  526.  
  527.     * wrapper.c: Add a few FIXME comments.
  528.  
  529. Thu Jul 18 18:43:50 1996  Ian Lance Taylor  <ian@cygnus.com>
  530.  
  531.     * sanity.sh (patch): Fix names of a couple of tests to say patch
  532.     rather than death2.
  533.  
  534. Thu Jul 18 16:19:21 1996  Bill Bumgarner <bbum@friday.com>
  535.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  536.  
  537.     * add.c (add), import.c (add_rcs_file): Check for options from
  538.     wrappers and use them if specified.
  539.     * cvs.h (WrapMergeHas): Add WRAP_RCSOPTION.
  540.     * wrapper.c (WrapperEntry): Add rcsOption field.
  541.     (wrap_add): Allow a single character argument to an option.
  542.     (wrap_add): Handle -k option.
  543.     (wrap_add_entry): Handle rcsOption field.
  544.     (wrap_name_has): Handle WRAP_RCSOPTION.
  545.     * wrapper.c, cvs.h (wrap_rcsoption): New function.
  546.     * add.c, import.c, wrapper.c: Minor beautification (mostly
  547.     removing trailing spaces).
  548.     * sanity.sh (binwrap): New tests test for this feature.
  549.  
  550. Wed Jul 17 10:14:20 1996  Ian Lance Taylor  <ian@cygnus.com>
  551.  
  552.     * checkout.c (checkout): Remove extraneous else accidentally
  553.     inserted in last checkin.
  554.  
  555. Tue Jul 16 11:37:41 1996  Ian Lance Taylor  <ian@cygnus.com>
  556.  
  557.     * sanity.sh (import): Use quoting to avoid expansion of RCS ID
  558.     strings.
  559.  
  560.     * sanity.sh (import): Use dotest to examine the output of test
  561.      113, and the actual contents of the file in test 116.
  562.  
  563.     * update.c (join_file): Always skip rcsmerge if the two revisions
  564.      are the same (the old code always did the rcsmerge when two -j
  565.     options were specified).
  566.  
  567.     * checkout.c (history_name): New static variable.
  568.     (checkout): Permit both tag and date to be specified.  Set
  569.     history_name.
  570.     (checkout_proc): Use history_name when calling history_write.
  571.     * rcs.c (RCS_getversion): If both tag and date are set, use
  572.     RCS_whatbranch to get the branch revision number of a symbolic
  573.     tag.
  574.     (RCS_getdatebranch): If the branch revision itself is early
  575.     enough, then use it if the first branch is not early enough.  Add
  576.     comment for invalid RCS file.  Don't bother to check for NULL
  577.     before calling xstrdup, since xstrdup checks anyhow.
  578.  
  579.     * client.h (file_gzip_level): Declare.
  580.     * client.c (file_gzip_level): Define.
  581.     (start_server): Don't set gzip_level to zero after sending
  582.     Gzip-stream command.  Set file_gzip_level after sending
  583.     gzip-file-contents command.
  584.     (send_modified): Use file_gzip_level rather than gzip_level.
  585.     * server.c (server_updated): Likewise.
  586.     (serve_gzip_contents): Likewise.
  587.  
  588.     * sanity.sh (patch): New tests.  Test remote CVS handling of
  589.     unpatchable files.
  590.  
  591.     * sanity.sh (death2): Accept a '.' in the temporary file name
  592.     printed by diff.
  593.  
  594.     * rcscmds.c (RCS_checkin): Remove noerr parameter.  Change all
  595.     callers.
  596.     * cvs.h (RCS_checkin): Update declaration.
  597.     * commit.c (remove_file): Pass RCS_FLAGS_QUIET to RCS_checkin.
  598.  
  599.     * history.c (history): Cast sizeof to int to use correct type in
  600.     error printf string.
  601.     (report_hrecs): Cast strlen result to int to use correct type in
  602.     printf string.
  603.  
  604.     * server.c (cvs_flusherr): Correct typo in comment.
  605.  
  606.     * rcs.c (getrcskey): Hoist three constant strcmp calls out of the
  607.     value reading loop.
  608.  
  609.     * fileattr.c (fileattr_get): Change parameter types from char * to
  610.      const char *.
  611.     (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
  612.     (fileattr_newfile): Likewise.
  613.     * fileattr.h (fileattr_get): Update declaration.
  614.     (fileattr_get0, fileattr_modify, fileattr_set): Likewise.
  615.     (fileattr_newfile): Likewise.
  616.  
  617. Thu May 16 11:12:18 1996  Mark P. Immel <immel@radix.net>
  618.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  619.  
  620.     * client.h, client.c, checkout.c (client_send_expansions):
  621.     Pass an additional parameter indicating where the checkout is
  622.     to occur, to avoid passing the wrong information to send_files().
  623.     * sanity.sh (basicb): New test basicb-cod-1 tests for above fix.
  624.  
  625. Mon Jul 15 18:26:56 1996  Ian Lance Taylor  <ian@cygnus.com>
  626.  
  627.     * recurse.c (do_recursion): Require a repository before calling
  628.     Find_Names.
  629.     * repos.c (Name_Repository): Remove sanity checks which spend time
  630.     examining the filesystem.
  631.  
  632. Mon Jul 15 1996  Jim Kingdon  <kingdon@cyclic.com>
  633.  
  634.     * client.c (send_file_names): Send file names as they appear
  635.     in CVS/Entries, rather than as specified (in cases where they
  636.     might differ in case).
  637.     (send_fileproc): Use file name from CVS/Entries (vers->entdata->user)
  638.     rather than file name as specified (finfo->file) when available.
  639.  
  640. Sun Jul 14 15:39:44 1996  Mark Eichin  <eichin@cygnus.com>
  641.               and Ian Lance Taylor  <ian@cygnus.com>
  642.  
  643.     Improve diff -N handling of nonexistent tags and removed files.
  644.     * diff.c (enum diff_file): New definition for whole file, moving
  645.     unnamed enum out of diff_fileproc, renaming DIFF_NEITHER to
  646.     DIFF_DIFFERENT, and adding DIFF_SAME.
  647.     (diff): Look through the repository even if only one revision is
  648.     given.
  649.     (diff_fileproc): Change empty_file to be enum diff_file.  If there
  650.     is no user revision, but there is a repository file, treat it as a
  651.     removed file.  Pass empty_file to diff_file_nodiff, and set it
  652.     from the return value.
  653.     (diff_file_nodiff): Change return type to enum diff_file.  Replace
  654.     just_set_rev parameter with enum diff_file empty_file parameter.
  655.     Change handling of a missing tag to return an enum diff_file value
  656.     if empty_files is set, rather than reporting an error.  Free tmp
  657.     if xcmp returns 0.
  658.     * sanity.sh (death2): Add tests for above patches.
  659.  
  660. Sat Jul 13 19:11:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  661.  
  662.     * rcs.c (annotate): In sending options to server, reverse sense of
  663.     test so that we send -f iff -f was specified, rather than iff -f was
  664.     not specified.
  665.  
  666. Fri Jul 12 20:23:54 1996  Greg A. Woods  <woods@most.weird.com>
  667.  
  668.     * zlib.c (compress_buffer_input): add a couple of casts for
  669.     uses of z_stream's next_in and next_out
  670.  
  671. Fri Jul 12 18:55:26 1996  Ian Lance Taylor  <ian@cygnus.com>
  672.  
  673.     * zlib.c: New file.
  674.     * client.c (log_buffer_block): Call set_block and set_nonblock,
  675.     rather than lb->buf->block.
  676.     (log_buffer_shutdown): New static function.
  677.     (get_responses_and_close): Call buf_shutdown on to_server and
  678.     from_server.
  679.     (start_server): If "Gzip-stream" is supported, use it rather than
  680.     "gzip-file-contents".
  681.     * server.c (print_error): Call buf_flush rather than
  682.     buf_send_output.
  683.     (print_pending_error, serve_valid_responses): Likewise.
  684.     (serve_expand_modules, serve_valid_requests): Likewise.
  685.     (do_cvs_command): Call buf_flush rather than buf_send_output
  686.     before the fork, and in the parent after the child has completed.
  687.     In the child, set buf_to_net and buf_from_net to NULL.
  688.     (serve_gzip_stream): New static function.
  689.     (requests): Add "Gzip-stream".
  690.     (server_cleanup): Don't do anything with buf_to_net if it is
  691.     NULL.  Call buf_flush rather than buf_send_output.  Call
  692.     buf_shutdown on buf_to_net and buf_from_net.  Call error for an
  693.     malloc failure rather than buf_output to buf_to_net.
  694.     * buffer.h (struct buffer): Add shutdown field.
  695.     (buf_initialize): Update declaration for new shutdown parameter.
  696.     (compress_buffer_initialize): Declare.
  697.     (buf_shutdown): Declare.
  698.     * buffer.c (buf_initialize): Add shutdown parameter.  Change all
  699.     callers.
  700.     (buf_shutdown): New function.
  701.     * Makefile.in (SOURCES): Add zlib.c
  702.     (OBJECTS): Add zlib.o.
  703.     ($(PROGS)): Depend upon ../zlib/libz.a.
  704.     (cvs): Link against ../zlib/libz.a.
  705.     (zlib.o): New target.
  706.  
  707. Fri Jul 12 1996  Jim Kingdon  <kingdon@cyclic.com>
  708.  
  709.     * client.c (log_buffer_input, log_buffer_output): Use size_t
  710.     to avoid Visual C++ signed/unsigned warnings.
  711.  
  712. Thu Jul 11 22:01:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  713.  
  714.     * client.c (handle_f): Reindent.
  715.  
  716.     * client.c (mode_to_string, handle_m, handle_e,
  717.     auth_server_port_number, get_responses_and_close), server.c
  718.     (pserver_authenticate_connection, serve_modified,
  719.     serve_enable_unchanged, wait_sig, server_cleanup): Reindent.
  720.     * server.c: Remove #if 0'd block of code above
  721.     check_repository_password; it was yanked out of some unknown
  722.     context and didn't seem to be very useful.
  723.  
  724. Thu Jul 11 20:10:21 1996  Ian Lance Taylor  <ian@cygnus.com>
  725.  
  726.     * server.c (do_cvs_command): Pass new special parameter to
  727.     buf_copy_counted.  If it gets set to -1, send an 'F' response if
  728.     the client supports it, and call cvs_flusherr.
  729.     (cvs_flusherr): New function.
  730.     * cvs.h (cvs_flusherr): Declare.
  731.     * client.c (handle_f): New static function.
  732.     (responses): Add "F".
  733.     * buffer.c (buf_send_special_count): New function.
  734.     (buf_copy_counted): Add special parameter.  Handle negative counts
  735.     specially.
  736.     * buffer.h (buf_send_sepcial_count): Declare.
  737.     (buf_copy_counted): Update declaration.
  738.     * lock.c (lock_wait, lock_obtained): Call cvs_flusherr.
  739.  
  740.     Change the client to use the buffer data structure.
  741.     * client.c: Include "buffer.h".
  742.     (to_server): Change to be struct buffer *.
  743.     (to_server_fp): New static variable.
  744.     (from_server): Change to be struct buffer *.
  745.     (from_server_fp): New static variable.
  746.     (from_server_logfile, to_server_logfile): Remove.
  747.     (buf_memory_error): New static function.
  748.     (struct log_buffer): Define.
  749.     (log_buffer_initialize, log_buffer_input): New static functions.
  750.     (log_buffer_output, log_buffer_flush): New static functions.
  751.     (log_buffer_block): New static function.
  752.     (struct socket_buffer): Define if NO_SOCKET_TO_FD.
  753.     (socket_buffer_initialize): New static function if
  754.     NO_SOCKET_TO_FD.
  755.     (socket_buffer_input, socket_buffer_output): Likewise.
  756.     (socket_buffer_flush): Likewise.
  757.     (read_line): Rewrite to use buf_read_line.  Remove eof_ok
  758.     parameter (it was always passed as 0); change all callers.
  759.     (send_to_server): Rewrite to use buf_output.
  760.     (try_read_from_server): Rewrite to use buf_read_data.
  761.     (get_responses_and_close): Use from_server_fp and to_server_fp for
  762.     the streams.  Check buf_empty_p when checking for dying gasps.
  763.     (start_server): Don't set from_server_logfile and
  764.     to_server_logfile; instead, call log_buffer_initialize.  If
  765.     NO_SOCKET_TO_FD and use_socket_style, call
  766.     socket_buffer_initialize; otherwise, call
  767.     stdio_buffer_initialize.
  768.     * buffer.c: Compile if CLIENT_SUPPORT is defined.
  769.     (buf_flush): Fix comment to describe return value.
  770.     (buf_read_line): Add lenp parameter.  Change all callers.  Look
  771.     for a line terminated by \012 rather than \n.
  772.     * buffer.h: Compile if CLIENT_SUPPORT is defined.
  773.     (buf_read_line): Update declaration.
  774.  
  775.     * server.c (server): Initialize buf_to_net, buf_from_net,
  776.     saved_output, and saved_outerr before setting error_use_protocol.
  777.     (pserver_authenticate_connection): Don't set error_use_protocol.
  778.     Errors before the authentication is complete aren't handled
  779.     cleanly anyhow.  Change error call after authentication to use
  780.     printf.
  781.  
  782. Thu Jul 11 1996  Jim Kingdon  <kingdon@cyclic.com>
  783.  
  784.     * client.c (start_server): Open logfiles in binary, not text, mode.
  785.  
  786. Wed Jul 10 19:24:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  787.  
  788.     * server.c (print_pending_error, print_error): Remove comments
  789.     about deadlocks; they don't apply here.  Add comments saying
  790.     that these functions must only be called when it is OK to
  791.     send output (which is why the deadlock concern doesn't apply).  The
  792.     comments remain for server_cleanup and serve_valid_responses,
  793.     where they are an example of the "print a message and exit"
  794.     behavior which is noted in cvsclient.texi and which also exists
  795.     places like kserver_authenticate_connection.
  796.  
  797. Wed Jul 10 18:24:46 1996  Ian Lance Taylor  <ian@cygnus.com>
  798.  
  799.     * server.c (print_error): Add comment warning about potential
  800.     deadlock.
  801.     (print_pending_error, serve_valid_responses): Likewise.
  802.     (server_cleanup): Likewise.
  803.     (serve_directory): Don't call buf_send_output.
  804.     (serve_modified, serve_notify, server, cvs_outerr): Likewise.
  805.     (serve_expand_modules): Call buf_send_output.
  806.     (serve_valid_requests): Likewise.
  807.  
  808. Wed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  809.  
  810.     * main.c (main): Print a warning for rlog command.
  811.  
  812. Wed Jul 10 15:00:55 1996  Ian Lance Taylor  <ian@cygnus.com>
  813.  
  814.     Abstract the buffer data structure away from the underlying
  815.     communication medium.
  816.     * buffer.h (struct buffer): Remove fd and output fields.  Add
  817.     input, output, flush, block, and closure fields.
  818.     (buf_initialize, buf_nonio_initialize): Declare.
  819.     (stdio_buffer_initialize, buf_flush): Declare.
  820.     (buf_read_line, buf_read_data): Declare.
  821.     * buffer.c: Include <assert.h>.  Don't include <fcntl.h>.
  822.     (O_NONBLOCK, blocking_error): Don't define.
  823.     (buf_initialize, buf_nonio_initialize): New functions.
  824.     (buf_send_output): Use output function, rather than write.
  825.     (buf_flush): New function.
  826.     (set_nonblock, set_block): Use block function, rather than calling
  827.     fcntl.
  828.     (buf_send_counted): Don't check output.
  829.     (buf_input_data): Call input function, rather than read.
  830.     (buf_read_line, buf_read_data): New functions.
  831.     (buf_copy_lines, buf_copy_counted): Don't check output.
  832.     (stdio_buffer_initialize): New function.
  833.     (stdio_buffer_input, stdio_buffer_output): New static functions.
  834.     (stdio_bufer_flush): New static function.
  835.     * server.c: Include "getline.h".
  836.     (buf_to_net): Change to be a pointer.  Change all uses.
  837.     (protocol, saved_output, saved_outerr): Likewise.
  838.     (buf_from_net): New static variable.
  839.     (no_mem_error, NO_MEM_ERROR, read_line): Remove.
  840.     (struct fd_buffer): Define.
  841.     (fd_buffer_initialize, fd_buffer_input): New static functions.
  842.     (fd_buffer_output, fd_buffer_flush): New static functions.
  843.     (fd_buffer_block): New static function.
  844.     (serve_directory): Call buf_read_line rather than read_line.
  845.     (serve_notify, server): Likewise.
  846.     (receive_partial_file): Call buf_read_data rather than fread.
  847.     (serve_modified): Call buf_read_line rather than read_line.  Call
  848.     buf_read_data rather than fread.
  849.     (do_cvs_command): Initialize buffers with fd_buffer_initialize.
  850.     Change stdoutbuf, stderrbuf, and protocol_inbuf to be pointers.
  851.     (server): Initialize buffers using fd_buffer_initialize,
  852.     stdio_buffer_initialize, and buf_nonio_initialize.
  853.     (check_repository_password): Call getline rather than read_line.
  854.  
  855. Wed Jul 10 15:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  856.  
  857.     * commit.c (find_fileproc): Add comments describing a few cases
  858.     that we aren't handling.
  859.  
  860. Tue Jul  9 04:33:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  861.  
  862.     * rcs.c (RCS_deltas): New function, created from guts of old
  863.     annotate_fileproc.
  864.     (annotate_fileproc): Call RCS_deltas.
  865.     (RCS_fast_checkout): Call it (commented out for now; see comment
  866.     for reasons).
  867.  
  868.     * cvs.h, recurse.c (start_recursion): Add callerdat argument.
  869.     * cvs.h: Add callerdat argument to recursion processor callbacks.
  870.     * recurse.c: add it to struct recursion_frame and pass it to all
  871.     the callbacks.
  872.     * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
  873.     patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
  874.     watch.c: Update all the functions used as callbacks.  Update calls
  875.     to start_recursion.
  876.     * commit.c (find_filesdoneproc, find_fileproc, find_dirent_proc,
  877.     commit), tag.c (val_fileproc, tag_check_valid): Use callerdat
  878.     instead of a static variable.
  879.  
  880.     * recurse.c (do_recursion): Make static and move declaration to here...
  881.     * cvs.h: ...from here.
  882.     * recurse.c (do_recursion): Replace plethora of arguments with
  883.     single struct recursion_frame *.  Change callers.
  884.     * recurse.c: New structure frame_and_file.  Use it and existing
  885.     struct recursion_frame structures to pass info to do_file_proc and
  886.     do_dir_proc.  Remove globals fileproc, filesdoneproc, direntproc,
  887.     dirleaveproc, which, flags, aflag, readlock, and dosrcs.
  888.  
  889. Tue Jul  9 11:13:29 1996  Ian Lance Taylor  <ian@cygnus.com>
  890.  
  891.     * modules.c (do_module): Call cvs_outerr rather than fprintf.
  892.  
  893. Mon Jul 8 1996  Jim Kingdon  <kingdon@cyclic.com>
  894.  
  895.     * rcs.c (RCS_fast_checkout): If -kb is not in use, open the
  896.     working file in text, not binary, mode.
  897.  
  898. Sun Jul  7 10:36:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  899.  
  900.     * rcscmds.c (RCS_settag): Add comment regarding moving check for
  901.     reserved tag names to RCS_check_tag.
  902.  
  903.     * rcscmds.c: Add comment regarding librarifying RCS and related
  904.     issues.  This is a lightly edited version of a message I sent to
  905.     the CVS developers and didn't get flamed for, so it would appear
  906.     to be relatively uncontroversial.
  907.  
  908.     * rcs.c (annotate): Remove comment suggesting -r option and
  909.     related functionality; it is done.
  910.  
  911. Fri Jul  5 17:19:57 1996  Ian Lance Taylor  <ian@cygnus.com>
  912.  
  913.     * client.c (last_entries): Make file static, rather than function
  914.     static within call_in_directory.
  915.     (get_responses_and_close): If last_entries is not NULL, pass it to
  916.     Entries_Close.
  917.  
  918.     * server.c (server_pause_check): Check for errors when reading
  919.     from flowcontrol_pipe.
  920.  
  921.     * client.c (call_in_directory): If dir_name is ".", call
  922.     Create_Admin if there is no CVS directory.
  923.     (send_dirent_proc): If there is no CVS subdirectory, pretend that
  924.     the directory does not exist (i.e., don't try to send any files in
  925.     the directory).
  926.     * server.c (dirswitch): If dir is "." in the top level repository,
  927.     add "/." after the Repository entry.
  928.     * sanity.sh (modules): Add test 155b for above patches.
  929.  
  930. Thu Jul  4 15:57:34 1996  Ian Lance Taylor  <ian@cygnus.com>
  931.  
  932.     * server.c (buf_to_net): Move definition near top of file.
  933.     (read_line): Call buf_send_output rather than fflush.
  934.     (print_error): Output information to buf_to_net buffer rather than
  935.     stdout.
  936.     (print_pending_error, serve_valid_responses): Likewise.
  937.     (server_notify, do_cvs_command, server_co): Likewise.
  938.     (expand_proc, serve_expand_modules, server_prog): Likewise.
  939.     (serve_valid_requests, server_cleanup, server): Likewise.
  940.     (server_notify): Don't call fflush on stdout.
  941.     (do_cvs_command): Flush saved_output and saved_outerr to
  942.     buf_to_net before fork.  Flush buf_to_net before fork.  In child,
  943.     just initialize memory_error field of saved_output and
  944.     saved_outerr.
  945.     (server_cleanup): Flush buf_to_net.
  946.     (server): Initialize saved_output and saved_outerr.
  947.     (cvs_output): Add support for error_use_protocol case.
  948.     (cvs_outerr): Likewise.
  949.     * error.c (error): In HAVE_VPRINTF case, just call cvs_outerr.
  950.  
  951.     * buffer.c: New file; buffer support functions taken from
  952.     server.c.
  953.     * buffer.h: New file; declarations for buffer.c.
  954.     * server.c: Move buffer support functions into buffer.c and
  955.     buffer.h.  Include "buffer.h".
  956.     * Makefile.in (SOURCES): Add buffer.c.
  957.     (OBJECTS): Add buffer.o.
  958.     (HEADERS): Add buffer.h.
  959.  
  960. Thu Jul  4 00:12:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  961.  
  962.     * version.c: Increment version number to 1.8.6.
  963.  
  964. Wed Jul  3 22:31:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  965.  
  966.     * version.c: Version 1.8.5.
  967.  
  968. Wed Jul  3 21:51:23 1996  Ian Lance Taylor  <ian@cygnus.com>
  969.  
  970.     * server.c (blocking_error): Define macro.
  971.     (buf_send_output, buf_input_data): Use blocking_error rather than
  972.     #ifdef EWOULDBLOCK.
  973.  
  974. Tue Jul  2 20:38:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  975.  
  976.     * add.c (add): Change message which said "version 1.2 of foo.c
  977.     will be resurrected"; the message was confusing because it made
  978.     people think that the old contents of the file would come back
  979.     instead of the contents in the working directory.
  980.  
  981. Mon Jul  1 01:38:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  982.  
  983.     * find_names.c (find_dirs): Add comment explaining why we bother
  984.     with the entries stuff.
  985.  
  986. Sat Jun 29 20:23:50 1996  Ian Lance Taylor  <ian@cygnus.com>
  987.  
  988.     * find_names.c (Find_Directories): Add entries parameter, and pass
  989.     it to find_dirs.
  990.     (find_dirs): Add entries parameter, and skip all files it names.
  991.     * cvs.h (Find_Directories): Update declaration.
  992.     * recurse.c (start_recursion): Pass NULL to Find_Directories.
  993.     (do_recursion): Pass entries to Find_Directories.
  994.  
  995.     * client.c (send_modified): Add trace output.
  996.  
  997.     * diff.c (diff_fileproc): Always call diff_file_nodiff.  Handle
  998.     dead versions correctly.  Handle diffs between a specified
  999.     revision to a dead file correctly.
  1000.     (diff_file_nodiff): Add just_set_rev parameter.  Change caller.
  1001.     * patch.c (patch_fileproc): Check for dead versions.
  1002.     * sanity.sh (death2): Add tests for above patches.
  1003.  
  1004. Fri Jun 28 20:30:48 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1005.  
  1006.     For reference, this takes CVS's text segment from 271136 bytes to
  1007.     270352 bytes, a saving of 784.  Not as good as I had hoped (oh well,
  1008.     the source *seems* simpler at least).
  1009.     * checkin.c (Checkin), commit.c (finaladd, remove_file), update.c
  1010.     (join_file, checkout_file, patch_file), no_diff.c
  1011.     (No_Differences), server.c (server_updated), classify.c
  1012.     (Classify_File), vers_ts.c (Version_TS), diff.c (diff_file_nodiff):
  1013.     Use a single struct file_info * argument instead of a bunch of
  1014.     separate arguments for each of its fields.  Remove local fullname
  1015.     emulations.  Use fullname in error messages where file had
  1016.     erroneously been used.
  1017.     * cvs.h: Update declarations of above functions and move them to
  1018.     after the struct file_info declaration.
  1019.     * server.h: Update declarations.
  1020.     * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
  1021.     commit.c, diff.c, history.c, import.c, update.c, status.c,
  1022.     remove.c, rtag.c, tag.c: Change callers.
  1023.  
  1024.     * diff.c (diff): Remove -q and -Q command options.  This somehow
  1025.     slipped through the cracks of the general removal of -q and -Q
  1026.     command options on Jul 21 1995.  Note that there is no need to
  1027.     accept and ignore these options in server mode, like there is for
  1028.     some of the commands, because the client has never sent -q and -Q
  1029.     command options for "cvs diff".
  1030.  
  1031. Fri Jun 28 16:50:18 1996  Ian Lance Taylor  <ian@cygnus.com>
  1032.  
  1033.     * add.c (add): Pass force_tag_match as 1 when calling Version_TS.
  1034.     * sanity.sh (death2): Add test for above patch.  Also add
  1035.     commented out test for adding a file on a nonbranch tag, which CVS
  1036.     currently, mistakenly, permits.
  1037.  
  1038. Thu Jun 27 23:20:49 1996  Ian Lance Taylor  <ian@cygnus.com>
  1039.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1040.  
  1041.     * diff.c (longopts): New static array.
  1042.     (diff): Handle long options and new short options in diff 2.7.
  1043.     Fix arbitrary limit associated with the tmp variable.
  1044.     * client.c (send_option_string): Parse options as space separated,
  1045.     rather than requiring all options to be single characters.
  1046.     * diff.c, options.h.in: Remove CVS_DIFFDATE; the need for it is gone
  1047.     now that we have --ifdef (the new behavior is the behavior which
  1048.     was the default, which is that -D specifies a date).
  1049.  
  1050. Wed Jun 26 22:36:29 1996  Ian Lance Taylor  <ian@cygnus.com>
  1051.  
  1052.     * commit.c (check_fileproc): If there is a tag, permit adding a
  1053.      file even if the RCS file already exists.
  1054.     (checkaddfile): If there is a tag, use the file in the regular
  1055.      repository, rather than the Attic, if it exists.
  1056.     * sanity.sh (death2): New set of tests for above patch.
  1057.  
  1058. Tue Jun 25 23:34:13 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1059.  
  1060.     * update.c (checkout_file): Add comments about two cases which
  1061.     seem fishy.
  1062.  
  1063.     * sanity.sh (basic2, death): Add comments encouraging people to
  1064.     stop making these sections bigger and more complex.  I'm not (yet
  1065.     at least) trying to figure out the ideal size for a section (my
  1066.     current best estimate is 10-20 tests), but surely these
  1067.     two sections are pushing the limit, whatever it is.
  1068.  
  1069. Tue Jun 25 19:52:02 1996  Ian Lance Taylor  <ian@cygnus.com>
  1070.  
  1071.     * update.c (checkout_file): Rewrite handling of dead files when
  1072.     joining.  Avoid space leaks.  Avoid unnecessary file
  1073.     resurrections.
  1074.     (join_file): Add checks to skip merging a dead revision onto a
  1075.     dead revision, and to skip merging a common ancestor onto a dead
  1076.     revision.  Move check for non-existent working file after new
  1077.     checks.
  1078.     * sanity.sh (death): Use dotest for tests 86 and 95, and add test
  1079.     death-file2-1, to test above changes.
  1080.  
  1081. Mon Jun 24 11:27:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1082.  
  1083.     * update.c (merge_file): Replace file, repository, entries, and
  1084.     update_dir arguments with finfo argument.  Use fullname field
  1085.     instead of locally emulating it.
  1086.     (update_fileproc): Update caller.
  1087.     (merge_file): If -kb is in effect, call it a conflict, leave
  1088.     the two versions in the file and the backup file, and tell the
  1089.     user to deal with it.  The previous behavior was that the merge
  1090.     would fail and then there was no way to do a checkin even once you
  1091.     resolved the conflict (short of kludges like moving the file
  1092.     aside, updating, and then moving it back).
  1093.     * sanity.sh (binfiles): New tests binfiles-con* test for above
  1094.     behavior.  Adjust remaining tests to reflect changes in revision
  1095.     numbers.
  1096.  
  1097. Mon Jun 17 15:11:09 1996  Ian Lance Taylor  <ian@cygnus.com>
  1098.  
  1099.     * sanity.sh (import): Remove sleep.  Requiring it was a bug, and
  1100.     it is fixed in the current sources.
  1101.  
  1102. Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
  1103.          and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1104.  
  1105.     * sanity.sh (TMPPWD): Set to real name of /tmp directory.
  1106.     (basic2-64, conflicts-126.5): Use ${TMPPWD}.
  1107.  
  1108. Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
  1109.  
  1110.     * rcscmds.c (RCS_checkout): Remove noerr parameter.  Change all
  1111.     callers.
  1112.     * rcs.c (RCS_fast_checkout): Likewise.
  1113.  
  1114. Mon Jun 17 1996  Ian Lance Taylor  <ian@cygnus.com>
  1115.  
  1116.     Cleaner implementation of tag locking code added Jun 13 1996:
  1117.     * cvs.h (tag_lockdir, tag_unlockdir): Declare.
  1118.     * rtag.c (locked_dir, locked_list): Remove.
  1119.     (rtag_fileproc): Don't lock here; just call tag_lockdir.
  1120.     (rtag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
  1121.     * tag.c (locked_dir, locked_list): Move farther down in file.
  1122.     (tag_fileproc): Don't lock here; just call tag_lockdir.
  1123.     (tag_filesdoneproc): Don't unlock here; just call tag_unlockdir.
  1124.     (tag_lockdir, tag_unlockdir): New functions.
  1125.  
  1126. Wed Jun 15 07:52:22 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1127.  
  1128.     * client.c (send_modified, update_entries): Fixed bug which didn't
  1129.     handle binary file transfers in BROKEN_READWRITE_CONVERSION.
  1130.  
  1131. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1132.          and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1133.  
  1134.     * update.c (checkout_file): Call server_scratch_entry_only when a
  1135.     non-pertinent file is found that does not exist.
  1136.     * sanity.sh (newb): Add test case for above patch.
  1137.  
  1138. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1139.  
  1140.     * update.c (update_fileproc): Call server_scratch_entry_only when
  1141.     handling T_REMOVE_ENTRY on the server.
  1142.     * sanity.sh (conflicts2): Remove special case for remote server
  1143.     bug fixed by above patch.
  1144.  
  1145. Thu Jun 13 21:16:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1146.  
  1147.     * sanity.sh (basica-9): Update to reflect change to "sufficient
  1148.     access" message.
  1149.  
  1150. Thu Jun 13 20:13:55 1996  Ian Lance Taylor  <ian@cygnus.com>
  1151.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1152.  
  1153.     * recurse.c, cvs.h (start_recursion): Remove wd_is_repos argument;
  1154.     add comment about meaning of which argument.  Use !(which &
  1155.     W_LOCAL) instead of wd_is_repos.
  1156.     * admin.c, client.c, commit.c, diff.c, edit.c, lock.c, log.c,
  1157.     patch.c, rcs.c, remove.c, rtag.c, status.c, tag.c, update.c,
  1158.     watch.c: Change callers.  This is a semantic change in only two
  1159.     cases: (1) tag_check_valid, where repository was not "", and (2)
  1160.     the pipeout case in checkout_proc.  In both of those cases the
  1161.     previous setting of wd_is_repos did not reflect whether we
  1162.     actually were cd'd into the repository.
  1163.     * recurse.c (start_recursion): Only check for the CVS subdirectory
  1164.     if which & W_LOCAL.
  1165.     * sanity.sh (devcom): Add test case fixed by above patch.
  1166.  
  1167. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1168.  
  1169.     * ignore.c (ignore_files): Skip based on the file name before
  1170.     calling lstat.
  1171.  
  1172.     * client.c (last_register_time): New static variable.
  1173.     (update_entries): Set last_register_time when calling Register.
  1174.     (get_responses_and_close): If the current time is the same as
  1175.     last_register_time, sleep for a section to avoid timestamp races.
  1176.  
  1177. Thu Jun 13 17:24:38 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1178.  
  1179.     * client.c (supported_request): Reindent.
  1180.  
  1181. Thu Jun 13 1996  Mark H. Wilkinson  <mhw@minster.york.ac.uk>
  1182.  
  1183.     * options.h.in, mkmodules.c: Corrections to allow compilation of
  1184.     non-client-server version.
  1185.  
  1186. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1187.  
  1188.     * tag.c (tag_check_valid_join): New function.
  1189.     * cvs.h (tag_check_valid_join): Declare.
  1190.     * checkout.c (join_tags_validated): New static variable.
  1191.     (checkout_proc): Check validity of join tags.
  1192.     * update.c (update): Likewise.
  1193.  
  1194.     * tag.c (tag_check_valid): Correct sizeof CVSROOTADM_HISTORY to
  1195.     use CVSROOTADM_VALTAGS.
  1196.  
  1197.     * lock.c (Writer_Lock): If we called lock_wait to wait for a lock,
  1198.     then call lock_obtained when we get it.
  1199.     (set_lock): Likewise.
  1200.     (lock_obtained): New static function.
  1201.  
  1202. Thu Jun 13 13:55:38 1996  Ian Lance Taylor  <ian@cygnus.com>
  1203.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1204.  
  1205.     * main.c (main): If we can't read cvs root, don't say "you don't
  1206.     have sufficient access"; just print the message from errno.  It
  1207.     might be "No such file or directory" or something else for which
  1208.     "you don't have sufficient access" doesn't make any sense.
  1209.  
  1210. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1211.  
  1212.     * commit.c (remove_file): Pass noerr as 0 to RCS_checkout.
  1213.  
  1214. Thu Jun 13 12:55:56 1996  Ian Lance Taylor  <ian@cygnus.com>
  1215.  
  1216.     * patch.c: Initialize rev1_validated and rev2_validated to 0, not 1.
  1217.  
  1218. Thu Jun 13 12:55:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1219.  
  1220.     * rtag.c (locked_dir): Revise comments regarding locking; the rtag
  1221.     and tag situations are different (changing from readlocking one
  1222.     directory at a time to writelocking one directory at a time does
  1223.     not do everything we might want, but it does fix simultaneous tags
  1224.     and it doesn't make anything worse).
  1225.  
  1226. Thu Jun 13 1996  Ian Lance Taylor  <ian@cygnus.com>
  1227.  
  1228.     Prevent simultaneous tag operations from interfering with each
  1229.     other.
  1230.     * rtag.c (rtag_proc): Pass rtag_filesdoneproc to start_recursion,
  1231.     and pass readlock as 0.
  1232.     (locked_dir, locked_list): New static variables.
  1233.     (rtag_fileproc): Write lock the repository if it is not already
  1234.     locked.
  1235.     (rtag_filesdoneproc): New static function to unlock the
  1236.     repository.
  1237.     * tag.c (tag): Pass tag_filesdoneproc to start_recursion, and pass
  1238.     readlock as 0.
  1239.     (locked_dir, locked_list): New static variables.
  1240.     (tag_fileproc): Write lock the repository if it is not already
  1241.     locked.
  1242.     (tag_filesdoneproc): New static function.
  1243.  
  1244. Thu Jun 13 11:42:25 1996  Mike Sutton <mws115@llcoolj.dayton.saic.com>
  1245.  
  1246.     * sanity.sh: Allow digits in usernames.
  1247.  
  1248. Wed Jun 12 16:23:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1249.  
  1250.     * client.c (send_modified, update_entries): Reindent and add
  1251.     comments to BROKEN_READWRITE_CONVERSION code.
  1252.  
  1253. Wed Jun 12 16:23:03 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1254.  
  1255.     * client.c (send_modified, update_entries): Add
  1256.     BROKEN_READWRITE_CONVERSION code.
  1257.  
  1258. Mon Jun 10 20:03:16 1996  J.T. Conklin  <jtc@cygnus.com>
  1259.  
  1260.     * rcs.c (RCS_gettag): No longer set p to NULL if rcs is also NULL.
  1261.       rcs will never be null, thanks to the assertion at top of function.
  1262.  
  1263. Mon Jun 10 16:28:14 1996  Ian Lance Taylor  <ian@cygnus.com>
  1264.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  1265.  
  1266.     * main.c (main): Ignore CVS/Root file when doing an import.
  1267.  
  1268. Fri Jun  7 18:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1269.  
  1270.     * status.c (status_fileproc, tag_list_proc): Use cvs_output rather
  1271.     than writing to stdout directly.
  1272.  
  1273. Wed Jun  5 13:54:57 1996  Ian Lance Taylor  <ian@cygnus.com>
  1274.  
  1275.     * rcs.c (force_tag_match, tag, date): New static variables.
  1276.     (annotate_fileproc): Redo the loop to look for the version
  1277.     specified by tag/date/force_tag_match, and handle branches
  1278.     correctly.
  1279.     (annotate_usage): Mention -f, -r, and -D.
  1280.     (annotate): Handle -f, -r, and -D.
  1281.  
  1282. Tue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
  1283.  
  1284.     * rcs.c (annotate_fileproc): Skip unrelated branch deltas.
  1285.  
  1286. Fri Jun  7 13:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1287.  
  1288.     * main.c (main): Change INITIALIZE_SOCKET_SUBSYSTEM to
  1289.     SYSTEM_INITIALIZE and pass it pointers to argc and argv.  Rename
  1290.     CLEANUP_SOCKET_SUBSYSTEM to SYSTEM_CLEANUP.
  1291.  
  1292. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1293.  
  1294.     * import.c (add_rcs_file): make buf char[] not unsigned char[]
  1295.  
  1296. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1297.               and Jim Kingdon  <kingdon@cyclic.com>
  1298.  
  1299.     * main.c (main): Add CLEANUP_SOCKET_SUBSYSTEM hook at end.  Revise
  1300.     comments regarding INITIALIZE_SOCKET_SUBSYSTEM.
  1301.  
  1302. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1303.               and Jim Kingdon  <kingdon@cyclic.com>
  1304.  
  1305.     * main.c (main): Don't mess with signals if DONT_USE_SIGNALS is
  1306.     defined.
  1307.  
  1308. Thu Jun  6 15:32:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1309.  
  1310.     * modules.c (cat_module): Always format for 80 columns rather than
  1311.     trying to determine how wide the screen is.  The code we had for
  1312.     the latter didn't cover all cases, was a portability headache, and
  1313.     didn't work client/server.
  1314.  
  1315. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1316.  
  1317.     * error.c: Don't declare strerror if it is #defined.
  1318.  
  1319. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1320.               and Jim Kingdon  <kingdon@cyclic.com>
  1321.  
  1322.     * cvs.h: If ENUMS_CAN_BE_TROUBLE, typedef Dtype to int not an enum.
  1323.  
  1324. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1325.               and Jim Kingdon  <kingdon@cyclic.com>
  1326.  
  1327.     * update.c (update):  If DONT_USE_PATCH, don't request patches.
  1328.     Also call supported_request rather than reimplementing it.
  1329.  
  1330. Wed Jun 05 10:07:29 1996  Mike Ladwig  <mike@twinpeaks.prc.com>
  1331.  
  1332.     * client.c (read_line): Changed an occurence of '\n' to '\012'.
  1333.  
  1334. Wed Jun  5 17:18:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1335.  
  1336.     * add.c (add_directory): Don't create the directory if noexec.
  1337.     * sanity.sh (basica): New tests basica-1a10, basica-1a11 test for
  1338.     above fix.
  1339.     * sanity.sh (basicb): New tests basicb-2a10, basicb-2a11,
  1340.     basicb-3a1 test for analogous situation with files rather than
  1341.     directories.
  1342.  
  1343. Tue Jun  4 13:38:17 1996  Ian Lance Taylor  <ian@cygnus.com>
  1344.  
  1345.     * sanity.sh: When doing a remote check, use :server: in CVSROOT.
  1346.  
  1347. Wed Jun  5 13:32:40 1996  Larry Jones  <larry.jones@sdrc.com>
  1348.               and Jim Kingdon  <kingdon@cyclic.com>
  1349.  
  1350.     * ignore.c: Set ign_hold to -1 when not holding instead of 0 so 
  1351.     that holding an empty list works correctly.
  1352.     * sanity.sh (ignore): New tests 190 & 191 for above fix.
  1353.  
  1354. Wed Jun 5 1996  Jim Kingdon  <kingdon@cyclic.com>
  1355.  
  1356.     Visual C++ lint:
  1357.     * client.c (update_entries): Copy the size to an unsigned variable
  1358.     before comparing it with unsigned variables.
  1359.     (handle_created, handle_update_existing): Prototype.
  1360.  
  1361. Tue Jun  4 10:02:44 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1362.  
  1363.     * client.c (responses): Add Created and Update-existing responses.
  1364.     * server.c (server_updated): If they are supported, use them
  1365.     instead of Updated.
  1366.     * client.c (struct update_entries_data): Add existp field.
  1367.     (handle_checked_in, handle_updated, handle_new_entry,
  1368.     handle_merged, handle_patched): Set it.
  1369.     (handle_update_existing, handle_created): New functions,
  1370.     for new responses.
  1371.     (update_entries): Based on existp, check for
  1372.     existence/nonexistence of file.
  1373.     (try_read_from_server): Expand comment.
  1374.     * server.c, server.h (server_updated): New argument vers.
  1375.     * checkin.c (Checkin), commit.c (commit_fileproc), update.c
  1376.     (update_fileproc, merge_file, join_file): Pass it.
  1377.     * cvs.h: Move include of server.h after Vers_TS declaration.
  1378.     * sanity.sh (conflicts2): New tests conflicts2-142d* test for
  1379.     above fix.
  1380.  
  1381.     * sanity.sh (ignore): Fix typo in comment.
  1382.  
  1383.     * tag.c (tag_check_valid): Add comment clarifying when val-tags
  1384.     entries are created.
  1385.  
  1386. Mon Jun  3 07:26:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1387.  
  1388.     * version.c: Increment version number to 1.8.4.
  1389.  
  1390. Mon Jun  3 02:20:30 1996  Noel Cragg  <noel@gargle.rain.org>
  1391.  
  1392.     * version.c: version 1.8.3.
  1393.  
  1394. Thu May 30 10:07:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1395.  
  1396.     * main.c (cmds): Fix typo ("bdif" -> "dif") which was accidentally
  1397.     introduced 24 May 96.
  1398.  
  1399.     * main.c (main_cleanup): Add comment stating default case will
  1400.     never be reached.
  1401.  
  1402. Wed May 29 21:43:43 1996  noel  <noel@BOAT_ANCHOR>
  1403.  
  1404.     * main.c (main_cleanup): check to see if SIGHUP, SIGINT, SIGQUIT,
  1405.      SIGPIPE, and SIGTERM are defined before using them.  Also add a
  1406.      default case to print out those errors numerically which are not
  1407.      found.
  1408.  
  1409. Wed May 29 18:43:45 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1410.  
  1411.     * expand_path.c (expand_path): Document LINE == 0 and allocation
  1412.     of return value.
  1413.     * modules.c (do_module): Pass 0, not -1, to indicate line number
  1414.     not known.  Free value returned from expand_path.  Deal with NULL
  1415.     return from expand_path.
  1416.  
  1417. Wed May 29 15:56:47 1996  Greg A. Woods  <woods@most.weird.com>
  1418.  
  1419.     * modules.c (do_module): call expand_path() on the program name
  1420.     specfied by one of '-o', '-t', or '-e' in the modules file before
  1421.     passing it to run_setup().  This makes it possible to use $CVSROOT
  1422.     (or indeed ~user or any other user-specified variable) to specify
  1423.     pathnames for programs not installed in the normal execution path.
  1424.  
  1425. Sun May 26 21:57:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1426.  
  1427.     * client.c (start_server): Don't include %s in error message;
  1428.     there is no argument to go with it.  Do include "internal error"
  1429.     in error message since that might not be clear to the user otherwise.
  1430.  
  1431. Sun May 26 11:58:13 1996  Greg A. Woods  <woods@most.weird.com>
  1432.  
  1433.     * root.c (set_local_cvsroot): enforce a wee bit of portability
  1434.     (parse_cvsroot): same....
  1435.     (DEBUG main): same, plus style guidelines
  1436.     (DEBUG error): deleted -- not necessary here (use fprintf instead)
  1437.  
  1438.     * mkmodules.c (modules_contents): updated notes about what must be
  1439.     done if you change any of the options for a module.
  1440.     (loginfo_contents): fixed grammar, re-pargraphed, and added 'echo
  1441.     %s;' to the example.
  1442.     (editinfo_contents): minor grammar fix.
  1443.  
  1444. Sun May 26 17:51:18 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1445.  
  1446.     * vers_ts.c (Version_TS): Remove case where we get options from
  1447.     sdtp->options.  Whatever case that was intended to handle is
  1448.     probably lost in the mists of time, but sdtp->options isn't set
  1449.     anywhere, and I think that has been true for a long time.
  1450.     * cvs.h (struct stickydirtag): remove options field.
  1451.     * entries.c (freesdt): Don't free ->options.
  1452.     * sanity.sh (binfiles): New tests binfiles-13a* test for above fix.
  1453.  
  1454.     * tag.c (check_fileproc): Use fullname not file in error message.
  1455.     Say "locally modified" not "up-to-date"; the file need not match
  1456.     the head revision it only need match some revision.
  1457.  
  1458. Sun May 26 16:57:02 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  1459.  
  1460.     * tag.c: added support for new option -c to make sure all tagged
  1461.       files are up-to-date
  1462.       (tag): check for option and set check_uptodate
  1463.       (check_fileproc): check status of file if check_uptodate is set
  1464.  
  1465. Sat May 25 15:22:26 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1466.  
  1467.     * main.c (main): Revert change to look for a -H command option;
  1468.     command option parsing should be up to each subcommand and the -H
  1469.     global option works fine.
  1470.  
  1471. Mon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
  1472.  
  1473.     * client.c (process_prune_candidates): Set prune_candidates to
  1474.     NULL at the end of the function.
  1475.  
  1476. Mon May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
  1477.  
  1478.     * checkout.c (checkout): In code to handle multiple arguments,
  1479.     pass preload_update_dir, not where, to Create_Admin.
  1480.     (checkout_proc): Pass preload_update_dir, not where, to
  1481.     Create_Admin.
  1482.  
  1483. Thu May 23 19:14:35 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1484.  
  1485.     * server.c (server_set_sticky): Assert that update_dir != NULL.
  1486.     * sanity.sh (basicb): New test; tests for Ian's fix to checkout.c
  1487.     above.
  1488.  
  1489. Thu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
  1490.  
  1491.     * patch.c (patch_fileproc): Don't ignore a file just because it is
  1492.     in the Attic directory.
  1493.  
  1494. Thu May 23 10:40:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1495.  
  1496.     * sanity.sh (death): New tests death-{72a,76a0,76a1} test for bug
  1497.     fixed by Ian's patch_fileproc change above.
  1498.  
  1499.     * sanity.sh (death): Remove "temporary hack" in test 89.
  1500.  
  1501.     * rcs.c (RCS_fast_checkout): If error closing file, and workfile
  1502.     is NULL, use sout in error message instead of workfile.
  1503.  
  1504. Thu May 23 1996  Ian Lance Taylor  <ian@cygnus.com>
  1505.  
  1506.     * rcs.c (RCS_fast_checkout): Do a fast checkout in the case where
  1507.     workfile is NULL and sout is a file name.
  1508.  
  1509. Wed May 22 19:06:23 1996  Mark Immel  <immel@centerline.com>
  1510.  
  1511.     * update.c (checkout_file): New arg resurrecting_out, to provide
  1512.     resurrecting flag to caller.
  1513.     (join_file): New arg resurrecting.  Register with "0" if we are
  1514.     the server and are resurrecting.
  1515.     (update_fileproc): Pass the flag from checkout_file to join_file.
  1516.  
  1517. Wed May 22 19:06:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1518.  
  1519.     * sanity.sh (death): Test for above fix, in test 89 and new test 89a.
  1520.  
  1521. Tue May 21 09:49:04 1996  Greg A. Woods  <woods@most.weird.com>
  1522.  
  1523.     * update.c (update_usage): oops -- fix my spelling typo.
  1524.  
  1525. Mon May 20 10:53:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1526.  
  1527.     * commit.c (find_fileproc): Call freevers_ts.
  1528.  
  1529.     * commit.c (find_*): Keep an ignlist, like update.c and client.c do.
  1530.     * commit.c (commit): Process the files from the ignlists, once we
  1531.     are connected to the server.
  1532.     * sanity.sh (ignore): New tests 189e and 189f test for new
  1533.     commit.c behavior (and client.c behavior, which is unchanged).
  1534.     * sanity.sh (conflicts): Remove dir1 and sdir in parts of the test
  1535.     where we aren't prepared for "? dir1" and similar output.
  1536.  
  1537. Mon May 20 13:23:36 1996  Greg A. Woods  <woods@most.weird.com>
  1538.  
  1539.     * main.c (cmd_usage): minor corrections to descriptions of status,
  1540.     rtag, tag, and rdiff.  Sort alphabetically by command name.
  1541.  
  1542. Mon May 20 10:36:07 1996  Ian Lance Taylor  <ian@cygnus.com>
  1543.  
  1544.     * client.c (call_in_directory): Move the call to Entries_Close
  1545.     before the call to chdir, since Entries_Close examines files in
  1546.     the current directory.
  1547.  
  1548. Fri May 17 12:13:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1549.  
  1550.     * client.c (start_tcp_server, start_server, start_rsh_server,
  1551.     read_line, filter_through_gzip, filter_through_gunzip,
  1552.     call_in_directory): Reindent as needed.
  1553.  
  1554.     * main.c (main): Add missing #endif.  Use indentation to indicate
  1555.     nesting.
  1556.  
  1557. Thu May 16 17:15:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1558.  
  1559.     * main.c (cmd_usage): Add "init" command.
  1560.  
  1561. Thu May 16 16:45:51 1996  Noel Cragg  <noel@gargle.rain.org>
  1562.  
  1563.     * client.c (start_tcp_server): Error message modified to tell the
  1564.      user to use ":server:" instead of setting CVS_CLIENT_PORT to a
  1565.      negative number.
  1566.  
  1567.     * main.c (main): Add #ifdefs for turning off buffering of
  1568.      stdio/stderr, so we don't get it by default.
  1569.  
  1570. Thu May 16 01:29:47 1996  noel  <noel@BOAT_ANCHOR>
  1571.  
  1572.     * commit.c (commit_filesdoneproc): Print the repository and root
  1573.      directories as part of the error message.
  1574.  
  1575.     * main.c (main): Don't buffer stdout or stderr.  It's inefficient,
  1576.      but it then produces the right output for sanity.sh.
  1577.  
  1578. Thu May 16 09:44:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1579.  
  1580.     * fileattr.c (fileattr_set): In the case where we are about to
  1581.     call delproc, don't free ->data; delproc does that.
  1582.     * sanity.sh (devcom): New tests devcom-b* test for this fix.
  1583.  
  1584.     * sanity.sh (conflicts): Remove redundant clean up from previous
  1585.     tests at the beginning of the test.  Use dotest a few more places.
  1586.     (conflicts2): New test, tests for Ian's fix to Classify_File.
  1587.  
  1588.     * client.c (remove_entry_and_file): Add comment about
  1589.     existence_error's.
  1590.  
  1591. Sat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
  1592.  
  1593.     * update.c (update_dirleave_proc): Don't try to chdir .. and check
  1594.     for an empty directory if there is a slash in the directory name.
  1595.  
  1596. Thu May 16 09:02:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1597.  
  1598.     * sanity.sh (deep): New tests deep-4a* test for Ian's fix to
  1599.     update_dirleave_proc.
  1600.  
  1601. Sat May 16 1996  Ian Lance Taylor  <ian@cygnus.com>
  1602.  
  1603.     * main.c (main_cleanup): Report signal name before dying.
  1604.  
  1605. Wed May 15 23:47:59 1996  Noel Cragg  <noel@gargle.rain.org>
  1606.  
  1607.     * main.c (usg): revert usage strings for `-H' flag change.
  1608.  
  1609. Sat May 15 1996  Ian Lance Taylor  <ian@cygnus.com>
  1610.  
  1611.     * server.c (serve_static_directory): Return immediately if there
  1612.     is a pending error.
  1613.     (serve_sticky): Likewise.
  1614.     (serve_modified): Read the file data even if there is a pending
  1615.     error.
  1616.  
  1617. Wed May 15 14:26:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1618.  
  1619.     * main.c (main): If -d and CVS/Root both specified, after writing
  1620.     the value from -d into CVS/Root, use the value from -d, not the
  1621.     old value from CVS/Root.  Don't write CVS/Root with value from -d
  1622.     until we have verified that it works.
  1623.     * sanity.sh: Reenable test basica-9 and adjust for new behavior.
  1624.  
  1625. Tue May 14 1996  Jim Kingdon  <kingdon@cyclic.com>
  1626.  
  1627.     * logmsg.c (do_editor): If user aborts the commit, still remove the
  1628.     temporary file.
  1629.  
  1630. Tue May 14 11:45:41 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1631.  
  1632.     * filesubr.c, cvs.h (cvs_temp_name): New function.  Move L_tmpnam
  1633.     define from cvs.h to filesubr.c.
  1634.     * client.c, diff.c, import.c, login.c, logmsg.c, no_diff.c,
  1635.     patch.c, wrapper.c: Call cvs_temp_name not tmpnam.
  1636.     * login.c (login): Reindent function.
  1637.  
  1638. Tue May 14 10:56:56 1996  Ian Lance Taylor  <ian@cygnus.com>
  1639.  
  1640.     * rcs.c (RCS_fast_checkout): If workfile is NULL, don't call chmod.
  1641.  
  1642. Mon May 13 10:52:10 1996  Greg A. Woods  <woods@most.weird.com>
  1643.  
  1644.     * checkout.c (export_usage): note which options cause a sticky
  1645.     version to be set, and which option avoids this.
  1646.     * update.c (update_usage): likewise
  1647.  
  1648. Sat May 11 18:57:07 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1649.  
  1650.     * sanity.sh: Comment out test basica-9 until I get around to
  1651.     actually fixing it (the -d vs. CVS/Root change broke it).
  1652.  
  1653. Fri May 10 09:39:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1654.  
  1655.     * main.c (main): -d now overrides CVS/Root.
  1656.  
  1657. Thu May  9 19:45:24 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1658.  
  1659.     * main.c: Remove comment listing commands at beginning.  It was
  1660.     out of date and redundant with the help.
  1661.  
  1662. Thu May  9 09:33:55 1996  Greg A. Woods  <woods@most.weird.com>
  1663.  
  1664.     * main.c: add 'init' to opening comment listing commands
  1665.  
  1666.     * mkmodules.c (init): fix to recognize argc==-1 as hint to call
  1667.     usage() [should make "cvs init -H" work as expected]
  1668.  
  1669. Wed May  8 15:02:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1670.  
  1671.     * sanity.sh: Set EXPR in the case that the expr in the path is the
  1672.     one that we want.
  1673.  
  1674. Wed May  8 14:06:24 1996  Greg A. Woods  <woods@most.weird.com>
  1675.  
  1676.     * sanity.sh (test): - convert all '[' to test ala GCD
  1677.  
  1678. Wed May  8 13:46:56 1996  Greg A. Woods  <woods@most.weird.com>
  1679.  
  1680.     * sanity.sh (expr): - make a valiant attempt to find GNU expr
  1681.     - Patch from Larry Jones:
  1682.     sanity test deep-4 failed with "expr: arg list too long"
  1683.     sanity test 56 failed because the stderr and stdout output was not
  1684.     interleaved as expected.
  1685.     sanity test modules-155a4 failed with "ls: illegal option -- 1"
  1686.  
  1687.     * main.c (main): - Patch from Larry Jones for SysV setvbuf
  1688.  
  1689. Tue May  7 16:41:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1690.  
  1691.     * version.c: Increment version number to 1.8.2 to work around fact
  1692.     that CVS 1.8 (confusingly) calls itself 1.8.1 not 1.8.
  1693.  
  1694. Tue May  7 10:44:20 MET DST 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  1695.  
  1696.     * rcs.c (rcsvers_delproc): fix memory leak by freeing author
  1697.       field.
  1698.  
  1699. Mon May  6 10:40:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1700.  
  1701.     * sanity.sh (conflicts): New test conflicts-126.5 tests for bug
  1702.     which Ian fixed May 5 in update.c
  1703.  
  1704. Mon May  6 06:00:10 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  1705.  
  1706.         * Version 1.8.1
  1707.  
  1708. Sun May  5 21:39:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1709.  
  1710.     * vers_ts.c (Version_TS): If sdtp is NULL, go ahead and check
  1711.     RCS_getexpand for options.  Fixes binaries and non-unix clients.
  1712.     * sanity.sh: Fix binfiles-5.5 to test for the correct behavior
  1713.     rather than the buggy behavior which existed when the binfiles-5.5
  1714.     test was written.
  1715.     (binfiles-14c,binfiles-14f): Likewise.
  1716.  
  1717. Sun May  5 17:38:21 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  1718.  
  1719.         Integrated changes submitted by Ian Taylor <ian@cygnus.com>
  1720.  
  1721.         * update.c (update_dirent_proc): cvs co -p doesn't print
  1722.         anything when run from an empty directory.
  1723.  
  1724.         * import.c (import_descend_dir): Check for a file in the
  1725.         repository which will be checked out to the same name as the
  1726.         directory.
  1727.  
  1728. Sat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
  1729.  
  1730.     Extract the head revision directly from the RCS file when
  1731.     possible, rather than execing co.
  1732.     * rcs.c (RCS_reparsercsfile): Set delta_pos field.
  1733.     (getrcskey): Add lenp parameter.  Change all callers.
  1734.     (RCS_fast_checkout): New function.
  1735.     (annotate_fileproc): If PARTIAL is not set, just fseek to
  1736.     delta_pos.
  1737.     * rcs.h (struct rcsnode): Add delta_pos field.
  1738.     (RCS_fast_checkout): Declare.
  1739.     * diff.c (diff_file_nodiff): Call RCS_fast_checkout rather than
  1740.     RCS_checkout.
  1741.     * import.c (update_rcs_file): Likewise.
  1742.     * no_diff.c (No_Difference): Likewise.
  1743.     * patch.c (patch_fileproc): Likewise.
  1744.     * update.c (checkout_file): Likewise.
  1745.     (patch_file): Likewise.
  1746.     (join_file): Likewise.
  1747.  
  1748. Sat May  4 12:33:02 1996  Ian Lance Taylor  <ian@cygnus.com>
  1749.  
  1750.     * classify.c (Classify_File): Don't report a conflict for a
  1751.     pending remove if somebody else has already removed the file.
  1752.  
  1753. Thu May  2 13:34:37 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  1754.  
  1755.     * Version 1.7.88
  1756.  
  1757. Thu May  2 01:40:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  1758.  
  1759.     * server.c (HAVE_INITGROUPS): Use initgroups() only if
  1760.         located by configure, in the event a system has crypt(), but
  1761.     no initgroups()
  1762.  
  1763. Wed May 01 21:08:21 1996  noel  <noel@BOAT_ANCHOR>
  1764.  
  1765.     * client.c (filter_through_gunzip): use "gzip -d" instead of
  1766.      "gunzip," since there's no good reason (on NT at least) to have an
  1767.      extra copy of gzip.exe copied to gunzip.exe (Arrrrgh!  No symbolic
  1768.      links!).
  1769.  
  1770.     * mkmodules.c (init): check to see that we have the correct number
  1771.      of arguments or print out the usage message (used to be argc > 1,
  1772.      should be argc != 1, because help forces argc == -1 as a special
  1773.      case).
  1774.  
  1775. Wed May  1 18:05:02 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1776.  
  1777.     * sanity.sh (basica): When testing rejection of reserved tag name,
  1778.     use BASE instead of RESERVED.
  1779.  
  1780. Wed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
  1781.  
  1782.     * rcs.c (linevector_delete): Only copy up to vec->nlines - nlines,
  1783.     not to vec->nlines.
  1784.  
  1785. Wed May  1 15:43:21 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1786.  
  1787.     * rcscmds.c (RCS_settag): Instead of reserving all tag names
  1788.     containing only uppercase letters, reserve only BASE and HEAD.
  1789.     * sanity.sh (mflag): Revert 26 Mar change; use all-uppercase tag
  1790.     name again.
  1791.  
  1792. Wed May  1 15:15:11 1996  Tom Jarmolowski  <tjj@booklink.com>
  1793.  
  1794.     * rcs.c (linevector_add): Move increment of i out of larger
  1795.     statement, to avoid assumptions about evaluation order.
  1796.  
  1797. Tue Apr 30 15:46:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  1798.  
  1799.     * Version 1.7.87.
  1800.  
  1801.     * server.c (check_password): Don't use ANSI string concatenation.
  1802.     Reindent function.
  1803.  
  1804. Mon Apr 29 10:48:38 1996  Noel Cragg  <noel@gargle>
  1805.  
  1806.     * root.c (parse_cvsroot): removed "rsh" as an alias to "server" in
  1807.      the method section.
  1808.  
  1809.     * main.c (main): new variable help so we can support the `cvs -H
  1810.      cmd' convention.  Reverts change of 26 Apr 96 which removed this
  1811.      feature.
  1812.  
  1813. Sun Apr 28 14:57:38 1996  Noel Cragg  <noel@gargle>
  1814.  
  1815.         * main.c (main): update error message if parse_cvsroot fails.
  1816.     * server.c (serve_root): same.
  1817.     (serve_init): same.
  1818.     
  1819.     * client.c (start_tcp_server): get rid of the "fall through"
  1820.      stuff, now that we have access methods.
  1821.     (start_server): switch off the access method to choose routine
  1822.      that starts the server.
  1823.     (start_tcp_server): tofd wasn't getting set to -1 early enough,
  1824.      because a call to error for bind or gethostbyname might fail and
  1825.      the subsequent error check to see if the connection had been made
  1826.      would fail.
  1827.  
  1828.     * root.c: new variable method_names for error reporting purposes.
  1829.  
  1830. Sun Apr 28 17:22:15 1996  Noel Cragg  <noel@occs.cs.oberlin.edu>
  1831.  
  1832.     * server.c: moved kerberos #includes from main.c for the
  1833.         kserver_authenticate_connection routine.
  1834.  
  1835. Fri Apr 26 07:59:44 1996  Noel Cragg  <noel@gargle>
  1836.  
  1837.     * server.c (serve_init): use the new return value from
  1838.      parse_cvsroot.
  1839.     (serve_root): same.
  1840.     * main.c (main): same.
  1841.  
  1842.     * root.c (parse_cvsroot): fix indentation, add a return value
  1843.      which tells whether the command succeeded or failed.
  1844.  
  1845.     * main.c (main): move the setting of the UMASK environment
  1846.      variable inside the stuff that gets done if the user is NOT asking
  1847.      for help, so we don't signal any errors prematurely (don't want to
  1848.      give an error because we can't parse an environment variable
  1849.      correctly if the user asks for help).  Similar mods for the code
  1850.      that tries to get the working directory.
  1851.  
  1852.     Also make CVSADM_Root a local variable instead of a global, since
  1853.      its scope is only about 20 lines here!
  1854.  
  1855.     * server.c (kserver_authenticate_connection): moved code from
  1856.      main.c to clean up MAIN.  Makes sense, since we already have a
  1857.      pserver_authenticate_connection.
  1858.     (pserver_authenticate_connection): rename from
  1859.      authenticate_connection.
  1860.  
  1861.     * main.c (main): reorganized the routine to eliminate variables
  1862.      help, help_commands, and version_flag.  Now the routine is much
  1863.      clearer, since we don't have to be checking to see if these
  1864.      variables are set.  One behavior that was a bug/feature which is
  1865.      now gone is an invocation like "cvs -H rtag" -- previously this
  1866.      would give usage for rtag, but now gives usage for cvs itself.
  1867.       The first behavior didn't make sense, especially since we say in
  1868.      the docs that command-line flags are position-specific.  *Reverted
  1869.      Above*
  1870.  
  1871. Thu Apr 25 20:05:10 1996  Noel Cragg  <noel@gargle>
  1872.  
  1873.         * main.c (main): make sure we have a valid command name before we
  1874.      do anything else (moved the thing that looks for a command in CMDS
  1875.      to right after the GETOPT loop).  Added `kserver' and `pserver' to
  1876.      the table so they will be recognized; set their functions to
  1877.      SERVER so that help will be given when asked for.
  1878.     
  1879.     * expand_path.c (expand_variable): return CVSroot_original rather
  1880.      than CVSroot_directory.
  1881.  
  1882.     * main.c (main): save CVSroot in the env rather than
  1883.      CVSroot_original, since we might not have called PARSE_CVSROOT
  1884.      (this can happen if we use the -H option to a command).
  1885.  
  1886.     * root.c (parse_cvsroot): the parsing method was bogus for
  1887.      guessing when we had hostnames vs. directories specified.  Any
  1888.      ambiguity should be removed by having the user specify the access
  1889.      method.  If the access method isn't specified, choose
  1890.      server_method if the string contains a colon or local_method
  1891.      otherwise.
  1892.  
  1893.     * Changed CVSroot_remote back to client_active since the code
  1894.      reads better.
  1895.     
  1896. Wed Apr 24 17:27:53 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  1897.  
  1898.     * vers_ts.c (Version_TS): xmalloc enough space (1 more
  1899.       byte). Thanks to purify!
  1900.  
  1901. Mon Apr 22 00:38:08 1996  Noel Cragg  <noel@gargle>
  1902.  
  1903.     * create_adm.c (Create_Admin): pass CVSroot_original instead of
  1904.      CVSroot_directory (oops!).
  1905.     * update.c (update_filesdone_proc): same.
  1906.  
  1907.     * server.c (serve_root): modify to use parse_cvsroot rather than
  1908.      goofing around with other variables.  Will need to fix
  1909.      parse_cvsroot to have a return value so we can return an error and
  1910.      quit gracefully if in server mode.
  1911.     (serve_init): same.
  1912.  
  1913.     * main.c: modify command table to remove client_* routines, since
  1914.      they no longer exist.
  1915.     (main): don't try to switch off non-existent field in command
  1916.      table! ;-)
  1917.  
  1918.         * client.h (client_*): removed prototypes for now non-existent
  1919.      functions.
  1920.  
  1921.     * client.c: remove proto for get_cvs_password, since it is now in
  1922.      cvs.h.  Modify routines to use new globals that describe CVSROOT
  1923.      rather than client_active, server_host, server_user, and
  1924.      server_cvsroot.
  1925.     (parse_cvsroot): removed function, since a more generic version
  1926.      now lives in root.c.
  1927.     (connect_to_pserver): remove call to parse_cvsroot, since main.c
  1928.      has already done it for us.
  1929.     (client_*): removed all of these routines, since they only call
  1930.      parse_cvsroot and then their respective operation functions.
  1931.       Since main.c has already called parse_cvsroot, we shouldn't bother
  1932.      with the extra function call, since client-server diffs are
  1933.      already handled in the core routines themselves.
  1934.  
  1935.     * main.c: remove CVSroot as a global variable.  Remove
  1936.      use_authenticating_server variable since we have a new
  1937.      `CVSroot_method' variable instead.
  1938.     (main): add `CVSroot' as a local variable.  Call parse_cvsroot
  1939.      after we're sure we have the right setting for `CVSroot.'
  1940.  
  1941.     * login.c (login): update to use new global variables.  Instead of
  1942.      old behavior which let the user type in user@host when prompted,
  1943.      it makes them do it in CVSROOT proper.  The routine still lets the
  1944.      user type the password, however.
  1945.     (get_cvs_password): make sure that CVSROOT is fully qualified
  1946.      before trying to find the entry in the .cvspass file.
  1947.     * cvs.h: add prototype for get_cvs_password.
  1948.  
  1949.     * add.c: use new globals that describe CVSROOT.
  1950.     * admin.c: same.
  1951.     * checkout.c: same.
  1952.     * commit.c: same.
  1953.     * create_adm.c: same.
  1954.     * diff.c: same.
  1955.     * edit.c: same.
  1956.     * expand_path.c: same.
  1957.     * history.c: same.
  1958.     * ignore.c: same.
  1959.     * import.c: same.
  1960.     * log.c: same.
  1961.     * mkmodules.c: same.
  1962.     * modules.c: same.
  1963.     * parseinfo.c: same.
  1964.     * patch.c: same.
  1965.     * rcs.c: same.
  1966.     * recurse.c: same.
  1967.     * release.c: same.
  1968.     * remove.c: same.
  1969.     * repos.c: same.
  1970.     * rtag.c: same.
  1971.     * status.c: same.
  1972.     * tag.c: same.
  1973.     * update.c: same.
  1974.     * watch.c: same.
  1975.     * wrapper.c: same.
  1976.     
  1977.     * root.c (Name_Root): remove error message that reports missing
  1978.      CVSROOT, since new code in main.c will catch it and also print out
  1979.      an error.
  1980.     (parse_cvsroot): new function -- takes a CVSROOT string and breaks
  1981.      it up into its component parts -- method, hostname, username, and
  1982.      repository directory.  Sets new global variables that describe the
  1983.      repository location more precisely: CVSroot_original,
  1984.      CVSroot_remote, CVSroot_method, CVSroot_username,
  1985.      CVSroot_hostname, CVSroot_directory for use by all other
  1986.      functions.  Checks for obvious errors in format of string.
  1987.     (main): a short routine to test parse_cvsroot from the command
  1988.      line.
  1989.     * cvs.h: add prototype for parse_cvsroot and extern definitions
  1990.      for new globals.
  1991.  
  1992.     * cvs.h: removed CVSroot variable, since we don't want other
  1993.      routines using the raw CVSROOT (also helped to find all of the
  1994.      refs to the variable!).
  1995.  
  1996. Fri Apr 19 11:22:35 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  1997.  
  1998.         * Version 1.7.86
  1999.  
  2000. Thu Apr 18 1996  Jim Kingdon  <kingdon@cyclic.com>
  2001.  
  2002.     * client.c (try_read_from_server): Compare return value from fwrite
  2003.     with a size_t not an int (Visual C++ lint).
  2004.  
  2005. Wed Apr 17 11:56:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2006.  
  2007.     * client.c (try_read_from_server): New function.
  2008.     (read_from_server): Use it.
  2009.     (read_counted_file): New function.
  2010.     * client.c, server.c: Add Template response.
  2011.     * cvs.h (CVSADM_TEMPLATE): Added.
  2012.     * logmsg.c (do_editor): If repository is NULL, use CVSADM_TEMPLATE
  2013.     file in place of rcsinfo.
  2014.     * server.c, server.h (server_template): New function.
  2015.     * create_adm.c (Create_Admin): Call it.
  2016.  
  2017. Tue Apr 16 13:56:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2018.  
  2019.     * repos.c (Name_Repository): Fix comments.
  2020.     * create_adm.c (Create_Admin): Fix indentation.
  2021.  
  2022. Wed Apr 10 16:46:54 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2023.  
  2024.     * options.h.in: Include relevant information here rather than
  2025.     citing (former) FAQ.
  2026.  
  2027.     * ChangeLog-9395: Fix typo in introductory paragraph.
  2028.  
  2029. Wed Apr 10 14:55:10 1996  code by Mike Spengler  mks@msc.edu
  2030.     comments by Jim Kingdon  <kingdon@harvey.cyclic.com>
  2031.  
  2032.     * filesubr.c (unlink_file_dir,deep_remove_dir): Don't call unlink
  2033.     on something which might be a directory; check using isdir instead.
  2034.  
  2035. Wed Apr 10 14:55:10 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2036.  
  2037.     * checkout.c (build_dirs_and_chdir): Pass path, not cp, to
  2038.     Create_Admin.  The former is the correct update dir.
  2039.     * sanity.sh (modules): New tests modules-155* test, for above fix.
  2040.  
  2041. Mon Apr  8 13:53:27 1996  Samuel Tardieu  <sam@inf.enst.fr>
  2042.  
  2043.     * rcs.c (annotate_fileproc): If the file is not under CVS control,
  2044.     return instead of dumping a core. Don't bug on files with an empty
  2045.     first revision.
  2046.  
  2047. Fri Mar 29 16:08:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2048.  
  2049.     * rcs.c (annotate_fileproc): If last line of add-chunk is not
  2050.     newline terminated, end the loop when we find that out.
  2051.  
  2052. Fri Mar 29 16:59:34 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2053.  
  2054.     * rcs.c (annotate_fileproc): allow last line of add-chunk not to
  2055.       be newline terminated
  2056.  
  2057. Thu Mar 28 10:56:36 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2058.  
  2059.     Add more diff tests:
  2060.     * sanity.sh (basic2): Use dotest for test 61.
  2061.     (basica): Add test basica-6.2.
  2062.     (branches): Add tests branches-14.4 and branches-14.5.
  2063.     (basic1): Remove tests 19, 20, 25, and 26.  The only thing this
  2064.     might miss out on is diff's interaction with added and removed
  2065.     files, but those tests didn't test that very well anyway.
  2066.  
  2067.     * rcs.c (RCS_getrevtime): Add comment regarding years after 1999.
  2068.  
  2069.     * rcs.c: Add "cvs annotate" command and related code.
  2070.     (getrcskey): Move special handling of RCSDESC from here to
  2071.     callers.  Handle those keys (desc, log, text) which do not
  2072.     end in a semicolon.
  2073.     * rcs.h (RCSVers): Add author field.
  2074.     * rcs.c (RCS_reparsercsfile): Set it.
  2075.     * cvs.h (annotate), main.c (cmd_usage, cmds), client.h client.c
  2076.     (client_annotate), server.c (serve_annotate, requests): Usual
  2077.     machinery to add a new command.
  2078.     * sanity.sh (basica): Test cvs annotate.
  2079.  
  2080.     * sanity.sh (branches): More tests, of things like adding files on
  2081.     the trunk after a branch has been made.
  2082.  
  2083. Tue Mar 26 09:48:49 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2084.  
  2085.     * expand_path.c: Don't declare free and xmalloc; cvs.h already
  2086.     takes care of that.
  2087.  
  2088.     * sanity.sh (mflag): Don't use tag name reserved to CVS.
  2089.  
  2090.     NT local changes plus miscellaneous things noticed in the process:
  2091.     * import.c (add_rcs_file): Use binary mode to write RCS file.  Use
  2092.     \012 where linefeed is intended.  Copy data a small block at a
  2093.     time, until we hit EOF, rather than trying to read the whole file
  2094.     into memory at once.
  2095.     * client.c (send_modified): Add comments regarding st_size.
  2096.     * commit.c (commit): Add comments regarding binary mode and read().
  2097.     * logmsg.c (do_editor): Add comments regarding st_size.
  2098.     * server.c (server_updated): Use binary mode to read file we are
  2099.     sending.
  2100.  
  2101.     * rcscmds.c (RCS_settag): Complain if user tries to add a tag name
  2102.     reserved to CVS.
  2103.     * sanity.sh (basica): Test for this behavior.
  2104.  
  2105.     * sanity.sh (binfiles): New tests test ability to change keyword
  2106.     expansion.
  2107.  
  2108. Mon Mar 25 1996  Jim Kingdon  <kingdon@cyclic.com>
  2109.  
  2110.     * cvs.h, filesubr.c (expand_wild): New function.
  2111.     * recurse.c (start_recursion): Call expand_wild at beginning and
  2112.     free its results at the end.
  2113.     * cvs.h, subr.c (xrealloc): Make argument and return value void *.
  2114.     * client.h, client.c (send_file_names): Add flags argument.   If
  2115.     SEND_EXPAND_WILD flag is passed, call expand_wild at beginning and
  2116.     free its results at the end.
  2117.     * admin.c, add.c, log.c, tag.c, status.c, edit.c, watch.c,
  2118.     update.c, commit.c, remove.c, client.c, diff.c: Update callers.
  2119.  
  2120. Fri Mar 22 10:09:55 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2121.  
  2122.     * error.c (error, fperror): Exit with status EXIT_FAILURE rather
  2123.     than STATUS.  We had been neglecting to check for 256, and the
  2124.     value of providing a count of errors is probably minimal anyway.
  2125.     * add.c, modules.c, mkmodules.c, tag.c, server.c, main.c,
  2126.     import.c, client.c, scramble.c, recurse.c: Exit with status
  2127.     EXIT_FAILURE rather than 1.  On VMS, 1 is success, not failure.
  2128.     * main.c (main): Return EXIT_FAILURE or 0.  The value of providing
  2129.     a count of errors is minimal.
  2130.  
  2131.     * client.c (init_sockaddr): Exit with status 1 rather than
  2132.     EXIT_FAILURE.  The latter apparently doesn't exist on SunOS4.
  2133.     Reindent function.
  2134.  
  2135. Mon Mar 18 14:28:00 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2136.  
  2137.     * cvs.h, ignore.c: New variable ign_case.
  2138.     * ignore.c (ign_name): If it is set, match in a case-insensitive
  2139.     fashion.
  2140.     * server.c (serve_case): New function.
  2141.     (requests): Add Case request.
  2142.     * client.c (start_server): If FILENAMES_CASE_INSENSITIVE is
  2143.     defined, send Case request.
  2144.  
  2145. Sat Mar 16 08:20:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2146.  
  2147.     For reference, this change takes cvs's text segment from 315392
  2148.     bytes to 311296 bytes (one 4096 byte page).
  2149.     * cvs.h (struct file_info): Add fullname field.
  2150.     * recurse.c (do_file_proc): Set it.
  2151.     * commit.c (find_fileproc), client.c (send_fileproc), commit.c
  2152.     (check_fileproc), diff.c (diff_fileproc), edit.c
  2153.     (unedit_fileproc), patch.c (patch_fileproc), remove.c
  2154.     (remove_fileproc), rtag.c (rtag_fileproc), tag.c (tag_fileproc),
  2155.     update.c (update_fileproc), watch.c (watchers_fileproc): Use it
  2156.     instead of computing it each time.
  2157.     * diff.c (diff_fileproc), remove.c (remove_fileproc): Use fullname
  2158.     where we had been (bogusly) omitting the directory from user
  2159.     messages.
  2160.     * edit.c (unedit_fileproc, edit_fileproc): If we cannot close
  2161.     CVSADM_NOTIFY, mention CVSADM_NOTIFY rather than finfo->file in
  2162.     error message.
  2163.     * rtag.c (rtag_fileproc), tag.c (tag_fileproc): Reindent.
  2164.  
  2165. Fri Mar 15 15:12:11 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2166.  
  2167.     * server.h: fix prototype of server_pause_check (was
  2168.       server_check_pause)
  2169.  
  2170. Thu Mar 14 1996  Jim Kingdon  <kingdon@cyclic.com>
  2171.  
  2172.     * vers_ts.c (Version_TS), entries.c (Scratch_Entry, AddEntryNode):
  2173.     Change findnode to findnode_fn.
  2174.  
  2175.     * main.c: Depending on HAVE_WINSOCK_H, include winsock.h or
  2176.     declare gethostname.
  2177.     * cvs.h: Don't declare it here.
  2178.  
  2179. Thu Mar 14 07:06:59 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2180.  
  2181.     * commit.c (find_fileproc): If vn_user is NULL and ts_user is not,
  2182.     print an error rather than silently succeeding.
  2183.     * sanity.sh (basica-notadded): New test, for above fix.
  2184.     (dotest_internal): New function.
  2185.     (dotest,dotest_fail): Call it instead of duplicating code between
  2186.     these two functions.
  2187.  
  2188.     * sanity.sh: Skip tests binfiles-9 through binfiles-13 for remote.
  2189.  
  2190.     * options.h.in: Adjust comment to reflect kfogel change.
  2191.  
  2192. Thu Mar 14 01:38:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  2193.  
  2194.         * options.h.in (AUTH_CLIENT_SUPPORT): turn on by default.
  2195.  
  2196. Wed Mar 13 09:25:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2197.  
  2198.     * vers_ts.c (Version_TS): Don't try to override options from rcs
  2199.     file if there isn't an rcs file (e.g. called from send_fileproc).
  2200.     This fixes a bug detected by test 59 in "make remotecheck".
  2201.  
  2202.     * rcs.c (RCS_reparsercsfile, RCS_getexpand): Assert that argument
  2203.     is not NULL.
  2204.  
  2205.     Fix a gcc -Wall warning:
  2206.     * rcs.c, rcs.h (RCS_getexpand): New function.
  2207.     * vers_ts.c (Version_TS): Call it.
  2208.     * rcs.c (RCS_reparsercsfile): Make static.
  2209.  
  2210.     Add a "cvs init" command.  This is needed because cvsinit.sh
  2211.     invoked mkmodules which doesn't exist any more.
  2212.     * mkmodules.c: Break filelist out of mkmodules function, rename
  2213.     struct _checkout_file to struct admin_file (for namespace
  2214.     correctness), and add contents field.
  2215.     (init,mkdir_if_needed): New functions.
  2216.     * cvs.h (init): Declare.
  2217.     * main.c (cmds): Add init.
  2218.     (main): If command is init, don't require cvsroot to exist.
  2219.     * client.c, client.h (client_init, send_init_command): New functions.
  2220.     * client.c (start_server): Don't send Root request if command is init.
  2221.     * server.c (serve_init): New function.
  2222.     (requests): Add "init".
  2223.  
  2224. Wed Mar 13 09:51:03 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2225.  
  2226.     * vers_ts.c (Version_TS): set options to default option if the
  2227.       file if no -k option but -A was given.  This avoids the (wrong)
  2228.       update message for binary files which are up-to-date when
  2229.       running 'cvs -A'.
  2230.  
  2231.     * update.c (checkout_file): remove test of -k option stored in the
  2232.       file itself because it was moved to vers_ts.c
  2233.  
  2234.     * sanity.sh: added tests for the above fix.
  2235.  
  2236. Tue Mar 12 13:47:09 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2237.  
  2238.     * hash.c (findnode): Adjust comment regarding errors.
  2239.  
  2240.     * hash.c (findnode, findnode_fn): Assert that key != NULL.  This
  2241.     way the check still happens even if the function is later
  2242.     rewritten to not start out by calling hashp.
  2243.  
  2244. Mon Mar 11 10:21:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2245.  
  2246.     * sanity.sh: If expr accepts multi-line patterns but is too
  2247.     liberal in matching them, print a warning but keep going.
  2248.  
  2249.     * sanity.sh: Add QUESTION variable, analogous to PLUS.  Use it
  2250.     instead of \? to match a question mark.
  2251.  
  2252.     * cvs.h (CVSMODULE_OPTS, CVSMODULE_SPEC): Move from here...
  2253.     * modules.c: ...to here.  They are only used here and the code to
  2254.     handle the syntax of modules files should not be scattered all over.
  2255.     * modules.c (CVSMODULE_OPTS): Add "+" as first character.
  2256.     * sanity.sh (modules): New tests 148a0 and 148a1 test for
  2257.     above-fixed bug.
  2258.  
  2259. Mon Mar 11 13:11:04 1996  Samuel Tardieu  <sam@inf.enst.fr>
  2260.  
  2261.     * modules.c (cat_module): set optind to 0 to force getopt() to
  2262.     reinitialize its internal nextchar
  2263.  
  2264. Mon Mar 11 00:09:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2265.  
  2266.     * hash.c (findnode, findnode_fn): Revert changes of 7-8 Mar 1996.
  2267.     The correct style is to assert() that key != NULL (see HACKING),
  2268.     which is already done in the hashp function.
  2269.     * fileattr.c (fileattr_delproc): Likewise, assert() that
  2270.     node->data != NULL rather than trying to deal with it being NULL.
  2271.  
  2272. Fri Mar  8 01:31:04 1996  Greg A. Woods  <woods@most.weird.com>
  2273.  
  2274.     * hash.c (findnode_fn): one more place to avoid calling hashp()
  2275.     with a NULL key
  2276.  
  2277. Thu Mar  7 17:30:01 1996  Greg A. Woods  <woods@most.weird.com>
  2278.  
  2279.     * hash.c (findnode): also return NULL if key is not set
  2280.     [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
  2281.     supposedly in a PR that should be marked "fixed"..... ]]
  2282.  
  2283.     * fileattr.c (fileattr_set): set node->data to NULL after freeing
  2284.     it to prevent subsequent accesses
  2285.     (fileattr_delproc): don't free node->data if it's NULL, and set it
  2286.     to NULL after freeing
  2287.     [[ reported by Chris_Eich@optilink.optilink.dsccc.com, and
  2288.     supposedly in a PR that should be marked "fixed"..... ]]
  2289.  
  2290. Fri Mar  1 14:56:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2291.  
  2292.     * sanity.sh (basica): New test basica-4a tests for bug fixed by
  2293.     sam@inf.enst.fr on 1 Mar 96.
  2294.  
  2295. Fri Mar  1 18:10:49 1996  Samuel Tardieu  <sam@inf.enst.fr>
  2296.  
  2297.     * tag.c (check_fileproc): Check for file existence before trying
  2298.     to tag it.
  2299.  
  2300. Fri Mar  1 07:51:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2301.  
  2302.     * client.c (update_entries): If command is export, set options to
  2303.     NULL.
  2304.  
  2305. Thu Feb 29 16:54:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2306.  
  2307.     * lock.c (write_lock, Reader_Lock): Remove
  2308.     BOGUS_UNLESS_PROVEN_OTHERWISE code.  It was pretty bogus, and has
  2309.     been ifdeffed out for a long time.
  2310.     * cvs.h (CVSTFL): Removed; no longer used.
  2311.  
  2312.     * cvsrc.c, cvs.h (read_cvsrc): Pass in command name rather than
  2313.     using global variable command_name.
  2314.     * main.c (command_name): Initialize to "", not "cvs" so that error
  2315.     messages don't say "cvs cvs".  Update calls to read_cvsrc to pass
  2316.     in command_name or "cvs" as appropriate.
  2317.     * sanity.sh (basica): New test basica-9 tests for above-fixed bug.
  2318.  
  2319.     * lock.c: Rename unlock to lock_simple_remove to avoid conflict
  2320.     with builtin function on QNX.
  2321.  
  2322. Thu Feb 29 17:02:22 1996  Samuel Tardieu  <sam@inf.enst.fr>
  2323.  
  2324.     * fileattr.c (fileattr_get): Removed NULL pointer dereference
  2325.     which occurred in the absence of default attribute.
  2326.  
  2327. Thu Feb 29 07:36:57 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2328.  
  2329.     * rcs.c (RCS_isbranch, RCS_whatbranch): Remove no longer used file
  2330.      argument, swap order of remaining two arguments to be like other
  2331.     RCS_* functions.
  2332.     (RCS_nodeisbranch): swap order of arguments to be like other RCS_*
  2333.     functions.
  2334.     * rcs.h (RCS_isbranch, RCS_whatbranch, RCS_nodeisbranch): Update
  2335.     prototypes for above changes.
  2336.     * commit.c, rtag.c, status.c, tag.c: Update for above calling
  2337.      convention changes.
  2338.  
  2339. Thu Feb 29 08:39:03 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2340.  
  2341.     * client.c (start_server): Revert changes which claimed to fall
  2342.     back to a different way of connecting.  Add comments explaining
  2343.     why.  (I don't think the changes did what they claimed, anyway).
  2344.     Use indentation rather than comments to line up #if, #else, and
  2345.     #endif.
  2346.  
  2347.     * patch.c (patch, patch_fileproc): Revert change to add optional
  2348.     arguments to -c and -u.  Optional arguments are evil and in
  2349.     violation of the POSIX argument syntax guidelines.  The correct
  2350.     way to do this is -C and -U.  Also change DIFF back to "diff" in
  2351.     output (see comments).
  2352.  
  2353.     gcc -Wall lint:
  2354.     * client.c (copy_a_file): Declare p inside the #ifdef in which is
  2355.     it used.
  2356.     * commit.c (remove_file): Remove unused variable p.
  2357.     * commit.c (checkaddfile): Remove unused variables p.
  2358.     * rcs.c (RCS_isbranch): Remove unused variable p.
  2359.     * rcs.c: Remove unused declarations and definitions of
  2360.     parse_rcs_proc, rcsnode_delproc, rcslist, and repository.
  2361.     * rtag.c (rtag_fileproc): Remove unused variable p.
  2362.     * patch.c (patch_fileproc): Remove unused variable p.
  2363.     * tag.c (val_fileproc): Remove unused variable node.
  2364.     * client.c, import.c, lock.c, server.c: Cast pid_t to long before
  2365.     passing it to %ld.
  2366.  
  2367.     * cvs.h: Don't prototype gethostname; merely declare it (on linux,
  2368.     second argument is size_t not int).
  2369.  
  2370. Thu Feb 29 10:29:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
  2371.  
  2372.     * sanity.sh: added "cat > /dev/null" to loginfo entry to avoid the
  2373.       SIGPIPE signal
  2374.  
  2375. Thu Feb 29 10:28:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
  2376.  
  2377.     * patch.c: added new variable diff_opt
  2378.     (patch): allow optional parameter to -c and -u option, send it to
  2379.     server
  2380.     (patch_fileproc): cleaned up the code which prints the current
  2381.     filename.  For "-s" option, print the pathname relative to CVSROOT
  2382.     instead of just the filename.
  2383.  
  2384.     * filesubr.c (xchmod): added cast to shut up gcc
  2385.  
  2386.     * cvs.h: added prototype for gethostname
  2387.  
  2388. Thu Feb 29 10:27:25 MET 1996  Norbert Kiesel (nk)  <nk@col.sw-ley.de>
  2389.  
  2390.     * lock.c (write_lock), (Reader_Lock), import.c (update_rcs_file),
  2391.       client.c (update_entries), (send_modified), server.c (server),
  2392.       (receive_file), (server_updated): use %ld for printing pid_t
  2393.       variables
  2394.  
  2395. Thu Feb 29 02:22:12 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2396.  
  2397.     * run.c (run_exec): Added VMS return status support.
  2398.  
  2399. Thu Feb 29 01:07:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2400.  
  2401.     * client.c (send_to_server): wrtn wasn't being declared under
  2402.     VMS for some reason.
  2403.  
  2404. Wed Feb 28 23:27:04 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2405.  
  2406.     * client.c: Changed #ifdef VMS && NO_SOCKET_TO_FD to
  2407.     #if defined(VMS) && defined(NO_SOCKET_TO_FD)
  2408.  
  2409. Wed Feb 28 22:28:43 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2410.  
  2411.     * build_src.com: Added DCL command procedure to build
  2412.     and link CVS client for VMS.
  2413.  
  2414. Wed Feb 28 22:07:20 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2415.  
  2416.     * client.c: VMS CVS client specific changes.
  2417.  
  2418.     Added USE_DIRECT_TCP to allow CVS_PORT to be used to specify
  2419.     a TCP connection port (no Kerberos).  Changed
  2420.     start_kerberos_server() to start_tcp_server().
  2421.  
  2422.     In copy_a_file(): transform a backup file to have a
  2423.         VMS-friendly name. 
  2424.  
  2425.     Added HAVE_CONFIG_H to include "config.h".  
  2426.  
  2427.     start_server() will starts the first successful of any
  2428.     mutually exclusive methods of starting the CVS server
  2429.     which might be enabled.
  2430.  
  2431.     Initialized use_socket_style and server_sock for VMS in
  2432.     start_server().
  2433.  
  2434. Wed Feb 28 21:49:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2435.  
  2436.     * find_names.c, recurse.c, cvs.h: Changed Find_Dirs() to
  2437.     Find_Directories().
  2438.     * cvs.h: Added VMS filenames enabled through USE_VMS_FILENAMES
  2439.     VMS POSIX will require to use the regular CVS filenames
  2440.     while VMS is #define'd.
  2441.  
  2442. Wed Feb 28 21:26:22 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2443.  
  2444.     * ignore.c: Added the patterns *.olb *.exe _$* *$ to default
  2445.     ignore list for VMS.
  2446.  
  2447. Wed Feb 28 13:32:28 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2448.  
  2449.     * logmsg.c (do_editor): Fix indentation.
  2450.  
  2451. Wed Feb 28 12:56:49 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2452.  
  2453.     * logmsg.c (do_editor): If no editor is defined, exit and print
  2454.     a message.
  2455.  
  2456. Wed Feb 28 10:40:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2457.  
  2458.     * vers_ts.c (time_stamp, time_stamp_server): Reindent and revise
  2459.     comments.
  2460.  
  2461. Tue Feb 27 23:57:55 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2462.  
  2463.     * vers_ts.c: gmtime() returns NULL on some systems (VMS)
  2464.     revert to local time via ctime() if GMT is not avaiable.
  2465.  
  2466. Tue Feb 27 13:07:45 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2467.  
  2468.     The changes listed below cause cvs to parse each rcs file (and
  2469.      free the associated rcsnode after the file has been processed)
  2470.      sequentially.  cvs used to parse all files in a directory, an
  2471.     approach that does not scale to huge repositories with lots 
  2472.     of revisions/branches/tags/etc.  
  2473.     
  2474.     * cvs.h (struct file_info): Removed srcfiles field.  Added rcs
  2475.      (node) field.
  2476.     * recurse.c (do_recursion): Removed code that pre-parsed all
  2477.      rcs files in the directory.
  2478.     (do_file_proc): Parse current rcs file.
  2479.     * rcs.c (RCS_parsefiles, parse_rcs_proc, RCS_addnode): Removed.
  2480.     (RCS_isbranch, RCS_whatbranch): Changed srcfiles argument to
  2481.     rcs (node).
  2482.     * rcs.h (RCS_parsefiles, RCS_addnode): Removed prototypes.
  2483.     (RCS_isbranch, RCS_whatbranch): Updated prototypes.
  2484.     * add.c, admin.c, checkin.c, checkout.c, classify.c, client.c, 
  2485.     commit.c, diff.c, history.c, import.c, log.c, patch.c, remove.c, 
  2486.     rtag.c, status.c, tag.c, update.c, vers_ts: Updated for above
  2487.     calling convention / data structure changes.
  2488.  
  2489. Mon Feb 26 16:07:56 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2490.  
  2491.     * Version 1.7.3.
  2492.  
  2493.     * Version 1.7.2.
  2494.  
  2495. Mon Feb 26 1996  Jim Kingdon  <kingdon@cyclic.com>
  2496.  
  2497.     * recurse.c (start_recursion): Use last_component rather than
  2498.     checking for '/' directly.
  2499.     (do_dir_proc): Likewise.
  2500.  
  2501.     Visual C++ lint:
  2502.     * client.c (send_to_server): Change wrtn to size_t.
  2503.     (connect_to_pserver): Put tofd and fromfd declarations inside
  2504.     #ifndef NO_SOCKET_TO_FD.
  2505.     * scramble.c (shifts): Change from array of char to array of
  2506.     unsigned char.
  2507.  
  2508. Mon Feb 26 13:31:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2509.  
  2510.     * server.c (check_repository_password): Remove unused variables
  2511.     linelen, ch.
  2512.  
  2513.     * client.c (send_file_names): Translate ISDIRSEP characters to '/'.
  2514.  
  2515. Sat Feb 24 21:25:46 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2516.  
  2517.     * checkout.c (safe_location): Re-indent one line.
  2518.  
  2519. Sat Feb 24 10:50:42 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  2520.  
  2521.         * checkout.c (safe_location): put assignment to hardpath[x] in an
  2522.         `else'-clause, so we don't do it when x == -1.
  2523.  
  2524. Sat Feb 24 01:40:28 1996  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
  2525.                           via Karl Fogel  <kfogel@floss.red-bean.com>
  2526.  
  2527.      * server.c (check_repository_password): Return by reference an
  2528.         optional username, the `host_user', from the passwd file.  The
  2529.         host_user will be the user-id under which the cvs repository is
  2530.         run.
  2531.        (check_repository_password): Use `read_line' instead of fgets to
  2532.         allow for passwords larger than 32 characters, as well as the
  2533.         optional host user argument.
  2534.        (check_password): Modify to use host_user.
  2535.        (authenticate_connection): Modify to use host_user.
  2536.  
  2537. Sat Feb 24 01:05:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  2538.  
  2539.         * scramble.c (descramble): just shift descrambled string to get
  2540.         rid of tag char, instead of allocating a whole new copy.
  2541.         (scramble): cast return value of xmalloc to avoid unsightly
  2542.         compiler warnings.
  2543.  
  2544.         * options.h.in (RCSBIN_DFLT): don't refer to AUTH_SERVER_SUPPORT
  2545.         in comment anymore, now that it's not defined in this file.
  2546.  
  2547. Fri Feb 23 1996  Jim Kingdon  <kingdon@cyclic.com>
  2548.  
  2549.     * client.c: Ifdef HAVE_WINSOCK_H, include winsock.h
  2550.     instead of sys/socket.h and friends.
  2551.     * login.c: Don't include sys/socket.h and friends.
  2552.     * login.c (login): Only fclose fp in the case where it was
  2553.     successfully fopen'd.
  2554.     * login.c: Declare getpass.
  2555.     * filesubr.c, cvs.h (get_homedir): New function.
  2556.     * cvsrc.c, expand_path.c, history.c, login.c: Call it instead
  2557.     of getenv ("HOME").
  2558.  
  2559. Fri Feb 23 09:23:20 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2560.  
  2561.     * client.c (connect_to_pserver): Remove unused variable host.
  2562.     * login.c: Include getline.h.
  2563.     (login): Remove unused variables i and username.
  2564.     (get_cvs_password): Move free of linebuf to where it actually will
  2565.     be called.  Add a "return NULL" at the end of the function to shut
  2566.     up gcc -Wall.
  2567.  
  2568.     * options.h.in: Remove AUTH_SERVER_SUPPORT.
  2569.     * client.h (authenticate_connection): Declare.
  2570.     * scramble.c (scramble): Cast char to unsigned char before using
  2571.     it to look up in table (char might be signed).
  2572.     * server.c [AUTH_SERVER_SUPPORT]: Include grp.h
  2573.     (authenticate_connection): Remove unused variables len and
  2574.     server_user.
  2575.  
  2576.     * sanity.sh (basica): Add comments regarding creating a top-level
  2577.     directory.
  2578.     (basic1): Don't try to remove first-dir and
  2579.     ${CVSROOT_DIRNAME}/first-dir at start of test; tests are now
  2580.     responsible for cleaning up at the end.
  2581.     (PLUS,DOTSTAR,ENDANCHOR): Add comments regarding fixed GNU expr.
  2582.  
  2583. Thu Feb 22 22:34:11 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2584.  
  2585.     * cvs.h: Remove alloca cruft.
  2586.  
  2587. Wed Feb 21 07:30:16 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2588.  
  2589.     * modules.c (do_module): call free_cwd before exiting.
  2590.  
  2591.     * recurse.c: Removed entries global variable.
  2592.     (do_recursion): Declare entries.  Moved call to Entries_Close so
  2593.      entries list is closed on all code paths.
  2594.     (start_recursion): Removed call to Entries_Close, entries list has
  2595.      been moved to do_recursion only.
  2596.  
  2597. Tue Feb 20 22:10:05 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2598.  
  2599.     * update.c (update_dirent_proc): If dir lacks a CVS subdirectory,
  2600.     don't recurse into it.
  2601.     * sanity.sh (conflicts): Test for above-fixed bug.
  2602.  
  2603.     * update.c (merge_file): Use write_letter not printf.
  2604.  
  2605. Tue Feb 20 12:34:07 EST 1996: Gary Oberbrunner <garyo@avs.com>
  2606.                   and Jim Kingdon <kingdon@cyclic.com>
  2607.  
  2608.     * history.c (history_write): Change username to char * and call
  2609.     getcaller() to set it.  Setting username accidentally got deleted
  2610.     8 Feb 96.
  2611.     * sanity.sh: Revise test 64 to test for above-fixed bug.
  2612.     * sanity.sh (PLUS): New variable, work around yet another GNU expr
  2613.     bug.
  2614.  
  2615. Tue Feb 20 14:07:50 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2616.  
  2617.     * sanity.sh: Merge test rtags into test basic2.  They never were
  2618.     capable of running separately of each other.
  2619.  
  2620.     * sanity.sh (deep): New test, to test ability to operate in deeply
  2621.     nested directories (more quickly than basic2 test did).
  2622.     (basic2,rtags): Remove directories dir3 and dir4.  Remove file8,
  2623.     file10, file12, file9, file11, file13, file15, file16, file17.
  2624.     These additional files slowed down the tests considerably without
  2625.     significantly increasing coverage.
  2626.  
  2627.     * sanity.sh (PROG): New variable.  Use it instead of "cvs"
  2628.     to match the name cvs prints out for itself.
  2629.  
  2630. Mon Feb 19 09:00:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2631.  
  2632.     This fixes a bug whereby old default attributes would get
  2633.     clobbered instead of added to on "cvs watch add".
  2634.     * hash.c (findnode): Don't check for key == NULL; let the
  2635.     assertion in hashp take care of it.
  2636.     * fileattr.h, fileattr.c (fileattr_get): If filename is NULL,
  2637.     return default attributes.
  2638.  
  2639.     * client.c (send_repository): Fix indentation.
  2640.  
  2641. Mon Feb 19 01:10:01 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  2642.  
  2643.         * login.c (login): print out full repos so user knows which server
  2644.         she's logging into.
  2645.  
  2646.         * client.c (send_repository): die if `repos' is NULL.  This is a
  2647.         lame solution; see comments in code.
  2648.  
  2649. Thu Feb 15 15:04:01 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2650.  
  2651.     * error.c (error): Free entire and mess when done with them.
  2652.  
  2653.     * sanity.sh (info): Correct syntax of .cvsrc file.
  2654.  
  2655.     * cvs.h, expand_path.c, edit.c, parseinfo.c, wrapper.c:
  2656.     expand_path now takes arguments containing file and line for error
  2657.     message, and it prints the error message itself.
  2658.     * sanity.sh (info-6a): Test printing of error message.
  2659.  
  2660.     * expand_path.c (expand_variable): Add USER internal variable.
  2661.     * sanity.sh (info): Test USER and CVSROOT internal variables too.
  2662.  
  2663. Wed Feb 14 19:11:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2664.  
  2665.     * main.c (usg): Add -s option.
  2666.  
  2667. Tue Feb 13 20:26:06 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2668.  
  2669.     gcc -Wall lint:
  2670.     * mkmodules.c (mkmodules_usage): Remove declaration of
  2671.     non-existent function.
  2672.     * cvs.h (mkmodules): Declare.
  2673.  
  2674. Mon Feb 12 12:20:04 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2675.  
  2676.     * mkmodules.c: Rename main to mkmodules and remove various pieces
  2677.     of scaffolding which it used to emulate non-existent parts of CVS.
  2678.     Change calling convention to just take a char * not argc,argv.
  2679.     Save and restore working directory.
  2680.     * commit.c (commit_filesdoneproc): Call it if checking files into
  2681.     CVSROOT.
  2682.     * Makefile.in (SOURCES): Add mkmodules.c.
  2683.     (OBJECTS): Add mkmodules.o.
  2684.     (MSOURCES,MOBJECTS): Removed.
  2685.     (COMMON_OBJECTS): Removed; move former contents into OBJECTS.
  2686.     Update other rules accordingly.
  2687.     * sanity.sh: Adjust to reflect nonexistence of mkmodules.
  2688.  
  2689.     These changes introduce functions cvs_output and cvs_outerr;
  2690.     eventually all server output will go through them rather than
  2691.     stdio directly.
  2692.     * server.c (saved_output, saved_outerr): New variables.
  2693.     (do_cvs_command): Initialize them.
  2694.     (buf_output): Don't require that buf->output be set; saved_* use
  2695.     this to shove some data in a buffer which buf_copy_lines will
  2696.     later want to get data from.
  2697.     * server.c, cvs.h (cvs_output, cvs_outerr): New functions.
  2698.     * mkmodules.c (cvs_outerr): New function, so error() works.
  2699.     * error.c: Reindent.  Don't declare program_name and command_name;
  2700.     cvs.h declares them.
  2701.     (error): Use vasprintf and cvs_outerr (or fputs in the
  2702.     error_use_protocol case) rather than stdio directly.
  2703.     * import.c (import_descend_dir): Remove kludge which had prevented
  2704.     messages from error() from being out of order with respect to
  2705.     messages from printf; cvs_output and cvs_outerr are a cleaner
  2706.     solution to the problem.
  2707.     (add_log, import): Use cvs_output not printf.
  2708.     * update.c (write_letter): Use cvs_output not printf.
  2709.     (checkout_file): Use write_letter not printf.
  2710.     * sanity.sh: Use dotest for test 56 (test that output is actually
  2711.     correct).  In theory should test that the import.c bug is fixed,
  2712.     but I was unable to reproduce the bug (it is timing dependent).
  2713.  
  2714. Mon Feb 12 16:07:45 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2715.  
  2716.     * commit.c: define last_register_time
  2717.     (commit): make sure cvs doesn't exit in the same second it wrote
  2718.     the last timestamp
  2719.     (commit_fileproc): set last_register_time
  2720.     (finaladd): set last_register_time
  2721.  
  2722.     * run.c, cvs.h: Changed more Popen() to run_popen()
  2723.  
  2724. Mon Feb 12 03:06:50 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2725.  
  2726.     * release.c, rtag.c, tag.c: changed 'delete' to 'delete_flag'
  2727.     to avoid symbol collision with DEC C RTL function delete()
  2728.  
  2729. Mon Feb 12 03:01:48 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2730.  
  2731.     * mkmodules.c: changed 'void Lock_Cleanup()' to 'void static
  2732.     Lock_Cleanup() to avoid conflict with more substantial
  2733.     Lock_Cleanup() in lock.c
  2734.  
  2735. Mon Feb 12 02:50:19 1996  Benjamin J. Lee  <benjamin@cyclic.com>
  2736.  
  2737.     * edit.c, logmsg.c, release.c, run.c: Changed Popen() to
  2738.     run_popen().  VMS' linker is not case sensitive and considered
  2739.     popen() and Popen() to be identical symbols.
  2740.  
  2741. Sun Feb 11 10:51:14 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2742.  
  2743.     * main.c (main) [!CLIENT_SUPPORT]: Silently ignore gzip level
  2744.     rather than printing usage message.
  2745.  
  2746.     * cvs.h, expand_path.c (variable_list): New variable.
  2747.     (variable_set): New function.
  2748.     * hash.h (enum ntype), hash.c (nodetypestring): Add VARIABLE.
  2749.     * expand_path.c (expand_path, expand_variable): Reindent.
  2750.     (expand_variable): Use user variables not environment variables
  2751.     for ${=VAR} syntax.  The environment variables didn't work
  2752.     client/server.
  2753.     * main.c (main): Process new -s global option.
  2754.     * client.c (send_variable_proc): New function.
  2755.     (start_server): Call it, to send user variables.
  2756.     * server.c (serve_set): New function.
  2757.     (requests): Add Set request.
  2758.     * sanity.sh: Revise info test to use user variables rather than
  2759.     environment variables.
  2760.  
  2761. Sat Feb 10 16:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2762.  
  2763.     By itself this is only a small cleanup, but in the long run it
  2764.     will be way cool (for reference, it takes CVS's text segment from
  2765.     290816 bytes to 294912, which I expect will be made up by future
  2766.     changes which this enables):
  2767.     * cvs.h (struct file_info): Added.
  2768.     (FILEPROC): Replace 5 args with single struct file_info *.
  2769.     * recurse.c (do_file_proc): Adjust args to fileproc; passed in
  2770.     instead of from globals.
  2771.     (do_recursion): Call do_file_proc accordingly.  Remove srcfiles
  2772.     global variable.
  2773.     * update.c (update_fileproc): Renamed from update_file_proc.
  2774.     * admin.c, client.c, commit.c, diff.c, edit.c, log.c, patch.c,
  2775.     remove.c, rtag.c, status.c, tag.c, update.c, watch.c: Update
  2776.     fileprocs to new calling convention.
  2777.  
  2778. Fri Feb  9 15:30:32 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2779.  
  2780.     * expand_path.c (expand_variable): Accept a variable name starting
  2781.     with '=' as a way to specify an environment variable.
  2782.     * sanity.sh (info): New tests, for above behavior.
  2783.  
  2784.     * Makefile.in (clean): Also remove check.log check.plog.
  2785.  
  2786.     * import.c (comtable): Remove SYSTEM_COMMENT_TABLE; the table
  2787.     should *not* depend on what kind of machine the server happens to
  2788.     be.  Add "mak", "rc", "dlg", "frm", and "bas" types which were
  2789.     formerly included via SYSTEM_COMMENT_TABLE.
  2790.  
  2791.     * cvs.h, rcs.h, add.c, checkin.c, classify.c, commit.c, diff.c,
  2792.     import.c, patch.c, rcs.c, update.c, vers_ts.c: Remove
  2793.     DEATH_SUPPORT ifdefs.  They were introduced to facilitate merging
  2794.     between Cygnus and Berliner variants of CVS, not because it was
  2795.     intended to subset CVS this way.  And they clutter up the code
  2796.     quite a bit.
  2797.     * cvs.h, create_adm.c, main.c, update.c: Likewise, remove
  2798.     CVSADM_ROOT ifdefs (it is still a #define, of course).  I believe
  2799.     they had a more-or-less similar motivation.
  2800.  
  2801.     * sanity.sh: Move setting of HOME from ignore test to the start of
  2802.     the tests so it applies to all tests.
  2803.     (CVS): Remove -f; the above change takes care of it.
  2804.  
  2805.     * rcs.h (RCS_MERGE): Removed; unused.
  2806.  
  2807.     * commit.c (checkaddfile): Fix memory leak.
  2808.  
  2809.     * admin.c, commit.c, diff.c, log.c, mkmodules.c: Pass -x,v/ to RCS
  2810.     commands.
  2811.  
  2812.     * rcscmds.c, cvs.h (RCS_checkin): New function.
  2813.     * checkin.c, commit.c, import.c: Call it, rather than run_*.
  2814.     * cvs.h, commit.c: Remove DEATH_STATE define; the behavior
  2815.     which used to be the default (DEATH_STATE) is now the only one.
  2816.     Failing to define DEATH_STATE has been commented as obsolete at
  2817.     least since CVS 1.5.  We still can read repositories created with
  2818.     such a CVS, however.
  2819.     * rcs.h, rcs.c: Adjust comments regarding DEATH_STATE.
  2820.     * subr.c (make_message_rcslegal): Add comment, describing
  2821.     allocation of returned value.
  2822.  
  2823. Fri Feb  9 09:53:44 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2824.  
  2825.     * sanity.sh: use "${testcvs}" instead of "cvs" in devcom tests
  2826.  
  2827.     * hash.c: fix "dereferencing a NULL pointer" bug triggered with
  2828.       "cvs watch add"
  2829.     (findnode): return NULL if key == NULL
  2830.     (hashp): assert (key != NULL)
  2831.     
  2832. Fri Feb  9 00:46:47 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2833.  
  2834.     * rcs.c (RCS_reparsercsfile): Remove unused variable date.
  2835.  
  2836.     * myndbm.c (mydbm_load_file): Fix typo ('015' -> '\015').
  2837.  
  2838. Thu Feb  8 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
  2839.  
  2840.     * rcs.c (RCS_parse, RCS_parsercsfile, RCS_reparsercsfile),
  2841.     fileattr.c (fileattr_read), myndbm.c (myndbm_open):
  2842.     Use FOPEN_BINARY_READ.
  2843.     * fileattr.c (fileattr_write), myndbm.c (myndbm_close):
  2844.     Use FOPEN_BINARY_WRITE.
  2845.     * history.c (history_write, read_hrecs): Specify OPEN_BINARY.
  2846.     * rcs.c: Remove calls to abort.
  2847.     * myndbm.c (myndbm_load_file): Ignore CRs from ends of lines
  2848.     if present.
  2849.     * myndbm.c, fileattr.c: While I am at it, change \n to \012
  2850.     a few places where LF is intended.
  2851.     * history.c (history_write): Use getenv ("HOME"), not getpwnam,
  2852.     to find home directory.  If it isn't set, just keep going; don't
  2853.     print a message.
  2854.     * rcscmds.c, cvs.h (RCS_checkout): New function.
  2855.     * update.c, checkin.c, commit.c, diff.c, import.c, no_diff.c, 
  2856.     patch.c: Call it instead of run_*.
  2857.     * patch.c (patch_fileproc): Clean up inconsistent handling of
  2858.     noexec flag.
  2859.     * rcscmds.c (RCS_*): Pass -x,v/ to RCS commands; elsewhere in
  2860.     CVS it is assumed that ,v is a suffix.
  2861.  
  2862. Fri Feb  2 14:07:32 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2863.  
  2864.     * rcs.h (struct rcsnode): Remove dates field (list of rcsversnodes
  2865.      indexed by date).  CVS maintained this list for each RCS file even
  2866.     though it was never used.  This resulted in higher then necessary 
  2867.     memory requirements (and run time too).  Even if revision info was
  2868.     needed, CVS' List data structure is inappropriate because can't
  2869.     handle duplicate keys.  The above was discovered by tracking down
  2870.     a memory leak.
  2871.     * rcs.c (RCS_reparsercsfile): Don't build dates list.
  2872.     (freercsnode): Don't delete dates list.
  2873.     (rcsvers_delproc): Free date field.
  2874.     (null_delproc): Removed.
  2875.     
  2876. Thu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2877.  
  2878.     * remove.c (cvsremove): Don't tell user the name of the program
  2879.     which they use to remove files; we don't have any way of knowing
  2880.     that, and besides which they might use a GUI or emacs 'dired' anyway.
  2881.     * update.c (update_filesdone_proc, update_dirleave_proc): Call
  2882.     unlink_file_dir instead of rm -rf.
  2883.     * options.h.in: Remove RM; no longer used.
  2884.  
  2885.     * sanity.sh: New tests devcom-a* test "cvs watch add",
  2886.     "cvs watch remove", and "cvs watchers".
  2887.  
  2888.     * sanity.sh: New test 171a0 tests for watch.c bug just fixed by kfogel.
  2889.  
  2890.     * Most .c files: Remove rcsids.
  2891.     * cvs.h: Remove USE macro.
  2892.  
  2893. Thu Feb  1 13:07:15 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2894.  
  2895.     * tag.c, rtag.c: Update various comments to reflect function name
  2896.      changes.
  2897.  
  2898. Thu Feb  1 14:14:31 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  2899.  
  2900.         * recurse.c (do_recursion): comment #endif.
  2901.  
  2902.         * edit.c (notify_check): surround with #ifdef CLIENT_SUPPORT; else
  2903.         CVS won't compile if CLIENT_SUPPORT is undefined.
  2904.         
  2905.         * edit.h (notify_check): surround declaration with #ifdef
  2906.         CLIENT_SUPPORT.
  2907.  
  2908.         * watch.c (watch): if argc <= 1, then just give usage (previously
  2909.         was "argc == -1").
  2910.  
  2911. Thu Feb  1 12:28:33 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2912.  
  2913.     * README-rm-add: Remove information which is now in cvs.texinfo.
  2914.  
  2915.     * sanity.sh: Remove basic0 tests.  Move a few to new tests
  2916.     basica-1a* (but there is no need to test that *every* command
  2917.     gracefully does nothing on an empty directory; exhaustive testing
  2918.     is impractical and the generic recursion processor handles this
  2919.     anyway).
  2920.  
  2921.     * sanity.sh: New tests 69a* test use of update -p to restore old
  2922.     version of dead file.
  2923.  
  2924. Wed Jan 31 18:32:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2925.  
  2926.     * ChangeLog-9395: Remove duplicate entries from 1996 which
  2927.     accidentally got into this file.
  2928.  
  2929.     * client.c (read_line, read_from_server): Change "premature end of
  2930.     file from server" message to "end of file from server (consult
  2931.     above messages if any)" because 99% of the time it means rsh has
  2932.     printed an error message and exited.
  2933.  
  2934. Wed Jan 31 15:09:51 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2935.  
  2936.     * edit.c (ncheck_fileproc): Fix memory leak; free line before
  2937.     returning.
  2938.  
  2939. Tue Jan 30 18:06:12 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2940.  
  2941.     * recurse.c (do_recursion): Add comment about the fact that we
  2942.     don't have locks in place at certain points.
  2943.  
  2944. Tue Jan 30 09:43:34 1996  Vince Demarco  <vdemarco@bou.shl.com>
  2945.  
  2946.     * edit.c (notify_proc): have notify_proc call expand_path with
  2947.     the name of the filter program. The user may have used a
  2948.     cvs environmental variable. (Popen will expand it, but it may not
  2949.     use the correct value)
  2950.  
  2951. Tue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2952.  
  2953.     * ChangeLog: take the pre-1996 changes and put them in a new file
  2954.     ChangeLog-9395.
  2955.     * ChangeLog-9194: Renamed from ChangeLog.fsf.
  2956.     * ChangeLog-9194, ChangeLog-9395, ChangeLog: Add additional text
  2957.     explaining the difference between all these logs and pointing to
  2958.     older logs.
  2959.     * Makefile.in (DISTFILES): Add ChangeLog-9194 and ChangeLog-9395;
  2960.     remove ChangeLog.fsf.
  2961.  
  2962.     * modules.c (do_module): Don't fall through from 'l' to 'o' case
  2963.     of option processing switch statement.
  2964.  
  2965. Tue Jan 30 06:50:19 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  2966.  
  2967.     * client.c (send_repository): Fix memory leak; free adm_name
  2968.      before returning.
  2969.     * diff.c (diff_file_nodiff): Fix memory leak; free xvers before
  2970.      returning.
  2971.     * rtag.c (rtag_fileproc): Fix memory leak; if branch_mode is set,
  2972.      free rev before returning.
  2973.     * status.c (status_fileproc, tag_list_proc): Fix memory leak; free
  2974.      return value of RCS_whatbranch.
  2975.     * tag.c (tag_fileproc): Fix memory leak; free vers before
  2976.      returning.
  2977.     (val_fileproc): Fix memory leak; free return value of RCS_gettag.
  2978.     * watch.c (watch_modify_watchers): Fix memory leak; free mynewattr
  2979.     before returning.
  2980.  
  2981. Tue Jan 30 09:43:34 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2982.  
  2983.     * lock.c (readers_exist): If stat gave an error, print an error
  2984.     message saying it was from stat, rather than from "reading
  2985.     directory".  Skip the message completely if it was an
  2986.     existence_error.
  2987.  
  2988.     * sanity.sh (branches): New tests (branches off of branches, etc.).
  2989.  
  2990. Tue Jan 30 11:55:34 MET 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  2991.  
  2992.     * main.c (main): Add change to run getopt_long twice again.
  2993.  
  2994. Mon Jan 29 15:59:31 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  2995.  
  2996.     gcc -Wall lint:
  2997.     * client.c: Include edit.h
  2998.  
  2999. Sun Jan 28 09:45:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3000.  
  3001.     * edit.c, edit.h (mark_up_to_date): New function, to remove file
  3002.     in CVS/Base.
  3003.     * client.c (update_entries): Call it if file is up to date.
  3004.     * checkin.c (Checkin): Call it in non-server (local) case.
  3005.     * sanity.sh: New test 182.5, tests for above-fixed bug.
  3006.  
  3007. Sun Jan 28 01:07:22 1996  Jim Kingdon  (kingdon@beezley)
  3008.  
  3009.     * client.c (change_mode): Separate out CHMOD_BROKEN code to parse
  3010.     mode_string, rather than going through a mode_t.  Cleaner than
  3011.     the previous CHMOD_BROKEN code (which also had a typo of && not &).
  3012.  
  3013. Sat Jan 27 23:29:46 1996  Jim Kingdon  (kingdon@beezley)
  3014.  
  3015.     * edit.c (edit_fileproc): Check for EACCESS as well as EEXIST.
  3016.  
  3017. Sat Jan 27 16:26:30 1996  Karl Fogel  (kfogel@floss.cyclic.com)
  3018.  
  3019.         * client.c (notified_a_file): use rename_file() instead of
  3020.         rename() (but temporarily set `noexec' to 0 so it runs
  3021.         unconditionally).
  3022.         (change_mode): deal with CHMOD_BROKEN.        
  3023.  
  3024. Fri Jan 26 00:14:00 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3025.  
  3026.         * server.c: renamed `dirname' to `dir_name', to avoid conflicts
  3027.         with system headers.
  3028.  
  3029.         * client.c: renamed `dirname' and `last_dirname' to `dir_name' and
  3030.         last_dir_name' (see above).  Not strictly necessary, but
  3031.         consistency is nice -- as long as you do it all the time.
  3032.  
  3033. Thu Jan 25 00:41:59 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3034.  
  3035.         * options.h.in (AUTH_SERVER_SUPPORT, AUTH_CLIENT_SUPPORT): change
  3036.         comment now that no longer under construction.
  3037.  
  3038. Wed Jan 24 15:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3039.  
  3040.     * Version 1.7.1.
  3041.  
  3042.     * Version 1.7.
  3043.  
  3044. Sat Jan 20 00:05:08 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3045.  
  3046.     * Version 1.6.87.
  3047.  
  3048. Mon Jan 15 18:14:55 1996  Gary Oberbrunner  <garyo@avs.com>
  3049.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  3050.  
  3051.     * tag.c (val_direntproc):  New function to ignore
  3052.       nonexistent dirs when recursing to check tag validity.
  3053.       (tag_check_valid): Pass it to start_recursion.
  3054.     * sanity.sh (death): New tests 65a0-65a6 cause test 74 to test for
  3055.     above-fixed bug.
  3056.  
  3057. Mon Jan 15 12:55:37 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3058.  
  3059.     * main.c: Revert change to run getopt_long twice.  This can go in
  3060.     after 1.7.
  3061.  
  3062. Mon Jan 15 13:03:28 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  3063.  
  3064.     * filesubr.c (deep_remove_dir): added test of EEXIST for nonempty
  3065.       directory (Posix states that both ENOTEMPTY (BSD) and EEXIST
  3066.       (SYSV) are valid)
  3067.  
  3068.     * main.c (main): run getopt_long twice to allow command-line
  3069.       suppression of reading the cvsrc file
  3070.  
  3071. Fri Jan 12 10:02:43 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3072.  
  3073.     * Version 1.6.86.
  3074.  
  3075. Thu Jan 11 23:28:05 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
  3076.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  3077.  
  3078.     * fileattr.h (fileattr_startdir): Add comment about REPOS == NULL.
  3079.     * fileattr.c (fileattr_read, fileattr_write): Assert that
  3080.     fileattr_stored_repos != NULL.
  3081.     (fileattr_free): If fileattr_stored_repos is NULL, don't free it.
  3082.  
  3083. Thu Jan 11 18:03:21 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3084.  
  3085.         * scramble.c (descramble): deal with DIAGNOSTIC better.
  3086.  
  3087. Thu Jan 11 12:04:42 1996  Norbert Kiesel  <nk@col.sw-ley.de>
  3088.  
  3089.     * main.c: remove CVS_NOADMIN.
  3090.  
  3091.     * options.h.in: remove CVS_NOADMIN
  3092.  
  3093. Thu Jan 11 10:28:44 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3094.  
  3095.         * scramble.c (descramble): make sure the string returned is safe
  3096.         to free().
  3097.  
  3098. Wed Jan 10 01:11:23 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3099.  
  3100.     * server.c (serve_notify): Cast return value from malloc.
  3101.  
  3102.     * edit.c (notify_do): Use struct assignment, not struct
  3103.     initialization (which SunOS4 /bin/cc doesn't have).
  3104.  
  3105. Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3106.  
  3107.     * Version 1.6.85.
  3108.  
  3109.     We use version numbers instead of patchlevels.  But there was some
  3110.     confusing patchlevel stuff lying around.  Nuke it:
  3111.     * Makefile.in (HEADERS): Remove patchlevel.h
  3112.     * patchlevel.h: Removed.
  3113.     * main.c: Don't include patchlevel.h.
  3114.     (main): Don't print patch level.
  3115.  
  3116.     * server.c (check_repository_password): Check for errors from
  3117.     system calls; reindent function.
  3118.  
  3119. Tue Jan  9 23:15:30 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3120.  
  3121.         * expand_path.c: fix comments (explain expand_path()'s behavior
  3122.         correctly).
  3123.  
  3124. Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3125.  
  3126.     * edit.c (notify_proc): After copying in string following %s,
  3127.     don't clobber it.  Instead set up q to end of string.
  3128.  
  3129.     * watch.c (watch_modify_watchers), edit.c (editor_set): Fix sense
  3130.     of test in trying to decide whether attributes are changed.
  3131.  
  3132.     * cvs.h (CVSROOTADM_USERS): New macro.
  3133.     * edit.c (notify_do): Look up notifyee in CVSROOTADM_USERS if it
  3134.     exists.
  3135.  
  3136. Tue Jan  9 21:39:45 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3137.  
  3138.         * expand_path.c: don't redundantly #include things that cvs.h
  3139.         already #includes (i.e., stdio.h, ctype.h, string[s].h).
  3140.  
  3141. Tue Jan  9 09:41:29 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3142.  
  3143.     * ignore.c (ign_default): Add *.obj.
  3144.  
  3145.     * server.c: Put /* */ around #endif comment.
  3146.  
  3147. Mon Jan  8 20:37:17 1996  Karl Fogel  <kfogel@floss.red-bean.com>
  3148.  
  3149.         * client.c (connect_to_pserver): check return value of recv().
  3150.  
  3151. Mon Jan  8 11:37:57 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3152.  
  3153.     * client.c (connect_to_pserver): Check for error from connect;
  3154.     reindent function.
  3155.  
  3156.     * sanity.sh (4.75): Use dotest, so we get a PASS if test passes.
  3157.  
  3158.     * sanity.sh (dotest): New argument OUTPUT2.
  3159.     (188a): Use it instead of \|.
  3160.  
  3161.     * sanity.sh (import): Avoid using string $ followed by Id followed
  3162.     by $ in sanity.sh source, in case sanity.sh itself is under CVS.
  3163.     I hate keyword expansion.
  3164.  
  3165.     * sanity.sh: If expr cannot handle multiline expressions, fail and
  3166.     tell the user to get one which can.
  3167.  
  3168.     * release.c (release_delete): Remove unused variable retcode.
  3169.  
  3170. Fri Jan  5 13:30:00 1996  Jim Kingdon   <kingdon@peary.cyclic.com>
  3171.  
  3172.     * release.c (release_delete): Call unlink_file_dir rather 
  3173.     than "rm -rf".
  3174.  
  3175. Thu Jan  4 09:58:30 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3176.  
  3177.     * commit.c (find_fileproc): Print "nothing known about foo" and
  3178.     return 1 if the file doesn't exist and isn't in CVS/Entries.
  3179.     (commit): If the recursion over find_fileproc returns an error,
  3180.     print "correct above errors first!" just like local CVS.
  3181.     * sanity.sh (basica): Test for above-fixed bug.
  3182.  
  3183.     * release.c (release): If we are the client, only unedit if the
  3184.     server supports it.
  3185.  
  3186.     * sanity.sh: Remove STARTANCHOR stuff; expr patterns are
  3187.     automatically anchored to the start.  ENDANCHOR remains.
  3188.  
  3189.     * commit.c (commit): Don't start the server until we have
  3190.     determined that there is something to commit.
  3191.  
  3192. Thu Jan  4 09:48:33 1996  Ben Laurie  <ben@gonzo.ben.algroup.co.uk>
  3193.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  3194.  
  3195.     * client.c (start_server): dup the file descriptor before
  3196.     fdopening it.
  3197.  
  3198. Wed Jan  3 18:25:25 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3199.  
  3200.     * sanity.sh: Remove tests 5, 5.5, and 5.75.  All that stuff is
  3201.     tested elsewhere.
  3202.  
  3203.     * ignore.c (ign_default): Change CVS* to CVS CVS.adm.  CVS* is too
  3204.     broad, especially in a case-insensitive filesystem.
  3205.  
  3206.     * Makefile.in (cvsbug): version.c is in srcdir.
  3207.  
  3208. Wed Jan  3 17:30:45 1996  Phi-Long Tran  <ptran@autodesk.com>
  3209.  
  3210.     * modules.c (do_module): Honor error_use_protocol in printing trace.
  3211.     * server.c (server_register): Move check for options NULL to above
  3212.     printing of the trace.
  3213.  
  3214. Wed Jan  3 01:19:53 1996  Mark Immel <immel@centerline.com>
  3215.               and Jim Kingdon  <kingdon@harvey.cyclic.com>
  3216.  
  3217.     * update.c (checkout_file): Do not resurrect file on join if it
  3218.     doesn't contain the revisions we are joining.  Probably not a
  3219.     perfect test, but should be an improvement.
  3220.     * sanity.sh (death): New death-file4-* tests, for bug fixed above.
  3221.  
  3222. Wed Jan  3 01:19:53 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3223.  
  3224.     * add.c, admin.c, checkout.c, client.c, commit.c, diff.c, edit.c,
  3225.     history.c, import.c, log.c, patch.c, release.c, remove.c, rtag.c,
  3226.     status.c, tag.c, update.c, watch.c: In calling send_to_server,
  3227.     pass \012 not \n.  On the Mac \n is CR, not LF, and we want to
  3228.     send LF.  I didn't try to deal with whether files in CVSADM should
  3229.     contain CR or LF--in fact there is some code in client.c which
  3230.     reads \n from CVSADM files and passes it to send_to_server; it
  3231.     needs to be cleaned up one way or the other.
  3232.  
  3233.     * entries.c (Entries_Open): Don't try to close fpin twice.
  3234.  
  3235.     * client.c (update_entries): Fix typo ("strlen (filename + 10)"
  3236.     -> "strlen (filename) + 10").
  3237.  
  3238.     * commit.c (checkaddfile): Remove arbitrary limit.
  3239.  
  3240. Tue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3241.  
  3242.     * commit.c (commit): Only pass files which were modified, added,
  3243.     or removed to send_file_names.  This has as a side effect a
  3244.     semantic change--the up-to-date check is now skipped for other
  3245.     files--but probably a good one, or at least not a bad one.
  3246.     * sanity.sh (basica): New test; tests for bug fixed above.
  3247.     * sanity.sh (187a3): Adjust for new 'cvs commit' output.  Set up
  3248.     DOTSTAR to match arbitrary text (another GNU expr bug/misfeature,
  3249.     sigh).
  3250.  
  3251.     * sanity.sh: Test that the commit in test 43 actually worked.
  3252.     Merge tests basic2 and basic3 and make them independent of basic1.
  3253.     (pass,fail): Don't insert spurious space.
  3254.     (45.5): Fix typo in directory name.
  3255.  
  3256. Tue Jan  2 13:00:00 1996  Jim Kingdon  <kingdon@peary.cyclic.com>
  3257.  
  3258.     Visual C++ lint:
  3259.     * myndbm.c: Prototype write_item.
  3260.  
  3261. Tue Jan  2 11:25:22 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3262.  
  3263.     gcc -Wall lint:
  3264.     * client.c (client_expand_modules): Pass error message not "" to error.
  3265.     * client.c (supported_request), server.c (supported_response):
  3266.     Return a value (gcc -Wall can't know that error doesn't return).
  3267.     * commit.c (copy_ulist): Return a value.
  3268.     * history.c (fill_hrec): Don't make assumptions about whether
  3269.     time_t is "int" or "long" or what.
  3270.     * cvs.h: Declare link_file.
  3271.     * server.c: Include fileattr.h.
  3272.     * server.c (server_notify): Remove unused variable val.
  3273.     * tag.c (val_fileproc): Remove unused variable foundtag.
  3274.  
  3275. Mon Jan  1 09:49:16 1996  Jim Kingdon  <kingdon@harvey.cyclic.com>
  3276.  
  3277.     * Version 1.6.5.
  3278.  
  3279.     * Version 1.6.4.
  3280.  
  3281.     * filesubr.c (link_file): Add comment about link vs. copy semantics.
  3282.  
  3283.     * cvs.h (struct vers_ts): Fix comments.
  3284.     * commit.c (commit): Before we ask for a log message, figure out
  3285.     what is modified and what is not and pass the information to
  3286.     do_editor.
  3287.     (copy_ulist,find_fileproc): New helper functions for above code.
  3288.  
  3289.     * client.c (read_line): When writing to from_server_logfile, write
  3290.     the \n too.
  3291.  
  3292.     * client.c (send_files): No longer call send_file_names.
  3293.     * client.h: Update comment.
  3294.     * add.c, admin.c, commit.c, diff.c, edit.c, log.c, remove.c,
  3295.     status.c, tag.c, update.c, watch.c: Call send_file_names before
  3296.     send_files.
  3297.     * client.c: New variables module_argc, module_argv.
  3298.     (client_expand_modules): Set them, to arguments.
  3299.     (client_send_expansions): Use them instead of modules_vector to
  3300.     send arguments.
  3301.     * sanity.sh (modules): Add test of modules -d flag.
  3302.  
  3303.  
  3304. For older changes see ChangeLog-9395.
  3305.