117721SpeterNote: this log overlaps in time with ChangeLog-9194.  There was a time
217721Speterduring which changes which had been merged into the official CVS
317721Speter(which produced releases such as 1.4A1 and 1.4A2) went into what has
417721Speterbecome ChangeLog-9194, and changes which existed only at Cygnus went
517721Speterinto this file (ChangeLog-9395).  Eventually the Cygnus release became
617721SpeterCyclic CVS (as it was then called), which became CVS 1.5, so probably
717721Speterall the changes in both (what are now) ChangeLog-9194 and
817721SpeterChangeLog-9395 made it into 1.5.
917721Speter
1017721SpeterSun Dec 31 17:33:47 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
1117721Speter
1217721Speter	* import.c (add_rev): Revert portion of 31 Aug 95 change which
1317721Speter	passes -u to ci instead of using a hard link.
1417721Speter	* sanity.sh (import): Add test for above-fixed bug.
1517721Speter
1617721SpeterSun Dec 31 16:40:41 1995  Peter Chubb  <peterc@bookworm.sw.oz.au>
1717721Speter			  and Jim Kingdon  <kingdon@cyclic.com>
1817721Speter
1917721Speter	* admin.c (admin_fileproc): Call freevers_ts before returning.
2017721Speter
2117721SpeterMon Dec 25 12:20:06 1995  Peter Wemm  <peter@haywire.DIALix.COM>
2217721Speter
2317721Speter	* logmsg.c (rcsinfo_proc): initialise line and
2417721Speter	line_chars_allocated so they dont cause malloc problems within
2517721Speter	getline().  This was causing rcsinfo templates to not work.
2617721Speter
2717721SpeterSun Dec 24 01:38:36 1995  Karl Fogel  <kfogel@floss.cyclic.com>
2817721Speter
2917721Speter        * server.c (authenticate_connection): clarify protocol.
3017721Speter
3117721Speter        * login.c (login): deprolixify the password prompt.
3217721Speter
3317721SpeterSat Dec 23 10:46:41 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
3417721Speter
3517721Speter	* myndbm.h, myndbm.c (dbm_store): New function.
3617721Speter	* myndbm.h (DBM): Add modified and filename fields.
3717721Speter	* myndbm.c (dbm_open, dbm_close): Manipulate new fields.  dbm_open
3817721Speter	no longer fails if the file doesn't exist and O_CREAT is set.
3917721Speter	* cvs.h (CVSROOTADM_VALTAGS): Added.
4017721Speter	* tag.c, cvs.h (tag_check_valid): New function.
4117721Speter	* update.c (update), checkout.c (checkout_proc), commit.c (commit),
4217721Speter	diff.c (diff), patch.c (patch_proc), rtag.c (rtag_proc), tag.c (tag):
4317721Speter	Call it.
4417721Speter	* sanity.sh: Test for rejection of invalid tagname.
4517721Speter
4617721SpeterFri Dec 22 18:21:39 1995  Karl Fogel  <kfogel@csxt.cs.oberlin.edu>
4717721Speter
4817721Speter        * client.c (start_server): don't use kerberos if authenticating
4917721Speter        server was specified.
5017721Speter
5117721SpeterFri Dec 22 16:35:57 1995  Karl Fogel  <kfogel@csxt.cs.oberlin.edu>
5217721Speter
5317721Speter        * login.c (login): deal with new scramble methods.
5417721Speter        (get_cvs_password): same.
5517721Speter
5617721Speter        * server.c (check_repository_password): remove arbitrary limit on
5717721Speter        line length.
5817721Speter        (authenticate_connection): use a separate variable for the
5917721Speter        descrambled password, now that we no longer scramble in place.
6017721Speter        Set `error_use_protocol' to 1 and just use error() where used to
6117721Speter        do its job inline.
6217721Speter
6317721Speter        * cvs.h (scramble, descramble): adjust prototype.
6417721Speter
6517721Speter        * scramble.c (scramble, descramble): return char *.
6617721Speter
6717721SpeterFri Dec 22 13:00:00 1995  Jim Kingdon  <kingdon@peary.cyclic.com>
6817721Speter
6917721Speter	* release.c (release): If SERVER_SUPPORT is not defined, still
7017721Speter	set up arg_start_idx.
7117721Speter
7217721Speter	* release.c (release): When calling unedit, set argv[1] to
7317721Speter	NULL (since argc is only 1).
7417721Speter
7517721Speter	* edit.c: Pass dosrcs 0 to all calls to start_recursion.
7617721Speter	None of the fileprocs were using it, so it just slowed things
7717721Speter	down and caused potentially harmful checks for rcs files.
7817721Speter
7917721Speter	* edit.c (send_notifications): In client case, do not readlock.
8017721Speter
8117721SpeterThu Dec 21 16:00:00 1995  Jim Kingdon  <kingdon@peary.cyclic.com>
8217721Speter
8317721Speter	Clean up Visual C++ lint:
8417721Speter	* client.c (read_line): Change input_index and result_size to size_t.
8517721Speter	(update_entries): Remove unused variables buf2, size_left, size_read.
8617721Speter	(handle_mode): Prototype.
8717721Speter	* client.c, client.h (send_to_server, read_from_server): Change
8817721Speter	len to size_t.
8917721Speter	* client.c (send_to_server): Change wrtn to size_t.
9017721Speter	(read_from_server): Change red to size_t.
9117721Speter	* client.c, myndbm.c, edit.c, fileattr.c: Include getline.h.
9217721Speter	* checkin.c, commit.c, update.c: Include fileattr.h.
9317721Speter	* commit.c, update.c: Include edit.h.
9417721Speter	* edit.c (onoff_filesdoneproc): Prototype.
9517721Speter	(ncheck_fileproc,edit_fileproc): Change "return" to "return 0".
9617721Speter	(notify_do): Cast a signed value to unsigned before comparing
9717721Speter	with unsigned value.
9817721Speter
9917721SpeterThu Dec 21 15:24:37 1995  Karl Fogel  <kfogel@occs.cs.oberlin.edu>
10017721Speter
10117721Speter        * client.c: don't include socket headers twice just because
10217721Speter        both HAVE_KERBEROS and AUTH_CLIENT_SUPPORT are set.
10317721Speter        (start_kerberos_server): if fail to connect to kerberos, print out
10417721Speter        a more specific error message, mainly so pcl-cvs can know what
10517721Speter        happened and not panic.
10617721Speter        (start_server): don't assume sprintf() returns len
10717721Speter        written (only some systems provide this); instead, have
10817721Speter        send_to_server() calculate the length itself.
10917721Speter        (send_modified): same.
11017721Speter        (send_fileproc): same.
11117721Speter        (send_file_names): same.
11217721Speter
11317721SpeterWed Dec 20 14:00:28 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
11417721Speter
11517721Speter	* update.c (ignore_files): Move from here...
11617721Speter	* ignore.c (ignore_files): ...to here.  No longer static.  Take
11717721Speter	new argument PROC.
11817721Speter	* cvs.h (ignore_files): Declare.
11917721Speter	* client.c (send_filesdoneproc): Split off from
12017721Speter	update_filesdone_proc.  Pass new function send_ignproc to
12117721Speter	ignore_files (to ask server about ignored file before printing
12217721Speter	"?").
12317721Speter	* server.c: Rename outbuf from but_to_net and take it from
12417721Speter	do_cvs_command to a global.  Move initialization accordingly.
12517721Speter	(serve_questionable): New function.
12617721Speter	(requests): Add it.
12717721Speter	* update.c (update_filesdone_proc): Remove client stuff.  Pass new
12817721Speter	function update_ignproc to ignore_files.
12917721Speter	* cvs.h (joining, do_update): Move declarations from here...
13017721Speter	* update.h: ...to here.
13117721Speter	* cvs.h: Include update.h.
13217721Speter	* update.c, client.c: Don't include update.h
13317721Speter	* ignore.c, cvs.h: New variable ign_inhibit_server, set on -I !.
13417721Speter	* import.c (import): Pass -I ! to server if specified.
13517721Speter	(import_descend): If server, ignore CVS directories even if -I !.
13617721Speter	* update.c (update), import.c (import): Only call ign_setup before
13717721Speter	argument processing; don't call it again afterwards in client case.
13817721Speter	* sanity.sh (ignore): Test above-fixed bugs and other ignore behaviors.
13917721Speter	(dotest): New function.
14017721Speter	Move modules checkin from modules test to start, so that other
14117721Speter	tests can use mkmodules without a warning message.
14217721Speter
14317721SpeterWed Dec 20 13:06:17 1995  Karl Fogel  <kfogel@floss.cyclic.com>
14417721Speter
14517721Speter        * client.c (send_to_server): don't check string's length twice.
14617721Speter
14717721SpeterWed Dec 20 02:05:19 1995  Karl Fogel  <kfogel@floss.cyclic.com>
14817721Speter
14917721Speter        * login.c (login): took out debugging printf's.
15017721Speter        (login): Removed unused variable `p'.
15117721Speter
15217721SpeterWed Dec 20 00:27:36 1995  Karl Fogel  <kfogel@floss.cyclic.com>
15317721Speter
15417721Speter        * login.c (login): prefix scrambled password with 'A', so we know
15517721Speter        which version of scrambling was used.  This may be useful in the
15617721Speter        future.
15717721Speter        (get_cvs_password): skip past the leading 'A'.
15817721Speter        Scramble $CVS_PASSWORD before returning it.
15917721Speter
16017721Speter        * scramble.c: made this work.
16117721Speter
16217721SpeterTue Dec 19 17:45:11 1995  Karl Fogel  <kfogel@floss.cyclic.com>
16317721Speter
16417721Speter        * login.c (cvs_password): new static var, init to NULL.
16517721Speter        (login): scramble() the password before using it.
16617721Speter        Verify the password with the server.
16717721Speter        Check CVSroot more carefully to insure that it is
16817721Speter        "fully-qualified".
16917721Speter        (get_cvs_password): if cvs_password is not NULL, just return it.
17017721Speter        Never prompt -- just tell user why failed, then exit.
17117721Speter        Try CVS_PASSWORD environment variable first.
17217721Speter        (construct_cvspass_filename): try CVS_PASSFILE environment
17317721Speter        variable first.
17417721Speter
17517721Speter        * client.h (connect_to_pserver): update prototype.
17617721Speter
17717721Speter        * client.c (cvsroot_parsed): new static var.
17817721Speter        (parse_cvsroot): set `cvsroot_parsed' to 1 when done.
17917721Speter        (connect_to_pserver): return int.
18017721Speter        Take `verify_only' arg.  If it is non-zero, perform password
18117721Speter        verification with the server and then shut down the connection and
18217721Speter        return.
18317721Speter        Call parse_cvsroot() before doing anything.
18417721Speter        
18517721Speter        * server.c (authenticate_connection): deal with verification
18617721Speter        requests as well as authorization requests.
18717721Speter        descramble() the password before hashing it.
18817721Speter
18917721Speter        * cvs.h: prototype scramble() and descramble().
19017721Speter
19117721Speter        * Makefile.in: build scramble.o.
19217721Speter
19317721Speter        * scramble.c: new file, provides trivial encoding but NOT real
19417721Speter        encryption.
19517721Speter
19617721SpeterMon Dec 18 20:57:58 1995  Karl Fogel  <kfogel@floss.cyclic.com>
19717721Speter
19817721Speter        * login.c (login): don't insert extra newlines.  They were
19917721Speter        harmless, but confusing.
20017721Speter
20117721SpeterMon Dec 18 15:32:32 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
20217721Speter
20317721Speter	* hash.c, hash.h (findnode_fn): New function.
20417721Speter	* hash.c (hashp): Tweak hash function so that findnode_fn works.
20517721Speter	* update.c (ignore_files): Call findnode_fn, not findnode.
20617721Speter
20717721SpeterMon Dec 18 09:34:56 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
20817721Speter
20917721Speter	* myndbm.c: Remove arbitrary limit.
21017721Speter
21117721Speter	* client.c: Fix comment--Windows 95 requires NO_SOCKET_TO_FD, not
21217721Speter	Windows NT.
21317721Speter
21417721SpeterMon Dec 18 01:06:20 1995  Karl Fogel  <kfogel@floss.cyclic.com>
21517721Speter
21617721Speter        * client.c (server_sock): replaces `server_socket'.
21717721Speter        (start_kerberos_server): added FIXME comment about how
21817721Speter        NO_SOCKET_TO_FD is not dealt with in the kerberos case.
21917721Speter        (connect_to_pserver): deal with NO_SOCKET_TO_FD case.
22017721Speter        (read_line): deal with NO_SOCKET_TO_FD case.
22117721Speter        (read_from_server): deal with NO_SOCKET_TO_FD case.
22217721Speter        (send_to_server): deal with NO_SOCKET_TO_FD case.
22317721Speter        (get_responses_and_close): deal with NO_SOCKET_TO_FD case.
22417721Speter
22517721Speter        * client.c (send_to_server): error check logging.
22617721Speter        (start_server): error check opening of logfiles.
22717721Speter        (read_from_server): error check logging.
22817721Speter        (read_line): use fwrite() to log, & error_check it.
22917721Speter        Don't log if using socket style, because read_from_server()
23017721Speter        already logged for us.
23117721Speter        
23217721SpeterMon Dec 18 00:52:26 1995  Karl Fogel  <kfogel@floss.cyclic.com>
23317721Speter
23417721Speter        * client.c (use_socket_style): new static var, init to 0.
23517721Speter        (server_socket): new static var.
23617721Speter        (connect_to_pserver): don't deal with logging here.
23717721Speter        Caller changed.
23817721Speter        (start_kerberos_server): don't deal with logging here either.
23917721Speter        Caller changed.
24017721Speter
24117721SpeterMon Dec 18 00:40:46 1995  Karl Fogel  <kfogel@floss.cyclic.com>
24217721Speter
24317721Speter        * client.c (send_modified): don't error-check `to_server';
24417721Speter        send_to_server() does that now.
24517721Speter
24617721SpeterMon Dec 18 00:19:16 1995  Karl Fogel  <kfogel@floss.cyclic.com>
24717721Speter
24817721Speter        * login.c (get_cvs_password): Init `linebuf' to NULL.
24917721Speter        free() `linebuf' and reset it for each new line.
25017721Speter        (login): same as above.
25117721Speter
25217721Speter        * client.c: Removed all the varargs prototyping gunk.
25317721Speter        (to_server, from_server): make these static.
25417721Speter        (from_server_logfile, to_server_logfile): new vars.
25517721Speter        (start_server): init above two new vars to NULL.
25617721Speter        (send_to_server): return void.
25717721Speter        Correct bug in which amount to be written would be too high if the
25817721Speter        loop ever ran more than once.
25917721Speter        Log to `to_server_logfile' if it's non-NULL.
26017721Speter        (read_from_server): new func, does raw reading from server.
26117721Speter        Logs to `from_server_logfile' if it's non-NULL.
26217721Speter        (update_entries): just use read_from_server() instead of looping
26317721Speter        to fread() directly from `from_server'.
26417721Speter        (read_line): Log to `from_server_logfile' if it's non-NULL.
26517721Speter
26617721Speter        * client.h: send_to_server() returns void now.
26717721Speter        (read_from_server): prototype.
26817721Speter
26917721SpeterSun Dec 17 19:38:03 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
27017721Speter
27117721Speter	* checkout.c (checkout_proc), client.c, lock.c (readers_exist),
27217721Speter	login.c, modules.c (cat_module, do_module): Remove arbitrary limits.
27317721Speter
27417721Speter	* client.c (send_to_server): Fix typo (NULL -> '\0').
27517721Speter	(get_responses_and_close): Set server_started to 0 instead of
27617721Speter	setting to_server and from_server to NULL.
27717721Speter	* client.c: Make to_server and from_server static.
27817721Speter
27917721SpeterSun Dec 17 17:59:04 1995  Karl Fogel  <kfogel@floss.cyclic.com>
28017721Speter
28117721Speter        * client.h (to_server, from_server): don't declare these anymore.
28217721Speter        They are now entirely private to client.c (and in fact will go
28317721Speter        away soon there too).
28417721Speter        
28517721SpeterSun Dec 17 15:40:58 1995  Karl Fogel  <kfogel@floss.cyclic.com>
28617721Speter
28717721Speter        * client.h: update prototype of send_to_server().
28817721Speter
28917721Speter        * client.c, watch.c, update.c, tag.c, status.c, rtag.c, remove.c,
29017721Speter        release.c, patch.c, log.c, import.c, history.c, edit.c, diff.c,
29117721Speter        commit.c, client.c, checkout.c, admin.c, add.c:
29217721Speter        Convert all send_to_server() calls that used formatting to send
29317721Speter        pre-formatted strings instead.  And don't error check
29417721Speter        send_to_server(), because it does its own error checking now.
29517721Speter        
29617721Speter        * client.c (send_to_server): don't use vasprintf(), just fwrite a
29717721Speter        certain number of bytes to the server.  And do error checking
29817721Speter        here, so our callers don't have to.
29917721Speter        (send_arg): use send_to_server() instead of putc()'ing
30017721Speter        directly to `to_server'.
30117721Speter        
30217721SpeterSun Dec 17 14:37:52 1995  Karl Fogel  <kfogel@floss.cyclic.com>
30317721Speter
30417721Speter        * options.h.in (AUTH_CLIENT_SUPPORT, AUTH_SERVER_SUPPORT):
30517721Speter        Define to 1 but leave commented out, instead of #undef'ing them.
30617721Speter        This treats them like everything else in this file.
30717721Speter
30817721Speter        * client.c: define server_started, init to 0.
30917721Speter        (start_server): set server_started to 1.
31017721Speter
31117721Speter        * client.h: declare `server_started', extern.
31217721Speter        AUTH_CLIENT_SUPPORT moved here from cvs.h.
31317721Speter        
31417721Speter        * cvs.h: moved AUTH_CLIENT_SUPPORT stuff to client.h.
31517721Speter
31617721Speter        * edit.c (notify_check): use new var server_started.
31717721Speter
31817721SpeterSun Dec 17 00:44:17 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
31917721Speter
32017721Speter	* client.c (get_responses_and_close): Really stop ignoring ECHILD
32117721Speter	errors.  The Nov 30 1995 change claimed to do this, but the code
32217721Speter	was not actually changed.
32317721Speter
32417721Speter	* update.c (ignore_files): Revert H.J. Lu change; it was wrong for
32517721Speter	directories and sometimes looked at sb.st_mode when it wasn't set.
32617721Speter	* import.c (import_descend): Revert H.J. Lu change; it was wrong
32717721Speter	for directories and the extra lstat call was an unnecessary
32817721Speter	performance hit.
32917721Speter	* sanity.sh (import): Add test for the second of these two bugs.
33017721Speter
33117721SpeterSat Dec 16 17:26:08 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
33217721Speter
33317721Speter	* client.c (send_to_server): Remove arbitrary limit.  Also remove
33417721Speter	!HAVE_VPRINTF code; all relevant systems have vprintf these days.
33517721Speter
33617721SpeterSat Dec 16 21:35:31 1995  Karl Fogel  <kfogel@floss.cyclic.com>
33717721Speter
33817721Speter        * checkout.c (checkout): use send_to_server() now.
33917721Speter
34017721SpeterSat Dec 16 21:18:16 1995  H.J. Lu (hjl@gnu.ai.mit.edu)
34117721Speter                          (applied by kfogel@cyclic.com)
34217721Speter        
34317721Speter	* import.c (import_descend): We ignore an entry if it is
34417721Speter		1. not a file, nor a link, nor a directory, or
34517721Speter		2. a file and on the ignore list.
34617721Speter
34717721Speter	* update.c (ignore_files): We ignore any thing which is
34817721Speter		1. not a file, or
34917721Speter		2. it is a file on the ignore list.
35017721Speter
35117721SpeterSat Dec 16 00:14:19 1995  Karl Fogel  <kfogel@floss.cyclic.com>
35217721Speter
35317721Speter        * client.c (send_to_server): corrected comment.
35417721Speter
35517721Speter        * client.h: prototype new func send_to_server().
35617721Speter
35717721Speter        * add.c, admin.c, client.c, commit.c, diff.c, edit.c, history.c,
35817721Speter        import.c, log.c, patch.c, release.c, remove.c, rtag.c, status.c,
35917721Speter        tag.c, update.c, watch.c: 
36017721Speter        Use send_to_server() instead of writing directly to to_server.
36117721Speter
36217721Speter        * client.c: conditionally include the right stuff for variable arg
36317721Speter        lists.
36417721Speter        (send_to_server): new func.
36517721Speter        
36617721SpeterFri Dec 15 23:10:22 1995  Karl Fogel  <kfogel@floss.cyclic.com>
36717721Speter
36817721Speter        * error.c: expanded comments.
36917721Speter
37017721Speter        * client.c (connect_to_pserver): verbosify errors.
37117721Speter        (connect_to_pserver): use send() and recv(), not write() and
37217721Speter        read().  Sockets are not file descriptors on all systems.
37317721Speter
37417721SpeterFri Dec 15 22:36:05 1995  Karl Fogel  <kfogel@floss.cyclic.com>
37517721Speter
37617721Speter        * client.c (connect_to_pserver): oops, removed old debugging
37717721Speter        printf.
37817721Speter
37917721SpeterFri Dec 15 18:21:16 1995  Karl Fogel  (kfogel@floss.cyclic.com)
38017721Speter
38117721Speter        * client.c (auth_server_port_number): don't call htons();
38217721Speter        init_sockaddr() does that for us.
38317721Speter        (init_sockaddr): zero the sockadder_in struct before doing
38417721Speter        anything with it.  IBM TCP/IP docs recommend this, and it can't
38517721Speter        hurt.
38617721Speter
38717721SpeterFri Dec 15 15:21:53 1995  Karl Fogel  <kfogel@floss.cyclic.com>
38817721Speter
38917721Speter        * client.c (connect_to_pserver): new var `port_number', initialize
39017721Speter        with new func auth_server_port_number() and pass to
39117721Speter        init_sockaddr().
39217721Speter        (auth_server_port_number): new func.  Right now it just returns
39317721Speter        `htons (CVS_AUTH_PORT)'.  We'll probably add the ability to
39417721Speter        specify the port at run time soon, anyway, so having this function
39517721Speter        will make that easier.
39617721Speter
39717721SpeterWed Dec  6 18:08:40 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
39817721Speter
39917721Speter	* cvs.h: Add CVSREP.
40017721Speter	* find_names.c (find_dirs): Skip CVSREP too.
40117721Speter	* fileattr.h, fileattr.c: New files, to manipulate file attributes.
40217721Speter	* hash.c (nodetypestring), hash.h (enum ntype): Add FILEATTR.
40317721Speter	* hash.c, hash.h (list_isempty): New function.
40417721Speter	* recurse.c (do_recursion): Call fileattr_startdir before
40517721Speter	processing files in a directory and fileattr_write and
40617721Speter	fileattr_free (after files, before recursing).
40717721Speter	* watch.c, watch.h: New files, to handle notification features.
40817721Speter	* edit.c, edit.h: New file, to handle new read-only checkout features.
40917721Speter	* client.c, server.c: Add "Mode" request, to change the mode of a file
41017721Speter	when it is checked in.
41117721Speter	* main.c (cmds): Add "watch", "edit", "unedit", "watchers", "editors".
41217721Speter	* main.c: Split command help from usg into new variable cmd_usage,
41317721Speter	which.
41417721Speter	(main): Add --help-commands option to print out cmd_usage.
41517721Speter	* cvs.h: Declare watch, edit, unedit, watchers, editors.
41617721Speter	* client.c, client.h: Add client_watch, client_edit, client_unedit,
41717721Speter	client_watchers, client_editors.
41817721Speter	* client.c, server.c: Add notification stuff.
41917721Speter	* update.c (checkout_file, patch_file), checkin.c (Checkin): Check
42017721Speter	_watched attribute when deciding read-only or read-write.
42117721Speter	* commit.c (checkaddfile): Call fileattr_newfile to set attributes
42217721Speter	on newly created files.
42317721Speter	* release.c (release): 
42417721Speter	* cvs.h: Add CVSADM_NOTIFY and CVSADM_NOTIFYBAK.
42517721Speter	* recurse.c (do_recursion): Call notify_check.
42617721Speter	* commit.c (commit_fileproc): Call notify_do after committing file.
42717721Speter	* client.c (get_responses_and_close): Set to_server and from_server
42817721Speter	to NULL so that it is possible to tell whether we are speaking to
42917721Speter	the server.
43017721Speter	* cvs.h: Add CVSROOTADM_NOTIFY.
43117721Speter	* mkmodules.c (main): Add CVSROOTADM_NOTIFY to filelist.
43217721Speter	* Makefile.in (SOURCES,OBJECTS,HEADERS): Add new files mentioned above.
43317721Speter	* lock.c, cvs.h (lock_tree_for_write, lock_tree_cleanup): New
43417721Speter	functions, taken from old commit.c writelock code.  As part of
43517721Speter	this, fsortcmp and lock_filesdoneproc go from commit.c to lock.c.
43617721Speter	So does locklist but it gets renamed to lock_tree_list.
43717721Speter	* commit.c: Use lock_tree_*.
43817721Speter
43917721SpeterFri Dec 15 10:37:00 1995  J.T. Conklin  <jtc@slave.cygnus.com>
44017721Speter
44117721Speter	* tag.c (tag_usage): Added -r and -D flags to usage string.
44217721Speter	(tag): Detect when user specifies both -r and -D arguments.
44317721Speter	Pass -r and -D arguments to server.
44417721Speter	
44517721SpeterThu Dec 14 11:56:13 1995  Karl Fogel  <kfogel@floss.cyclic.com>
44617721Speter
44717721Speter        * client.c (start_rsh_server): use RSH_NEEDS_BINARY_FLAG to
44817721Speter        conditionalize "-b" option to "rsh".
44917721Speter
45017721Speter        * run.c (filter_stream_through_program): document return value and
45117721Speter        error behavior.
45217721Speter
45317721Speter        * client.c (filter_through_gunzip): pass the supposedly
45417721Speter        superfluous "-d" option to gunzip, to avoid stimulating what seems
45517721Speter        to be an argument-passing bug in spawn() under OS/2 with IBM
45617721Speter        C/C++.  Yucko.
45717721Speter
45817721SpeterWed Dec 13 20:08:37 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
45917721Speter
46017721Speter	* options.h.in (RCSBIN_DFLT): Recommend specifying -b in
46117721Speter	inetd.conf for pserver.  That is a pretty good solution.
46217721Speter
46317721SpeterWed Dec 13 18:29:59 1995  Preston L. Bannister <pbannister@ca.mdis.com>
46417721Speter                          and Karl Fogel       <kfogel@floss.cyclic.com>
46517721Speter
46617721Speter        * client.c (send_modified): make sure that vers and vers->options
46717721Speter        are non-NULL before strcmp()'ing them with "-kb".
46817721Speter        Initialize `bin' near where it is used, not at beginning of
46917721Speter        function.
47017721Speter        (update_entries): make sure `options' is non-NULL before
47117721Speter        strcmp()'ing with "-kb".
47217721Speter        Initialize `bin' near where it is used, not at beginning of
47317721Speter        function.
47417721Speter
47517721SpeterTue Dec 12 18:56:38 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
47617721Speter
47717721Speter        * options.h.in (RCSBIN_DFLT): document the probable need for this
47817721Speter        to be set in the authenticating server.
47917721Speter
48017721SpeterTue Dec 12 11:56:43 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
48117721Speter
48217721Speter	* server.c (expand_proc): If mfile is non-NULL, return it too as
48317721Speter	part of the expansion.
48417721Speter	* sanity.sh (modules): Add tests for above-fixed bug.
48517721Speter
48617721SpeterMon Dec 11 21:39:07 1995  Karl Fogel  <kfogel@floss.cyclic.com>
48717721Speter
48817721Speter        * dog.c (flea_bath): Take `suds' arg.
48917721Speter        All collars changed.
49017721Speter
49117721SpeterMon Dec 11 15:58:47 1995  Karl Fogel  <kfogel@floss.cyclic.com>
49217721Speter
49317721Speter        * login.c (login): if client password file doesn't exist, create
49417721Speter        it, duh.
49517721Speter
49617721Speter        * main.c (main): die if CVSroot has access-method but no
49717721Speter        username.
49817721Speter
49917721Speter        * root.c: added some comments.
50017721Speter
50117721Speter        * main.c: removed all code pertaining to the "-a" option.  We
50217721Speter        specify access-method in CVSroot now.
50317721Speter
50417721Speter        * client.c (parse_cvsroot): new var, `access_method'.  If CVSroot
50517721Speter        is prepended with an access method (i.e.,
50617721Speter        ":pserver:user@host:/path"), then handle it.
50717721Speter
50817721Speter        * login.c (login): use || when checking if CVSroot is "fully
50917721Speter        qualified".
51017721Speter        Prepend ":pserver:" before writing to ~/.cvspass.
51117721Speter        (get_cvs_password): Take no parameters; we'll just use CVSroot to
51217721Speter        get the password.
51317721Speter
51417721SpeterMon Dec 11 12:43:35 1995  adamg  <adamg@microsoft.com>
51517721Speter
51617721Speter	* error.c, client.c, remove.c, main.c: Add explicit casts for some
51717721Speter 	function pointers to remove warnings under MS VC.
51817721Speter	* main.c (main): remove use of NEED_CALL_SOCKINIT in favor of the
51917721Speter	more generic INITIALIZE_SOCKET_SUBSYSTEM.  Note that the code assumes
52017721Speter	that if INITIALIZE_SOCKET_SUBSYSTEM() returns, socket subsystem
52117721Speter	initialization has been successful.
52217721Speter
52317721SpeterSat Dec  9 22:01:41 1995  Dan O'Connor  <doconnor@tii.com>
52417721Speter
52517721Speter        * commit.c (check_fileproc): pass RUN_REALLY flag to run_exec,
52617721Speter        because it's okay to examine the file with noexec set.
52717721Speter
52817721SpeterSat Dec  9 20:28:01 1995  Karl Fogel  <kfogel@floss.cyclic.com>
52917721Speter
53017721Speter        * client.c (update_entries): new var, `bin, init to 0.
53117721Speter        Use it in determining whether to convert the file.
53217721Speter        (send_modified): same as above.
53317721Speter
53417721SpeterFri Dec  8 17:47:39 1995  Karl Fogel  <kfogel@floss.cyclic.com>
53517721Speter
53617721Speter        * server.c (downcase_string): removed.
53717721Speter        (check_repository_password): don't deal with case-insensitivity
53817721Speter        anymore.
53917721Speter
54017721Speter        * options.h.in (CVS_PASSWORDS_CASE_SENSITIVE): deleted this.  No
54117721Speter        need for it anymore.
54217721Speter
54317721SpeterThu Dec  7 21:08:39 1995  Karl Fogel  <kfogel@floss.cyclic.com>
54417721Speter
54517721Speter        * server.c (check_repository_password): when checking for false
54617721Speter        prefix-matches, look for ':', not '@'.  Duh.
54717721Speter
54817721SpeterThu Dec  7 18:44:51 1995  Karl Fogel  <kfogel@floss.cyclic.com>
54917721Speter
55017721Speter        * options.h.in (CVS_PASSWORDS_CASE_SENSITIVE): replaces
55117721Speter        CVS_PASSWORDS_CASE_INSENSITIVE; passwords are now insensitive by
55217721Speter        default.  Expanded explanatory comment.
55317721Speter
55417721Speter        * login.c (get_cvs_password): Use memset(), not bzero().  I
55517721Speter        botched this change earlier.
55617721Speter
55717721Speter        * server.c (check_repository_password): no need to check
55817721Speter        xmalloc()'s return value.
55917721Speter        (check_repository_password): check for false prefix-matches (for
56017721Speter        example, username is "theo" and linebuf contains user
56117721Speter        "theocracy").
56217721Speter
56317721SpeterThu Dec  7 14:49:16 1995  Jim Meyering  (meyering@comco.com)
56417721Speter
56517721Speter	* filesubr.c (isaccessible): Rename from isaccessable.
56617721Speter	Update callers.
56717721Speter	* cvs.h: Update prototype.
56817721Speter	* main.c (main): Update callers.
56917721Speter	* server.c (main): Update callers.
57017721Speter
57117721SpeterThu Dec  7 12:50:20 1995  Adam Glass <glass@NetBSD.ORG>
57217721Speter
57317721Speter        * cvs.h: "isaccessible" is the correct spelling.
57417721Speter        Also add "const" to second arg to make prototype match
57517721Speter        declaration.
57617721Speter
57717721SpeterThu Dec  7 11:06:51 1995  Karl Fogel  <kfogel@floss.cyclic.com>
57817721Speter
57917721Speter        * client.c, login.c: memset() instead of bzero().
58017721Speter
58117721SpeterThu Dec  7 00:08:53 1995  Karl Fogel  <kfogel@floss.cyclic.com>
58217721Speter
58317721Speter        * server.c (authenticate_connection): document server's side of
58417721Speter        the Authentication Protocol too.
58517721Speter
58617721Speter        * client.c (connect_to_pserver): when printing out "unrecognized
58717721Speter        response", also print out the offending response.
58817721Speter
58917721Speter        * server.c (check_password): take `repository' arg too now.
59017721Speter        Call check_repository_password() before checking /etc/passwd.
59117721Speter        (check_repository_password): new func.
59217721Speter
59317721Speter        * options.h.in (CVS_PASSWORDS_CASE_INSENSITIVE): new define, unset
59417721Speter        by default.
59517721Speter
59617721SpeterWed Dec  6 18:51:16 1995  Karl Fogel  <kfogel@floss.cyclic.com>
59717721Speter
59817721Speter        * server.c (check_password): If user has a null password, then
59917721Speter        return 1 if arg is also null.
60017721Speter        Reverse sense of return value.  Caller changed.
60117721Speter
60217721SpeterWed Dec  6 14:42:57 1995  Karl Fogel  <kfogel@floss.cyclic.com>
60317721Speter
60417721Speter        * server.c (check_password): new func.
60517721Speter        (authenticate_connection): call above new func.
60617721Speter
60717721Speter        * login.c (login): use construct_cvspass_filename().
60817721Speter        If CVSroot is not "fully-qualified", then insist the user qualify
60917721Speter        it before going on.
61017721Speter        (get_cvs_password): fleshed out.  Now reads from ~/.cvspass, or
61117721Speter        prompts if no appropriate password found.
61217721Speter        (construct_cvspass_filename): new func.
61317721Speter
61417721Speter        * server.c (authenticate_connection): send ACK or NACK to client.
61517721Speter
61617721Speter        * client.c (connect_to_pserver): check for ACK vs NACK response
61717721Speter        from server after sending authorization request.
61817721Speter
61917721Speter        * login.c (get_cvs_password): new func.
62017721Speter
62117721Speter        * client.c (connect_to_pserver): use new func get_cvs_password().
62217721Speter        Prototype it at top of file.  Hmmm.
62317721Speter
62417721SpeterWed Dec  6 13:29:22 1995  Karl Fogel  <kfogel@floss.cyclic.com>
62517721Speter
62617721Speter        * server.c: same as below (AUTH_SERVER_SUPPORT).
62717721Speter
62817721Speter        * main.c: same as below (AUTH_SERVER_SUPPORT where appropriate).
62917721Speter
63017721Speter        * login.c: same same as below.
63117721Speter
63217721Speter        * cvs.h: same as below.
63317721Speter
63417721Speter        * client.c: use AUTH_CLIENT_SUPPORT, not CVS_LOGIN.
63517721Speter
63617721Speter        * options.h.in (AUTH_CLIENT_SUPPORT, AUTH_SERVER_SUPPORT): these
63717721Speter        replace CVS_LOGIN.
63817721Speter
63917721SpeterWed Dec  6 00:04:58 1995  Karl Fogel  <kfogel@floss.cyclic.com>
64017721Speter
64117721Speter        * server.c (authenticate_connection): expanded comment.
64217721Speter
64317721SpeterTue Dec  5 23:37:39 1995  Karl Fogel  <kfogel@floss.cyclic.com>
64417721Speter
64517721Speter        * client.c (connect_to_pserver): read password from prompt for
64617721Speter        now.
64717721Speter
64817721Speter        * server.c (authenticate_connection): if the password passes
64917721Speter        muster, then don't abort.
65017721Speter
65117721SpeterTue Dec  5 22:46:37 1995  Karl Fogel  <kfogel@floss.cyclic.com>
65217721Speter
65317721Speter        * subr.c (strip_trailing_newlines): new func.
65417721Speter
65517721Speter        * client.c (connect_to_pserver): took out print statements.
65617721Speter
65717721Speter        * server.c (authenticate_connection): removed print statments.
65817721Speter        Use new func strip_trailing_newlines() to purify `repository',
65917721Speter        `username', and `password'.
66017721Speter        Run a primitive password check, just for testing.
66117721Speter
66217721Speter        * client.c (connect_to_pserver): use CVS_AUTH_PORT.
66317721Speter        Take tofdp, fromfdp, and log args.  Caller changed.
66417721Speter        (get_responses_and_close): either kerberos and CVS_LOGIN might
66517721Speter        have one fd for both directions, so adjust #ifdef accordingly.
66617721Speter
66717721Speter        * cvs.h (CVS_AUTH_PORT): new define, default to 2401.
66817721Speter        Prototype strip_trailing_newlines().
66917721Speter
67017721SpeterTue Dec  5 16:53:35 1995  Karl Fogel  <kfogel@floss.cyclic.com>
67117721Speter
67217721Speter        * server.c (authenticate_connection): new func.
67317721Speter
67417721Speter        * client.c (init_sockaddr): func moved here from login.c.
67517721Speter        (connect_to_pserver): same as above.  Take no args, now.
67617721Speter        Include <sys/socket.h>, <netinet/in.h>, <netdb.h>, if CVS_LOGIN.
67717721Speter
67817721Speter        * cvs.h: Declare use_authenticating_server, as extern int.
67917721Speter        Declare connect_to_pserver().
68017721Speter
68117721Speter        * main.c (main): call authenticate_connection().  Removed testing
68217721Speter        code.
68317721Speter        Add 'a' to the short-option string in the getopt() call.
68417721Speter
68517721Speter        * login.c (connect_to_pserver): moved to client.c.
68617721Speter
68717721SpeterTue Dec  5 16:01:42 1995  Peter Chubb <peterc@bookworm.sw.oz.au>
68817721Speter                          (patch applied by Karl Fogel <kfogel@cyclic.com>)
68917721Speter
69017721Speter        * update.c (join_file): if vers->vn_user is "0", file has been
69117721Speter        removed on the current branch, so print an error and return.
69217721Speter
69317721SpeterMon Dec  4 14:27:42 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
69417721Speter
69517721Speter	* Version 1.6.3.
69617721Speter
69717721SpeterMon Dec  4 16:28:25 1995  Norbert Kiesel  <nk@col.sw-ley.de>
69817721Speter
69917721Speter	* release.c (release): add return (0) as last line
70017721Speter
70117721Speter	* cvs.h: declare program_path
70217721Speter
70317721Speter	* main.c define program_path
70417721Speter	  (main): set program_path
70517721Speter
70617721Speter	* release.c (release): use program_path for update_cmd
70717721Speter
70817721SpeterMon Dec  4 11:22:42 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
70917721Speter
71017721Speter	* Version 1.6.2.
71117721Speter
71217721SpeterSun Dec  3 20:02:29 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
71317721Speter
71417721Speter	* rcs.h (struct rcsnode), rcs.c (freercsnode): Add expand field.
71517721Speter	* rcs.h (RCSEXPAND): New #define.
71617721Speter	* rcs.c (RCS_reparsercsfile): Record keyword expansion in expand
71717721Speter	field of struct rcsnode.
71817721Speter	* update.c (checkout_file): Set keyword expansion in Entries file
71917721Speter	from rcs file if there is nowhere else to set it from.
72017721Speter	* client.c (send_modified, update_entries) [LINES_CRLF_TERMINATED]:
72117721Speter	If -kb is in effect, don't convert.
72217721Speter
72317721Speter	* update.c (update_file_proc), commit.c (check_fileproc),
72417721Speter	rcscmds.c (RCS_merge): Direct stdout to DEVNULL rather than
72517721Speter	passing -s option to grep.  This avoids trouble with respect to
72617721Speter	finding a grep which support -s and whether we should use the (GNU
72717721Speter	grep) -q option if it exists.
72817721Speter	* options.h.in: Change "@ggrep_path@" to "grep".
72917721Speter
73017721SpeterFri Dec  1 11:53:19 1995  Norbert Kiesel  <nk@col.sw-ley.de>
73117721Speter
73217721Speter	* rcs.c (RCS_gettag): new parameter return_both force return both
73317721Speter	  tags: the symbolic and the numeric one.
73417721Speter	  (RCS_getversion): new parameter return_both is forwarded to
73517721Speter	  RCS_gettag.
73617721Speter
73717721Speter	* rtag.c, tag.c, commit.c, patch.c, update.c: pass 0 as additional
73817721Speter	  last parameter to RCS_getversion and RCS_gettag
73917721Speter
74017721Speter	* rcs.h (RCS_gettag): new parameter return_both.
74117721Speter	  (RCS_getversion): new parameter return_both.
74217721Speter
74317721Speter	* cvs.h (struct vers_ts): add vn_tag slot for symbolic tag name
74417721Speter
74517721Speter	* vers_ts.c (Version_TS): call RCS_getversion with 1 for
74617721Speter	  return_both and split output into vn_rcs and vn_tag
74717721Speter	  (freevers_ts): free vn_tag
74817721Speter
74917721Speter	* update.c (checkout_file): use vn_tag instead of vn_rcs when
75017721Speter	  calling 'rcs co' to allow rcs expansion of :$Name :
75117721Speter
75217721SpeterThu Nov 30 20:44:30 1995  Karl Fogel  <kfogel@floss.cyclic.com>
75317721Speter
75417721Speter        * client.c (get_responses_and_close): undo previous change
75517721Speter        regarding waitpid().  The problem has been solved by modifying
75617721Speter        os2/waitpid.c instead of its callers.
75717721Speter
75817721SpeterThu Nov 30 16:37:10 1995  Karl Fogel  <kfogel@floss.cyclic.com>
75917721Speter
76017721Speter        * client.c: All these changes are for OS/2, which will no longer have
76117721Speter        a separate client.c:
76217721Speter        (start_kerberos_server): new func, contains code that
76317721Speter        used to be in start_server().
76417721Speter        (start_server): moved kerberos code to above function, reorganized
76517721Speter        the rest.  Added authentication clause.
76617721Speter        (call_in_directory): test errno against EACCESS, if EACCESS is
76717721Speter        defined (this is for OS/2's oddball mkdir).
76817721Speter        (change_mode): don't set execute permission on anything if
76917721Speter        EXECUTE_PERMISSION_LOSES is defined.
77017721Speter        (get_responses_and_close): if START_RSH_WITH_POPEN_RW, then use
77117721Speter        pclose() instead of fclose().
77217721Speter        If waitpid errors with ECHILD, don't die.  This is okay.
77317721Speter        (start_rsh_server): alternate definition if
77417721Speter        START_RSH_WITH_POPEN_RW.
77517721Speter
77617721Speter        * main.c: [all these changes conditional on CVS_LOGIN: ]
77717721Speter        Don't prototype connect_to_pserver, don't enter it in cmds[]
77817721Speter        (actually, it was never in there, I don't know why my previous
77917721Speter        change said it was).
78017721Speter        (use_authenticating_server): new global var.
78117721Speter        (main): if "-a", then set above new var to TRUE.
78217721Speter        (usg): document "-a" option.
78317721Speter
78417721SpeterWed Nov 29 12:55:10 1995  Karl Fogel  <kfogel@floss.cyclic.com>
78517721Speter
78617721Speter        * main.c: Prototype connect_to_pserver(), and enter it in cmds[].
78717721Speter        (main): test some extremely primitive authentication.
78817721Speter
78917721Speter        * login.c: Include <sys/socket.h>
79017721Speter        (connect_to_pserver): new func.
79117721Speter        (init_sockaddr): new func.
79217721Speter
79317721SpeterMon Nov 20 14:07:41 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
79417721Speter
79517721Speter	* Makefile.in (TAGFILES): Separate out from DISTFILES, for C code.
79617721Speter	(TAGS,tags): Use TAGFILES not DISTFILES.
79717721Speter
79817721SpeterSun Nov 19 11:22:43 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
79917721Speter
80017721Speter	* recurse.c (do_recursion): Don't call server_pause_check if there
80117721Speter	are writelocks around.  Revise comment to reflect fact we are no
80217721Speter	longer relying on a writelock'd operations being "unable" to
80317721Speter	generate enough data to pause.
80417721Speter
80517721SpeterSun Nov 19 10:04:50 1995  Peter Wemm  <peter@haywire.DIALix.COM>
80617721Speter
80717721Speter	* server.c, server.h, options.h.in: Implement hooks for doing
80817721Speter	simple flow control on the server to prevent VM exhaustion on a
80917721Speter	slow network with a fast server.
81017721Speter	* recurse.c: Call the flow control check at a convenient location
81117721Speter	while no locks are active.  This is a convenience tradeoff against
81217721Speter	accurate flow control - if you have a large directory it will all
81317721Speter	be queued up, bypassing the flow control check until the next
81417721Speter	directory is processed.
81517721Speter
81617721SpeterSat Nov 18 16:22:06 1995  Karl Fogel  <kfogel@floss.cyclic.com>
81717721Speter
81817721Speter        * client.c, update.c, vers_ts.c, server.c, rcs.c, lock.c,
81917721Speter        ignore.c, entries.c, diff.c, commit.c, checkin.c:
82017721Speter        Use new macro `existence_error', instead of comparing errno to
82117721Speter        ENOENT directly.
82217721Speter
82317721SpeterFri Nov 17 14:56:12 1995  Karl Fogel  <kfogel@floss.cyclic.com>
82417721Speter
82517721Speter        * client.c (start_server): removed alternate version of this func,
82617721Speter        since os2/client.c will now be used under OS/2.
82717721Speter
82817721SpeterThu Nov 16 22:57:12 1995  Karl Fogel  <kfogel@floss.cyclic.com>
82917721Speter
83017721Speter        * client.c (start_server): ifdef HAVE_POPEN_RW, use a different
83117721Speter        version of start_server().  This is maybe not the cleanest cut to
83217721Speter        make, but it's better than mucking around with yet more #ifdefs in
83317721Speter        the middle of the old start_server() function.  Once things are
83417721Speter        up, I may reposition this code.
83517721Speter
83617721SpeterWed Nov 15 15:33:37 1995  Karl Fogel  <kfogel@floss.cyclic.com>
83717721Speter
83817721Speter        * main.c (main): ifdef NEED_CALL_SOCKINIT, then call SockInit().
83917721Speter        Only OS/2 needs this initialization.
84017721Speter
84117721SpeterTue Nov 14 18:54:01 1995  Greg A. Woods  <woods@most.weird.com>
84217721Speter
84317721Speter	* patch.c:
84417721Speter	- fix orientation of test for result of getline() call
84517721Speter	- use fputs() not printf() when just copying file out
84617721Speter
84717721Speter	* cvsbug.sh:
84817721Speter	- add space after #!
84917721Speter	- new rcs id
85017721Speter	- allow version to be edited by Makefile.
85117721Speter
85217721Speter	* Makefile.in:
85317721Speter	- make Makefile a dependent of all (this might not be perfect, but
85417721Speter	it at least gives you a chance to catch up on the second
85517721Speter	go-around).
85617721Speter	- filter cvsbug.sh in a manner similar to cvsinit.sh to get the
85717721Speter	version number set from version.c
85817721Speter
85917721SpeterTue Nov 14 13:28:17 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
86017721Speter
86117721Speter	* sanity.sh: Call old log file check.plog, not check.olog.
86217721Speter
86317721Speter	* sanity.sh: Convert remaining tests from old-style ('***' on fail
86417721Speter	and nothing on pass), to new-style (FAIL on fail and PASS on pass).
86517721Speter
86617721Speter	* sanity.sh: Fix ability to run only some of the tests (always run
86717721Speter	tests 1-4.75 to set up repository, document better how it works).
86817721Speter
86917721Speter	* sanity.sh: Change "completed successfully" to "completed" in
87017721Speter	message--many tests, but not all, exit if they fail.
87117721Speter
87217721SpeterTue Nov 14 15:10:00 1995  Greg A. Woods  <woods@most.weird.com>
87317721Speter
87417721Speter	* sanity.sh: test 63 doesn't work and probably can't
87517721Speter
87617721SpeterTue Nov 14 12:22:00 1995  Greg A. Woods  <woods@most.weird.com>
87717721Speter
87817721Speter	* sanity.sh: many minor tweaks:
87917721Speter	- make the optional arguments almost work
88017721Speter	- use a function 'directory_cmp' instead of 'diff -r'
88117721Speter	- fix up a few more tests that weren't working....
88217721Speter
88317721SpeterMon Nov 13 07:33:55 1995  Karl Fogel  <kfogel@floss.cyclic.com>
88417721Speter
88517721Speter        * cvs.h: ifdef USE_OWN_POPEN, #include "popen.h".  Only OS/2 has
88617721Speter        its own popen()/pclose() right now.
88717721Speter
88817721SpeterMon Nov 13 04:06:10 1995  Karl Fogel  <kfogel@floss.cyclic.com>
88917721Speter
89017721Speter        * cvs.h: conform to 80 column standard (yes, I'm a pedant).
89117721Speter
89217721SpeterSat Nov 11 13:45:13 1995  Karl Fogel  <kfogel@floss.cyclic.com>
89317721Speter
89417721Speter        * client.c (process_prune_candidates): use unlink_file_dir() to
89517721Speter        remove the directory, instead of invoking "rm" via run_exec().
89617721Speter
89717721SpeterFri Nov 10 14:38:56 1995  Karl Fogel  <kfogel@floss.cyclic.com>
89817721Speter
89917721Speter        * main.c (main): removed "#define KF_GETOPT_LONG 1", since that
90017721Speter        change is no longer in testing.
90117721Speter
90217721SpeterThu Nov  9 20:32:12 1995  Karl Fogel  <kfogel@floss.cyclic.com>
90317721Speter
90417721Speter        * release.c (release): Use Popen(), not popen().
90517721Speter
90617721SpeterWed Nov  8 10:20:20 1995  Jim Meyering  (meyering@comco.com)
90717721Speter
90817721Speter	* entries.c (ParseTag): Remove dcl of unused local.
90917721Speter
91017721Speter	* patch.c: Include getline.h.
91117721Speter
91217721SpeterWed Nov  8 11:57:31 1995  Norbert Kiesel  <nk@col.sw-ley.de>
91317721Speter
91417721Speter	* options.h.in: add configuration option STEXID_SUPPORT (default
91517721Speter	  is off i.e. old semantics)
91617721Speter
91717721Speter	* filesubr.c (isaccessable): new function.  Checks access-rights
91817721Speter	for files like access(), but is getxid-safe.  Falls back to
91917721Speter	access() if SETXID_SUPPORT is not enabled.
92017721Speter	(isfile): replace stat() by isaccessable(file, F_OK)
92117721Speter	(isreadable): replace access() by isaccessable()
92217721Speter	(iswritable): ditto
92317721Speter	(make_directory): rename local variable buf to sb
92417721Speter
92517721Speter	* cvs.h: add prototype for new function isaccessable.
92617721Speter
92717721Speter	* server.c (serve_root): replace access() by isaccessable()
92817721Speter
92917721Speter	* cvsrc.c (read_cvsrc): replace access() by isreadable()
93017721Speter
93117721Speter	* main.c (main): replace access() by isaccessable()
93217721Speter
93317721SpeterWed Nov  8 10:22:41 1995  Greg A. Woods  <woods@most.weird.com>
93417721Speter
93517721Speter	* entries.c (fgetentent): change definition to static to match the
93617721Speter	declaration at the top of the file
93717721Speter
93817721SpeterTue Nov  7 16:59:25 1995  J.T. Conklin  <jtc@lestat.cygnus.com>
93917721Speter
94017721Speter	* rcs.c (RCS_getbranch, RCS_getdate, RCS_getrevtime, RCS_gettag,
94117721Speter 	RCS_getversion, RCS_head): Use assert() instead of attempting to
94217721Speter	"do the right thing" with a bogus RCSNode argument.
94317721Speter
94417721SpeterMon Nov  6 14:24:34 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
94517721Speter
94617721Speter	* vers_ts.c: Remove ctime define.  It is just asking for trouble.
94717721Speter
94817721SpeterMon Nov  6 11:58:26 1995  Karl Fogel  <kfogel@floss.cyclic.com>
94917721Speter
95017721Speter        * vers_ts.c: ifdef ctime, undef it before redefining it.  It is a
95117721Speter        macro on some systems.
95217721Speter
95317721Speter        * lock.c: don't prototype ctime() here.  (See note below about
95417721Speter        fgetentent() in entries.c.)
95517721Speter
95617721SpeterSun Nov  5 16:06:01 1995  Karl Fogel  <kfogel@floss.cyclic.com>
95717721Speter
95817721Speter        * entries.c (fgetentent): don't prototype ctime here; we include
95917721Speter        cvs.h, which includes system.h, which includes <time.h>
96017721Speter        unconditionally (either as <time.h> or <sys/time.h>).  Anyway, IBM
96117721Speter        C/C++ chokes on mid-function, or even mid-file, prototypes.  Sigh.
96217721Speter
96317721SpeterThu Nov  2 21:51:04 1995  Dan Wilder  <dan@gasboy.com>
96417721Speter
96517721Speter	* rtag.c (rtag): Fix typo ("-T" -> "-F").
96617721Speter
96717721SpeterTue Oct 31 19:09:11 1995  Dan Wilder <dan@gasboy.com>
96817721Speter
96917721Speter        * diff.c (diff_dirproc): just return R_SKIP_ALL if dir not exist.
97017721Speter        (diff_file_nodiff): don't complain if file doesn't exist, just
97117721Speter        ignore.
97217721Speter
97317721SpeterTue Oct 31 09:25:10 1995  Norbert Kiesel  <nk@col.sw-ley.de>
97417721Speter
97517721Speter	* sanity.sh: Use absolute pathname for mkmodules.
97617721Speter
97717721SpeterSat Oct 28 01:01:41 1995  Jim Meyering  (meyering@comco.com)
97817721Speter
97917721Speter	* entries.c (ParseTag): Use getline instead of fgets.
98017721Speter
98117721SpeterFri Oct 27 13:44:20 1995  Karl Fogel  <kfogel@floss.cyclic.com>
98217721Speter
98317721Speter        * cvs.h: do nothing about alloca ifdef ALLOCA_IN_STDLIB.  I am
98417721Speter        rather suspicious of this solution, and will not be surprised to
98517721Speter        find out that there's a Right Way to handle this situation ("this
98617721Speter        situation" being that OS/2 simply declares alloca in <stdlib.h>).
98717721Speter        Suggestions are welcome; see src/cvs.h and lib/system.h to see why
98817721Speter        I was getting a conflict in the first place.
98917721Speter
99017721SpeterWed Oct 25 16:03:20 1995  J.T. Conklin  <jtc@slave.cygnus.com>
99117721Speter
99217721Speter	* cvs.h (struct entnode): Add user field.
99317721Speter	* entries.c (fputentent): New function, write entries line.
99417721Speter	(write_ent_proc): Call fputentent to write entries line.
99517721Speter	(Entnode_Create): New function, construct new Entnode.
99617721Speter	(Entnode_Destroy): New function, destruct old Entnode.
99717721Speter	(AddEntryNode): Changed to take an Entnode argument instead of
99817721Speter	separate user, version, timestamp, etc. arguments.
99917721Speter	(fgetentent): Changed to return Entnode.
100017721Speter	(struct entent, free_entent): Removed.
100117721Speter
100217721SpeterWed Oct 25 12:44:32 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
100317721Speter
100417721Speter	* admin.c (admin): Don't rely on ANSI C string concatenation;
100517721Speter	SunOS 4.1.3 /bin/cc doesn't support it.
100617721Speter
100717721SpeterTue Oct 24 22:34:22 1995  Anthony J. Lill  <ajlill@ajlc.waterloo.on.ca>
100817721Speter
100917721Speter	* import.c (expand_at_signs): Check errno as well as return value
101017721Speter	from putc.  Some systems bogusly return EOF when successfully
101117721Speter	writing 0xff.
101217721Speter
101317721SpeterTue Oct 24 14:32:45 1995  Norbert Kiesel  <nk@col.sw-ley.de>
101417721Speter
101517721Speter	* admin.c (admin): use getcaller() instead of getpwuid
101617721Speter
101717721Speter	* subr.c (getcaller): prefer getlogin() to $USER and $LOGNAME
101817721Speter	  (especially useful for NT where getuid always returns 0)
101917721Speter
102017721SpeterTue Oct 24 06:22:08 1995  Jim Meyering  (meyering@comco.com)
102117721Speter
102217721Speter	* cvsrc.c (read_cvsrc): Use getline instead of fgets.
102317721Speter	* patch.c (patch_fileproc): Use getline instead of fgets.
102417721Speter
102517721Speter	* entries.c (fgetentent): Use getline instead of fgets.
102617721Speter	Use xmalloc to allocate space for each returned entry.
102717721Speter	Since LINE is no longer static, save it in struct entent.
102817721Speter	(struct entent): New member, line.
102917721Speter	(free_entent): New function.
103017721Speter	(Entries_Open): Call it after each call to fgetentent.
103117721Speter
103217721SpeterTue Oct 24 11:13:15 1995  Norbert Kiesel  <nk@col.sw-ley.de>
103317721Speter
103417721Speter	* cvs.h: Declare valloc again, but this time with the right
103517721Speter	  signature (also changed in libs/valloc.c)
103617721Speter
103717721SpeterMon Oct 23 12:17:03 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
103817721Speter
103917721Speter	* logmsg.c (do_editor): Check for errors from stdio calls.
104017721Speter
104117721SpeterMon Oct 23 12:37:06 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
104217721Speter
104317721Speter	* cvs.h: Don't declare valloc.  Some systems (e.g. linux) declare
104417721Speter	it in stdlib.h in a conflicting way.
104517721Speter
104617721SpeterMon Oct 23 08:41:25 1995  Jim Meyering  (meyering@comco.com)
104717721Speter
104817721Speter	* commit.c (commit_filesdoneproc): Use getline instead of fgets.
104917721Speter
105017721Speter	* logmsg.c (do_editor): Use getline instead of fgets.
105117721Speter	(rcsinfo_proc): Likewise.
105217721Speter
105317721Speter	* logmsg.c (do_editor): Lose if fclose of temp file output
105417721Speter	stream fails.
105517721Speter
105617721SpeterMon Oct 23 11:59:41 1995  Norbert Kiesel  <nk@col.sw-ley.de>
105717721Speter
105817721Speter	* cvs.h: add valloc declaration
105917721Speter
106017721Speter	* server.h: add server_cleanup prototype
106117721Speter
106217721Speter	* server.c: remove server_cleanup prototype
106317721Speter
106417721Speter	* mkmodules.c (server_cleanup): fix parameter type
106517721Speter
106617721Speter	* server.c: encapsulate wait_sig in #ifdef sun (it's only used in
106717721Speter	  code which is also encapsulated in #ifdef sun)
106817721Speter
106917721Speter	* rcscmds.c (RCS_deltag, RCS_lock): add definition of noerr
107017721Speter	  parameter
107117721Speter
107217721Speter	* error.c: include cvs.h instead of config.h, add USE(rcsid)
107317721Speter
107417721Speter	* error.c (error): fix parameter type
107517721Speter
107617721Speter	* update.c (join_file): encapsulate recent changes from garyo
107717721Speter	  within #ifdef SERVER_SUPPORT
107817721Speter
107917721SpeterSun Oct 22 13:47:53 1995  J.T. Conklin  <jtc@slave.cygnus.com>
108017721Speter
108117721Speter	* client.c (update_entries): Fix memory leak; free mode_string and
108217721Speter	file_timestamp.
108317721Speter	(send_fileproc): Fix memory leak; call freevers_ts before exiting.
108417721Speter
108517721Speter	* module.c (do_module): Partially fix memory leak; added
108617721Speter	variable so that the address of memory allocated by line2argv
108717721Speter	is retained, but comment out the call to free_names.  Freeing
108817721Speter 	the vector at that point loses because some of the elements
108917721Speter	may be used later in the function.
109017721Speter	(cat_module): fix memory leak.
109117721Speter
109217721Speter	* recurse.c (start_recursion): Fix memory leak; free return
109317721Speter	value of Name_Repository after it has been used.
109417721Speter
109517721SpeterSat Oct 21 23:24:26 1995  Jim Meyering  (meyering@comco.com)
109617721Speter
109717721Speter	* client.c (send_modified) [LINES_CRLF_TERMINATED]: Comment text
109817721Speter	after #endif.
109917721Speter
110017721SpeterFri Oct 20 14:41:49 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
110117721Speter
110217721Speter	* sanity.sh: Add test 87a, to test for bug fixed by garyo in
110317721Speter	change below.
110417721Speter
110517721SpeterFri Oct 20 10:59:58 1995  Gary Oberbrunner  <garyo@darkstar.avs.com>
110617721Speter
110717721Speter	* update.c (join_file): send file back to client even if no
110817721Speter	conflicts were detected, by calling Register().
110917721Speter
111017721SpeterFri Oct 20 10:46:45 1995  Norbert Kiesel  <nk@col.sw-ley.de>
111117721Speter
111217721Speter	* lock.c: Add prototype for Check_Owner
111317721Speter
111417721SpeterThu Oct 19 16:38:14 1995  Jim Meyering  (meyering@comco.com)
111517721Speter
111617721Speter	* lock.c (Check_Owner): Declare function `static int'.
111717721Speter
111817721SpeterThu Oct 19 14:58:40 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
111917721Speter
112017721Speter	* expand_path.c (expand_variable): Fix typo ('*'->'(').
112117721Speter
112217721SpeterThu Oct 19 14:58:40 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
112317721Speter
112417721Speter	* commit.c (commit_filesdoneproc): Check for errors from fopen,
112517721Speter	fgets, and fclose.
112617721Speter
112717721Speter	* rcscmds.c (RCS_merge): Remove comment about rcsmerge -E.
112817721Speter	Hacking CVS was never a very good solution; the situation is fixed
112917721Speter	in RCS 5.7, and is documented in ../INSTALL.
113017721Speter
113117721SpeterThu Oct 19 15:06:15 1995  Jim Meyering  (meyering@comco.com)
113217721Speter
113317721Speter	* filesubr.c (xchmod): Parenthesize arithmetic in operand of |
113417721Speter	to placate gcc -Wall.
113517721Speter
113617721Speter	* expand_path.c (expand_path): Parenthesize assignments used as
113717721Speter	truth values to placate gcc -Wall.
113817721Speter
113917721Speter	* commit.c (checkaddfile): Remove dcls of unused variables.
114017721Speter	* lock.c (unlock): Remove dcl of unused variable.
114117721Speter
114217721SpeterThu Oct 19 14:58:40 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
114317721Speter
114417721Speter	* root.c (Create_Root): If noexec, don't create CVS/Root.
114517721Speter
114617721SpeterWed Oct 18 11:19:40 1995  J.T. Conklin  <jtc@slave.cygnus.com>
114717721Speter
114817721Speter	* lock.c (unlock): Change order of comparison so that Check_Owner
114917721Speter	is called only if other conditions are true.  This performance
115017721Speter	enhancement was broken when the AFS support was added.
115117721Speter
115217721SpeterWed Oct 18 12:51:33 1995  Karl Fogel  <kfogel@floss.cyclic.com>
115317721Speter
115417721Speter        * main.c (main): check if argv[0] is "pserver" with else-if, not
115517721Speter        if, since we've already asked if it's "kserver".
115617721Speter
115717721SpeterTue Oct 17 18:09:23 1995  Warren Jones <wjones@tc.fluke.com>
115817721Speter			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
115917721Speter
116017721Speter	* sanity.sh: Deal with supplying a relative cvs filename, or
116117721Speter	with a cvs filename which doesn't have basename "cvs".
116217721Speter
116317721SpeterMon Oct 16 15:58:31 1995  Vince Demarco <vdemarco@bou.shl.com>
116417721Speter
116517721Speter	* parseinfo.c (Parse_Info): if the Keyword isn't ALL the current
116617721Speter	version doesn't use the expanded variable, It should.
116717721Speter
116817721SpeterMon Oct 16 15:58:31 1995  Gary Oberbrunner <garyo@avs.com>
116917721Speter			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
117017721Speter
117117721Speter	* server.c (server_register): Don't pass NULL to printf if tag,
117217721Speter	date, or conflict is NULL.
117317721Speter
117417721SpeterThu Oct 12 12:13:42 1995  Karl Fogel  <kfogel@floss.cyclic.com>
117517721Speter
117617721Speter        * main.c (main): begin to handle "pserver"; support not complete
117717721Speter        yet, however.
117817721Speter
117917721SpeterThu Oct 12 02:52:13 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
118017721Speter
118117721Speter	* expand_path.c: Don't #include <pwd.h>, since cvs.h already does,
118217721Speter	and not all systems' <pwd.h>s are protected from multiple inclusion.
118317721Speter	* login.c: Likewise.
118417721Speter
118517721SpeterWed Oct 11 15:23:24 1995  Karl Fogel  <kfogel@floss.cyclic.com>
118617721Speter
118717721Speter        * login.c (login): handle everything correctly now.
118817721Speter
118917721SpeterWed Oct 11 12:02:48 1995  Norbert Kiesel  <nk@col.sw-ley.de>
119017721Speter
119117721Speter	* rcs.c (RCS_gettag): support RCS keyword Name
119217721Speter
119317721SpeterTue Oct 10 19:11:16 1995  Karl Fogel  <kfogel@floss.cyclic.com>
119417721Speter
119517721Speter        * options.h.in (CVS_LOGIN): discuss, but leave commented out.
119617721Speter        The "cvs login" command is still under construction; however, the
119717721Speter        repository was changing so fast that instead of creating a branch
119817721Speter        and dealing with the attendant hair, I'm just developing on the
119917721Speter        trunk, making sure that everything is surrounded by "#ifdef
120017721Speter        CVS_LOGIN ... #endif" so I don't get in anyone's way.
120117721Speter
120217721Speter        * login.c: include cvs.h before checking CVS_LOGIN, so it has a
120317721Speter        chance to get defined before we ask if it's defined.
120417721Speter        (login): oops, use semi not comma in `for' loop init.
120517721Speter
120617721Speter        * Makefile.in (SOURCES, OBJECTS): include login.c, login.o.
120717721Speter
120817721Speter        * main.c: added protoype for login().
120917721Speter        Added "login" entry to cmds[].
121017721Speter        (usg): added line about "login".
121117721Speter
121217721Speter        * login.c: new file.
121317721Speter
121417721SpeterTue Oct 10 18:33:47 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
121517721Speter
121617721Speter        * Makefile.in (COMMON_OBJECTS): added error.o.
121717721Speter        (OBJECTS): took error.o out; it's in COMMON_OBJECTS now.
121817721Speter
121917721SpeterTue Oct 10 12:02:37 1995  Thorsten Lockert  <tholo@sigmasoft.com>
122017721Speter
122117721Speter	* cvsbug.sh: Cater to lame versions of sh (4.4BSD ash) by using
122217721Speter	${foo-bar} instead of `if....`.
122317721Speter
122417721SpeterTue Oct 10 12:02:37 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
122517721Speter
122617721Speter	* remove.c (remove_fileproc): If noexec, don't remove file.  Check
122717721Speter	for error when removing file.
122817721Speter
122917721SpeterSun Oct  8 12:32:15 1995  Peter Wemm  <peter@haywire.DIALix.COM>
123017721Speter
123117721Speter	* run.c: detect/use POSIX/BSD style reliable signals for critical
123217721Speter	section masking etc.  Helps prevent stray locks on interruption.
123317721Speter
123417721SpeterSat Oct  7 23:26:54 1995  Norbert Kiesel  <nk@col.sw-ley.de>
123517721Speter
123617721Speter	* admin.c (admin): If group CVS_ADMIN_GROUP exists, allow only
123717721Speter	users in that group to use "cvs admin".
123817721Speter	* options.h.in: Default CVS_ADMIN_GROUP to "cvsadmin".
123917721Speter
124017721SpeterSat Oct  7 23:05:24 1995  Norbert Kiesel  <nk@col.sw-ley.de>
124117721Speter
124217721Speter	* add.c, checkout.c, commit.c, cvs.h, filesubr.c, import.c,
124317721Speter	lock.c, main.c, modules.c, options.h.in: New variable cvsumask
124417721Speter	which is used to set mode of files in repository (regardless of
124517721Speter	umask in effect when cvs is run).
124617721Speter
124717721SpeterSat Oct  7 22:40:17 1995  Stephen Bailey  <sjbailey@sand.npl.washington.edu>
124817721Speter
124917721Speter	* lock.c: Include AFSCVS ifdefs to deal with AFS's lack of
125017721Speter	correspondance between userid's from stat and from geteuid.
125117721Speter
125217721SpeterSat Oct  7 22:28:49 1995  Scott Carson  <sdc@TracerTech.COM>
125317721Speter
125417721Speter	* add.c (add): Pass -ko, not -k -ko, to set keyword expansion options.
125517721Speter
125617721Speter	* admin.c (admin): Don't skip first argument when sending to server.
125717721Speter
125817721SpeterFri Oct  6 21:45:03 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
125917721Speter
126017721Speter	* version.c: Version 1.6.1.
126117721Speter
126217721SpeterFri Oct  6 21:31:28 1995  Jeff Johnson  <jbj@brewster.jbj.org>
126317721Speter
126417721Speter	* cvs.h, admin.c, client.c, commit.c, log.c, modules.c,
126517721Speter	parseinfo.c, patch.c, recurse.c, rtag.c, status.c, tag.c:
126617721Speter	Prototype when dealing in pointers to functions.
126717721Speter
126817721SpeterFri Oct  6 21:07:22 1995  Mark H. Wilkinson  <mhw@minster.york.ac.uk>
126917721Speter
127017721Speter	* cvsrc.c (read_cvsrc): fix look up of command names in cvsrc file
127117721Speter	to use full name from command table rather than possible nickname
127217721Speter	in argv. Fixes errors with things like `cvs di' when cvsrc has
127317721Speter	`diff -u5' in it.
127417721Speter
127517721SpeterThu Aug  3 01:03:52 1995  Vince DeMarco  <vdemarco@bou.shl.com>
127617721Speter
127717721Speter	* parseinfo.c (Parse_Info): Add code to call expand_path function
127817721Speter	instead of using built in code.
127917721Speter
128017721Speter	* wrapper.c (wrap_add): Add code to call expand_path function to
128117721Speter	expand all built in variables.
128217721Speter
128317721Speter	* expand_path.c (New file): expand things that look like
128417721Speter	environmental variables (only expand local CVS environmental
128517721Speter	variables) and user names like ~/.
128617721Speter	* cvs.h: Declare expand_path.
128717721Speter
128817721Speter	* Makefile.in (SOURCES, OBJECTS): Added expand_path.c,
128917721Speter	expand_path.o.
129017721Speter
129117721SpeterFri Oct  6 14:03:09 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
129217721Speter
129317721Speter	* ignore.c (ign_setup): Don't try to look for a file in CVSroot if
129417721Speter	client.  (The recent tightening of the error checking detects this).
129517721Speter
129617721Speter	* commit.c (checkaddfile): Don't try to pass options if it is "".
129717721Speter
129817721SpeterThu Oct  5 18:04:46 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
129917721Speter
130017721Speter        * sanity.sh: unset CVSREAD, since it causes the script to bomb.
130117721Speter
130217721SpeterThu Oct  5 18:29:17 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
130317721Speter
130417721Speter	* remove.c, add.c, commit.c, cvs.h: Remove CVSEXT_OPT stuff; it
130517721Speter	has been broken for ages and the options are already stored in the
130617721Speter	Entries file.
130717721Speter
130817721SpeterThu Oct  5 18:20:13 1995  Norbert Kiesel  <nk@col.sw-ley.de>
130917721Speter
131017721Speter	* commit.c (checkaddfile): New argument options; pass it to RCS.
131117721Speter	(commit_fileproc): Pass it.
131217721Speter
131317721SpeterTue Oct  3 09:26:00 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
131417721Speter
131517721Speter        * version.c: upped to 1.6.
131617721Speter
131717721SpeterMon Oct  2 18:10:35 1995  Larry Jones  <larry.jones@sdrc.com>
131817721Speter
131917721Speter	* server.c: if HAVE_SYS_BSDTYPES_H, include <sys/bsdtypes.h>.
132017721Speter
132117721SpeterMon Oct  2 10:34:53 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
132217721Speter
132317721Speter        * version.c: Upped version to 1.5.95.
132417721Speter
132517721SpeterMon Oct  2 15:16:47 1995  Norbert Kiesel  <nk@col.sw-ley.de>
132617721Speter
132717721Speter	* tag.c, rtag.c: pass "mov" instead of "add" if tag will be moved
132817721Speter	(i.e. invoked with -F)
132917721Speter
133017721SpeterSun Oct  1 18:36:34 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
133117721Speter
133217721Speter        * version.c: upped to 1.5.94.
133317721Speter
133417721Speter        * server.c: reverted earlier ISC change (of Sep. 28).
133517721Speter
133617721Speter        * version.c: upped to 1.5.93, for Peter Wemm's new SVR4 patch.
133717721Speter
133817721SpeterSun Oct  1 14:51:59 1995  Harlan Stenn  <Harlan.Stenn@pfcs.com>
133917721Speter
134017721Speter        * main.c: don't #include <pwd.h>; cvs.h does that already.
134117721Speter
134217721SpeterFri Sep 29 15:21:35 1995  Karl Fogel  <kfogel@floss.cyclic.com>
134317721Speter
134417721Speter        * version.c: upped to 1.5.91 for another pre-1.6 release.
134517721Speter
134617721SpeterFri Sep 29 14:41:14 1995  <bmeier@rzu.unizh.ch>
134717721Speter
134817721Speter        * root.c: start rcsid[] with "CVSid".
134917721Speter
135017721SpeterFri Sep 29 13:22:44 1995  Jim Blandy  <jimb@totoro.cyclic.com>
135117721Speter
135217721Speter	* diff.c (diff): Doc fix.
135317721Speter
135417721SpeterFri Sep 29 14:32:36 1995  Norbert Kiesel <nk@col.sw-ley.de>
135517721Speter
135617721Speter        * repos.c (Short_Repository): chop superfluous "/".
135717721Speter
135817721Speter        * tag.c (pretag_proc): correct user-visible string.
135917721Speter
136017721Speter        * rtag.c (pretag_proc): correct user-visible string.
136117721Speter
136217721SpeterFri Sep 29 13:45:36 1995  Karl Fogel  <kfogel@floss.cyclic.com>
136317721Speter
136417721Speter        * cvs.h (USE): if __GNUC__ != 2, expand to a dummy var instead of
136517721Speter        nothing.
136617721Speter
136717721SpeterThu Sep 28 13:37:05 1995  Larry Jones <larry.jones@sdrc.com>
136817721Speter
136917721Speter        * server.c: ifdef ISC, include <sys/bsdtypes.h>.
137017721Speter
137117721SpeterFri Sep 29 07:54:22 1995  Mike Sutton  <mws115@llcoolj.dayton.saic.com>
137217721Speter
137317721Speter	* filesubr.c (last_component): Don't use ANSI style declaration.
137417721Speter
137517721SpeterWed Sep 27 15:24:00 1995  Del  <del@matra.com.au>
137617721Speter
137717721Speter	* tag.c, rtag.c:  Pass a few extra options to the script
137817721Speter	named in taginfo (del/add, and revision number).
137917721Speter
138017721Speter	* tag.c:  Support a -r option (at long last).  Also needs
138117721Speter	a -f option to tag the head if there is no matching -r tag.
138217721Speter
138317721SpeterTue Sep 26 11:41:08 1995  Karl Fogel  <kfogel@totoro.cyclic.com>
138417721Speter
138517721Speter        * version.c: Upped version to 1.5.89 for test release preceding
138617721Speter        1.6.
138717721Speter
138817721SpeterWed Sep 20 15:32:49 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
138917721Speter
139017721Speter	* ignore.c (ign_add_file): Check for errors from fopen and fclose.
139117721Speter
139217721SpeterTue Sep 19 18:02:16 1995  Jim Blandy  <jimb@totoro.cyclic.com>
139317721Speter
139417721Speter	* Makefile.in (DISTFILES): Remove sanity.el from this list; the
139517721Speter	file has been deleted.
139617721Speter
139717721SpeterThu Sep 14 14:17:52 1995  Peter Wemm  <peter@haywire.dialix.com>
139817721Speter
139917721Speter	* import.c: Recover from being unable to open the user file.
140017721Speter
140117721Speter	* update.c (join_file): Print a message in the case where the file
140217721Speter	was added.
140317721Speter
140417721Speter	* mkmodules.c: Deal with .db as well as .pag/.dir (for use with
140517721Speter	BSD 4.4 and real dbm support).
140617721Speter
140717721SpeterMon Sep 11 15:44:13 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
140817721Speter
140917721Speter	* release.c (release): Revise comment regarding why and how we
141017721Speter	skip argv[0].
141117721Speter
141217721SpeterMon Sep 11 10:03:59 1995  Karl Fogel  <kfogel@floss.cyclic.com>
141317721Speter
141417721Speter        * release.c (release): use return value of pclose to determine
141517721Speter        success of update.
141617721Speter
141717721SpeterMon Sep 11 09:56:33 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
141817721Speter
141917721Speter	* release.c (release_delete): Fix comment.
142017721Speter
142117721SpeterSun Sep 10 18:48:35 1995  Karl Fogel  <kfogel@floss.cyclic.com>
142217721Speter
142317721Speter        * release.c (release): made work with client/server.
142417721Speter        Don't ask if <arg> is mentioned in `modules'.
142517721Speter
142617721SpeterFri Sep  8 13:25:55 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
142717721Speter
142817721Speter	* sanity.sh: When committing a removal, send stdout to LOGFILE;
142917721Speter	this is no longer a silent operation.
143017721Speter
143117721Speter	* sanity.sh: Remove OUTPUT variable; it is unused.
143217721Speter
143317721Speter	* client.c: Add comment regarding deleting temp file.
143417721Speter	* main.c: Add comment regarding getopt REQUIRE_ORDER.
143517721Speter
143617721SpeterThu Sep  7 20:24:46 1995  Karl Fogel  <kfogel@floss.cyclic.com>
143717721Speter
143817721Speter        * main.c (main): use getopt_long(), accept "--help" and
143917721Speter        "--version".
144017721Speter        Don't assume EOF is -1.
144117721Speter
144217721SpeterThu Sep 7  19:18:00 1995  Jim Blandy  <jimb@cyclic.com>
144317721Speter
144417721Speter	* cvs.h (unlink_file_dir): Add prototype for this.
144517721Speter
144617721SpeterThu Sep  7 14:38:06 1995  Karl Fogel  <kfogel@floss.cyclic.com>
144717721Speter
144817721Speter        * ALL FILES: add semicolon, as indicated below.
144917721Speter
145017721Speter        * cvs.h (USE): don't provide semicolon in the expansion of the USE
145117721Speter        macro; we'd rather the callers provided it themselves because that
145217721Speter        way etags doesn't get fooled.
145317721Speter
145417721SpeterMon Sep  4 23:30:41 1995  Magnus Hyllander  <mhy@os.se>
145517721Speter
145617721Speter	* checkout.c: cvs export now takes -k option and does not default
145717721Speter	to -kv.
145817721Speter	* checkout.c, cvs.h, modules.c: Modules file now takes -e option
145917721Speter	for cvs export.
146017721Speter
146117721SpeterMon Sep  4 23:30:41 1995  Kirby Koster  <koster@sctc.com>
146217721Speter
146317721Speter	* commit.c: When committing a removal, print a message saying what
146417721Speter	we are doing.
146517721Speter
146617721SpeterWed Aug  2 10:06:51 1995  Vince DeMarco  <vdemarco@bou.shl.com>
146717721Speter
146817721Speter	* server.c: fix compiler warnings (on NeXT) (declare functions as
146917721Speter	static inline instead of just static) functions: get_buffer_date,
147017721Speter	buf_append_char, and buf_append_data
147117721Speter
147217721SpeterMon Sep  4 22:31:28 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
147317721Speter
147417721Speter	* client.c (update_entries), import.c (expand_at_signs): Check for
147517721Speter	errors from fread and putc.
147617721Speter
147717721SpeterFri Sep  1 00:03:17 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
147817721Speter
147917721Speter	* sanity.sh: Fix TODO item pathname.
148017721Speter
148117721Speter	* sanity.el: Removed.  It was out of date, didn't do much, and I
148217721Speter	doubt anyone was using it.
148317721Speter
148417721Speter	* no_diff.c (No_Difference): Don't change the modes of the files.
148517721Speter
148617721SpeterThu Aug 31 13:14:34 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
148717721Speter
148817721Speter	* version.c: Change version to 1.5.1.
148917721Speter
149017721Speter	* client.c (start_rsh_server): Don't pass -d to "cvs server"
149117721Speter	invocation via rsh (restore change which was lost when NT stuff
149217721Speter	was merged in).
149317721Speter	* sanity.sh: Add TODO item suggesting test for bug which this fixes.
149417721Speter
149517721SpeterWed Aug 30 12:36:37 1995  Jim Blandy  <jimb@totoro.cyclic.com>
149617721Speter
149717721Speter	* sanity.sh (basic1): Make sure first-dir is deleted before
149817721Speter	running this set of tests.
149917721Speter
150017721Speter        * subr.c: Extract file twiddling functions to a different file,
150117721Speter	because we want to use different versions of many of these
150217721Speter	routines under Windows NT.
150317721Speter	(copy_file, isdir, islink, isfile, isreadable, iswritable,
150417721Speter	open_file, make_directory, make_directories, xchmod,
150517721Speter	rename_file, link_file, unlink_file, xcmp, tmpnam,
150617721Speter	unlink_file_dir, deep_remove_dir): Moved to...
150717721Speter	* filesubr.c: ...this file, which is new.
150817721Speter	* Makefile.in (SOURCES): Mention filesubr.c.
150917721Speter	(COMMON_OBJECTS): Mention filesubr.o.
151017721Speter
151117721Speter	* subr.c: Extract process execution guts to a different file,
151217721Speter	because we want to replace these routines entirely under
151317721Speter	Windows NT.
151417721Speter	(VA_START, va_alist, va_dcl): Move this stuff...
151517721Speter	(run_add_arg, run_init_prog): and these declarations...
151617721Speter	(run_prog, run_argv, run_argc, run_argc_allocated): and these
151717721Speter	variables...
151817721Speter	(run_setup, run_arg, run_args, run_add_arg, run_init_prog,
151917721Speter	run_exec, run_print, Popen): and these functions...
152017721Speter	* run.c: To this file, which is new.
152117721Speter	* Makefile.in (SOURCES): Mention run.c.
152217721Speter	(COMMON_OBJECTS): Mention run.o.
152317721Speter
152417721Speter	* status.c (status): Call ign_setup, if client_active.  Otherwise,
152517721Speter	we don't end up ignoring CVS directories and such.
152617721Speter
152717721Speter	* server.c (mkdir_p, dirswitch): Use CVS_MKDIR instead of mkdir.
152817721Speter
152917721Speter	* repos.c (Name_Repository): Use the isabsolute function instead of
153017721Speter	checking the first character of the path.
153117721Speter	* root.c (Name_Root): Same.
153217721Speter
153317721Speter	* release.c (release): Use fncmp instead of strcmp to compare
153417721Speter	filenames.
153517721Speter
153617721Speter	* rcs.c (RCS_parse, RCS_parsercsfile) [LINES_CRLF_TERMINATED]:
153717721Speter	Abort, because we have strong reason to believe this code is
153817721Speter	wrong.
153917721Speter
154017721Speter	* patch.c (patch): Register signal handlers iff the signal name is
154117721Speter	#defined.
154217721Speter
154317721Speter	* no_diff.c (No_Difference): Don't try to include server_active in
154417721Speter	trace message unless SERVER_SUPPORT is #defined.
154517721Speter
154617721Speter	* modules.c (do_module): Use CVS_MKDIR instead of mkdir.
154717721Speter
154817721Speter	* mkmodules.c (main): Call last_component instead of writing it out.
154917721Speter
155017721Speter	* main.c (main): Call last_component instead of writing it out.
155117721Speter	Break up the long copyright string into several strings; Microsoft
155217721Speter	Visual C++ can't handle a line that long.  Feh.
155317721Speter	Use fncmp instead of strcmp to compare filenames.
155417721Speter	Register signal handlers iff the signal name is #defined.
155517721Speter
155617721Speter	* lock.c (readers_exist): Don't check return value of closedir.
155717721Speter	Most of the rest of the code doesn't, and some systems don't
155817721Speter	provide a return value anyway.
155917721Speter	(set_lock): Use CVS_MKDIR instead of mkdir.
156017721Speter
156117721Speter	* import.c (import): Use the isabsolute function instead of
156217721Speter	checking the first character of the path.
156317721Speter	Try to delete the temporary file again after we close it, so it'll
156417721Speter	get deleted on systems that don't let you delete files that are
156517721Speter	open.
156617721Speter	(add_rev): Instead of making a hard link to the working file and
156717721Speter	checking in the revision with ci -r, use ci -u and restore the
156817721Speter	permission bits.
156917721Speter	(comtable): Include lines from SYSTEM_COMMENT_TABLE, if it is
157017721Speter	#defined.
157117721Speter	(add_rcs_file) [LINES_CRLF_TERMINATED]: Abort, because we have
157217721Speter	strong reason to believe this code is wrong.
157317721Speter	(import_descend_dir): Use CVS_MKDIR instead of mkdir.
157417721Speter
157517721Speter	* history.c (read_hrecs): Open the file with OPEN_BINARY.
157617721Speter
157717721Speter	* find_names.c (add_entries_proc, fsortcmp): Add prototypes.
157817721Speter	* entries.c (write_ent_proc): Add prototype.
157917721Speter	* hash.c (walklist): Add prototype for PROC argument.
158017721Speter	(sortlist): Add prototype for COMP argument.
158117721Speter	(printnode): Add a prototype, and make it static.
158217721Speter
158317721Speter	* cvs.h (wrap_add_file, wrap_add): Add extern decls for these;
158417721Speter	they're used in import.c and update.c.
158517721Speter	* wrapper.c (wrap_add_file, wrap_add): Remove them from here.
158617721Speter
158717721Speter	* cvs.h (RUN_NORMAL, RUN_COMBINED, RUN_REALLY, RUN_STDOUT_APPEND,
158817721Speter	RUN_STDERR_APPEND, RUN_SIGNIGNORE, RUN_TTY, run_arg, run_print,
158917721Speter	run_setup, run_args, run_exec, Popen, piped_child, close_on_exec,
159017721Speter	filter_stream_through_program, waitpid): Move all these
159117721Speter	declarations and definitions to the same section.
159217721Speter
159317721Speter	* cvs.h (error_set_cleanup): Fix prototype.
159417721Speter
159517721Speter	* cvs.h (isabsolute, last_component): New extern decls.
159617721Speter
159717721Speter	* cvs.h (link_file): Function is deleted; remove extern decl.
159817721Speter
159917721Speter	* cvs.h (DEATH_STATE, DEATH_SUPPORT): Move #definitions of these
160017721Speter	above the point where we #include rcs.h, since rcs.h tests them
160117721Speter	(or DEATH_SUPPORT, at least).
160217721Speter
160317721Speter	* cvs.h (DEVNULL): #define this iff it isn't already #defined.
160417721Speter	config.h may want to override it.
160517721Speter
160617721Speter	* cvs.h (SERVER_SUPPORT, CLIENT_SUPPORT): Don't #define these
160717721Speter	here; let config.h do that.  On some systems, we don't have any
160817721Speter	server support.
160917721Speter
161017721Speter	* cvs.h: Don't #include <io.h> or <direct.h>; we take care of
161117721Speter	those in lib/system.h.
161217721Speter
161317721Speter	* commit.c (commit): Open logfile with the OPEN_BINARY flag.
161417721Speter	(precommit_proc): Use the isabsolute function, instead of
161517721Speter	comparing the first character with /.
161617721Speter	(remove_file, checkaddfile): Use CVS_MKDIR instead of mkdir.
161717721Speter
161817721Speter        * client.c (send_repository): Use larger line buffers.
161917721Speter
162017721Speter        * client.c [LINES_CRLF_TERMINATED] (update_entries): If we've just
162117721Speter	received a gzipped file, copy it over, converting LF to CRLF,
162217721Speter	instead of just renaming it into place.
162317721Speter	[LINES_CRLF_TERMINATED] (send_modified): Convert file to LF format
162417721Speter	before sending with gzip.
162517721Speter	(send_modified): Don't be disturbed if we get fewer than
162617721Speter	sb.st_size characters when we read.  The read function may be
162717721Speter	collapsing CRLF to LF for us.
162817721Speter
162917721Speter	* client.c: Add forward declarations for all the cvs command
163017721Speter	functions we call.
163117721Speter
163217721Speter	* client.c: Add forward static declarations for all the
163317721Speter	handle_mumble functions.
163417721Speter
163517721Speter	On some systems, RSH converts LF to CRLF; this screws us up.
163617721Speter	* client.c (rsh_pid): Declare this iff RSH_NOT_TRANSPARENT is not
163717721Speter	#defined.
163817721Speter	(get_responses_and_close): Use SHUTDOWN_SERVER if it is #defined.
163917721Speter	Only wait for rsh process to exit if RSH_NOT_TRANSPARENT is not
164017721Speter	#defined.
164117721Speter	(start_rsh_server): Declare and define only if
164217721Speter	RSH_NOT_TRANSPARENT is not #defined.  Use piped_child, instead of
164317721Speter	writing all that out.
164417721Speter	(start_server): Only try to call start_rsh_server if
164517721Speter	RSH_NOT_TRANSPARENT is not #defined.  Use START_SERVER if it is
164617721Speter	#defined.  Convert file descriptors to stdio file pointers using
164717721Speter	the FOPEN_BINARY_WRITE and FOPEN_BINARY_READ strings.
164817721Speter
164917721Speter	* client.h (rsh_pid): Don't declare this; it's never used elsewhere.
165017721Speter	(supported_request): Add external declaration for this;
165117721Speter	it's used in checkout.c.
165217721Speter
165317721Speter	Move process-running functions to run.c; we need to totally
165417721Speter	replace these on other systems, like Windows NT.
165517721Speter	* client.c (close_on_exec, filter_stream_through_program): Moved
165617721Speter	to run.c.
165717721Speter	* run.c (close_on_exec, filter_stream_through_program): Here they
165817721Speter	are.
165917721Speter
166017721Speter	* add.c (add_directory): Use CVS_MKDIR instead of straight mkdir.
166117721Speter	* checkout.c (checkout, build_dirs_and_chdir): Same.
166217721Speter	(checkout_proc): Use fncmp instead of strcmp.
166317721Speter	* client.c (call_in_directory): Use CVS_MKDIR instead of straight
166417721Speter	mkdir.
166517721Speter
166617721Speter	* client.c (handle_checksum): Cast return value of strtol.
166717721Speter
166817721SpeterWed Aug 30 10:35:46 1995  Stefan Monnier <stefan.monnier@epfl.ch>
166917721Speter
167017721Speter        * main.c (main): Allow -d to override CVSROOT_ENV.
167117721Speter
167217721SpeterThu Aug 24 18:57:49 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
167317721Speter
167417721Speter	* cvs.h, rcscmds.c (RCS_unlock, RCS_deltag, RCS_lock): Add extra
167517721Speter	parameter for whether to direct stderr to DEVNULL.
167617721Speter	* checkin.c, tag.c, rtag.c, import.c, commit.c: Pass extra
167717721Speter	argument.  1 if stderr had been directed to DEVNULL before
167817721Speter	rcscmds.c was in use, 0 if it was RUN_TTY.
167917721Speter
168017721Speter	* cvs.h: Add comment regarding attic.
168117721Speter
168217721SpeterTue Aug 22 10:09:29 1995  Alexander Dupuy  <dupuy@smarts.com>
168317721Speter
168417721Speter	* rcs.c (whitespace): Cast to unsigned char in case char is signed
168517721Speter	and value is negative.
168617721Speter
168717721SpeterTue Aug 22 10:09:29 1995  Kirby Koster  <koster@sctc.com>
168817721Speter			  and Jim Kingdon  <kingdon@harvey.cyclic.com>
168917721Speter
169017721Speter	* update.c (join_file): If vers->vn_user is NULL, just return.
169117721Speter
169217721SpeterTue Aug 22 10:09:29 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
169317721Speter
169417721Speter	* server.c, client.c: Add comments about modes and umasks.
169517721Speter
169617721SpeterMon Aug 21 12:54:14 1995  Rick Sladkey  <jrs@world.std.com>
169717721Speter
169817721Speter	* update.c (update_filesdone_proc): If pipeout, don't try to
169917721Speter	create CVS/Root.
170017721Speter
170117721SpeterMon Aug 21 12:54:14 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
170217721Speter
170317721Speter	* client.c (start_rsh_server): Don't pass -d to "cvs server"
170417721Speter	invocation via rsh.
170517721Speter
170617721Speter	* server.c (serve_root): Report errors via pending_error_text.
170717721Speter	(serve_valid_requests): Check for pending errors.
170817721Speter
170917721SpeterSun Aug 20 00:59:46 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
171017721Speter
171117721Speter	* options.h.in: Document usage of DIFF in update.c
171217721Speter	* update.c: Use DIFF -c, not DIFF -u.  The small improvement in
171317721Speter	diff size is not worth the hassle in terms of everyone having to
171417721Speter	make sure that DIFF is GNU diff (IMHO).
171517721Speter
171617721SpeterSat Aug 19 22:05:46 1995  Jim Blandy  <jimb@totoro.cyclic.com>
171717721Speter
171817721Speter	* recurse.c (start_recursion): Doc fix.
171917721Speter
172017721Speter	* server.c (do_cvs_command): Clear error_use_protocol in the
172117721Speter	child.
172217721Speter	(server): Set error_use_protocol.
172317721Speter
172417721SpeterSun Aug 13 15:33:37 1995  Jim Kingdon  <kingdon@harvey.cyclic.com>
172517721Speter
172617721Speter	* server.c (do_cvs_command): Don't select on exceptions.
172717721Speter
172817721SpeterFri Aug  4 00:13:47 1995  Jim Meyering  (meyering@comco.com)
172917721Speter
173017721Speter	* Makefile.in (LDFLAGS): Set to @LDFLAGS@.
173117721Speter	(options.h): Depend on ../config.status and options.h.in.
173217721Speter	Add rule to build it from dependents.
173317721Speter
173417721Speter	* add.c: Include save-cwd.h.
173517721Speter	(add_directory): Use save_cwd and restore_cwd instead of
173617721Speter	explicit getwd then chdir.
173717721Speter	* import.c (import_descend_dir): Likewise.
173817721Speter	* modules.c (do_module): Likewise.
173917721Speter
174017721Speter	* recurse.c (save_cwd, restore_cwd, free_cwd): Remove functions.
174117721Speter	New versions have been broken out into save-cwd.c.
174217721Speter	(do_dir_proc): Adapt to handle status code returned by new versions
174317721Speter	of save_cwd and restore_cwd -- and one fewer argument to restore_cwd.
174417721Speter	(unroll_files_proc): Likewise.
174517721Speter
174617721Speter	* wrapper.c (wrap_name_has): Add default: abort () to switch
174717721Speter	statement to avoid warning from gcc -Wall.
174817721Speter	(wrap_matching_entry): Remove dcl of unused TEMP.
174917721Speter	(wrap_tocvs_process_file): Remove dcl of unused ERR.
175017721Speter	(wrap_fromcvs_process_file): Likewise.
175117721Speter
175217721Speter	* cvs.h: Remove prototype for error.  Instead, include error.h.
175317721Speter	Also, remove trailing white space.
175417721Speter
175517721SpeterThu Aug  3 10:12:20 1995  Jim Meyering  (meyering@comco.com)
175617721Speter
175717721Speter	* import.c (import_descend_dir): Don't print probably-bogus CWD
175817721Speter	in error messages saying `cannot get working directory'.
175917721Speter
176017721SpeterSun Jul 30 20:52:04 1995  James Kingdon  <kingdon@harvey.cyclic.com>
176117721Speter
176217721Speter	* parseinfo.c (Parse_Info): Revise comments and indentation.
176317721Speter
176417721SpeterSun Jul 30 15:30:16 1995  Vince DeMarco  <vdemarco@bou.shl.com>
176517721Speter
176617721Speter        * history.c: put ifdef SERVER_SUPPORT around tracing code incase
176717721Speter        the client/server code is not compiled into the program.
176817721Speter
176917721SpeterSat Jul 29 16:59:49 1995  James Kingdon  <kingdon@harvey.cyclic.com>
177017721Speter
177117721Speter	* subr.c (deep_remove_dir): Use struct dirent, not struct direct.
177217721Speter
177317721SpeterSat Jul 29 18:32:06 1995  Vince DeMarco  <vdemarco@bou.shl.com>
177417721Speter
177517721Speter	* add.c: Check wrap_name_has.
177617721Speter
177717721Speter	* diff.c, checkin.c, import.c: have code call unlink_file_dir in
177817721Speter	the appropriate places instead of just calling unlink_file.
177917721Speter
178017721Speter        * checkin.c: Remove one unlink call.
178117721Speter
178217721Speter	* import.c (comtable): Add .m .psw .pswm.
178317721Speter
178417721Speter	* import.c (add_rcs_file): Remove tocvsPath before returning.
178517721Speter
178617721Speter	* subr.c (unlink_file_dir):  Add new function. unlinks the file if
178717721Speter	it is a file. or will do a recursive delete if the path is
178817721Speter	actually a directory.
178917721Speter	(deep_remove_dir): New function, helps unlink_file_dir.
179017721Speter
179117721Speter	* mkmodules.c:  Added CVSROOTADM_WRAPPER (cvswrappers file) to the
179217721Speter	checkout file list.
179317721Speter
179417721SpeterFri Jul 28 16:27:56 1995  James Kingdon  <kingdon@harvey.cyclic.com>
179517721Speter
179617721Speter	* checkout.c (safe_location): Use PATH_MAX not MAXPATHLEN.
179717721Speter
179817721SpeterFri Jul 28 19:37:03 1995  Paul Eggert  <eggert@twinsun.com>
179917721Speter
180017721Speter	* log.c (cvslog, log_fileproc): Pass all options (except -l)
180117721Speter	to rlog as-is, so that users can put spaces in options,
180217721Speter	can specify multiple -d options, etc.
180317721Speter	(ac, av): New variables.
180417721Speter	(log_option_with_arg, options): Remove.
180517721Speter
180617721Speter	(log_fileproc): Don't prepend `/' to file name if update_dir is empty.
180717721Speter
180817721SpeterTue Jul 25 00:52:26 1995  James Kingdon  <kingdon@harvey.cyclic.com>
180917721Speter
181017721Speter	* checkout.c (safe_location): Don't use PROTO in function definition.
181117721Speter
181217721SpeterMon Jul 24 18:32:06 1995  Vince DeMarco  <vdemarco@bou.shl.com>
181317721Speter
181417721Speter	* checkout.c (safe_location):  fix a compiler warning. (Declare
181517721Speter	safe_location). Changed code in safe_location to call getwd
181617721Speter	instead of getcwd. getwd is declared in the ../lib directory and
181717721Speter	used exclusively thoughout the code. (this helps portability on
181817721Speter	non POSIX systems).
181917721Speter
182017721Speter	* wrapper.c: updated Andrew Athan's email address.
182117721Speter
182217721Speter	* main.c:  fix an ifdef so the code will compile. syntax error in
182317721Speter	the ifdef for CVS_NOADMIN.
182417721Speter
182517721SpeterMon Jul 24 13:25:00 1995  Del <del@babel.dialix.oz.au>
182617721Speter
182717721Speter	* checkout.c:  New procedure safe_location.
182817721Speter	Ensures that you don't check out into the repository
182917721Speter	itself.
183017721Speter
183117721Speter	* tag.c, rtag.c, cvs.h, mkmodules.c:  Added a "taginfo" file in
183217721Speter	CVSROOT to perform pre-tag checks.
183317721Speter
183417721Speter	* main.c, options.h.in:  Added a compile time option to
183517721Speter	disable the admin command.
183617721Speter
183717721SpeterFri Jul 21 17:07:42 1995  James Kingdon  <kingdon@harvey.cyclic.com>
183817721Speter
183917721Speter	* update.c, status.c, patch.c, checkout.c, import.c, release.c,
184017721Speter	rtag.c, tag.c: Now -q and -Q options just print an error message
184117721Speter	telling you to use global -q and -Q options.  The non-global
184217721Speter	options were a mess because some commands accepted them and some
184317721Speter	did not, and they were redundant with -q and -Q global options.
184417721Speter
184517721Speter	* rcs.c, cvs.h, commit.c, log.c, find_names.c: Remove CVS.dea
184617721Speter	stuff.  It is slower than the alternatives and I don't think
184717721Speter	anyone ever actually used it.
184817721Speter
184917721SpeterFri Jul 21 10:35:10 1995  Vince DeMarco <vdemarco@bou.shl.com>
185017721Speter
185117721Speter	* Makefile.in (SOURCES, OBJECTS): Add wrapper.c, wrapper.o.
185217721Speter	* add.c, admin.c, checkout.c, commit.c, diff.c, import.c, log.c,
185317721Speter	remove.c, status.c: Call wrap_setup at start of commands.
185417721Speter	* add.c (add): Check for wrapper, as well as directory, in repository.
185517721Speter	* checkin.c: Add tocvsPath variable and associated handling.
185617721Speter	* cvs.h: Add wrapper declarations.
185717721Speter	* diff.c: Add tocvsPath variable and associated handling.
185817721Speter	* import.c: Add -W option, CVSDOTWRAPPER handling.
185917721Speter	(import_descend): check wrap_name_has.
186017721Speter	(update_rcs_file, add_rev, add_rcs_file): add tocvsPath
186117721Speter	variable and associated handling.
186217721Speter	* no_diff.c: Add tocvsPath variable and associated handling.
186317721Speter	* recurse.c (start_recursion): Check wrap_name_has.
186417721Speter	* update.c: Copy, don't merge, copy-by-merge files.  Attempt to
186517721Speter	use -j on a copy-by-merge file generates a warning and no further
186617721Speter	action.
186717721Speter	* update.c: Add CVSDOTWRAPPER handling.
186817721Speter	* wrapper.c: Added.
186917721Speter
187017721SpeterFri Jul 21 00:20:52 1995  James Kingdon  <kingdon@harvey.cyclic.com>
187117721Speter
187217721Speter	* client.c: Revert David Lamkin patch, except for the bits about
187317721Speter	removing temp_filename and the .rej file.
187417721Speter	* sanity.sh (errmsg1): Test for the underlying bug which Lamkin
187517721Speter	kludged around.
187617721Speter	* client.c (call_in_directory): Set short_pathname to include the
187717721Speter	filename, not just the directory.  Improve comments regarding what
187817721Speter	is passed to FUNC.
187917721Speter
188017721SpeterThu Jul 20 17:51:54 1995  David Lamkin  <drl@net-tel.co.uk>
188117721Speter
188217721Speter	* client.c (short_pathname): Fixes the fetching of the whole file
188317721Speter	after a patch to bring it up to date has failed:
188417721Speter	   - failed_patches[] now holds short path to file that failed
188517721Speter	   - patch temp files are unlinked where the patch is done
188617721Speter
188717721SpeterThu Jul 20 12:37:10 1995  James Kingdon  <kingdon@harvey.cyclic.com>
188817721Speter
188917721Speter	* cvs.h: Declare error_set_cleanup
189017721Speter	* main.c: Call it.
189117721Speter	(error_cleanup): New function.
189217721Speter
189317721SpeterThu Jul 20 12:17:16 1995  Mark H. Wilkinson  <mhw@minster.york.ac.uk>
189417721Speter
189517721Speter	* add.c, admin.c, checkin.c, checkout.c, classify.c, client.c,
189617721Speter	client.h, commit.c, create_adm.c, cvs.h, diff.c, entries.c,
189717721Speter	history.c, import.c, log.c, main.c, modules.c, no_diff.c, patch.c,
189817721Speter	release.c, remove.c, repos.c, rtag.c, server.c, server.h,
189917721Speter	status.c, subr.c, tag.c, update.c, vers_ts.c, version.c: Put
190017721Speter	client code inside #ifdef CLIENT_SUPPORT, server code inside
190117721Speter	#ifdef SERVER_SUPPORT.  When reporting version, report whether
190217721Speter	client and/or server are compiled in.
190317721Speter
190417721SpeterWed Jul 19 18:00:00 1995  Jim Blandy <jimb@cyclic.com>
190517721Speter
190617721Speter	* subr.c (copy_file): Declare local var n to be an int,
190717721Speter	not a size_t.  size_t is unsigned, and the return values
190817721Speter	of read and write are definitely not unsigned.
190917721Speter
191017721Speter	* cvs.h [HAVE_IO_H]: #include <io.h>.
191117721Speter	[HAVE_DIRECT_H]: #include <direct.h>.
191217721Speter
191317721SpeterFri Jul 14 22:28:46 1995  Jim Blandy  <jimb@totoro.cyclic.com>
191417721Speter
191517721Speter	* server.c (dirswitch, serve_static_directory, serve_sticky,
191617721Speter	serve_lost, server_write_entries, serve_checkin_prog,
191717721Speter	serve_update_prog): Include more information in error messages.
191817721Speter	(Thanks, DJM.)
191917721Speter
192017721Speter	* cvsbug.sh: Use /usr/sbin/sendmail, unless it doesn't
192117721Speter	exist, in which case use /usr/lib/sendmail.  (Thanks, DJM.)
192217721Speter
192317721Speter	* server.c (server, server_cleanup): Use "/tmp" instead of
192417721Speter	"/usr/tmp" when the TMPDIR environment variable isn't set.  This
192517721Speter	is what the rest of the code uses.
192617721Speter
192717721SpeterThu Jul 13 11:03:17 1995  Jim Meyering  (meyering@comco.com)
192817721Speter
192917721Speter	* recurse.c (free_cwd): New function.
193017721Speter	(save_cwd, restore_cwd): Use it instead of simply freeing any
193117721Speter	string.  The function also closes any open file descriptor.
193217721Speter
193317721Speter	* import.c (comtable): Now static.
193417721Speter	(comtable): Put braces around each element of initializer.
193517721Speter
193617721Speter	* cvs.h: Add prototype for xgetwd.
193717721Speter	* recurse.c (save_cwd, restore_cwd): New functions to encapsulate
193817721Speter	run-time solution to secure-SunOS vs. fchown problem.
193917721Speter	(do_dir_proc, unroll_files_proc): Use new functions instead of
194017721Speter	open-coded fchdir/chdir calls with cpp directives.
194117721Speter
194217721Speter        * sanity.sh: Change out of TESTDIR before removing it.
194317721Speter	Some versions of rm fail when asked to delete the current directory.
194417721Speter
194517721SpeterWed Jul 12 22:35:04 1995  Jim Meyering  (meyering@comco.com)
194617721Speter
194717721Speter	* client.c (get_short_pathname): Add const qualifier to parameter dcl.
194817721Speter	(copy_a_file): Remove set-but-not-used variable, LEN.
194917721Speter	(handle_clear_static_directory): Likewise: SHORT_PATHNAME.
195017721Speter	(set_sticky): Likewise: LEN.
195117721Speter	(handle_set_sticky): Likewise: SHORT_PATHNAME.
195217721Speter	(handle_clear_sticky): Likewise: SHORT_PATHNAME.
195317721Speter	(start_rsh_server): Convert perl-style `cond || stmt' to more
195417721Speter	conventional C-style `if (cond) stmt.'  Sheesh.
195517721Speter	Remove dcl of unused file-static, SEND_CONTENTS.
195617721Speter
195717721Speter	* history.c: Remove dcls of set-but-not-used file-statics,
195817721Speter	HISTSIZE, HISTDATA.
195917721Speter	(read_hrecs): Don't set them.
196017721Speter
196117721Speter	* import.c (add_rev): Remove dcl of set-but-not-used local, RETCODE.
196217721Speter
196317721Speter	* repos.c (Name_Repository): Remove dcl of set-but-not-used local,
196417721Speter	HAS_CVSADM.
196517721Speter
196617721Speter	* cvsrc.c (read_cvsrc): Parenthesize assignment used as truth value.
196717721Speter
196817721SpeterTue Jul 11 16:49:41 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
196917721Speter
197017721Speter	* hash.h (struct entnode, Entnode): moved from here...
197117721Speter	* cvs.h: to here.
197217721Speter
197317721SpeterWed Jul 12 19:45:24 1995  Dominik Westner (dominik@gowest.ppp.informatik.uni-muenchen.de)
197417721Speter
197517721Speter        * client.c (server_user): new var.
197617721Speter        (parse_cvsroot): set above if repo is "user@host:/dir".
197717721Speter        (start_rsh_server): if server_user set, then use it.
197817721Speter
197917721SpeterWed Jul 12 10:53:36 1995  Karl Fogel  <kfogel@floss.cyclic.com>
198017721Speter
198117721Speter        * sanity.sh: remove the TESTDIR after done.
198217721Speter
198317721Speter        * cvsbug.sh (GNATS_ADDR): now bug-cvs@prep.ai.mit.edu again.
198417721Speter
198517721SpeterTue Jul 11 15:53:08 1995  Greg A. Woods  <woods@most.weird.com>
198617721Speter
198717721Speter        * options.h.in: depend on configure for grep and diff, now that
198817721Speter        changes to configure.in are applied.
198917721Speter
199017721SpeterTue Jul 11 14:32:14 1995 Michael Shields  <shields@tembel.org>
199117721Speter
199217721Speter	* Makefile.in (LDFLAGS): Pick up from configure.
199317721Speter
199417721SpeterTue Jul 11 14:20:00 1995  Loren James Rittle  <rittle@supra.comm.mot.com>
199517721Speter
199617721Speter	* import.c (add_rev), commit.c (remove_file, ci_new_rev),
199717721Speter	checkin.c (Checkin), subr.c (make_message_rcslegal), cvs.h:
199817721Speter	Always perform sanity check and fix-up on messages to be passed
199917721Speter 	directly to RCS via the '-m' switch.  RCS 5.7 requires that a
200017721Speter 	non-total-whitespace, non-null message be provided or it will
200117721Speter 	abort with an error.  CVS is not setup to handle any returned
200217721Speter 	error from 'ci' gracefully and, thus, the repository entered a
200317721Speter 	trashed state.
200417721Speter
200517721Speter	* sanity.sh: Add regression tests for new code and interactions
200617721Speter	with RCS 5.7.
200717721Speter
200817721SpeterSun Jul  9 19:03:00 1995  Greg A. Woods  <woods@most.weird.com>
200917721Speter
201017721Speter	* .cvsignore: added new backup file
201117721Speter
201217721Speter	* options.h.in: our new configure.in finds the right diff and
201317721Speter        grep paths now....
201417721Speter
201517721Speter	* subr.c: quote the string in run_print() for visibility
201617721Speter	- indent a comment
201717721Speter	- Jun Hamano's xchmod() patch to prevent writable files
201817721Speter	(from previous local changes)
201917721Speter
202017721Speter	* logmsg.c: fix a NULL pointer de-reference
202117721Speter	- clean up some string handling code...
202217721Speter	(from previous local changes)
202317721Speter
202417721Speter	* parseinfo.c: add hack to expand $CVSROOT in an *info file.
202517721Speter	- document "ALL" and "DEFAULT" in opening comment for Parse_Info()
202617721Speter	- fix the code to match the comments w.r.t. callbacks for "ALL"
202717721Speter	- add a line of trace output...
202817721Speter	(from previous local changes)
202917721Speter
203017721Speter	* mkmodules.c: add support for comments in CVSROOT/checkoutlist
203117721Speter	- add CVSroot used by something other .o, ala main.c
203217721Speter	(from previous local changes)
203317721Speter
203417721Speter	* main.c, cvs.h: add support for $VISUAL as log msg editor
203517721Speter	(from previous local changes)
203617721Speter
203717721Speter	* status.c: add support for -q and -Q (from previous local changes)
203817721Speter
203917721Speter
204017721SpeterSun Jul  9 18:44:32 1995  Karl Fogel  <kfogel@floss.cyclic.com>
204117721Speter
204217721Speter        * log.c: trivial change to test ChangeLog stuff.
204317721Speter
204417721SpeterSat Jul  8 20:33:57 1995  Paul Eggert  <eggert@twinsun.com>
204517721Speter
204617721Speter	* history.c: (history_write): Don't assume that fopen(..., "a")
204717721Speter	lets one interleave writes to the history file from different processes
204817721Speter	without interlocking.  Use open's O_APPEND option instead.
204917721Speter	Throw in an lseek to lessen the race bugs on non-Posix hosts.
205017721Speter	* cvs.h, subr.c (Fopen): Remove.
205117721Speter
205217721Speter	* log.c (log_fileproc): Pass working file name to rlog, so that
205317721Speter	the name is reported correctly.
205417721Speter
205517721SpeterFri Jul  7 18:29:37 1995  Michael Hohmuth  <hohmuth@inf.tu-dresden.de>
205617721Speter
205717721Speter	* client.c, client.h (client_import_setup): New function.
205817721Speter	(client_import_done, client_process_import_file): Add comments
205917721Speter	regarding now-redundant code.
206017721Speter	* import.c (import): Call client_import_setup.
206117721Speter
206217721SpeterTue Jul  4 09:21:26 1995  Bernd Leibing  <bernd.leibing@rz.uni-ulm.de>
206317721Speter
206417721Speter	* rcs.c (RCS_parsercsfile_i): Rename error to l_error; SunOS4 /bin/cc
206517721Speter	doesn't like a label and function with the same name.
206617721Speter
206717721SpeterSun Jul  2 12:51:33 1995  Fred Appelman <Fred.Appelman@cv.ruu.nl>
206817721Speter
206917721Speter	* logmsg.c: Rename strlist to str_list to avoid conflict with
207017721Speter	Unixware 2.01.
207117721Speter
207217721SpeterThu Jun 29 17:37:22 1995  Paul Eggert  <eggert@twinsun.com>
207317721Speter
207417721Speter	* rcs.c (RCS_check_kflag): Allow RCS 5.7's new -kb option.
207517721Speter
207617721SpeterWed Jun 28 09:53:14 1995  James Kingdon  <kingdon@harvey.cyclic.com>
207717721Speter
207817721Speter	* Makefile.in (HEADERS): Remove options.h.in.
207917721Speter	(DISTFILES): Add options.h.in.
208017721Speter	Depend on options.h in addition to HEADERS.
208117721Speter
208217721SpeterTue Jun 27 22:37:28 1995  Vince Demarco  <vdemarco@bou.shl.com>
208317721Speter
208417721Speter	* subr.c: Don't try to do fancy waitstatus stuff for NeXT,
208517721Speter	lib/wait.h is sufficient.
208617721Speter
208717721SpeterMon Jun 26 15:17:45 1995  James Kingdon  <kingdon@harvey.cyclic.com>
208817721Speter
208917721Speter	* Makefile.in (DISTFILES): Remove RCS-patches and convert.sh.
209017721Speter
209117721SpeterFri Jun 23 13:38:28 1995  J.T. Conklin  (jtc@rtl.cygnus.com)
209217721Speter
209317721Speter	* server.c (dirswitch, serve_co): Use CVSADM macro instead of
209417721Speter        literal "CVS".
209517721Speter
209617721SpeterFri Jun 23 00:00:51 1995  James Kingdon  <kingdon@harvey.cyclic.com>
209717721Speter
209817721Speter	* README-rm-add: Do not talk about patching RCS, that only
209917721Speter	confuses people.
210017721Speter	* RCS-patches, convert.sh: Removed (likewise).
210117721Speter
210217721SpeterThu Jun 22 10:41:41 1995  James Kingdon  <kingdon@harvey.cyclic.com>
210317721Speter
210417721Speter	* subr.c: Change -1 to (size_t)-1 when comparing against a size_t.
210517721Speter
210617721SpeterWed Jun 21 16:51:54 1995  nk@ipgate.col.sw-ley.de (Norbert Kiesel)
210717721Speter
210817721Speter	* create_adm.c, entries.c, modules.c: Avoid coredumps if
210917721Speter	timestamps, tags, etc., are NULL.
211017721Speter
211117721SpeterTue Jun 20 15:52:53 1995  Jim Meyering  (meyering@comco.com)
211217721Speter
211317721Speter	* checkout.c (checkout): Remove dcl of unused variable.
211417721Speter	* client.c (call_in_directory, handle_clear_static_directory,
211517721Speter	handle_set_sticky, handle_clear_sticky, send_a_repository,
211617721Speter	send_modified, send_dirent_proc): Remove dcls of unused variables.
211717721Speter	* server.c (receive_file, serve_modified, server_cleanup):
211817721Speter	Remove dcls of unused variables.
211917721Speter	* subr.c (copy_file): Remove dcl of unused variable.
212017721Speter	* vers_ts.c (time_stamp_server): Remove dcl of unused variable.
212117721Speter
212217721SpeterMon Jun 19 13:49:35 1995  Jim Blandy  <jimb@totoro.cyclic.com>
212317721Speter
212417721Speter	* sanity.sh: Fix commencement message --- the test suite says
212517721Speter	"Ok." when it's done.
212617721Speter
212717721SpeterFri Jun 16 11:23:44 1995  Jim Meyering  (meyering@comco.com)
212817721Speter
212917721Speter	* entries.c (fgetentent): Parenthesize assignment in if-conditional.
213017721Speter
213117721SpeterThu Jun 15 17:33:28 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
213217721Speter
213317721Speter	* server.c (get_buffer_data, buf_append_char, buf_append_data):
213417721Speter	  Don't conditionalize use of "inline".  Autoconf takes care of
213517721Speter	  defining it away on systems that don't grok it.
213617721Speter
213717721SpeterThu Jun 15 13:43:38 1995  Jim Kingdon  (kingdon@cyclic.com)
213817721Speter
213917721Speter	* options.h.in (DIFF): Default to "diff" not "diff -a" since diff
214017721Speter	might not support the -a option.
214117721Speter
214217721SpeterWed Jun 14 11:29:42 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
214317721Speter
214417721Speter	* import.c (import_descend): Initialize dirlist to NULL.
214517721Speter
214617721Speter	* subr.c (copy_file): Fix infinite loop.
214717721Speter
214817721Speter	* server.c (serve_directory): fix a memory leak.
214917721Speter
215017721Speter	* checkout.c, commit.c, diff.c, history.c, import.c, log.c,
215117721Speter	  patch.c, release.c, remove.c, rtag.c, status.c, tag.c, update.c:
215217721Speter	  Use send_arg() to send command line arguments to server.
215317721Speter
215417721Speter	* commit.c (fsortcmp), find_names (fsortcmp), hash.c (hashp,
215517721Speter	  findnode), hash.h (findnode), rcs.c (RCS_addnode,
215617721Speter	  RCS_check_kflag, RCS_check_tag, RCS_isdead, RCS_parse,
215717721Speter	  RCS_parsercsfile_i), rcs.h (RCS_addnode, RCS_check_kflag,
215817721Speter	  RCS_check_tag, RCS_parse): Added const qualifiers as
215917721Speter	  appropriate.
216017721Speter	* rcs.h (RCS_isdead): Added prototype.
216117721Speter
216217721Speter	* hash.h (walklist, sortlist): correct function prototypes.
216317721Speter
216417721Speter	* ignore.c (ign_setup): don't bother checking to see if file
216517721Speter	  exists before calling ign_add_file.
216617721Speter
216717721SpeterFri Jun  9 11:24:06 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
216817721Speter
216917721Speter	* all source files (rcsid): Added const qualifer.
217017721Speter	* ignore.c (ign_default): Added const qualifier.
217117721Speter	* subr.c (numdots): Added const qualifier to function argument.
217217721Speter	* cvs.h (numdots): Added const qualifier to prototype argument.
217317721Speter
217417721Speter	* client.c (change_mode): Tied consecutive if statements testing
217517721Speter	  the same variable together with else if.
217617721Speter
217717721Speter	* import.c (import_descend): Build list of subdirectories when
217817721Speter	  reading directory, and then process the subdirectories in that
217917721Speter	  list.  This change avoids I/O overhead of rereading directory
218017721Speter	  and reloading ignore list (.cvsignore) for each subdirectory.
218117721Speter
218217721SpeterThu Jun  8 11:54:24 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
218317721Speter
218417721Speter	* import.c (import_descend): Use 4.4BSD d_type field if it is
218517721Speter	  present.
218617721Speter
218717721Speter	* lock.c (set_lockers_name): Use %lu in format and cast st_uid
218817721Speter	  field to unsigned long.
218917721Speter
219017721Speter	* import.c (import): Use RCS_check_kflag() to check -k options.
219117721Speter	  (keyword_usage, str2expmode, strn2expmode, expand_names):
219217721Speter	  Removed.
219317721Speter	* rcs.c (RCS_check_kflag): Added keyword_usage array from import.c
219417721Speter	  for more descriptive error messages.
219517721Speter
219617721Speter	* subr.c (run_setup, run_args): Changed variable argument
219717721Speter	  processing to work on machines that use <varargs.h>.
219817721Speter
219917721Speter	* subr.c (copy_file, xcmp): Changed to read the file(s) by blocks
220017721Speter	  rather than by reading the whole file into a huge buffer.  The
220117721Speter	  claim that this was reasonable because source files tend to be
220217721Speter	  small does not hold up in real world situations.   CVS is used
220317721Speter	  to manage non-source files, and mallocs of 400K+ buffers (x2
220417721Speter	  for xcmp) can easily fail due to lack of available memory or
220517721Speter	  even memory pool fragmentation.
220617721Speter	  (block_read): New function, taken from GNU cmp and slightly
220717721Speter	  modified.
220817721Speter
220917721Speter	* subr.c (xcmp): Added const qualifier to function arguments.
221017721Speter	* cvs.h (xcmp): Added const qualifer to prototype arguments.
221117721Speter
221217721SpeterWed Jun  7 11:28:31 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
221317721Speter
221417721Speter	* cvs.h (Popen): Added prototype.
221517721Speter	  (Fopen, open_file, isreadable, iswritable, isdir, isfile,
221617721Speter	  islink, make_directory, make_directories, rename_file,
221717721Speter	  link_file, unlink_file, copy_file): Added const qualifer to
221817721Speter	  prototype arguments.
221917721Speter	* subr.c (Fopen, Popen, open_file, isreadable, iswritable, isdir,
222017721Speter	  isfile, islink, make_directory, make_directories, rename_file,
222117721Speter	  link_file, unlink_file, copy_file): Added const qualifier to
222217721Speter	  function arguments.
222317721Speter
222417721Speter	* logmsg.c (logfile_write), recurse.c (do_recursion, addfile):
222517721Speter	  Don't cast void functions to a void expression.  There is at
222617721Speter	  least one compiler (MPW) that balks at this.
222717721Speter
222817721Speter	* rcs.c (keysize, valsize): Change type to size_t.
222917721Speter
223017721Speter	* add.c (add_directory): Don't cast umask() argument to int.
223117721Speter
223217721Speter	* import.c (add_rcs_file): Changed type of mode to mode_t.
223317721Speter
223417721Speter	* rcscmds.c (RCS_merge): New function.
223517721Speter	* cvs.h (RCS_merge): Declare.
223617721Speter	* update.c (merge_file, join_file): Call RCS_merge instead of
223717721Speter	  invoking rcsmerge directly.
223817721Speter
223917721Speter	* cvs.h: Include <stdlib.h> if HAVE_STDC_HEADERS, otherwise
224017721Speter	  declared getenv().
224117721Speter	* cvsrc.c, ignore.c, main.c: Removed getenv() declaration.
224217721Speter
224317721Speter	* client.c (mode_to_string): Changed to take mode_t instead of
224417721Speter	  struct statb argument.  Simplified implementation, no longer
224517721Speter	  overallocates storage for returned mode string.
224617721Speter	* client.h (mode_to_string): Updated declaration.
224717721Speter	* server.c (server_updated): Updated for new calling conventions,
224817721Speter	  pass st_mode instead of pointer to struct statb.
224917721Speter
225017721Speter	* cvs.h (CONST): Removed definition, use of const qualifier is
225117721Speter	  determined by autoconf.
225217721Speter	* history.c, modules.c, parseinfo.c: Use const instead of CONST.
225317721Speter
225417721Speter	* add.c, admin.c, checkout.c, commit.c, diff.c, import.c, log.c,
225517721Speter	  main.c, mkmodules.c, patch.c, recurse.c, remove.c, rtag.c,
225617721Speter	  server.c, status.c, subr.c, tag.c, update.c: Changed function
225717721Speter	  arguments "char *argv[]" to "char **argv" to silence lint
225817721Speter	  warnings about performing arithmetic on arrays.
225917721Speter
226017721SpeterTue Jun  6 18:57:21 1995  Jim Blandy  <jimb@totoro.cyclic.com>
226117721Speter
226217721Speter	* version.c: Fix up version string, to say that this is Cyclic
226317721Speter        CVS.
226417721Speter
226517721SpeterTue Jun  6 15:26:16 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
226617721Speter
226717721Speter	* subr.c (run_setup, run_args, run_add_arg, xstrdup): Add const
226817721Speter	  qualifier to format argument.
226917721Speter	* cvs.h (run_setup, run_args, xstrdup): Likewise.
227017721Speter
227117721Speter	* Makefile.in (SOURCES): Added rcscmds.c.
227217721Speter	  (OBJECTS): Added rcscmds.o.
227317721Speter
227417721Speter	* rcscmds.c: New file, with new functions RCS_settag, RCS_deltag,
227517721Speter	  RCS_setbranch, RCS_lock, RCS_unlock.
227617721Speter	* checkin.c, commit.c, import.c, rtag.c, tag.c: Call above
227717721Speter	  functions instead of exec'ing rcs commands.
227817721Speter	* cvs.h: Declare new functions.
227917721Speter
228017721SpeterMon May 29 21:40:54 1995  J.T. Conklin  (jtc@rtl.cygnus.com)
228117721Speter
228217721Speter	* recurse.c (start_recursion, do_recursion): Set entries to NULL
228317721Speter	  after calling Entries_Close().
228417721Speter
228517721SpeterSat May 27 08:08:18 1995  Jim Meyering  (meyering@comco.com)
228617721Speter
228717721Speter	* Makefile.in (check): Export RCSBIN only if there exists an
228817721Speter	`rcs' executable in ../../rcs/src.  Before, tests would fail when
228917721Speter	the directory existed but contained no executables.
229017721Speter	(distclean): Remove options.h, now that it's generated.
229117721Speter	(Makefile): Regenerate only *this* file when Makefile.in is
229217721Speter	out of date.  Depend on ../config.status.
229317721Speter
229417721SpeterFri May 26 14:34:28 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
229517721Speter
229617721Speter	* entries.c (Entries_Open): Added missing fclose().
229717721Speter	  (Entries_Close): Don't write Entries unless Entries.Log exists.
229817721Speter
229917721Speter	* entries.c (Entries_Open): Renamed from ParseEntries; changed to
230017721Speter	  process Entries Log files left over from previous crashes or
230117721Speter	  aborted runs.
230217721Speter	  (Entries_Close): New function, write out Entries file if
230317721Speter	  neccessary and erase Log file.
230417721Speter	  (Register): Append changed records to Log file instead of
230517721Speter	  re-writing file.
230617721Speter	  (fgetentent): New function, parse one Entry record from a file.
230717721Speter	  (AddEntryNode): It's no longer an error for two records with the
230817721Speter	  same name to be added to the list.  New records replace older
230917721Speter	  ones.
231017721Speter	* cvs.h (Entries_Open, Entries_Close): Add prototypes.
231117721Speter	  (CVSADM_ENTLOG): New constant, name of Entries Log file.
231217721Speter	* add.c, checkout.c, client.c, find_names.c, recurse.c: Use
231317721Speter	  Entries_Open()/Entries_Close() instead of ParseEntries()/dellist().
231417721Speter
231517721Speter	* add.c, admin.c, checkout.c, client.c, commit.c, diff.c,
231617721Speter	  history.c, import.c, log.c, patch.c, release.c, remove.c,
231717721Speter	  rtag.c, server.c, status.c, tag.c, update.c: Changed
231817721Speter	  conditionals so that return value of *printf is tested less than
231917721Speter	  0 instead of equal to EOF.
232017721Speter
232117721SpeterThu May 25 08:30:12 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
232217721Speter
232317721Speter	* subr.c (xmalloc): Never try to malloc zero bytes; if the user
232417721Speter	asks for zero bytes, malloc one instead.
232517721Speter
232617721SpeterWed May 24 12:44:25 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
232717721Speter
232817721Speter	* subr.c (xmalloc): Don't complain about NULL if zero bytes were
232917721Speter	requested.
233017721Speter
233117721SpeterTue May 16 21:49:05 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
233217721Speter
233317721Speter	* subr.c (xmalloc): Never try to malloc zero bytes; if the user
233417721Speter	asks for zero bytes, malloc one instead.
233517721Speter
233617721SpeterMon May 15 14:35:11 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
233717721Speter
233817721Speter	* lock.c (L_LOCK_OWNED): Removed.
233917721Speter
234017721Speter	* add.c, checkout.c, client.c, create_adm.c, cvs.h, entries.c,
234117721Speter	  find_names.c modules.c, recurse.c, release.c, repos.c, update.c:
234217721Speter	  removed CVS 1.2 compatibility/upgrade code.
234317721Speter
234417721SpeterMon May  8 11:25:07 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
234517721Speter
234617721Speter	* lock.c (write_lock): Missed one instance where rmdir(tmp) should
234717721Speter	  have been changed to clear_lock().
234817721Speter
234917721SpeterWed May  3 11:08:32 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
235017721Speter
235117721Speter	* create_adm.c, entries.c, import.c, root.c: Changed conditionals
235217721Speter	  so that return value of *printf is tested less than 0 instead of
235317721Speter	  equal to EOF --- That's all Standard C requires.
235417721Speter
235517721SpeterWed May  3 18:03:37 1995  Samuel Tardieu  <tardieu@emma.enst.fr>
235617721Speter
235717721Speter	* rcs.h: removed #ifdef CVS_PRIVATE and #endif because cvs didn't
235817721Speter	  compile anymore.
235917721Speter
236017721SpeterMon May  1 13:58:53 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
236117721Speter
236217721Speter	* rcs.c, rcs.h: Implemented lazy parsing of rcs files.
236317721Speter	  RCS_parsercsfile_i modified to read only the first two records
236417721Speter	  of rcs files, a new function RCS_reparsercsfile is called only
236517721Speter	  when additional information (tags, revision numbers, dates,
236617721Speter	  etc.) is required.
236717721Speter
236817721SpeterMon May  1 12:20:02 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
236917721Speter
237017721Speter	* Makefile.in (INCLUDES): Include -I. for options.h.
237117721Speter
237217721SpeterFri Apr 28 16:16:33 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
237317721Speter
237417721Speter	* Makefile.in (SOURCES, HEADERS, DISTFILES): Updated.
237517721Speter	(dist-dir): Renamed from dist; changed to work with DISTDIR
237617721Speter	variable passed from parent.
237717721Speter
237817721Speter	We don't want to include a file the user has to edit in the
237917721Speter	distribution.
238017721Speter	* options.h: No longer distributed.
238117721Speter	* options.h.in: Distribute this instead.
238217721Speter	* ../INSTALL, ../README: Installation instructions updated.
238317721Speter
238417721Speter	* client.c (start_rsh_server): Send the remote command to rsh as a
238517721Speter	single string.
238617721Speter
238717721SpeterFri Apr 28 00:29:49 1995  Noel Cragg  <noel@vo.com>
238817721Speter
238917721Speter	* commit.c: Added initializer for FORCE_CI
239017721Speter
239117721Speter        * sanity.sh: Fix tests added 25 Apr -- they were expecting the
239217721Speter        server to make noise, but the CVS_SERVER variable had been
239317721Speter        accidentally set with the `-Q' flag.  Ran all tests -- both
239417721Speter        locally and remotely -- to verify that the change didn't break
239517721Speter        anything.
239617721Speter
239717721SpeterThu Apr 27 12:41:52 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
239817721Speter
239917721Speter	* Makefile.in: Revise comment regarding check vs. remotecheck.
240017721Speter
240117721SpeterThu Apr 27 12:52:28 1995  Bryan O'Sullivan <bos@cyclic.com>
240217721Speter
240317721Speter	* client.c (start_rsh_server): If the CVS_RSH environment variable
240417721Speter	is set, use its contents as the name of the program to invoke
240517721Speter	instead of `rsh'.
240617721Speter
240717721SpeterThu Apr 27 12:18:38 1995  Noel Cragg  <noel@vo.com>
240817721Speter
240917721Speter	* checkout.c (checkout): To fix new bug created by Apr 23 change,
241017721Speter        re-enabled "expand-module" functionality, because it has the side
241117721Speter        effect of setting the checkin/update programs for a directory.  To
241217721Speter        solve the local/remote checkout problem that prompted this change
241317721Speter        in the first place, I performed the next change.
241417721Speter	* server.c (expand_proc): Now returns expansions for aliases only.
241517721Speter
241617721SpeterWed Apr 26 12:07:42 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
241717721Speter
241817721Speter	* rcs.c (getrcskey): Rewritten to process runs of whitespace chars
241917721Speter	  and rcs @ strings instead of using state variables "white" and
242017721Speter	  "funky".
242117721Speter
242217721SpeterFri Apr  7 15:49:25 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
242317721Speter
242417721Speter	* lock.c (unlock): Only call stat if we need to.
242517721Speter
242617721SpeterWed Apr 26 10:48:44 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
242717721Speter
242817721Speter	* server.c (new_entries_line): Don't prototype.
242917721Speter
243017721SpeterTue Apr 25 22:19:16 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
243117721Speter
243217721Speter	* sanity.sh: Add new tests to catch bugs in Apr 23 change.
243317721Speter
243417721SpeterTue Apr 25 17:10:55 1995  Roland McGrath  <roland@baalperazim.frob.com>
243517721Speter
243617721Speter	* create_adm.c (Create_Admin): Use getwd instead of getcwd.
243717721Speter
243817721SpeterSun Apr 23 20:58:32 1995  Noel Cragg  <noel@vo.com>
243917721Speter
244017721Speter       	* checkout.c (checkout): Disabled "expand-module" functionality on
244117721Speter        remote checkout, since it makes modules behave like aliases (see
244217721Speter        longer note there).  This change necessitated the change below.
244317721Speter        Also merged the like parts of a conditional.
244417721Speter
244517721Speter	* client.c (call_in_directory): Changed the algorithm that created
244617721Speter        nested and directories and the "CVS" administration directories
244717721Speter        therein.  The algoithm wrongly assumed that the name of the
244817721Speter        directory that that was to be created and the repository name were
244917721Speter        the same, which breaks modules.
245017721Speter
245117721Speter	* create_adm.c (Create_Admin), module.c (do_module), server.c
245217721Speter        (server_register), subr.c, entries.c: Added fprintfs for trace-mode
245317721Speter	debugging.
245417721Speter
245517721Speter	* client.c (client_send_expansions): Argument to function didn't
245617721Speter        have a type -- added one.
245717721Speter
245817721Speter	* server.c (new_entries_line): Arguments to this function are
245917721Speter        never used -- reoved them and fixed callers.
246017721Speter
246117721SpeterSat Apr 22 11:17:20 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
246217721Speter
246317721Speter	* rcs.c (RCS_parse): If we can't open the file, give an error
246417721Speter	message (except for ENOENT in case callers rely on that).
246517721Speter
246617721SpeterWed Apr 19 08:52:37 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
246717721Speter
246817721Speter	* client.c (send_repository): Check for CVSADM_ENTSTAT in `dir', not
246917721Speter	in `.'.
247017721Speter
247117721Speter	* sanity.sh: Add TODO list.  Revise some comments.  Add tests of
247217721Speter	one working directory adding a file and other updating it.
247317721Speter
247417721SpeterSat Apr  8 14:52:55 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
247517721Speter
247617721Speter	* Makefile.in (CFLAGS): Let configure set the default for CFLAGS.
247717721Speter	Under GCC, we want -g -O.
247817721Speter
247917721SpeterFri Apr  7 15:49:25 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
248017721Speter
248117721Speter	* root.c (Name_Root): merge identical adjacent conditionals.
248217721Speter
248317721Speter	* create_admin.c (Create_Admin): Rearranged check for CVSADM and
248417721Speter	  OCVSADM directories so that CVSADM pathname is only built once.
248517721Speter
248617721Speter	* update.c (update_dirleave_proc): Removed code to remove CVS
248717721Speter	  administration directory if command_name == "export" and to
248817721Speter	  create CVS/Root file if it is not present.  Identical code
248917721Speter	  in update_filesdone_proc() will perform these same actions.
249017721Speter	  Also removed code that read and verfied CVS/Root.  This is
249117721Speter	  expensive, and if it is necessary should happen in the
249217721Speter	  general recursion processor rather than in the update
249317721Speter	  callbacks.
249417721Speter
249517721Speter	* lock.c (masterlock): New variable, pathname of master lockdir.
249617721Speter	  (set_lock): removed lockdir argument, now constructs it itself
249717721Speter	  and stores it in masterlock.
249817721Speter	  (clear_lock): new function, removes master lockdir.
249917721Speter	  (Reader_Lock, write_lock): call clear_lock instead of removing
250017721Speter	  master lockdir.
250117721Speter	  (Reader_Lock, write_lock): #ifdef'd out CVSTFL code.
250217721Speter
250317721Speter	* main.c (main): register Lock_Cleanup signal handler.
250417721Speter	* lock.c (Reader_Lock, write_lock): no longer register
250517721Speter	  Lock_Cleanup.
250617721Speter
250717721Speter	* main.c (main): initialize new array hostname.
250817721Speter	* lock.c (Reader_Lock, write_lock): Use global hostname array.
250917721Speter	* logmsg.c (logfile_write): Likewise.
251017721Speter
251117721Speter	* recurse.c (do_dir_proc, unroll_files_proc): Use open()/fchdir()
251217721Speter	  instead of getwd()/chdir() on systems that support the fchdir()
251317721Speter	  system call.
251417721Speter
251517721SpeterFri Apr  7 06:57:20 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
251617721Speter
251717721Speter	* server.c: Include the word "server" in error message for memory
251817721Speter	exhausted, so the user knows which machine ran out of memory.
251917721Speter
252017721Speter	* sanity.sh: For remote, set CVS_SERVER to test the right server,
252117721Speter	rather than a random one from the PATH.
252217721Speter
252317721Speter	* commit.c [DEATH_STATE]: Pass -f to `ci'.
252417721Speter
252517721SpeterThu Apr  6 13:05:15 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
252617721Speter
252717721Speter	* commit.c (checkaddfile): If we didn't manage to fopen the file,
252817721Speter	don't try to fclose it.
252917721Speter
253017721Speter	* client.c (handle_m, handle_e): Use fwrite, rather than a loop of
253117721Speter	putc's.  Sometimes these streams are unbuffered.
253217721Speter
253317721SpeterTue Apr  4 11:33:56 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
253417721Speter
253517721Speter	* (DISTFILES): Include cvsbug.sh, ChangeLog, NOTES, RCS-patches,
253617721Speter	README-rm-add, ChangeLog.fsf, sanity.sh, sanity.el, and
253717721Speter	.cvsignore.
253817721Speter
253917721SpeterMon Mar 27 08:58:42 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
254017721Speter
254117721Speter	* rcs.c (RCS_parsercsfile_i): Accept `dead' state regardless of
254217721Speter	DEATH_STATE define.  Revise comments regarding DEATH_STATE versus
254317721Speter	CVSDEA versus the scheme which uses a patched RCS.
254417721Speter	* README-rm-add, RCS-patches: Explain what versions of CVS need
254517721Speter	RCS patches.
254617721Speter
254717721SpeterSat Mar 25 18:51:39 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
254817721Speter
254917721Speter	* server.c (server_cleanup): Only do the abysmal kludge of waiting
255017721Speter 	for command and draining the pipe #ifdef sun.  The code makes
255117721Speter 	assumptions not valid on all systems, and is only there to
255217721Speter 	workaround a SunOS bug.
255317721Speter
255417721SpeterWed Mar 22 21:55:56 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
255517721Speter
255617721Speter	* server.c (mkdir_p): Call stat only if we get the EACCES.  Faster
255717721Speter	and more elegant.
255817721Speter
255917721SpeterTue Jan 31 20:59:19 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
256017721Speter
256117721Speter	* server.c: Try to avoid starting the "rm -rf" at cleanup time
256217721Speter	until after subprocesses have finished.
256317721Speter	(command_fds_to_drain, max_command_fd): New variables.
256417721Speter	(do_cvs_command): Set them.
256517721Speter	(command_pid_is_dead): New variable.
256617721Speter	(wait_sig): New function.
256717721Speter	(server_cleanup): If command_pid is nonzero, wait for it to die,
256817721Speter	draining output from it in the meantime.  If nonzero SIG was
256917721Speter	passed, send a signal to the subprocess, to encourage it to die
257017721Speter	soon.
257117721Speter
257217721Speter	* main.c (usage): Argument is now `const char *const *'.
257317721Speter	* cvs.h (usage): Changed prototype.
257417721Speter	(USE): Make new variable `const'.
257517721Speter	* add.c (add_usage), admin.c (admin_usage), checkout.c
257617721Speter	(checkout_usage, export_usage, checkout), commit.c (commit_usage),
257717721Speter	diff.c (diff_usage), history.c (history_usg), import.c
257817721Speter	(import_usage, keyword_usage), log.c (log_usage), main.c (usg),
257917721Speter	patch.c (patch_usage), release.c (release_usage), remove.c
258017721Speter	(remove_usage), rtag.c (rtag_usage), server.c (server), status.c
258117721Speter	(status_usage), tag.c (tag_usage), update.c (update_usage): Usage
258217721Speter	messages are now const arrays of pointers to const char.
258317721Speter
258417721Speter	* import.c (comtable): Now const.
258517721Speter	* main.c (rcsid): Now static.
258617721Speter	(cmd): Now const.
258717721Speter	(main): Local variable CM now points to const.
258817721Speter	* server.c (outbuf_memory_error): Local var MSG now const.
258917721Speter
259017721Speter	* client.c (client_commit_usage): Deleted.
259117721Speter
259217721SpeterSat Dec 31 15:51:55 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
259317721Speter
259417721Speter	* logmsg.c (do_editor): Allocate enough space for trailing '\0'.
259517721Speter
259617721SpeterFri Mar  3 11:59:49 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
259717721Speter
259817721Speter	* cvsbug.sh: Call it "Cyclic CVS" now, not "Remote CVS".  Call it
259917721Speter	version C1.4A, not 1.4A2-remote.  Send bugs to cyclic-cvs, not
260017721Speter	remote-cvs.
260117721Speter
260217721Speter	* classify.c (Classify_File): Put check for dead file inside
260317721Speter	"#ifdef DEATH_SUPPORT".
260417721Speter
260517721SpeterThu Feb 23 23:03:43 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
260617721Speter
260717721Speter	* update.c (join_file): Don't pass the -E option to rcsmerge here,
260817721Speter	either (see Jan 22 change).
260917721Speter
261017721SpeterMon Feb 13 13:28:46 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
261117721Speter
261217721Speter	* cvsbug.sh: Send bug reports to remote-cvs@cyclic.com, rather
261317721Speter	than to the ordinary CVS bug address.  This does mean we'll have
261417721Speter	to wade through GNATS-style bug reports, sigh.
261517721Speter
261617721SpeterWed Feb  8 06:42:27 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
261717721Speter
261817721Speter	* server.c: Don't include <sys/stat.h>; system.h already does, and
261917721Speter 	4.3BSD can't take it twice.
262017721Speter
262117721Speter	* subr.c [! HAVE_VPRINTF] (run_setup, run_args): Don't use va_dcl
262217721Speter 	in declaration.  Declare the a1..a8 args which are used in the
262317721Speter 	sprintf call.
262417721Speter	* cvs.h [! HAVE_VPRINTF] (run_setup, run_args): Don't prototype
262517721Speter 	args, to avoid conflicting with the function definitions
262617721Speter 	themselves.
262717721Speter
262817721SpeterTue Feb  7 20:10:00 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
262917721Speter
263017721Speter	* client.c (update_entries): Pass the patch subprocess the switch
263117721Speter	"-b ~", not "-b~"; the latter form seems not to work with patch
263217721Speter	version 2.0 and earlier --- it takes the next argv element as the
263317721Speter	backup suffix, and thus doesn't notice that the patch file's name
263417721Speter	has been specified, thus doesn't find the patch, thus...  *aargh*
263517721Speter
263617721SpeterFri Feb  3 20:28:21 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
263717721Speter
263817721Speter	* log.c (log_option_with_arg): New function.
263917721Speter	(cvslog): Use it and send_arg to handle the rlog options that take
264017721Speter	arguments.  The code used to use send_option_string for
264117721Speter	everything, which assumes that "-d1995/01/02" is equivalent to
264217721Speter	"-d -1 -9 -9 -5 ...".
264317721Speter
264417721SpeterTue Jan 31 15:02:01 1995  Jim Blandy  <jimb@floss.life.uiuc.edu>
264517721Speter
264617721Speter	* server.c: #include <sys/stat.h> for the new stat call in mkdir_p.
264717721Speter	(mkdir_p): Don't try to create the intermediate directory if it
264817721Speter	exists already.  Some systems return EEXIST, but others return
264917721Speter	EACCES, which we can't otherwise distinguish from a real access
265017721Speter	problem.
265117721Speter
265217721SpeterSun Jan 22 15:25:45 1995  Jim Blandy  <jimb@totoro.bio.indiana.edu>
265317721Speter
265417721Speter	* update.c (merge_file): My rcsmerge doesn't accept a -E option,
265517721Speter	and it doesn't look too important, so don't pass it.
265617721Speter
265717721SpeterFri Jan 20 14:24:58 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
265817721Speter
265917721Speter	* client.c (do_deferred_progs): Don't try to chdir to toplevel_wd
266017721Speter	if it has not been set.
266117721Speter	(process_prune_candidates): Likewise.
266217721Speter
266317721SpeterMon Nov 28 09:59:14 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
266417721Speter
266517721Speter	* client.c (client_commit): Move guts of function from here...
266617721Speter	* commit.c (commit): ...to here.
266717721Speter
266817721SpeterMon Nov 28 15:14:36 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
266917721Speter
267017721Speter	* server.c (buf_input_data, buf_send_output): Start cpp directives
267117721Speter	in column 1, otherwise Sun 4 pcc complains.
267217721Speter
267317721SpeterMon Nov 28 09:59:14 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
267417721Speter
267517721Speter	* client.c (add_prune_candidate): Don't try to prune ".".
267617721Speter
267717721SpeterTue Nov 22 05:27:10 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
267817721Speter
267917721Speter	* server.c, client.c: More formatting cleanups.
268017721Speter
268117721Speter	* client.h, client.c: New variable client_prune_dirs.
268217721Speter	* update.c (update), checkout.c (checkout): Set it.
268317721Speter	* client.c (add_prune_candidate, process_prune_candidates): New
268417721Speter	functions.
268517721Speter	(send_repository, call_in_directory, get_responses_and_close):
268617721Speter	Call them.
268717721Speter
268817721SpeterWed Nov 23 01:17:32 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
268917721Speter
269017721Speter	* server.c (do_cvs_command): Don't select on STDOUT_FILENO unless
269117721Speter	we have something to write.
269217721Speter
269317721SpeterTue Nov 22 05:27:10 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
269417721Speter
269517721Speter	* remove.c (remove_fileproc): Only call server_checked_in if we
269617721Speter	actually are changing the entries file.
269717721Speter
269817721Speter	* server.c (server_write_entries): New function.
269917721Speter	(dirswitch, do_cvs_command): Call it.
270017721Speter	(serve_entry, serve_updated): Just update in-memory data
270117721Speter	structures, don't mess with CVS/Entries file.
270217721Speter
270317721SpeterMon Nov 21 10:15:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
270417721Speter
270517721Speter	* server.c (server_checked_in): Set scratched_file to NULL after
270617721Speter	using it.
270717721Speter
270817721Speter	* checkin.c (Checkin): If the file was changed by the checkin,
270917721Speter	call server_updated not server_checked_in.
271017721Speter
271117721SpeterSun Nov 20 08:01:51 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
271217721Speter
271317721Speter	* client.c (send_repository): Move check for update_dir NULL to
271417721Speter	before where we check last_update_dir.  Check for "" here too.
271517721Speter
271617721Speter	* client.c (send_repository): Use new argument dir.
271717721Speter
271817721Speter	* client.c: Pass new argument dir to send_repository and
271917721Speter	send_a_repository.
272017721Speter
272117721Speter	* server.c, server.h (server_prog): New function.
272217721Speter	* modules.c (do_modules): Call it if server_expanding.
272317721Speter	* client.c: Support Set-checkin-prog and Set-update-prog responses.
272417721Speter	* server.c, client.c: Add Checkin-prog and Update-prog requests.
272517721Speter
272617721SpeterFri Nov 18 14:04:38 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
272717721Speter
272817721Speter	* client.c (get_short_pathname, is_cvsroot_level,
272917721Speter	call_in_directory): Base whether this is new-style or
273017721Speter	old-style based on whether we actually used the Directory request,
273117721Speter	not based on whether the pathname is absolute.  Rename
273217721Speter	directory_supported to use_directory.
273317721Speter	* server.c: Rename use_relative_pathnames to use_dir_and_repos.
273417721Speter	* client.c (send_a_repository): If update_dir is absolute, don't
273517721Speter	use it to try to reconstruct how far we have recursed.
273617721Speter
273717721Speter	* server.c, server.h, client.c, client.h, vers_ts.c, update.h:
273817721Speter	More cosmetic changes (identation, PARAMS vs. PROTO, eliminate
273917721Speter	alloca, etc.) to remote CVS to make it more like the rest of CVS.
274017721Speter
274117721Speter	* server.c: Make server_temp_dir just the dir name, not the name
274217721Speter	with "%s" at the end.
274317721Speter	* server.c, client.c: Add "Max-dotdot" request, and use it to make
274417721Speter	extra directories in server_temp_dir if needed.
274517721Speter
274617721SpeterThu Nov 17 09:03:28 1994  Jim Kingdon  <kingdon@cygnus.com>
274717721Speter
274817721Speter	* client.c: Fix two cases where NULL was used and 0 was meant.
274917721Speter
275017721SpeterMon Nov 14 08:48:41 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
275117721Speter
275217721Speter	* server.c (serve_unchanged): Set noexec to 0 when calling Register.
275317721Speter
275417721Speter	* update.c (merge_file): Don't call xcmp if noexec.
275517721Speter
275617721SpeterFri Nov 11 13:58:22 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
275717721Speter
275817721Speter	* client.c (call_in_directory): Deal with it if reposdirname is
275917721Speter	not a subdirectory of toplevel_repos.
276017721Speter
276117721SpeterMon Nov  7 09:12:01 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
276217721Speter
276317721Speter	* patch.c: If file is removed and we don't have a tag or date,
276417721Speter	just print "current release".
276517721Speter
276617721Speter	* classify.c (Classify_File): Treat dead files appropriately.
276717721Speter
276817721SpeterFri Nov  4 07:33:03 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
276917721Speter
277017721Speter	* main.c (main) [SERVER_SUPPORT]: Move call to getwd past where we
277117721Speter	know whether we are the server or not.  Set CurDir to "<remote>"
277217721Speter	if we are the server.
277317721Speter
277417721Speter	* client.c: Remove #if 0'd function option_with_arg.
277517721Speter	Remove #if 0'd code pertaining to the old way of logging the
277617721Speter	session.
277717721Speter
277817721Speter	* client.c (start_rsh_server): Don't invoke the server with the
277917721Speter	-d option.
278017721Speter	* server.c (serve_root): Test root for validity, just like main.c
278117721Speter	does for non-remote CVS.
278217721Speter	* main.c (main): If `cvs server' happens with a colon in the
278317721Speter	CVSroot, just handle it normally; don't make it an error.
278417721Speter
278517721SpeterWed Nov  2 11:09:38 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
278617721Speter
278717721Speter	* client.c (send_dirent_proc): If dir does not exist, just return
278817721Speter	R_SKIP_ALL.
278917721Speter
279017721Speter	* server.c, client.c: Add Directory request and support for
279117721Speter	local relative pathnames (along with the repository absolute
279217721Speter	pathnames).
279317721Speter	* update.c, add.c, checkout.c, checkin.c, cvs.h, create_adm.c,
279417721Speter	commit.c, modules.c, server.c, server.h, remove.c, client.h:
279517721Speter	Pass update_dir to server_* functions.  Include update_dir in
279617721Speter	more error messages.
279717721Speter
279817721SpeterFri Oct 28 08:54:00 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
279917721Speter
280017721Speter	* client.c: Reformat to bring closer to cvs standards for brace
280117721Speter	position, comment formatting, etc.
280217721Speter
280317721Speter	* sanity.sh: Remove wrong "last mod" line.  Convert more tests to
280417721Speter	put PASS or FAIL in log file.  Change it so arguments to the
280517721Speter	script specify which tests to run.
280617721Speter
280717721Speter	* client.c, client.h, server.c, checkout.c: Expand modules in
280817721Speter	separate step from the checkout itself.
280917721Speter
281017721SpeterSat Oct 22 20:33:35 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
281117721Speter
281217721Speter	* update.c (join_file): When checking for null return from
281317721Speter	RCS_getversion, still do return even if quiet flag is set.
281417721Speter
281517721SpeterThu Oct 13 07:36:11 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
281617721Speter
281717721Speter	* client.c (send_files): Call send_repository even if
281817721Speter	toplevel_repos was NULL.
281917721Speter
282017721Speter	* server.c (server_updated): If joining, don't remove file.
282117721Speter
282217721Speter	* update.c (join_file): If server and file is unmodified, check it
282317721Speter	out before joining.  After joining, call server_updated.  New
282417721Speter	argument repository.
282517721Speter
282617721Speter	* server.c, server.h (server_copy_file): New function.
282717721Speter	* update.c (update_file_proc, join_file): Call it.
282817721Speter	* client.c (copy_file, handle_copy_file): New functions.
282917721Speter	* client.c (responses): Add "Copy-file".
283017721Speter
283117721Speter	* client.c, client.h: Make toplevel_wd, failed_patches and
283217721Speter	failed_patches_count extern.
283317721Speter	* client.c (client_update): Move guts of function from here...
283417721Speter	* update.c (update): ...to here.
283517721Speter
283617721Speter	* client.c, checkout.c: Likewise for checkout.
283717721Speter
283817721Speter	* client.c (is_cvsroot_level): New function.
283917721Speter	(handle_set_sticky, handle_clear_sticky,
284017721Speter	handle_clear_static_directory): Call it, instead of checking
284117721Speter	short_pathname for a slash.
284217721Speter
284317721Speter	* client.c, client.h (client_process_import_file,
284417721Speter	client_import_done): New functions.
284517721Speter	* import.c (import, import_descend): Use them.
284617721Speter	* import.c (import_descend): If server, don't mention ignored CVS
284717721Speter	directories.
284817721Speter	* import.c (import_descend_dir): If client, don't print warm
284917721Speter	fuzzies, or make directories in repository.  If server, print warm
285017721Speter	fuzzies to stdout not stderr.
285117721Speter	* client.c (send_modified): New function, broken out from
285217721Speter	send_fileproc.
285317721Speter	(send_fileproc): Call it.
285417721Speter
285517721Speter	* client.c (handle_clear_sticky, handle_set_sticky,
285617721Speter	handle_clear_static_directory, handle_set_static_directory): If
285717721Speter	command is export, just return.
285817721Speter	(call_in_directory, update_entries): If command is export, don't
285917721Speter	create CVS directories, CVS/Entries files, etc.
286017721Speter	* update.c (update_filesdone_proc): Don't remove CVS directories if
286117721Speter	client_active.
286217721Speter
286317721Speter	* client.c (send_a_repository): Instead of insisting that
286417721Speter	repository end with update_dir, just strip as many pathname
286517721Speter	components from the end as there are in update_dir.
286617721Speter
286717721Speter	* Makefile.in (remotecheck): New target, pass -r to sanity.sh.
286817721Speter	* sanity.sh: Accept -r argument which means to test remote cvs.
286917721Speter
287017721Speter	* tag.c (tag), rtag.c (rtag), patch.c (patch), import.c (import),
287117721Speter	admin.c (admin), release.c (release): If client_active, connect to
287217721Speter	the server and send the right requests.
287317721Speter	* main.c (cmds): Add these commands.
287417721Speter	(main): Remove code which would strip hostname off cvsroot and try
287517721Speter	the command locally.  There are no longer any commands which are
287617721Speter	not supported.
287717721Speter	* client.c, client.h (client_rdiff, client_tag, client_rtag,
287817721Speter	client_import, client_admin, client_export, client_history,
287917721Speter	client_release): New functions.
288017721Speter	* server.c (serve_rdiff, serve_tag, serve_rtag, serve_import,
288117721Speter	serve_admin, serve_export, serve_history, serve_release): New
288217721Speter	functions.
288317721Speter	(requests): List them.
288417721Speter	* server.c: Declare cvs commands (add, admin, etc.).
288517721Speter	* cvs.h, server.h: Don't declare any of them here.
288617721Speter	* main.c: Restore declarations of cvs commands which were
288717721Speter	previously removed.
288817721Speter
288917721Speter	* cvs.h: New define DEATH_STATE, commented out for now.
289017721Speter	* rcs.c (RCS_parsercsfile_i), commit.c (remove_file, checkaddfile)
289117721Speter	[DEATH_STATE]: Use RCS state to record a dead file.
289217721Speter
289317721SpeterMon Oct  3 09:44:54 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
289417721Speter
289517721Speter	* status.c (status_fileproc): Now that ts_rcs is just one time,
289617721Speter	don't try to print the second time from it.  (Same as raeburn 20
289717721Speter	Aug change, it accidentally got lost in 1.4 Alpha-1 merge).
289817721Speter
289917721Speter	* cvs.h (CVSDEA): Added (but commented out for now).
290017721Speter	* rcs.c (RCS_parsercsfile_i) [CVSDEA]: Also look in CVSDEA to see if
290117721Speter	something is dead.
290217721Speter	* commit.c (ci_new_rev, mark_file) [CVSDEA]: New functions.
290317721Speter	(remove_file, checkaddfile) [CVSDEA]: Use them instead of ci -K.
290417721Speter	* find_names.c (find_dirs) [CVSDEA]: Don't match CVSDEA directories.
290517721Speter	* update.c (checkout_file): Check RCS_isdead rather than relying
290617721Speter	on co to not create the file.
290717721Speter
290817721Speter	* sanity.sh: Direct output to logfile, not /dev/null.
290917721Speter
291017721Speter	* subr.c (run_exec): Print error message if we are unable to exec.
291117721Speter
291217721Speter	* commit.c (remove_file): Call Scratch_Entry when removing tag
291317721Speter	from file.  The DEATH_SUPPORT ifdef was erroneous.
291417721Speter
291517721SpeterSun Oct  2 20:33:27 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
291617721Speter
291717721Speter	* commit.c (checkaddfile): Instead of calling isdir before
291817721Speter	attempting to create the directory, just ignore EEXIST errors from
291917721Speter	mkdir.  (This removes some DEATH_SUPPORT ifdefs which actually had
292017721Speter	nothing to do with death support).
292117721Speter
292217721SpeterThu Sep 29 09:23:57 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
292317721Speter
292417721Speter	* diff.c (diff): Search attic too if we have a second tag/date.
292517721Speter	(diff_fileproc): If we have a second tag/date, don't do all the
292617721Speter	checking regarding the user file.
292717721Speter
292817721SpeterMon Sep 26 12:02:15 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
292917721Speter
293017721Speter	* checkin.c (Checkin): Check for error from unlink_file.
293117721Speter
293217721SpeterMon Sep 26 08:51:10 1994  Anthony J. Lill  (ajlill@ajlc.waterloo.on.ca)
293317721Speter
293417721Speter	* rcs.c (getrcskey): Allocate space for terminating '\0' if
293517721Speter	necessary.
293617721Speter
293717721SpeterSat Sep 24 09:07:37 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
293817721Speter
293917721Speter	* commit.c (commit_fileproc): Set got_message = 1 when calling
294017721Speter	do_editor (accidentally omitted from last change).
294117721Speter
294217721SpeterFri Sep 23 11:59:25 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
294317721Speter
294417721Speter	Revert buggy parts of Rich's change of 1 Nov 1993 (keeping the
294517721Speter	dynamic buffer allocation, which was the point of that change).
294617721Speter	* logmsg.c (do_editor): Reinstate message arg, but make it char
294717721Speter	**messagep instead of char *message.  Change occurances of message
294817721Speter	to *messagep.  Char return type from char * back to void.
294917721Speter	* cvs.h: Change do_editor declaration.
295017721Speter	* commit.c: Reinstate got_message variable
295117721Speter	(commit_filesdoneproc, commit_fileproc, commit_direntproc): Use it.
295217721Speter	* import.c (import), commit.c (commit_fileproc,
295317721Speter	commit_direntproc): Pass &message to do_editor; don't expect it to
295417721Speter	return a value.
295517721Speter	* client.c (client_commit): Likewise.
295617721Speter	* import.c (import): Deal with it if message is NULL.
295717721Speter
295817721SpeterWed Sep 21 09:43:25 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
295917721Speter
296017721Speter	* server.c (server_updated): If the file doesn't exist, skip it.
296117721Speter
296217721Speter	* diff.c, client.h, client.c: Rename diff_client_senddate to
296317721Speter	client_senddate and move from diff.c to client.c.
296417721Speter	* client.c (client_update, client_checkout): Use it.
296517721Speter
296617721SpeterSat Sep 17 08:36:58 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
296717721Speter
296817721Speter	* checkout.c (checkout_proc): Don't pass NULL to Register for
296917721Speter	version.  (should fix "cvs co -r <nonexistent-tag> <file>"
297017721Speter	coredump on Solaris).
297117721Speter
297217721SpeterFri Sep 16 08:38:02 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
297317721Speter
297417721Speter	* diff.c (diff_fileproc): Set top_rev from vn_user, not vn_rcs.
297517721Speter	Rename it to user_file_rev because it need not be the head of any
297617721Speter	branch.
297717721Speter	(diff_file_nodiff): After checking user_file_rev, if we have both
297817721Speter	use_rev1 and use_rev2, compare them instead of going on to code
297917721Speter	which assumes use_rev2 == NULL.
298017721Speter
298117721SpeterThu Sep 15 08:20:23 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
298217721Speter
298317721Speter	* status.c (status): Return a value in client_active case.
298417721Speter
298517721SpeterThu Sep 15 15:02:12 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
298617721Speter
298717721Speter	* server.c (serve_modified): Create the file even if the size is
298817721Speter	zero.
298917721Speter
299017721SpeterThu Sep 15 08:20:23 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
299117721Speter
299217721Speter	* lock.c (readers_exist): Clear errno each time around the loop,
299317721Speter	not just the first time.
299417721Speter
299517721Speter	* client.c (start_server): Don't send Global_option -q twice.
299617721Speter
299717721Speter	* no_diff.c (No_Difference): Check for error from unlink.
299817721Speter
299917721Speter	* no_diff.c, cvs.h (No_Difference): New args repository,
300017721Speter	update_dir.  Call server_update_entries if needed.  Use update_dir
300117721Speter	in error message.
300217721Speter	* classify.c (Classify_File): Pass new args to No_Difference.
300317721Speter
300417721Speter	* server.c (server_update_entries, server_checked_in,
300517721Speter	server_updated): Don't do anything if noexec.
300617721Speter
300717721Speter	* client.c (send_fileproc): Rather than guessing how big the gzip
300817721Speter	output may be, just realloc the buffer as needed.
300917721Speter
301017721SpeterTue Sep 13 13:22:03 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
301117721Speter
301217721Speter	* lock.c: Check for errors from unlink, readdir, and closedir.
301317721Speter
301417721Speter	* classify.c (Classify_File): Pass repository and update_dir to
301517721Speter	sticky_ck.
301617721Speter	(sticky_ck): New args repository and update_dir.
301717721Speter	* server.c, server.h (server_update_entries): New function.
301817721Speter	* classify.c (sticky_ck): Call it.
301917721Speter	* client.c: New response "New-entry".
302017721Speter	* client.c (send_fileproc): Send tag/date from vers->entdata, not
302117721Speter	from vers itself.
302217721Speter
302317721SpeterMon Sep 12 07:07:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
302417721Speter
302517721Speter	* server.c: Clean up formatting ("=  (errno)" -> "= errno").
302617721Speter
302717721Speter	* cvs.h: Declare strerror.
302817721Speter
302917721Speter	* client.c: Add code to deal with Set-sticky and Clear-sticky
303017721Speter	responses, and Sticky request.
303117721Speter	* server.c: Add code to deal with Sticky request.
303217721Speter	* server.c, server.h (server_set_sticky): New function.
303317721Speter	* create_adm.c (Create_Admin), update.c (update, update_dirent_proc),
303417721Speter	commit.c (commit_dirleaveproc): Call it.
303517721Speter	* client.c, client.h (send_files): Add parameter aflag.
303617721Speter	* add.c (add), diff.c (diff), log.c (cvslog), remove.c (cvsremove),
303717721Speter	status.c (status),
303817721Speter	client.c (client_commit, client_update, client_checkout): Pass it.
303917721Speter	* client.c (client_update): Add -A flag.
304017721Speter
304117721SpeterFri Sep  9 07:05:35 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
304217721Speter
304317721Speter	* entries.c (WriteTag): Check for error from unlink_file.
304417721Speter
304517721Speter	* server.c (server_updated): Initialize size to 0.  Previously if
304617721Speter	the file was zero length, the variable size got used without being
304717721Speter	set.
304817721Speter
304917721SpeterThu Sep  8 14:23:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
305017721Speter
305117721Speter	* server.c (serve_repository): Check for error from fopen on
305217721Speter	CVSADM_ENT.
305317721Speter
305417721Speter	* update.c (update, update_dirent_proc): Check for errors when
305517721Speter	removing Entries.Static.
305617721Speter
305717721Speter	* client.c: Add code to deal with Set-static-directory and
305817721Speter	Clear-static-directory responses, and Static-directory request.
305917721Speter	* server.c, server.h (server_clear_entstat, server_set_entstat):
306017721Speter	New functions.
306117721Speter	* update.c, checkout.c, modules.c: Call them.
306217721Speter	* server.c: Add code to deal with Static-directory request.
306317721Speter
306417721Speter	* server.c, client.c: Use strchr and strrchr instead of index and
306517721Speter	rindex.
306617721Speter
306717721Speter	* server.c (serve_unchanged, serve_lost): Change comments which
306817721Speter	referred to changing timestamp; we don't always change the
306917721Speter	timestamp in those cases anymore.
307017721Speter
307117721SpeterWed Sep  7 10:58:12 1994  J.T. Conklin  (jtc@rtl.cygnus.com)
307217721Speter
307317721Speter	* cvsrc.c (read_cvsrc): Don't call getenv() three times when one
307417721Speter	  time will do.
307517721Speter
307617721Speter	* subr.c (xmalloc, xrealloc): Change type of bytes argument from
307717721Speter	  int to size_t and remove the test that checks if it is less than
307817721Speter	  zero.
307917721Speter	* cvs.h (xmalloc, xrealloc): Update prototype.
308017721Speter
308117721SpeterThu Sep  1 12:22:20 1994  Jim Kingdon  (kingdon@cygnus.com)
308217721Speter
308317721Speter	* update.c (merge_file, join_file): Pass -E to rcsmerge.
308417721Speter	(merge_file): If rcsmerge doesn't change the file, say so.
308517721Speter
308617721Speter	* recurse.c, cvs.h (start_recursion): New argument wd_is_repos.
308717721Speter	* recurse.c (start_recursion): Use it instead of checking whether
308817721Speter	command_name is rtag to find out if we are cd'd to the repository.
308917721Speter	* client.c, update.c, commit.c, status.c, diff.c, log.c, admin.c,
309017721Speter	remove.c, tag.c: Pass 0 for wd_is_repos.
309117721Speter	* rtag.c, patch.c: Pass 1 for wd_is_repos.
309217721Speter
309317721Speter	* classify.c, cvs.h (Classify_File): New argument pipeout.
309417721Speter	* classify.c (Classify_File): If pipeout, don't complain if the
309517721Speter	file is already there.
309617721Speter	* update.c, commit.c, status.c: Change callers.
309717721Speter
309817721Speter	* mkmodules.c (main): Don't print "reminders" if commitinfo,
309917721Speter	loginfo, rcsinfo, or editinfo files are missing.
310017721Speter
310117721SpeterMon Aug 22 23:22:59 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
310217721Speter
310317721Speter	* server.c (strerror): Static definition replaced by extern
310417721Speter	declaration.
310517721Speter
310617721SpeterSun Aug 21 07:16:27 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
310717721Speter
310817721Speter	* client.c (update_entries): Run "patch" with input from
310917721Speter	/dev/null, so if it's the wrong version, it fails quickly rather
311017721Speter	than waiting for EOF from terminal before failing.
311117721Speter
311217721SpeterSat Aug 20 04:16:33 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
311317721Speter
311417721Speter	* server.c (serve_unchanged): Instead of creating a file with a
311517721Speter	zero timestamp, rewrite the entries file to have "=" in the
311617721Speter	timestamp field.
311717721Speter	* vers_ts.c (mark_lost, mark_unchanged): New macros.
311817721Speter	(time_stamp_server): Use them, for clarity.  Interpret "="
311917721Speter	timestamp as an unchanged file.  A zero-timestamp file should
312017721Speter	never be encountered now in use_unchanged mode.
312117721Speter
312217721Speter	* client.c (start_server): If CVS_CLIENT_PORT indicates a
312317721Speter	non-positive port number, skip straight to rsh connection.
312417721Speter
312517721Speter	* status.c (status_fileproc): Fix ts_rcs reference when printing
312617721Speter	version info, to correspond to new Entries file format.  Don't
312717721Speter	print it at all if server_active, because it won't have any useful
312817721Speter	data.
312917721Speter
313017721SpeterThu Aug 18 14:38:21 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
313117721Speter
313217721Speter	* cvs.h (status): Declare.
313317721Speter	* client.c (client_status): New function.
313417721Speter
313517721Speter	* client.h (client_status): Declare.
313617721Speter	* main.c (cmds): Include it.
313717721Speter	* server.c (serve_status): New function.
313817721Speter	(requests): Add it.
313917721Speter	* status.c (status): Do the remote thing if client_active.
314017721Speter
314117721Speter	* client.c (supported_request): New function.
314217721Speter	(start_server): Use it.
314317721Speter
314417721Speter	* server.c (receive_partial_file): New function, broken out from
314517721Speter	serve_modified.  Operate with fixed-size local buffer, instead of
314617721Speter	growing stack frame by entire file size.
314717721Speter	(receive_file): New function, broken out from serve_modified.
314817721Speter	(serve_modified): Call it.
314917721Speter	(server): Print out name of unrecognized request.
315017721Speter
315117721Speter	More generic stream-filtering support:
315217721Speter	* client.c (close_on_exec, filter_stream_through_program): New
315317721Speter	functions.
315417721Speter	(server_fd): New variable.
315517721Speter	(get_responses_and_close): Direct non-rsh connection is now
315617721Speter	indicated by server_fd being non-negative.  File descriptors for
315717721Speter	to_server and from_server may now be different in case "tee"
315817721Speter	filtering is being done.  Wait for rsh_pid specifically.
315917721Speter	(start_server): Use filter_stream_through_program for "tee"
316017721Speter	filter, and enable it for direct Kerberos-authenticated
316117721Speter	connections.  Use dup to create new file descriptors for server
316217721Speter	connection if logging is enabled.
316317721Speter	(start_rsh_server): Disable code that deals with logging.
316417721Speter
316517721Speter	Per-file compression support:
316617721Speter	* cvs.h (gzip_level): Declare.
316717721Speter	* main.c (usg): Describe new -z argument.
316817721Speter	(main): Recognize it and set gzip_level.
316917721Speter	* client.c (filter_through_gzip, filter_through_gunzip): New
317017721Speter	functions to handle compression.
317117721Speter	(update_entries): If size starts with "z", uncompress
317217721Speter	(start_server): If gzip_level is non-zero and server supports it,
317317721Speter	issue gzip-file-contents request.
317417721Speter	(send_fileproc): Optionally compress file contents.  Use a
317517721Speter	slightly larger buffer, anticipating the worst case.
317617721Speter	* server.c (gzip_level): Define here.
317717721Speter	(receive_file): Uncompress file contents if needed.
317817721Speter	(serve_modified): Recognize "z" in file size and pass receive_file
317917721Speter	appropriate flag.
318017721Speter	(buf_read_file_to_eof, buf_chain_length): New functions.
318117721Speter	(server_updated): Call them when sending a compressed file.
318217721Speter	(serve_gzip_contents): New function; set gzip_level.
318317721Speter	(requests): Added gzip-file-contents request.
318417721Speter
318517721SpeterWed Aug 17 09:37:44 1994  J.T. Conklin  (jtc@cygnus.com)
318617721Speter
318717721Speter	* find_names.c (find_dirs): Use 4.4BSD filesystem feature (it
318817721Speter	  contains the file type in the dirent structure) to avoid
318917721Speter	  stat'ing each file.
319017721Speter
319117721Speter	* commit.c (remove_file,checkaddfile): Change type of umask
319217721Speter	  variables from int to mode_t.
319317721Speter	* subr.c (): Likewise.
319417721Speter
319517721SpeterTue Aug 16 19:56:34 1994  Mark Eichin  (eichin@cygnus.com)
319617721Speter
319717721Speter	* diff.c (diff_fileproc): Don't use diff_rev* because they're
319817721Speter	invariant across calls -- add new variable top_rev.
319917721Speter	(diff_file_nodiff): After checking possible use_rev* values, if
320017721Speter	top_rev is set drop it in as well (if we don't already have two
320117721Speter	versions) and then clear it for next time around.
320217721Speter
320317721SpeterWed Aug 10 20:50:47 1994  Mark Eichin  (eichin@cygnus.com)
320417721Speter
320517721Speter	* diff.c (diff_fileproc): if ts_user and ts_rcs match, then the
320617721Speter	file is at the top of the tree -- so we might not even have a
320717721Speter	copy. Put the revision into diff_rev1 or diff_rev2.
320817721Speter
320917721SpeterWed Aug 10 14:55:38 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
321017721Speter
321117721Speter	* server.c (do_cvs_command): Use waitpid.
321217721Speter
321317721Speter	* subr.c (run_exec): Always use waitpid.
321417721Speter
321517721Speter	* Makefile.in (CC, LIBS): Define here, in case "make" is run in
321617721Speter	this directory instead of top level.
321717721Speter
321817721SpeterWed Aug 10 13:57:06 1994  Mark Eichin  (eichin@cygnus.com)
321917721Speter
322017721Speter	* client.c (krb_get_err_text): use HAVE_KRB_GET_ERR_TEXT to
322117721Speter	determine if we need to use the array or the function.
322217721Speter	* main.c: ditto.
322317721Speter
322417721SpeterTue Aug  9 16:43:30 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
322517721Speter
322617721Speter	* entries.c (ParseEntries): If timestamp is in old format, rebuild
322717721Speter	it in the new format.  Fudge an unmatchable entry that won't
322817721Speter	trigger this code next time around, if the file is modified.
322917721Speter
323017721Speter	* vers_ts.c (time_stamp): Only put st_mtime field into timestamp,
323117721Speter	and use GMT time for it.  With st_ctime or in local time, copying
323217721Speter	trees between machines in different time zones makes all the files
323317721Speter	look modified.
323417721Speter	(time_stamp_server): Likewise.
323517721Speter
323617721SpeterTue Aug  9 19:40:51 1994  Mark Eichin  (eichin@cygnus.com)
323717721Speter
323817721Speter	* main.c (main): use krb_get_err_text function instead of
323917721Speter	krb_err_txt array.
324017721Speter
324117721SpeterThu Aug  4 15:37:50 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
324217721Speter
324317721Speter	* main.c (main): When invoked as kserver, set LOGNAME and USER
324417721Speter	environment variables to the remote user name.
324517721Speter
324617721SpeterThu Aug  4 07:44:37 1994  Mark Eichin  (eichin@cygnus.com)
324717721Speter
324817721Speter	* client.c: (handle_valid_requests): if we get an option that has
324917721Speter	rq_enableme set, then send that option. If it is UseUnchanged, set
325017721Speter	use_unchanged so that the rest of the client knows about
325117721Speter	it. (Could become a more general method for dealing with protocol
325217721Speter	upgrades.)
325317721Speter	(send_fileproc): if use_unchanged didn't get set, send an
325417721Speter	old-style "Lost" request, otherwise send an "Unchanged" request.
325517721Speter	* server.c (serve_unchanged): new function, same as serve_lost,
325617721Speter	but used in the opposite case.
325717721Speter	(requests): add new UseUnchanged and Unchanged requests, and make
325817721Speter	"Lost" optional (there isn't a good way to interlock these.)
325917721Speter	* server.h (request.status): rq_enableme, new value for detecting
326017721Speter	compatibility changes.
326117721Speter	* vers_ts.c (time_stamp_server): swap meaning of zero timestamp if
326217721Speter	use_unchanged is set.
326317721Speter
326417721SpeterTue Jul 26 10:19:30 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
326517721Speter
326617721Speter	* sanity.sh: Separate CVSROOT_FILENAME, which must be the filename
326717721Speter	of the root, from CVSROOT, which can include a hostname for
326817721Speter	testing remote CVS.  (but the tests aren't yet prepared to deal
326917721Speter	with the bugs in remote CVS).
327017721Speter
327117721Speter	* import.c (update_rcs_file): Change temporary file name in TMPDIR
327217721Speter	from FILE_HOLDER to cvs-imp<process-id>.
327317721Speter
327417721Speter	* sanity.sh: Add ">/dev/null" and "2>/dev/null" many places to
327517721Speter	suppress spurious output.  Comment out tests which don't work (cvs
327617721Speter	add on top-level directory, cvs diff when non-committed adds or
327717721Speter	removes have been made, cvs release, test 53 (already commented as
327817721Speter	broken), retagging without deleting old tag, test 63).  Now 'make
327917721Speter	check' runs without any failures.
328017721Speter
328117721SpeterFri Jul 15 12:58:29 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
328217721Speter
328317721Speter	* Makefile.in (install): Do not depend upon installdirs.
328417721Speter
328517721SpeterThu Jul 14 15:49:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
328617721Speter
328717721Speter	* client.c, server.c: Don't try to handle alloca here; it's
328817721Speter	handled by cvs.h.
328917721Speter
329017721SpeterTue Jul 12 13:32:40 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
329117721Speter
329217721Speter	* client.c (update_entries): Reset stored_checksum_valid if we
329317721Speter	quit early because of a patch failure.
329417721Speter
329517721SpeterFri Jul  8 11:13:05 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
329617721Speter
329717721Speter	* client.c (responses): Mark "Remove-entry" as optional.
329817721Speter
329917721SpeterThu Jul  7 14:07:58 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
330017721Speter
330117721Speter	* server.c (server_updated): Add new checksum argument.  If it is
330217721Speter	not NULL, and the client supports the "Checksum" response, send
330317721Speter	it.
330417721Speter	* server.h (server_updated): Update prototype.
330517721Speter	* update.c: Include md5.h.
330617721Speter	(update_file_proc): Pass new arguments to patch_file and
330717721Speter	server_updated.
330817721Speter	(patch_file): Add new checksum argument.  Set it to the MD5
330917721Speter	checksum of the version of the file being checked out.
331017721Speter	(merge_file): Pass new argument to server_updated.
331117721Speter	* client.c: Include md5.h.
331217721Speter	(stored_checksum_valid, stored_checksum): New static variables.
331317721Speter	(handle_checksum): New static function.
331417721Speter	(update_entries): If a checksum was received, check it against the
331517721Speter	MD5 checksum of the final file.
331617721Speter	(responses): Add "Checksum".
331717721Speter	(start_server): Clear stored_checksum_valid.
331817721Speter	* commit.c (commit_fileproc): Pass new argument to server_updated.
331917721Speter
332017721Speter	* client.h (struct response): Move definition in from client.c,
332117721Speter	add status field.
332217721Speter	(responses): Declare.
332317721Speter	* client.c (struct response): Remove definition; moved to
332417721Speter	client.h.
332517721Speter	(responses): Make non-static.  Initialize status field.
332617721Speter	* server.c (serve_valid_responses): Check and record valid
332717721Speter	responses, just as in handle_valid_requests in client.c.
332817721Speter
332917721Speter	* diff.c (diff_client_senddate): New function.
333017721Speter	(diff): Use it to send -D arguments to server.
333117721Speter
333217721SpeterWed Jul  6 12:52:37 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)
333317721Speter
333417721Speter	* rcs.c (RCS_parsercsfile_i): New function, parse RCS file
333517721Speter	referenced by file ptr argument.
333617721Speter	(RCS_parsercsfile): Open file and pass its file ptr to above function.
333717721Speter	(RCS_parse): Likewise.
333817721Speter
333917721SpeterWed Jul  6 01:25:38 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
334017721Speter
334117721Speter	* client.c (update_entries): Print message indicating that an
334217721Speter	unpatchable file will be refetched.
334317721Speter	(client_update): Print message when refetching unpatchable files.
334417721Speter
334517721SpeterFri Jul  1 07:16:29 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
334617721Speter
334717721Speter	* client.c (send_dirent_proc): Don't call send_a_repository if
334817721Speter	repository is "".
334917721Speter
335017721SpeterFri Jul  1 13:58:11 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
335117721Speter
335217721Speter	* client.c (last_dirname, last_repos): Move out of function.
335317721Speter	(failed_patches, failed_patches_count): New static variables.
335417721Speter	(update_entries): If patch program fails, save short_pathname in
335517721Speter	failed_patches array, only exit program if retcode is -1, and
335617721Speter	return out of the function rather than update the Entries line.
335717721Speter	(start_server): Clear toplevel_repos, last_dirname, last_repos.
335817721Speter	(client_update): If failed_patches is not NULL after doing first
335917721Speter	update, do another update, but remove all the failed files first.
336017721Speter
336117721SpeterThu Jun 30 09:08:57 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
336217721Speter
336317721Speter	* server.c (requests): Add request "Global_option".
336417721Speter	(serve_global_option): New function, to handle it.
336517721Speter	* client.c (start_server): Deal with global options.  Check for
336617721Speter	errors from fprintf.
336717721Speter
336817721Speter	* client.c (send_fileproc): Split out code which sends repository
336917721Speter	into new function send_a_repository.  Also, deal with update_dir
337017721Speter	being ".".
337117721Speter	(send_dirent_proc): Call send_a_repository.
337217721Speter	* add.c (add): If client_active, do special processing for
337317721Speter	directories.
337417721Speter	(add_directory): If server_active, don't try to create CVSADM
337517721Speter	directory.
337617721Speter
337717721SpeterThu Jun 30 11:58:52 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
337817721Speter
337917721Speter	* client.c (update_entries): If patch succeeds, remove the backup
338017721Speter	file.
338117721Speter	* server.c (server_updated): Add new argument file_info.  If it is
338217721Speter	not NULL, use it rather than sb to get the file mode.
338317721Speter	* server.h (server_updated): Update prototype for new argument.
338417721Speter	* update.c (update_file_proc): Pass new arguments to patch_file
338517721Speter	and server_updated.
338617721Speter	(patch_file): Add new argument file_info.  Don't use -p to check
338717721Speter	out new version, check it out into file and rename that to file2.
338817721Speter	If result is not readable, assume file is dead and set docheckout.
338917721Speter	Call xchmod on file2.  Close the patch file after checking for a
339017721Speter	binary diff.  Set file_info to the results of stat on file2.
339117721Speter	(merge_file): Pass new argument to server_updated.
339217721Speter	* commit.c (commit_fileproc): Pass new argument to server_updated.
339317721Speter
339417721SpeterWed Jun 29 13:00:41 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
339517721Speter
339617721Speter	* client.c (krb_realmofhost): Declare, since it's not the current
339717721Speter	<krb.h>.
339817721Speter	(start_server): Save the name returned by gethostbyname.  Call
339917721Speter	krb_realmofhost to get the realm.  Pass the resulting realm to
340017721Speter	krb_sendauth.  Pass the saved real name to krb_sendauth, rather
340117721Speter	than server_host.
340217721Speter
340317721Speter	* update.c (update_file_proc): Pass &docheckout to patch_file.  If
340417721Speter	it is set to 1, fall through to T_CHECKOUT case.
340517721Speter	(patch_file): Add docheckout argument.  Set it to 1 if we can't
340617721Speter	make a patch.  Check out the files and run diff rather than
340717721Speter	rcsdiff.  If either file does not end in a newline, we can't make
340817721Speter	a patch.  If the patch starts with the string "Binary", assume
340917721Speter	one or the other is a binary file, and that we can't make a patch.
341017721Speter
341117721SpeterTue Jun 28 11:57:29 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
341217721Speter
341317721Speter	* client.c (update_entries): If the patch file is empty, don't run
341417721Speter	patch program; avoids error message.
341517721Speter
341617721Speter	* classify.c (Classify_File): Return T_CHECKOUT, not T_PATCH, if
341717721Speter	the file is in the Attic.
341817721Speter
341917721Speter	* cvs.h (enum classify_type): Add T_PATCH.
342017721Speter	* config.h (PATCH_PROGRAM): Define.
342117721Speter	* classify.c (Classify_File): If user file exists and is not
342217721Speter	modified, and using the same -k options, return T_PATCH instead of
342317721Speter	T_CHECKOUT.
342417721Speter	* update.c (patches): New static variable.
342517721Speter	(update): Add u to gnu_getopt argument.  Handle it.
342617721Speter	(update_file_proc): Handle T_PATCH.
342717721Speter	(patch_file): New static function.
342817721Speter	* server.h (enum server_updated_arg4): Add SERVER_PATCHED.
342917721Speter	* server.c (server_updated): Handle SERVER_PATCHED by sending
343017721Speter	"Patched" command.
343117721Speter	(serve_ignore): New static function.
343217721Speter	(requests): Add "update-patches".
343317721Speter	(client_update): If the server supports "update-patches", send -u.
343417721Speter	* client.c (struct update_entries_data): Change contents field
343517721Speter	from int to an unnamed enum.
343617721Speter	(update_entries): Correponding change.  If contents is
343717721Speter	UPDATE_ENTRIES_PATCH, pass the input to the patch program.
343817721Speter	(handle_checked_in): Initialize contents to enum value, not int.
343917721Speter	(handle_updated, handle_merged): Likewise.
344017721Speter	(handle_patched): New static function.
344117721Speter	(responses): Add "Patched".
344217721Speter	* commit.c (check_fileproc): Handle T_PATCH.
344317721Speter	* status.c (status_fileproc): Likewise.
344417721Speter
344517721Speter	* client.c (start_server): If CVS_CLIENT_PORT is set in the
344617721Speter	environment, connect to that port, rather than looking up "cvs" in
344717721Speter	/etc/services.  For debugging.
344817721Speter
344917721SpeterTue Jun 21 12:48:16 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
345017721Speter
345117721Speter	* update.c (joining): Return result of comparing pointer with
345217721Speter	NULL, not result of casting (truncating, on Alpha) pointer to int.
345317721Speter
345417721Speter	* main.c (main) [HAVE_KERBEROS]: Impose a umask if starting as
345517721Speter	Kerberos server, so temp directories won't be world-writeable.
345617721Speter
345717721Speter	* update.c (update_filesdone_proc) [CVSADM_ROOT]: If environment
345817721Speter	variable CVS_IGNORE_REMOTE_ROOT is set and repository is remote,
345917721Speter	don't create CVS/Root file.
346017721Speter	* main.c (main): If env var CVS_IGNORE_REMOTE_ROOT is set, don't
346117721Speter	check CVS/Root.
346217721Speter
346317721SpeterFri Jun 10 18:48:32 1994  Mark Eichin  (eichin@cygnus.com)
346417721Speter
346517721Speter	* server.c (O_NDELAY): use POSIX O_NONBLOCK by default, unless it
346617721Speter	isn't available (in which case substitute O_NDELAY.)
346717721Speter
346817721SpeterThu Jun  9 19:17:44 1994  Mark Eichin  (eichin@cygnus.com)
346917721Speter
347017721Speter	* server.c (server_cleanup): chdir out of server_temp_dir before
347117721Speter	deleting it (so that it works on non-BSD systems.) Code for choice
347217721Speter	of directory cloned from server().
347317721Speter
347417721SpeterFri May 27 18:16:01 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
347517721Speter
347617721Speter	* client.c (update_entries): Add return type of void.
347717721Speter	(get_responses_and_close): If using Kerberos and from_server and
347817721Speter	to_server are using the same file descriptor, use shutdown, not
347917721Speter	fclose.  Close from_server.
348017721Speter	(start_server): New function; most of old version renamed to
348117721Speter	start_rsh_server.
348217721Speter	(start_rsh_server): Mostly renamed from old start_server.
348317721Speter	(send_fileproc): Use %lu and cast sb.st_size in fprintf call.
348417721Speter	(send_files): Remove unused variables repos and i.
348517721Speter	(option_no_arg): Comment out; unused.
348617721Speter	* main.c (main): Initialize cvs_update_env to 0.  If command is
348717721Speter	"kserver", authenticate and change command to "server".  If
348817721Speter	command is "server", don't call Name_Root, don't check access to
348917721Speter	history file, and don't assume that CVSroot is not NULL.
349017721Speter	* server.c (my_memmove): Removed.
349117721Speter	(strerror): Change check from STRERROR_MISSING to HAVE_STRERROR.
349217721Speter	(serve_root): Likewise for putenv.
349317721Speter	(serve_modified): Initialize buf to NULL.
349417721Speter	(struct output_buffer, buf_try_send): Remove old buffering code.
349517721Speter	(struct buffer, struct buffer_data, BUFFER_DATA_SIZE,
349617721Speter	allocate_buffer_datas, get_buffer_data, buf_empty_p,
349717721Speter	buf_append_char, buf_append_data, buf_read_file, buf_input_data,
349817721Speter	buf_copy_lines): New buffering code.
349917721Speter	(buf_output, buf_output0, buf_send_output, set_nonblock,
350017721Speter	set_block, buf_send_counted, buf_copy_counted): Rewrite for new
350117721Speter	buffering code.
350217721Speter	(protocol, protocol_memory_error, outbuf_memory_error,
350317721Speter	do_cvs_command, server_updated): Rewrite for new buffering code.
350417721Speter	(input_memory_error): New function.
350517721Speter	(server): Put Rcsbin at start of PATH in environment.
350617721Speter	* Makefile.in: Add @includeopt@ to DEFS.
350717721Speter
350817721SpeterFri May 20 08:13:10 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
350917721Speter
351017721Speter	* cvs.h, classify.c (Classify_File): New argument update_dir.
351117721Speter	Include it in user messages.
351217721Speter	* commit.c (check_fileproc), status.c (status_fileproc), update.c
351317721Speter	(update_file_proc): Pass update_dir to Classify_File.
351417721Speter	* commit.c (check_fileproc), update.c (checkout_file):
351517721Speter	Include update_dir in user messages.
351617721Speter	* commit.c (check_fileproc) update.c (update_file_proc): Re-word
351717721Speter	"unknown status" message.
351817721Speter
351917721Speter	* server.c (server_checked_in): Deal with the case where
352017721Speter	scratched_file is set rather than entries_line.
352117721Speter
352217721Speter	* entries.c (Register): Write file even if server_active.
352317721Speter	* add.c (add): Add comment about how we depend on above behavior.
352417721Speter
352517721SpeterTue May 17 08:16:42 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
352617721Speter
352717721Speter	* mkmodules.c: Add dummy server_active and server_cleanup, to go
352817721Speter	with the dummy Lock_Cleanup already there.
352917721Speter
353017721Speter	* server.c (server_cleanup): No longer static.
353117721Speter
353217721SpeterSat May  7 10:17:17 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
353317721Speter
353417721Speter	Deal with add and remove:
353517721Speter	* commit.c (checkaddfile): If CVSEXT_OPT or CVSEXT_LOG file does
353617721Speter	not exist, just	silently keep going.
353717721Speter	(remove_file): If server_active, remove file before creating
353817721Speter	temporary file with that name.
353917721Speter	* server.c (serve_remove, serve_add): New functions.
354017721Speter	(requests): Add them.
354117721Speter	* server.c (server_register): If options is NULL, it means there
354217721Speter	are no options.
354317721Speter	* server.c, server.h (server_scratch_entry_only): New function.
354417721Speter	New variable kill_scratched_file.
354517721Speter	(server_scratch, server_updated): Deal with kill_scratched_file.
354617721Speter	* commit.c (commit_fileproc): If server_active, call
354717721Speter	server_scratch_entry_only and server_updated.
354817721Speter	* add.c (add): Add client_active code.
354917721Speter	(add): If server_active, call server_checked_in for each file added.
355017721Speter	* remove.c (remove): Add client_active code.
355117721Speter	(remove_fileproc): If server_active, call server_checked_in.
355217721Speter	* main.c (cmds), client.c, client.h: New functions client_add and
355317721Speter	client_remove.
355417721Speter	* Move declarations of add, cvsremove, diff, and cvslog from
355517721Speter	main.c to cvs.h.
355617721Speter	* client.c (call_in_directory): Update comment regarding Root and
355717721Speter	Repository files.
355817721Speter	(send_fileproc): Only send Entries line if Version_TS really finds
355917721Speter	an entry.  If it doesn't find one, send Modified.
356017721Speter	(update_entries): If version is empty or starts with 0 or -,
356117721Speter	create a dummy timestamp.
356217721Speter
356317721SpeterThu May  5 19:02:51 1994  Per Bothner  (bothner@kalessin.cygnus.com)
356417721Speter
356517721Speter	* recurse/c (start_recursion):  If we're doing rtag, and thus
356617721Speter	have cd'd to the reporsitory, add ,v to a file name before stat'ing.
356717721Speter
356817721SpeterWed Apr 20 15:01:45 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
356917721Speter
357017721Speter	* client.c (client_commit): Call ign_setup.
357117721Speter	(client_update, client_checkout): Likewise.
357217721Speter	* diff.c (diff): If client, call ign_setup.
357317721Speter	* log.c (cvslog): Likewise.
357417721Speter	* update.h (ignlist): Change definition to declaration to avoid
357517721Speter	depending upon common semantics (not required by ANSI C, and not
357617721Speter	the default on Irix 5).
357717721Speter	* update.c (ignlist): Define.
357817721Speter
357917721SpeterTue Apr 19 00:02:54 1994  John Gilmore  (gnu@cygnus.com)
358017721Speter
358117721Speter	Add support for remote `cvs log'; clean up `cvs diff' a bit.
358217721Speter
358317721Speter	* client.c (send_arg):  Make external.
358417721Speter	(send_option_string): New function.
358517721Speter	(client_diff_usage):  Remove, unused.
358617721Speter	(client_diff):  Just call diff, not do_diff.
358717721Speter	(client_log):  Add.
358817721Speter	* client.h (client_log, send_arg, send_option_string):  Declare.
358917721Speter	* cvs.h (cvslog):  Declare.
359017721Speter	* diff.c (do_diff):  Fold back into diff(), distinguish by checking
359117721Speter	client_active.
359217721Speter	(diff):  Remove `-*' arg parsing crud; use send_option_string.
359317721Speter	* log.c (cvslog):  If a client, start the server, pass options
359417721Speter	and files, and handle server responses.
359517721Speter	* main.c (cmds):  Add client_log.
359617721Speter	(main):  Remove obnoxious message every time CVS/Root is used.
359717721Speter	Now CVS will be quiet about it -- unless there is a conflict
359817721Speter	between $CVSROOT or -d value versus CVS/Root.
359917721Speter	* server.c (serve_log):  Add.
360017721Speter	(requests):  Add "log".
360117721Speter
360217721SpeterMon Apr 18 22:07:53 1994  John Gilmore  (gnu@cygnus.com)
360317721Speter
360417721Speter	Add support for remote `cvs diff'.
360517721Speter
360617721Speter	* diff.c (diff):  Break guts out into new fn do_diff.
360717721Speter	Add code to handle starting server, writing args,
360817721Speter	sending files, and retrieving responses.
360917721Speter	(includes): Use PARAMS for static function declarations.
361017721Speter	* client.c (to_server, from_server, rsh_pid,
361117721Speter	get_responses_and_close, start_server, send_files,
361217721Speter	option_with_arg):  Make external.
361317721Speter	(send_file_names):  New function.
361417721Speter	(client_diff):  New function.
361517721Speter	* client.h (client_diff, to_server, from_server,
361617721Speter	rsh_pid, option_with_arg, get_responses_and_close, start_server,
361717721Speter	send_file_names, send_files):  Declare.
361817721Speter	* cvs.h (diff):  Declare.
361917721Speter	* main.c (cmds):  Add client_diff to command table.
362017721Speter	* server.c (serve_diff):  New function.
362117721Speter	(requests):  Add serve_diff.
362217721Speter	(server):  Bug fix: avoid free()ing incremented cmd pointer.
362317721Speter	* update.h (update_filesdone_proc):  Declare with PARAMS.
362417721Speter
362517721SpeterSat Apr 16 04:20:09 1994  John Gilmore  (gnu@cygnus.com)
362617721Speter
362717721Speter	* root.c (Name_root):  Fix tyop (CVSroot when root meant).
362817721Speter
362917721SpeterSat Apr 16 03:49:36 1994  John Gilmore  (gnu@cygnus.com)
363017721Speter
363117721Speter	Clean up remote `cvs update' to properly handle ignored
363217721Speter	files (and files that CVS can't identify), and to create
363317721Speter	CVS/Root entries on the client side, not the server side.
363417721Speter
363517721Speter	* client.c (send_fileproc):  Handle the ignore list.
363617721Speter	(send_dirent_proc):  New function for handling ignores.
363717721Speter	(send_files):  Use update_filesdone_proc and send_dirent_proc
363817721Speter	while recursing through the local filesystem.
363917721Speter	* update.h:  New file.
364017721Speter	* update.c:  Move a few things into update.h so that client.c
364117721Speter	can use them.
364217721Speter
364317721SpeterFri Mar 11 13:13:20 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
364417721Speter
364517721Speter	* server.c: If O_NDELAY is not defined, but O_NONBLOCK is, define
364617721Speter	O_NDELAY to O_NONBLOCK.
364717721Speter
364817721SpeterWed Mar  9 21:08:30 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
364917721Speter
365017721Speter	Fix some spurious remote CVS errors caused by the CVS/Root patches:
365117721Speter	* update.c (update_filesdone_proc): If server_active, don't try to
365217721Speter	create CVS/Root.
365317721Speter	* root.c (Name_Root): Make error messages which happen if root is
365417721Speter	not an absolute pathname or if it doesn't exist a bit clearer.
365517721Speter	Skip them if root contains a colon.
365617721Speter
365717721SpeterMon Nov  1 15:54:51 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
365817721Speter
365917721Speter	* client.c (client_commit): dynamically allocate message.
366017721Speter
366117721SpeterTue Jun  1 17:03:05 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
366217721Speter
366317721Speter	* server.h: remove alloca cruft
366417721Speter
366517721Speter	* server.c: replace with better alloca cruft
366617721Speter
366717721SpeterMon May 24 11:25:11 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
366817721Speter
366917721Speter	* entries.c (Scratch_Entry):  Update our local Entries file even if
367017721Speter	server_active.
367117721Speter
367217721Speter	* server.c (server_scratch, server_register): If both Register
367317721Speter	and Scratch_Entry happen, use whichever one happened later.
367417721Speter	If neither happen, silently continue.
367517721Speter
367617721Speter	* client.c (client_checkout): Initialize tag and date (eichin and
367717721Speter	I independently discovered this bug at the same time).
367817721Speter
367917721SpeterWed May 19 10:11:51 1993  Mark Eichin (eichin@cygnus.com)
368017721Speter
368117721Speter	* client.c (update_entries): handle short reads over the net
368217721Speter	(SVR4 fread is known to be broken, specifically for short
368317721Speter	reads off of streams.)
368417721Speter
368517721SpeterTue May 18 15:53:44 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
368617721Speter
368717721Speter	* server.c (do_cvs_command): Fix fencepost error in setting
368817721Speter	num_to_check.
368917721Speter
369017721Speter	* server.c (do_cvs_command): If terminated with a core dump, print
369117721Speter	message and set dont_delete_temp.
369217721Speter	(server_cleanup): If dont_delete_temp, don't delete it.
369317721Speter
369417721Speter	* client.c (get_server_responses): Don't change cmd since we
369517721Speter	are going to "free (cmd)".
369617721Speter
369717721Speter	* server.c: Rename memmove to my_memmove pending a real fix.
369817721Speter
369917721Speter	* server.c (do_cvs_command): Set num_to_check to largest descriptor
370017721Speter	we try to use, rather than using (non-portable) getdtablesize.
370117721Speter
370217721SpeterWed May 12 15:31:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
370317721Speter
370417721Speter	Add CVS client feature:
370517721Speter	* client.{c,h}: New files.
370617721Speter	* cvs.h: Include client.h.
370717721Speter	* main.c: If CVSROOT has a colon, use client commands instead.
370817721Speter	* vers_ts.c (Version_TS): If repository arg is NULL, don't worry
370917721Speter	about the repository.
371017721Speter	* logmsg.c (do_editor): If repository or changes is NULL, just don't
371117721Speter	use those features.
371217721Speter	* create_adm.c (Create_Admin), callers:  Move the test for whether
371317721Speter	the repository exists from here to callers.
371417721Speter	* repos.c (Name_Repository): Don't test whether the repository exists
371517721Speter	if client_active set (might be better to move test to callers).
371617721Speter
371717721Speter	Add CVS server feature:
371817721Speter	* server.{c,h}: New files.
371917721Speter	* cvs.h: Include server.h.
372017721Speter	* checkin.c (Checkin): Call server_checked_in.
372117721Speter	* update.c (update_file_proc, merge_files): Call server_updated.
372217721Speter	* entries.c (Register): Call server_register.
372317721Speter	(Scratch_Entry): Call server_scratch.
372417721Speter	* main.c: Add server to cmds.
372517721Speter	* vers_ts.c (Version_TS): If server_active, call new function
372617721Speter	time_stamp_server to set ts_user.
372717721Speter
372817721Speter
372917721SpeterFor older changes, there might be some relevant stuff in the bottom of
373017721Speterthe NEWS file, but I'm afraid probably a lot of them are lost in the
373117721Spetermists of time.
3732