/[cvs]/ccvs/src/ChangeLog
ViewVC logotype

Contents of /ccvs/src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3303 - (show annotations) (download)
Wed Oct 5 02:40:04 2005 UTC (18 years, 6 months ago) by dprice
Branch: MAIN
Branch point for: signed-commits
Changes since 1.3302: +8 -0 lines
* sanity.sh (diff_u_test, diff_recursive_test): New functions.
(directory_cmp): Use GNU diff -ur when possible.
(find_tool): Catch stderr output from tests.  Count MARGINAL test
results and prefer tools with more PASSes.
(*): Replace use of cmp to $diff_u where possbile.

1 2005-10-04 Derek Price <derek@ximbiot.com>
2
3 * sanity.sh (diff_u_test, diff_recursive_test): New functions.
4 (directory_cmp): Use GNU diff -ur when possible.
5 (find_tool): Catch stderr output from tests. Count MARGINAL test
6 results and prefer tools with more PASSes.
7 (*): Replace use of cmp to $diff_u where possbile.
8
9 2005-10-04 Mark D. Baushke <mdb@gnu.org>
10
11 * sanity.sh (watch6-0): Avoid use of GNU grep -qE extensions for
12 anchored search.
13
14 2005-10-04 Derek Price <derek@ximbiot.com>
15
16 * sanity.sh (find_tool): Accept tool name for error messages. Change
17 all callers.
18
19 * run.c: Assume unistd.h.
20
21 2005-10-03 Derek Price <derek@ximbiot.com>
22
23 * sanity.sh (sshstdio-6): Use diff -u instead of cmp so that errors
24 show up in the automated nightly testing emails.
25
26 * run.c (piped_child): Close original dup'd descriptors. Add comments.
27
28 * server.c: #include "setenv.h" to eliminate a Solaris warning.
29
30 2005-09-30 Larry Jones <lawrence.jones@ugs.com>
31
32 * expand_path.c (expand_path): Fix memory leaks.
33
34 2005-09-29 Mark D. Baushke <mdb@gnu.org>
35
36 * main.c (main): Simplify commitid creation.
37
38 * main.c (main): Not all hosts support O_NOCTTY for open.
39 Try to use more random data when time() returns -1.
40
41 2005-09-29 Derek Price <derek@ximbiot.com>
42
43 * main.c (main): Check for error return from time().
44
45 2005-09-29 Paul Eggert <eggert@CS.UCLA.EDU>
46 Derek Price <derek@ximbiot.com>
47
48 * client.c (handle_m, handle_e): Remove incomplete workaround for
49 O_NONBLOCK problem; no longer needed because of the fix below.
50 * cvs.h (piped_child): New bool argument saying whether O_NONBLOCK
51 fix is needed. All uses changed.
52 * rsh-client.c (start_rsh_server): We need the O_NONBLOCK fix,
53 so pass 'true' to piped_child to enable the workaround.
54 * run.c (work_around_openssh_glitch): New function.
55 (piped_child): Use it if the fix is requested. Avoid call call to
56 vfork with undefined behavior.
57
58 2005-09-29 Mark D. Baushke <mdb@gnu.org>
59
60 * main.c (main): Rename N as COMMITID_RAW_SIZE.
61 Use base62 encoding for non-urandom case.
62
63 2005-09-29 Derek Price <derek@ximbiot.com>
64
65 * buffer.c (fd_buffer_input), client.c (handle_m, handle_e): Use new
66 fd_select in place of select.
67
68 * subr.c: Remove select includes - the sleep functions are now in
69 lib.
70
71 2005-09-28 Mark D. Baushke <mdb@gnu.org>
72
73 * main.c (N, RANDOM_BYTES): New constants for base62 conversion.
74 (divide_by): Used in base62 conversion.
75 (convert): Ditto.
76 (main): Set global_session_id using more random data and the
77 current time in base62 if possible, otherwise fallback to the old
78 method.
79
80 2005-09-25 Conrad T. Pino <Conrad@Pino.com>
81
82 * rcs.c: Use "#ifdef HAVE_FSYNC" just like every where else.
83
84 2005-09-25 Conrad T. Pino <Conrad@Pino.com>
85
86 * buffer.c client.h socket-client.h: Remove HAVE_WINSOCK_H macro &
87 change <winsock.h> to <sys/socket.h> include.
88
89 * server.c: Remove HAVE_WINSOCK_H and <winsock.h> include.
90
91 2005-09-25 Derek Price <derek@ximbiot.com>
92
93 * rcs.c (rcs_internal_unlockfile): Fsync files before renaming them.
94 Patch from Rahul Bhargava <rahul@wandisco.com>.
95
96 * cvs.h, filesubr.c, main.c, server.c:
97 s/push_cvs_tmp_dir/push_cvs_temp_dir/.
98
99 * main.c (get_cvs_temp_dir): Use new get_system_temp_dir function.
100 (push_env_temp_dir): Move to...
101 * filesubr.c (push_env_temp_dir): ...here to split from Windows.
102 (get_system_temp_dir): New function.
103 * cvs.h (get_cvs_temp_dir, push_env_temp_dir): Add protos.
104
105 * buffer.c (fd_buffer_input): Fix spelling in header comment block.
106
107 2005-09-24 Derek Price <derek@ximbiot.com>
108
109 * socket-client.c: Check HAVE_CONFIG_H, not HAVE_CONFIG.
110
111 * socket-client.c, socket-client.h: Minor cleanup.
112
113 * Makefile.am (cvs_SOURCES): Move socket-client.[ch] to...
114 (EXTRA_cvs_SOURCES): ...here to avoid compiling them.
115 * socket-client.c (init_sockaddr), socket-client.h (init_sockaddr):
116 Move to...
117 * client.c (init_sockaddr), client.c (init_sockaddr): ...here.
118
119 * socket-client.c (socket_buffer_input): Avoid overflow problems.
120
121 * socket-client.c: General cleanup.
122
123 2005-09-23 Larry Jones <lawrence.jones@ugs.com>
124
125 * checkout.c (export_usage): Note that -r requires a tag.
126
127 2005-09-22 Derek Price <derek@ximbiot.com>
128
129 * classify.c (Classify_File): Correct comment.
130
131 2005-09-22 Larry Jones <lawrence.jones@ugs.com>
132
133 * patch.c (patch_usage): Document -k option.
134
135 2005-09-22 Derek Price <derek@ximbiot.com>
136
137 * classify.c (Classify_File): If a file had a conflict and the
138 timestamp hasn't changed, it still has a conflict. Add comment about
139 how T_MODIFIED could later turn out to have conflict markers and why
140 it should not be checked in this function.
141 * client.c (send_fileproc): Don't send contents for files known to have
142 conflicts unless this is for `cvs diff'.
143 * commit.c (check_fileproc): T_CONFLICT should be handled like
144 T_MODIFIED, since force could be requested. Simplify logic since
145 T_CONFLICT can now be trusted.
146 * rcs.c (RCS_Checkout): Comment noexec behavior in header block.
147 * server.c (serve_unchanged, serve_is_modified): Handle conflicts.
148 * status.c (status_fileproc): Trust T_CONFLICT to simplify.
149 * subr.c (file_has_conflict): Removed.
150 * subr.h (file_has_conflict): Remove proto.
151 * update.c (update_fileproc): Trust T_CONFLICT.
152 (RegisterMerge): New function factored from...
153 (merge_file, join_file): ...these two functions.
154 * vers_ts.c (time_stamp_server): Handle = conflict timestamps in server
155 entdata.
156 * sanity.sh (files-12): Account for slight behavior improvement.
157 (status, conflicts, mwrap): Account for corrected behavior.
158 (join-readonly-conflict-10): Correct comment.
159 (binfiles-con1b): New test for correct behavior.
160
161 * classify.c (Classify_File): Consolidate redundant conditionals.
162
163 2005-09-21 Derek Price <derek@ximbiot.com>
164
165 * entries.c: Remove obsolete comment.
166
167 2005-09-20 Derek Price <derek@ximbiot.com>
168
169 * myndbm.c: #include getdelim.h for Windows.
170
171 * main.c: #include setenv.h for Windows.
172
173 2005-09-19 Derek Price <derek@ximbiot.com>
174
175 * sanity.sh (modules5-8): Rename...
176 (modules5-8r): ...to this and comment Mac OS X failure.
177 Comment Solaris 9 failure below with a `FIXME?' tag.
178
179 * sanity.sh: Remove previous hack in favor of setting TESTDIR on
180 Solaris (and Mac OS X) until problem is solved correctly.
181
182 2005-09-15 Derek Price <derek@ximbiot.com>
183
184 * sanity.sh: Use /bin/pwd to verify current dir since Solaris 9 is
185 sometimes resolving symlinked paths.
186
187 2005-09-14 Derek Price <derek@ximbiot.com>
188
189 * edit.c (edit_usage, unedit_usage, editors_usage), watch.c
190 (watch_usage, watchers_usage): Add quotes and reword for clarity and
191 consistency.
192
193 * edit.c (edit_usage): Add missing syntax. Reword description for
194 clarity. Mention default behavior.
195
196 2005-09-13 Derek Price <derek@ximbiot.com>
197
198 * sanity.sh ($anyusername): Reduce charset to that allowed on Linux.
199
200 * sanity.sh ($anyusername): Make more robust and expand comments.
201 Reported by Mark D. Baushke <mdb@gnu.org>.
202
203 * sanity.sh: Split $username into $username & $username8. Rename
204 $author as $anyusername.
205
206 2005-09-12 Derek Price <derek@ximbiot.com>
207
208 * sanity.sh (username): Cut $username down to 8 characters when longer,
209 since that is all that appears in output.
210
211 2005-09-11 Derek Price <derek@ximbiot.com>
212
213 [bug #14504]
214 * main.c (main): Set server_hostname before it is used by
215 gserver_authenticate_connection.
216 (Report from Serguei E. Leontiev <leo@sai.msu.ru>.)
217
218 2005-09-08 Larry Jones <lawrence.jones@ugs.com>
219
220 * server.c (parseServerOptions): getopt() returns int, not char.
221
222 2005-09-07 Derek Price <derek@ximbiot.com>
223
224 * rcs.c (RCS_parse): Minor reformatting.
225
226 Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14462>.
227 * rcs.c (RCS_parse): Free variable *after* using it for the last time.
228
229 2005-09-06 Derek Price <derek@ximbiot.com>
230
231 * sanity.sh (tempfile): All CVS temp files start with "cvs".
232
233 * sanity.sh (tempfile): New var.
234 (tempname): Set to $TMPDIR/$tempfile after $TMPDIR is set.
235 (info): s#$TMPDIR/##.
236
237 * rcs.c (RCS_putdtree): Remove unused variable.
238
239 2005-09-06 Mark D. Baushke <mdb@gnu.org>
240
241 Close <https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14435>.
242 * rcs.c (RCS_putdtree): Avoid stack overflow which may be
243 possible with excessive recursive calls to RCS_putdtree().
244 (Patch from Serg Masyutin.)
245
246 2005-09-06 Derek Price <derek@ximbiot.com>
247
248 Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14448>.
249 * kerberos-client.c (start_kerberos4_server): Pass new root arg to
250 make_bufs_from_fds.
251 (Patch from <Manuel.Guijarro.AT.cern.ch>.)
252
253 * server.c: Reorganize includes slightly and alphabetize sections.
254
255 * server.c: #include canon-host.h.
256 (gserver_authenticate_connection): Print out canon-host errors.
257 * subr.c: #include canon-host.h.
258 (isThisHost): Print out canon-host errors.
259
260 * parseinfo.c (parse_config): Don't check hostname without client
261 or server support.
262
263 * main.c (main): Set cvs_cmd_name before calling parseServerOptions.
264
265 2005-09-05 Derek Price <derek@ximbiot.com>
266
267 * cvs.h (Tmpdir): Remove global decl.
268 (get_cvs_tmp_dir, push_env_tmp_dir): New protos.
269 * filesubr.c (cvs_temp_file): Use get_cvs_tmp_dir.
270 * main.c (Tmpdir): Remove global.
271 (tmpdir_cmdline, tmpdir_env): New globals.
272 (get_cvs_tmp_dir, push_env_tmp_dir): New functions.
273 (main): Discard most tmpdir overhead in favor of new globals and
274 functions.
275 * parseinfo.c (parse_config): Parse TmpDir.
276 * sanity.sh (config4): New tests.
277 * server.c (serve_root): Set env TMPDIR after parsing config. Create
278 tmpdir here instead of...
279 (serve_co, server): ...either of thse locations.
280 (server_cleanup): Use new function in favor of obsolete Tmpdir.
281
282 * sanity.sh (config2): Don't overwrite potentially significant config.
283
284 * sanity.sh (info): Use $tempfile instead of reproducing the regex.
285
286 * sanity.sh (info): Accept `.' in temp file names.
287
288 * main (main): Set the actual PID, not a pointer to a string.
289
290 2005-09-04 Derek Price <derek@ximbiot.com>
291
292 * sanity.sh (config3): Generalize.
293
294 * main.c (main), server.c (serve_root, switch_to_user): Replace putenv
295 with GNULIB setenv.
296 * sanity.config.sh.in (HAVE_PUTENV): Remove.
297 * sanity.sh (env): Remove reference to $HAVE_PUTENV.
298
299 * sanity.sh (tests): Add config2 & config3.
300
301 * server.c (isSamePath, isThisHost): Move to...
302 * subr.c (isSamePath, isThisHost): ...here.
303 * subr.h (isSamePath, isThisHost): Add protos.
304 * parseinfo.c (parse_config): Handle [rootspec] syntax.
305 * main.c (main): Always set server_hostname.
306 * sanity.sh (config3): New tests for same.
307
308 * server.c (gserver_authenticate_connection): Output hostname in
309 error message.
310
311 * server.c (isThisHost): Fix typo.
312
313 * server.c (isThisHost, gserver_authenticate_connection): Simplify
314 using canon_host().
315
316 * root.c (free_cvsroot_t): Update header comment.
317
318 * root.c (new_cvsroot_t): directory is not client-specific.
319 (free_cvsroot_t): Declare static.
320 * root.h (free_cvsroot_t): Remove proto.
321 * server.c (server_init): Don't free cvsroot_t when finished with it.
322
323 2005-09-03 Derek Price <derek@ximbiot.com>
324
325 * root.h (cvsroot_t->isremote): Update comment.
326
327 * history.c (read_hrecs_file): Suppress signed/unsigned char warning.
328
329 * root.h (cvsroot_t->isremote): Declare bool.
330 * root.c (new_cvsroot_t): Initialize isremote to false instead of 0.
331
332 * add.c (add_usage): Standardize usage message somewhat.
333
334 2005-09-02 Larry Jones <lawrence.jones@ugs.com>
335
336 * commit.c (checkaddfile): Improve error messages for lock_RCS failure.
337 * release.c (release): Improve error message for pclose failure.
338
339 * root.h (struct cvsroot_s): Always declare isremote to simplify
340 other code. Simplify referencing code.
341 * root.c (new_cvsroot_t): Always initialize isremote.
342 * server.h: Always declare server_active to simplify other code.
343 Simplify referencing code.
344 * server.c: Always define server_active.
345
346 2005-09-02 Larry Jones <lawrence.jones@ugs.com>
347
348 * parseinfo.c (parse_config): Variable declarations must precede
349 executable code for pre-C99 compilers. Pass correct line number
350 variable to expand_path.
351
352 2005-09-01 Derek Price <derek@ximbiot.com>
353
354 * recurse.c: Update bug report email address.
355
356 2005-08-31 Derek Price <derek@ximbiot.com>
357
358 * cvs.h (expand_path): Update proto.
359 * expand_path.c (expand_variable): Accept and use cvsroot arg inplace
360 of global.
361 (expand_path): Accept and pass through cvsroot arg.
362 * main.c (main): Prescan args for config path before config options are
363 used. Pass config path on as needed. Update comment.
364 * modules.c (do_module): Update expand_path call.
365 * parseinfo.ci (Parse_Info): Ditto.
366 (allowed_config_prefixes): New global.
367 (parse_config): Accept configPath arg, update expand_path calls, and
368 expand LockDir path.
369 * parseinfo.h (parse_config): Update proto.
370 * root.c (root_allow_add, get_root_allow_config): Accept new configPath
371 arg and pass through to parse_config.
372 * root.h (root_allow_add, get_root_allow_config): Update protos.
373 * server.c (gConfigPath, server_usage): New globals.
374 (parseServerOptions): New function.
375 (server): Use new usage var.
376 (pserver_authenticate_connection): Update get_root_allow_config call.
377 * server.h (parseServerOptions): New proto.
378 * wrapper.c (wrap_add): Update expand_path calls.
379 * sanity.sh (server): New tests for setting config file path.
380
381 2005-08-31 Derek Price <derek@ximbiot.com>
382
383 * sanity.sh (close-stdout): Remove archive dir when done.
384
385 2005-08-31 Larry Jones <lawrence.jones@ugs.com>
386
387 * import.c (import_descend): Lock repository directory during import.
388
389 2005-08-31 Derek Price <derek@ximbiot.com>
390
391 * server.c (isSamePath): Compare args rather than assuming values.
392
393 2005-08-29 Derek Price <derek@ximbiot.com>
394
395 Add %{sV} format string to verifymsg script.
396 * logmsg.c (do_verify): Accept change list arg, pass through to...
397 (verifymsg_proc): ...here, to pass through to format_cmdline.
398 * commit.c (commit_fileproc, commit_direntproc), import.c (update):
399 Update all callers of do_verify.
400 * cvs.h (do_verify): Update proto.
401 * sanity.sh (info): Test new verifymsg format strings.
402
403 2005-08-09 Derek Price <derek@ximbiot.com>
404
405 * sanity.sh: Remove debugging echo.
406 (watch6, watch6-0): Clean up properly.
407
408 2005-08-03 Jim Hyslop <jhyslop@dreampossible.ca>
409
410 * edit.c, watch.c, watch.h, sanity.sh: fixed problems with watch not
411 setting default attributes, when directory specified.
412
413 2005-07-20 Derek Price <derek@ximbiot.com>
414
415 * main.c: s/cvshome.org/nongnu.org.etc.../.
416
417 2005-07-12 Derek Price <derek@ximbiot.com>
418
419 * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
420 release.c: Add copyright notices.
421
422 2005-07-12 Derek Price <derek@ximbiot.com>
423
424 * client.c: Update fwrite usage to use size & count in the standard
425 order.
426
427 2005-07-11 Derek Price <derek@ximbiot.com>
428
429 * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
430 release.c: Update license notices.
431
432 2005-06-28 Derek Price <derek@ximbiot.com>
433
434 * server.c (serve_co): Remove obsolete support for Repository request.
435
436 2005-06-10 Derek Price <derek@ximbiot.com>
437
438 * filesubr.c, ignore.c, import.c, vers_ts.c: Include "lstat.h".
439
440 2005-06-10 Derek Price <derek@ximbiot.com>
441
442 * logmsg.c (logmsg_list_to_args_proc): Add format character for
443 destination tag.
444 (Original patch from Todd Vierling <tv@duh.org>).
445
446 * tag.c (pretag_list_to_args_proc): Likewise.
447 (check_fileproc): Set destination tag name.
448 (tag_delproc): Delete destination tag name.
449 * sanity.sh (info, taginfo): Test new format strings.
450
451 2005-06-08 Derek Price <derek@ximbiot.com>
452
453 * parseinfo.c: Restore comparison to NULL in assignment within
454 conditional to placate non-GNU compilers. Eliminate assignments in
455 conditionals where possible by GNU coding standards. Eliminate other
456 comparisons to NULL where possible.
457 (Parse_Info): Make int a true bool.
458
459 2005-06-03 Derek Price <derek@ximbiot.com>
460
461 * client.c (force_gzip): New static global.
462 (handle_force_gzip): New function.
463 (responses): Add `Force-gzip'.
464 (start_server): Turn on encryption and compression before potentially
465 sending other rooted requests. Turn on compression when requested by
466 the user or the server.
467 * main.c (opt_usage): Note that -z<level> *requests* compression
468 <level> from the server.
469 * parseinfo.c (new_config): Initialize MaxCompressionLevel.
470 (parse_config): Parse MinCompressionLevel & MaxCompressionLevel.
471 * parseinfo.h (struct config): Add MinCompressionLevel &
472 MaxCompressionLevel.
473 * server.c (pending_warning_text): New static global.
474 (print_pending_error): Print pending warnings too.
475 (warning_pending): New macro.
476 (alloc_pending_internal): New function with much content...
477 (alloc_pending): ...previously from here.
478 (alloc_pending_warning): New function.
479 (server_root, serve_gzip_contents, gzip_stream): Force gzip_level into
480 configured restrictions.
481 (serve_command_prep): Print pending errors.
482 (requests): Make `Gzip-stream', `gzip-file-contents',
483 `Kerberos-encrypt', `Gssapi-encrypt', & `Gssapi-authenticate' requests
484 rootless to allow them before compression starts.
485 (serve_valid_requests): Send `Force-gzip' response when needed.
486 (server): Abort if a rootless compression request forced compression
487 outside restricted levels.
488 * zlib.c (struct compress_buffer, compress_buffer_initialize): Store
489 compression level.
490 (compress_buffer_output): Reset compression level when global
491 gzip_level has changed.
492 * sanity.sh (config2): New tests for compression restrictions.
493
494 2005-06-03 Derek Price <derek@ximbiot.com>
495
496 * zlib.c (compress_buffer_input): Update comment.
497
498 2005-06-03 Derek Price <derek@ximbiot.com>
499
500 * error.c (error): Correct spelling and grammar in comment.
501
502 2005-06-03 Derek Price <derek@ximbiot.com>
503
504 * modules.c (my_module), wrappers.c (wrap_add): Use new expand_path
505 API.
506
507 2005-06-03 Derek Price <derek@ximbiot.com>
508
509 * cvs.h (expand_path): Rearrange args and use bool for formatsafe flag.
510 * expand_path.c: Globally: Remove init of globals to NULL by C89,
511 reformat to CVS conventions, remove unnecessary comparisons to NULL and
512 0, & remove unnecessary typecasts.
513 (expand_variable): Remove proto and move function above first use.
514 Make return value const.
515 (expand_path): Don't refer to var when contents are known. Rearrange
516 args per cvs.h changes. Improve header comment block.
517 * parseinfo.c (Parse_Info): Use new expand_path API.
518
519 2005-06-02 Derek Price <derek@ximbiot.com>
520
521 * client.c: Don't set NULL for globals by C89. Globally remove
522 comparisons to NULL or replace with !. Similarly remove or replace
523 comparisons of strcmp and strncmp return value to 0. Remove some
524 unneeded braces around single-element blocks.
525 (handle_*): Remove unecessary protos.
526 (handle_notified, notified_a_file): Move up before first use.
527
528 2005-06-02 Derek Price <derek@ximbiot.com>
529
530 * sanity.sh (config): Simplify cleanup.
531
532 2005-06-02 Derek Price <derek@ximbiot.com>
533
534 * zlib.c (compress_buffer_input): Don't request more bytes from the
535 underlying buffer than asked for.
536 (compress_buffer_shutdown_input): Don't attempt to read EOF from the
537 client during shutdown. It might never be sent.
538 * sanity.sh (abspath2): Test for this.
539
540 2005-05-31 Derek Price <derek@ximbiot.com>
541
542 * rcscmds.c (call_diff_argc_allocated): Rename to...
543 (call_diff_arg_allocated): ...to match similar usage in other files.
544
545 2005-05-31 Derek Price <derek@ximbiot.com>
546 for Alexander Taler <alex@0--0.org>
547
548 * rcscmds.c: Change type of call_diff_argc_allocated from int to
549 size_t, to match the prototype of run_add_arg_p(). This fixes a
550 bus error in OpenBSD 3.6 sparc64.
551
552 2005-05-27 Derek Price <derek@ximbiot.com>
553
554 * client.c (send_arg): Make arg const. Remove unnecessary copy to
555 buffer.
556 (send_option_string): Rename to...
557 (send_options): ...this and accept argc/argv in place of string.
558 * client.h: Update protos to match the changes to client.c.
559 * cvs.h (RCS_exec_rcsdiff, diff_exec): Update protos.
560 (run_add_arg_p, run_arg_free_p): New protos.
561 * diff.c (opts, opts_allocated): Replace with...
562 (diff_argv, diff_argc, diff_arg_allocated): ...these.
563 (add_diff_args): New convenience function.
564 (diff): Use new constructs and APIs.
565 * patch.c (patch_fileproc, RCS_checkin, RCS_delete_revs), rcscmds.c
566 (call_diff_add_arg, call_diff_setup, RCS_merge, RCS_exec_rcsdiff,
567 diff_exec, RCS_output_diff_options), update.c (patch_file): Use new
568 APIs.
569 * run.c (run_add_arg_p, run_arg_free_p): New functions.
570 (run_argc_allocated): Make size_t.
571 (run_setup, run_add_arg): Use new functions.
572 * sanity.sh: Accomodate above changes.
573 (rcslib-diffrgx-3): Slip in test for space splitting.
574
575 2005-05-26 Derek Price <derek@ximbiot.com>
576
577 * subr.c (isabsolute), subr.h (isabsolute): Remove this function.
578 * root.c: Likewise, plus some reformatting.
579 * checkout.c, client.c, find_names.c, import.c, modules.c, parseinfo.c,
580 repos.c, root.c, server.c, subr.c: s/isabsolute/ISABSOLUTE/.
581
582 2005-05-26 Derek Price <derek@ximbiot.com>
583
584 * cvs.h: Move "system.h" include before GNULIB includes. Move some
585 GNULIB includes from "system.h".
586
587 2005-05-26 Conrad T. Pino <Conrad@Pino.com>
588
589 * buffer.c, buffer.h: Add & use typedefs for function pointer arguments
590 and struct buffer function pointers. New typedefs are useful in casts.
591 * socket-client.c: Function pointers passed to buf_initialize use size_t
592 not int arguments. buf_initialize warnings are gone from Windows build.
593
594 2005-05-24 Derek Price <derek@ximbiot.com>
595
596 * client.c, entries.c, filesubr.c, hardlink.c, ignore.c, import.c,
597 lock.c, logmsg.c, mkmodules.c, rcs.c, rcscmds.c, server.c, subr.c,
598 update.c, vers_ts.c: s/CVS_STAT/stat/ & s/CVS_LSTAT/lstat/.
599
600 2005-05-23 Derek Price <derek@ximbiot.com>
601
602 * filesubr.c (xresolvepath): Move to...
603 * subr.c (xcanonicalize_file_name): ...here and rename. Use new
604 GNULIB canonicalize module.
605 * cvs.h (xresolvepath): Move proto...
606 * subr.h (xcanonicalize_file_name): ...here.
607 * checkout.c (safe_location), server.c (isSamePath): Use new function
608 name.
609
610 2005-05-23 Derek Price <derek@ximbiot.com>
611
612 * sanity.sh (rcslib-symlink-10): Accept empty result due to broken glob
613 in glibc 2.3.5.
614
615 2005-05-18 Derek Price <derek@ximbiot.com>
616
617 * sanity.sh (config-9): Split to local/remote tests to avoid unportable
618 expr characters.
619
620 2005-05-17 Derek Price <derek@ximbiot.com>
621
622 * sanity.sh: Use a predictable umask.
623
624 2005-05-13 Derek Price <derek@ximbiot.com>
625
626 * login.c (password_entry_parseline): Placate gcc -Wall.
627
628 2005-05-11 Derek Price <derek@ximbiot.com>
629
630 * cvs.h (find_files): New proto.
631 * find_names.c (find_files, strip_rcsext): New functions.
632 (find_rcs): Make arg const. Use new find_files. Improve header
633 comment block.
634 * history.c (histfile): Remove global.
635 (get_history_log_name): New function.
636 (history, history_write): Use new functions.
637 (read_hrecs_file): New function containing most content from...
638 (read_hrecs): ...this function, which now accepts a file list and calls
639 read_hrecs_file once for each file.
640 * parseinfo.c (parse_config): Parse HistoryLogPath & HistorySearchPath.
641 * parseinfo.h (struct config): Add HistoryLogPath & HistorySearchPath.
642 * sanity.sh (basic2-64): Remove obsolete comment.
643 (config): Test new history options.
644 (crerepos): Cleanup.
645
646 2005-05-09 Derek Price <derek@ximbiot.com>
647
648 * error.c (error): Avoid unportable calls to vsyslog.
649
650 2005-05-09 Derek Price <derek@ximbiot.com>
651
652 * history.c (history_write): Add FIXME.
653
654 2005-05-09 Derek Price <derek@ximbiot.com>
655
656 * hash.c (removenode, mergelists): New function.
657 (delnode): Use removenode.
658 * hash.h (mergelists): New proto.
659
660 2005-05-04 Derek Price <derek@ximbiot.com>
661
662 * error.c (error): Avoid recursion and syslog the problem.
663
664 2005-05-03 Derek Price <derek@ximbiot.com>
665
666 * tag.c (is_in_val_tags): Remove unnecessary existance checking for the
667 val-tags file and just rely on open() to create it when necessary.
668
669 2005-05-03 Derek Price <derek@ximbiot.com>
670
671 * tag.c (tag_check_valid): Don't verify the_val_args.found when it is
672 not initialized.
673
674 2005-05-03 Derek Price <derek@ximbiot.com>
675
676 * add.c: Update comment to include the -k option. This resolves issue
677 #226 on cvshome.org.
678
679 2005-05-02 Derek Price <derek@ximbiot.com>
680
681 Remove unnecessary level of indirection.
682 * lock.c (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): Remove macros.
683 (internal_lock, internal_clear_lock): Accept lock as argument.
684 (history_lock, clear_history_lock, val_tags_lock, clear_val_tags_lock):
685 Replace old macro arg with an actual lock pointer.
686
687 2005-05-02 Derek Price <derek@ximbiot.com>
688
689 * lock.c (internal_lock, internal_clear_lock): Add protos.
690 (history_lock, val_tags_lock): Return the chartered true/false status.
691
692 2005-05-02 Derek Price <derek@ximbiot.com>
693
694 * cvs.h (CVSHISTLCK): Rename macro to...
695 (CVSHISTORYLCK): ...this.
696 (CVSVALTAGSLCK): New macro.
697 (val_tags_lock, clear_val_tags_lock): New functions.
698 * lock.c (global_val_tags_lock): New global.
699 (Lock_Cleanup): Clean up after val-tags lock if necessary.
700 (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): New local macros.
701 (internal_lock, val_tags_lock, clear_val_tags_lock): New functions.
702 (history_lock): Use new internal function.
703 * tag.c (is_in_val_tags, add_to_val_tags): New functions using the
704 write lock for val-tags and factored from...
705 (tag_check_valid): ...this function.
706 * sanity.sh (lockfiles-22): Add val-tags lock test.
707
708 2005-04-30 Mark D. Baushke <mdb@cvshome.org>
709
710 * lock.c (global_readlock, global_writelock, global_history_lock):
711 Add missing alternatives for non-LOCK_COMPATIBILITY initialization.
712
713 2005-04-28 Derek Price <derek@ximbiot.com>
714
715 * cvs.h (history_lock, clear_history_lock): New protos.
716 * lock.c (struct lock): Add lockdirname.
717 (global_history_lock): New global.
718 (global_read_lock): Initialize.
719 (lock_name): Handle const args.
720 (lock_simple_remove): Factor out code in favor of clear_lock call.
721 (set_lock): Handle variable lockdirname.
722 (lock_filesdoneproc): Set new lockdirname.
723 (history_lock, clear_history_lock): New functions.
724 (clear_lock): Avoid segfault on missing lock.
725 (Lock_Cleanup): Clean up history locks when necessary.
726 * history.c (history_write): Use new lock.
727 * sanity.sh (lockfiles-20): Test new lock.
728
729 2005-04-28 Derek Price <derek@ximbiot.com>
730
731 * sanity.sh (lockfiles): Port some locking tests over from 1.12.x.
732
733 2005-04-28 Derek Price <derek@ximbiot.com>
734
735 * lock.c (clear_lock): Improve comment.
736
737 2005-04-28 Derek Price <derek@ximbiot.com>
738
739 * lock.c (struct lock): Store lockdir name.
740 (masterlock): Remove global.
741 (remove_lock_files, clear_lock, set_lock): Update to compensate.
742
743 2005-04-25 Mark D. Baushke <mdb@cvshome.org>
744
745 * server.c: Add support for <pam/pam_appl.h> to allow
746 --enable-pam to work on MacOSX 10.2 and newer.
747 (Pach from Moriyoshi Koizumi <moriyoshi@at.wakwak.com>.)
748
749 2005-04-25 Derek Price <derek@ximbiot.com>
750
751 * mkmodules.c (mkmodules): Remove `#if 0' and reformat comment.
752
753 2005-04-22 Mark D. Baushke <mdb@cvshome.org>
754
755 * expand_path.c (expand_variable): Add SESSIONID and COMMITID
756 internal variables. Both return the unique global session id of
757 the CVS process. Passing this information to administrative
758 triggers seems reasonable. (The same feature exists in CVSNT and
759 the names were chosen to be the same as the CVSNT names.)
760
761 * sanity.sh (info): Add a test for $COMMITID and $SESSIONID.
762
763 2005-04-20 Mark D. Baushke <mdb@cvshome.org>
764
765 * sanity.sh (rcs4): Fix a typo.
766
767 2005-04-20 Derek Price <derek@ximbiot.com>
768
769 * sanity.sh (rcs5): Minor cosmetic change.
770
771 2005-04-20 Derek Price <derek@ximbiot.com>
772
773 * sanity.sh (tests): Add rcs4.
774 (rcs5): Add comments.
775
776 2005-04-20 Derek Price <derek@ximbiot.com>
777
778 * rcs.c (expand_keywords): Avoid buffer overflow.
779 (Original patch from Stewart Brodie <stewart@eh.org>.)
780
781 * sanity.sh (rcs5): New tests for the above.
782
783 2005-04-08 Derek Price <derek@ximbiot.com>
784
785 * edit.c (edit_fileproc, unedit_fileproc): s/GMT/-0000/.
786 * rcs.c (RCS_getrevtime): Ditto, & replace a sprintf into a static
787 buffer with an Xasprintf which creates a dynamic one.
788 * sanity.sh: Update tests to compensate.
789 (Original bug report from Ian Abbott <abbotti@mev.co.uk>.)
790
791 2005-03-26 Mark D. Baushke <mdb@cvshome.org>
792
793 * checkout.c (checkout_proc): Use Xasprintf/xstrdup instead of
794 xmalloc/strcpy+strcat.
795
796 2005-03-22 Mark D. Baushke <mdb@cvshome.org>
797
798 * Makefile.in: Regenerated.
799
800 2005-03-22 Mark D. Baushke <mdb@cvshome.org>
801
802 * rcs.c (linevector_add): Use xnrealloc.
803 * server.c (serve_argument): Ditto.
804
805 2005-03-22 Mark D. Baushke <mdb@cvshome.org>
806
807 * rcs.c (linevector_copy): Use xtimes in argument.
808
809 * patch.c (patch): Remove dead code.
810
811 * lock.c (set_readlock_name): Use Xasprintf instead of
812 xmalloc/sprintf.
813 (lock_exists, set_promotable_lock, lock_wait): Ditto.
814 (lock_obtained, lock_dir_for_write): Ditto.
815 * log.c (rlog_proc): Ditto.
816
817 * ignore.c (ign_dir_add): Use xnrealloc.
818 * modules.c (save_d): Ditto.
819 * rcs.c (linevector_copy): Ditto.
820
821 * add.c (add): Use xstrdup instead of xmalloc/strcpy.
822 * client.c (client_process_import_file): Ditto.
823 * kerberos4-client.c (start_kerberos4_server): Ditto.
824 * logmsg.c (verifymsg_proc): Ditto.
825 * log.c (log_expand_revlist): Ditto.
826 * patch.c (patch_fileproc): Ditto.
827 * rcs.c (RCS_tag2rev, RCS_nodeisbranch, RCS_getbranch): Ditto.
828 (RCS_getdatebranch, expand_keywords, RCS_addbranch): Ditto.
829 (RCS_checkin): Ditto.
830 * remove.c (remove_fileproc): Ditto.
831
832 2005-03-18 Derek Price <derek@ximbiot.com>
833
834 * server.c: Reindent pragmas.
835 (become_proxy): Add parentheses for -Wall.
836
837 2005-03-18 Derek Price <derek@ximbiot.com>
838
839 * error.c (error): Simplify using vasnprintf.
840
841 2005-03-17 Mark D. Baushke <mdb@cvshome.org>
842
843 * admin.c (postadmin_proc): Cast NULL when it is an argument to
844 stdarg function to ensure it is the correct type.
845 * commit.c (precommit_proc): Ditto.
846 * edit.c (notify_proc): Ditto.
847 * fileattr.c (postwatch_proc): Ditto.
848 * logmsg.c (logfile_write, verifymsg_proc): Ditto.
849 * server.c (prepost_proxy_proc): Ditto.
850 * subr.c (cmdlineescape): Ditto.
851 * tag.c (posttag_proc): Ditto.
852 (Thanks to a report from Derek Price <derek@ximbiot.com>.)
853
854 2005-03-17 Derek Price <derek@ximbiot.com>
855
856 * rcs.h (RCSNode): Improve comment.
857 * rcs.c (RCS_head): Ditto, plus gratuitous reformatting.
858
859 2005-03-17 Derek Price <derek@ximbiot.com>
860
861 * rcs.c (RCS_deltas): Use rcs->print_path.
862
863 2005-03-17 Derek Price <derek@ximbiot.com>
864
865 * login.c (password_entry_parseline): Avoid using uninitialized
866 variable.
867 * rcs.c (RCS_deltas): Avoid buffer overflow.
868 (RCS_checkout): Avoid using uninitialized loglen.
869 * patch.c (patch_fileproc): Free original pointer, not one that may
870 have been incremented.
871 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
872
873 2005-03-17 Derek Price <derek@ximbiot.com>
874
875 * commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
876 response to a rare error.
877 * admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
878 (checkout_file), rcs.c (RCS_getdate, RCS_deltas, RCS_findlock_or_tip,
879 RCS_tag2rev): Avoid dereferencing NULL pointer.
880 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
881
882 2005-03-17 Derek Price <derek@ximbiot.com>
883
884 * rcs.c (RCS_reparsercsfile): Avoid memory leak.
885 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
886
887 2005-03-17 Derek Price <derek@ximbiot.com>
888
889 * log.c (log_expand_revlist): Suppress message and not error handling
890 when really_quiet.
891
892 2005-03-16 Mark D. Baushke <mdb@cvshome.org>
893
894 * buffer.c (fd_buffer_shutdown): Replace (int *) 0 with NULL.
895 * server.c (do_cvs_command): Ditto.
896
897 * client.c (update_entries): Use xnmalloc.
898
899 * checkin.c (Checkin): Replace (char *) 0 with NULL.
900 * patch.c (patch_fileproc): Ditto.
901 * update.c (update_fileproc): Ditto.
902 * no_diff.c (No_Difference): Ditto.
903 * patch.c (patch_fileproc): Ditto.
904 * rcscmds.c (call_diff_setup, call_diff_add_arg): Ditto.
905
906 * update.c (join_file): Replace (RCSCHECKOUTPROC)0 with NULL.
907 * rcs.c (RCS_checkin, RCS_cmp_file, RCS_delete_revs)
908 (RCS_delete_revs): Ditto.
909 * rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Ditto.
910
911 * annotate.c, checkin.c, classify.c, fileattr.c, find_names.c,
912 hash.c, lock.c, login.c, logmsg.c, main.c, modules.c, myndbm.c,
913 no_diff.c, patch.c, rcs.c, rcscmds.c, remove.c, server.c,
914 status.c, subr.c, tag.c, update.c, vers_ts.c: Avoid casting NULL.
915
916 2005-03-17 Derek Price <derek@ximbiot.com>
917
918 * client.c (call_in_directory): Put function call after var decls.
919
920 2005-03-16 Derek Price <derek@ximbiot.com>
921
922 * client.c (call_in_directory), commit.c (commit_filesdoneproc), log.c
923 (log_expand_revlist, log_version), logmsg.c (logfile_write), modules
924 (my_module), no_diff.c (No_Difference), parseinfo.c (Parse_Info), rcs.c
925 (RCS_deltas, RCS_checkin, RCS_addbranch, do_locks, do_symbols),
926 rcscmds.c (RCS_merge), root.c (parse_cvsroot, normalize_cvsroot),
927 update.c (merge_file): Verify assumptions via assertions.
928 (Thanks to (probably) incorrect reports from Alen Zukich
929 <alen.zukich@klocwork.com>.)
930
931 2005-03-16 Mark D. Baushke <mdb@cvshome.org>
932
933 * rcs.c (RCS_check_kflag): Use Xasprintf instead of
934 sprintf/xstrdup.
935
936 * mkmodules.c (checkout_file): Use Xasprintf instead of
937 xmalloc/strcpy+strcat.
938 * wrapper.c (wrap_unparse_rcs_options): Ditto.
939 (wrap_rcsoption): Ditto.
940
941 * subr.c (getcaller): Use Xasprintf instead of sprintf/xstrdup.
942
943 * history.c (history): Use Xasprintf instead of xmalloc/sprintf.
944 * lock.c (lock_name, set_lockers_name): Ditto.
945 * main.c (cmd_synonyms, main): Ditto.
946 * mkmodules.c (rename_rcsfile, init): Ditto
947 * modules.c (cat_module): Ditto.
948 * parseinfo.c (Parse_Info): Ditto.
949 * rcscmds.c (diff_exec, RCS_output_diff_options): Ditto.
950 * recurse.c (start_recursion, do_dir_proc): Ditto.
951 * remove.c (remove_fileproc): Ditto.
952 * repos.c (Name_Repository): Ditto.
953 * root.c (Name_Root, Create_Root): Ditto.
954 * status.c (status_fileproc, tag_list_proc): Ditto.
955 * wrapper.c (wrap_setup, wrap_tocvs_process_file): Ditto.
956
957 * hash.c (sortlist): Use xnmalloc.
958 * main.c (cmd_synonyms): Ditto.
959 * server.c (cvs_pam_conv): Ditto.
960
961 * create_adm.c (Create_Admin): Clean up use of Xasprintf/xstrdup.
962 * entries.c (WriteTag, base_walk): Ditto.
963 * modules.c (my_module): Ditto.
964
965 * wrapper.c (wrap_fromcvs_process_file): Use Xasprintf instead of
966 xmalloc/sprintf and clean up control flow.
967
968 2005-03-16 Derek Price <derek@ximbiot.com>
969
970 * history.c (history_write): Remove test that always evaluates to
971 false.
972
973 2005-03-16 Derek Price <derek@ximbiot.com>
974
975 * server.c (become_proxy): Close pipe to primary when pipe from it
976 closes.
977
978 2005-03-16 Mark D. Baushke <mdb@cvshome.org>
979
980 * sanity.sh (debug-log-nonfatal): Only set CVS_CLIENT_LOG to the
981 old value if it was previously set.
982
983 2005-03-16 Derek Price <derek@ximbiot.com>
984
985 * server.c (create_adm_p, serve_entry), tag.c (rtag_proc): Avoid memory
986 leaks.
987 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
988
989 2005-03-16 Derek Price <derek@ximbiot.com>
990
991 * logmsg.c (do_verify): Don't check for NULL return from xfopen().
992
993 2005-03-16 Derek Price <derek@ximbiot.com>
994
995 * sanity.sh (debug-log-nonfatal): New test.
996
997 2005-03-16 Derek Price <derek@ximbiot.com>
998
999 * sanity.sh (writeproxy-ssh-noredirect): Don't unconditionally create
1000 a primary debug log.
1001
1002 2005-03-16 Derek Price <derek@ximbiot.com>
1003
1004 * cvs.h (open_file): Move proto...
1005 * subr.h (xfopen): ...here and rename.
1006 * filesubr.c (open_file): Move function...
1007 * subr.c (xfopen): ...here, with additional commenting and minor
1008 cosmetic changes.
1009 * add.c, checkout.c, client.c, cvsrc.c, edit.c, entries.c, filesubr.c,
1010 logmsg.c, mkmodules.c, modules,c, patch.c, root.c, subr.c:
1011 s/open_file/xfopen/.
1012
1013 2005-03-16 Derek Price <derek@ximbiot.com>
1014
1015 * log-buffer.c (setup_logfiles): Failure to open a debug log file
1016 should be non-fatal.
1017
1018 2005-03-16 Derek Price <derek@ximbiot.com>
1019
1020 * server.c (cvs_outerr): Quote error text in syslog messages.
1021
1022 2005-03-15 Mark D. Baushke <mdb@cvshome.org>
1023
1024 * history.c (select_hrec): Avoid possible memory leak.
1025
1026 2005-03-15 Derek Price <derek@ximbiot.com>
1027
1028 * patch.c (patch_proc): Avoid memory leak.
1029 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1030
1031 2005-03-12 Mark D. Baushke <mdb@cvshome.org>
1032
1033 * server.c (receive_partial_file): Use ssize_t to deal with < 0
1034 return value from write().
1035
1036 2005-03-12 Mark D. Baushke <mdb@cvshome.org>
1037
1038 * history.c (save_file): Bug fix from last change.
1039
1040 2005-03-11 Mark D. Baushke <mdb@cvshome.org>
1041
1042 * update.c (get_linkinfo_proc): Use Xasprintf instead of
1043 xmalloc/sprintf. Gratuitous reformatting.
1044 (update_ignproc, update_dirent_proc, checkout_file): Ditto.
1045 (patch_file, merge_file, join_file): Ditto.
1046 * modules.c (open_module): Ditto.
1047
1048 * modules (my_module): Use Xasprintf instead of xmalloc/sprintf
1049 and avoid possibility of trying to free(NULL).
1050
1051 * subr.c (backup_file): Use Xasprintf instead of xmalloc/sprintf.
1052 (cmdlinequote): Use Xasprintf instead of xmalloc/strcat+strlen.
1053 * modules.c (my_module): Ditto.
1054
1055 * client.c (handle_module_expansion): Use xnmalloc, xnrealloc,
1056 and xstrdup in place of xmalloc, xrealloc, and xmalloc/strcpy.
1057 (start_server): Do not assume gzip_level precision encoding.
1058 (send_modified): Do not assume 1024 bytes is sufficient for
1059 a temporary filename.
1060
1061 * modules.c (my_module): Use xnmalloc and xnrealloc. Gratuitous
1062 reformatting.
1063 * subr.c (line2argv): Ditto.
1064
1065 2005-03-11 Mark D. Baushke <mdb@cvshome.org>
1066
1067 * modules.c (my_module): Protect against free (NULL) code path.
1068
1069 2005-03-11 Derek Price <derek@ximbiot.com>
1070
1071 * annotate.c (rannotate_proc), fileattr.c (fileattr_write), rcs.c
1072 (RCS_deltas), server.c (check_repository_password), update.c (update):
1073 Avoid memory leaks.
1074 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1075
1076 2005-03-10 Derek Price <derek@ximbiot.com>
1077
1078 * diff.c (diff_fileproc): Remove unnecessary check for NULL.
1079
1080 2005-03-10 Mark D. Baushke <mdb@cvshome.org>
1081
1082 * commit.c: Gratuitous reformatting.
1083 * entries.c: Ditto.
1084 * import.c (import, import_descend): Ditto.
1085
1086 * commit.c (commit): Use xnmalloc. Gratuitous reformatting.
1087 * history.c (save_user, save_file, save_module, read_hrecs): Ditto.
1088 * ignore.c (ign_add): Ditto.
1089
1090 * hardlink.c (lookup_file_by_inode): Use Xasprintf instead of
1091 xmalloc/sprintf. Gratuitous reformatting.
1092 (update_hardlink_info, list_linked_files_on_disk): Ditto.
1093 (find_checkedout_proc): Ditto.
1094 * history.c (history, history_write, save_file): Ditto.
1095 (select_hrec): Ditto.
1096 * ignore.c (ign_setup, ignore_files): Ditto.
1097 * import.c (process_import_file, import_descend_dir): Ditto.
1098
1099 * import.c (import_descend_dir): Use Xasprintf instead of
1100 xmalloc/strcpy+strcat+strcat.
1101
1102 * history.c (read_hrecs): Make function argument a const.
1103
1104 2005-03-10 Derek Price <derek@ximbiot.com>
1105
1106 * fileattr.c (fileattr_read): Only eat a newline when it really is a
1107 newline.
1108
1109 2005-03-10 Mark D. Baushke <mdb@cvshome.org>
1110
1111 * zlib.c: Include "pagealign_alloc.h".
1112
1113 2005-03-09 Derek Price <derek@ximbiot.com>
1114
1115 * add.c (add, add_directory), buffer.c (allocate_buffer_datas),
1116 client.c (update_entries), commit.c (checkaddfile), entries.c
1117 (Entries_Open), fileattr.c (fileattr_read), ignore.c (ign_add),
1118 import.c (import), main.c (main), parseinfo.c (parse_config), rcs.c
1119 (RCS_reparsercsfile, RCS_getbranchpoint, RCS_checkout,
1120 RCS_delete_revs, apply_rcs_changes): Avoid memory leaks.
1121 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
1122
1123 * hardlink.c, hardlink.h: Avoid compiling entire contents of these
1124 files w/o preserve permissions support.
1125
1126 2005-03-09 Mark D. Baushke <mdb@cvshome.org>
1127
1128 * history.c (history, save_file): Cleanup the API to match the
1129 comments.
1130
1131 2005-03-08 Derek Price <derek@ximbiot.com>
1132
1133 * rcs.c: Define MAP_FILE & MAP_FAILED when necessary.
1134
1135 2005-03-08 Derek Price <derek@ximbiot.com>
1136
1137 * zlib.c (compress_buffer_input): Use pagealign_xalloc when allocating
1138 buffer datas.
1139 (compress_buffer_output, compress_buffer_flush,
1140 compress_buffer_shutdown_output): Don't assume that BUFFER_DATA_SIZE is
1141 a constant.
1142 (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1143
1144 2005-03-08 Larry Jones <lawrence.jones@ugs.com>
1145
1146 * release.c (release): Remove unneeded code.
1147
1148 2005-03-07 Conrad T. Pino <Conrad@Pino.com>
1149
1150 * buffer.h (buf_free_data): Compile with proxy disabled.
1151 (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1152
1153 2005-03-07 Mark D. Baushke <mdb@cvshome.org>
1154
1155 * add.c (add_directory): Xasprintf instead of xmalloc/sprintf+strcat.
1156 * admin.c (arg_add): Ditto.
1157 (admin_fileproc, postadmin_proc, admin_fileproc): Gratuitous
1158 reformatting.
1159
1160 * client.c (mode_to_string): Use Xasprintf.
1161
1162 * checkout.c (checkout): Xasprintf instead of xmalloc/sprintf.
1163 Gratuitous reformatting.
1164 * entries.c (WriteTag): Ditto
1165 (subdir_record, base_walk): Ditto.
1166 * fileattr.c (fileattr_read, fileattr_set, fileattr_write): Ditto.
1167 * filesubr.c (deep_remove_dir, cvs_temp_file): Ditto.
1168 (strcat_filename_onto_homedir): Ditto.
1169 * find_names.c (Find_Names): Ditto.
1170
1171 * filesubr.c (expand_wild): Use xnmalloc instead of xmalloc.
1172
1173 2005-03-07 Derek Price <derek@ximbiot.com>
1174
1175 * buffer.c (buf_free_data): Compile with proxy disabled.
1176 (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1177
1178 2005-03-07 Derek Price <derek@ximbiot.com>
1179
1180 * buffer.c (packetizing_buffer_input, packetizing_buffer_output): Don't
1181 assume BUFFER_DATA_SIZE is a constant.
1182 (Thanks to report from Larry Jones <lawrence.jones@ugs.com>.)
1183
1184 2005-03-03 Derek Price <derek@ximbiot.com>
1185
1186 Use new pagealign_alloc() and pagealign_free() functions in
1187 lieu of maintaining pointers for reuse. On most systems this should be
1188 faster.
1189 * buffer.c: Include "pagealign_alloc.h".
1190 (free_buffer_data): Remove this global.
1191 (allocate_buffer_datas): Remove this function.
1192 (buf_free, buf_send_output): Call buf_free_data().
1193 (get_buffer_data): Use pagealign_alloc().
1194 (buf_free_datas): New function.
1195 (buf_send_output, buf_free_data, buf_read_file, buf_read_file_to_eof,
1196 buf_read_short_line, buf_read_data, buf_copy_counted): Call
1197 buf_free_datas().
1198 * buffer.h: Include "getpagesize.h".
1199 (BUFFER_DATA_SIZE): Default to getpagesize ();
1200 * rcs.c: Lean on m4/mmap-anon.m4 to simplify mmap setup.
1201
1202 2005-03-02 Jim Meyering <jim@meyering.net>
1203
1204 Detect and report write failure for e.g., cvs up -p FILE > /dev/full
1205 * main.c: Include "closeout.h".
1206 (main): Arrange to close standard output upon exit.
1207 * sanity.sh (close-stdout): New test for this fix.
1208
1209 2005-03-01 Mark D. Baushke <mdb@cvshome.org>
1210
1211 * checkout.c (emptydir_name): Xasprintf instead of
1212 xmalloc/sprintf.
1213
1214 * add.c (add): Xasprintf instead of xmalloc/sprintf.
1215 Gratuitous reformatting.
1216 (add_directory, build_entry): Ditto.
1217 * annotate.c (rannotate_proc): Ditto.
1218 * checkout.c (checkout_proc): Ditto.
1219 * client.c (call_in_directory): Ditto.
1220 (template, send_dirent_proc): Ditto.
1221 (client_process_import_file): Ditto.
1222 * commit.c (check_fileproc, precommit_proc): Ditto.
1223 (commit_fileproc, finaladd): Ditto.
1224 (checkaddfile): Ditto.
1225 * create_adm.c (Create_Admin): Ditto.
1226 * edit.c (notify_do): Ditto.
1227
1228 2005-03-01 Derek Price <derek@ximbiot.com>
1229
1230 * subr.c (get_date): Minor reformatting.
1231
1232 2005-03-01 Derek Price <derek@ximbiot.com>
1233
1234 * subr.c (get_date): Replace obsolete timeb cruft in this stub.
1235
1236 2005-02-28 Mark D. Baushke <mdb@cvshome.org>
1237
1238 * admin.c (arg_add): Use xnmalloc and xnrealloc.
1239 (admin): Use xnmalloc. Minor reformatting.
1240 Xasprintf instead of xmalloc/strcpy+strcat.
1241 * client.c (client_expand_modules): Use xnmalloc.
1242 Minor reformatting.
1243 * cvsrc.c (read_cvsrc): Use xnmalloc and xnrealloc.
1244 Minor reformatting.
1245 * history.c (read_hrecs): Use xnrealloc. Minor reformatting.
1246 * ignore.c (ign_add): Use xnrealloc. Minor reformatting.
1247 * rcscmds.c (call_diff_add_arg): Use xnrealloc.
1248 * wrapper.c (wrap_add_entry): Use xnrealloc. Gratuitous
1249 reformatting.
1250
1251 2005-02-28 Derek Price <derek@ximbiot.com>
1252
1253 * edit.c (notify_proc), logmsg.c (logfile_write): Minor reformatting.
1254
1255 2005-02-28 Derek Price <derek@ximbiot.com>
1256
1257 * root.c (parse_root): Trigger a later error message rather than
1258 maintaining two copies.
1259
1260 2005-02-27 Mark D. Baushke <mdb@cvshome.org>
1261
1262 * client.c (connect_to_pserver): Use TRACE_FUNCTION, not 1 in
1263 TRACE() calls.
1264 (connect_to_pserver,send_modified): Ditto.
1265 * create_adm.c (Create_Admin): Ditto.
1266 * entries.c (Register, Scratch_Entry, WriteTemplate): Ditto.
1267 * filesubr.c (copy_file, xchmod, rename_file): Ditto.
1268 * history.c (history_write): Ditto.
1269 * kerberos4-client.c (start_kerberos4_server): Ditto.
1270 * no_diff.c (No_Difference): Ditto.
1271 * parseinfo.c (Parse_Info): Ditto.
1272 * rcs.c (RCS_checkout): Ditto.
1273 * server.c (server_register): Ditto.
1274 * update.c (join_file): Ditto.
1275
1276 * no_diff.c (No_Difference): Gratuitous reformatting.
1277 * kerberos4-client.c (start_kerberos4_server): Ditto.
1278
1279 2005-02-27 Jim Meyering <jim@meyering.net>
1280
1281 * login.c (password_entry_operation): Exit nonzero when
1282 failing to close a just-appended-to .cvspass file.
1283
1284 2005-02-26 Derek Price <derek@ximbiot.com>
1285
1286 * root.c: Gratuitous reformatting.
1287
1288 2005-02-26 Mark D. Baushke <mdb@cvshome.org>
1289
1290 * root.c (parse_cvsroot): Handle another Bad CVSROOT.
1291 * sanity.sh (parseroot-8r): Test for it.
1292 (Problem report from Hiroyuki Ikezoe <poincare@ikezoe.net>.)
1293
1294 2005-02-26 Derek Price <derek@ximbiot.com>
1295
1296 * server.c: Include netdb.h with server support. Other reformatting.
1297
1298 2005-02-25 Derek Price <derek@ximbiot.com>
1299
1300 * sanity.sh (multiroot2-9a): Correct for new TRACE message.
1301
1302 2005-02-25 Derek Price <derek@ximbiot.com>
1303
1304 * cvs.h (tag_check_valid): Declare NAME arg const.
1305 * tag.c (tag_check_valid): Ditto, update to account for this.
1306 Xasprintf instead of xmalloc/sprintf.
1307
1308 2005-02-25 Derek Price <derek@ximbiot.com>
1309
1310 * client.c (send_modified): Suppress a -Wall warning.
1311
1312 2005-02-25 Derek Price <derek@ximbiot.com>
1313
1314 * cvs.h (global_session_id): New global declaration.
1315 * import.c (add_rcs_file), rcs.c (RCS_checkin): Save commitid.
1316 * log.c (log_version), status.c (status_fileproc): Output commitid.
1317 * main.c (global_session_id): Define new global.
1318 (main): Create session ID.
1319 * sanity.sh: Update to compensate.
1320 (Original patch from Frank Hemer <frank@hemer.org>.)
1321
1322 2005-02-24 Derek Price <derek@ximbiot.com>
1323
1324 * subr.h (cvs_trace, TRACE*): Move to...
1325 * server.h: ...here.
1326 * subr.c: Ditto, but to...
1327 * server.c: ...here, and print out 'P' instead of 'S' for traces from
1328 secondary (proxy) servers.
1329
1330 2005-02-24 Derek Price <derek@ximbiot.com>
1331
1332 * admin.c (admin): Suppress warning with -Wall and --disable-client.
1333 * server.c: Don't declare functions that won't be defined when
1334 --disable-server.
1335
1336 2005-02-24 Derek Price <derek@ximbiot.com>
1337
1338 * sanity.sh (primary-wrapper): Rename CVS_SERVER_LOG for the primary in
1339 writeproxy mode to avoid overwriting.
1340
1341 2005-02-24 Derek Price <derek@ximbiot.com>
1342
1343 * client.c (open_connection_to_server): Fail with an expressive error
1344 message when connection is attempted via an unsupported protocol since
1345 this is no longer caught in parse_root().
1346 * edit.c (edit_fileproc), import.c (import): Don't verify
1347 current_parsed_root->isremote without client support.
1348 * parseinfo.c (parse_config): Parse PrimaryServer without proxy
1349 support. Postpone method verification until the connect phase.
1350 * parseinfo.h (struct config): Always include PrimaryServer.
1351 * root.c (primary_root_translate, primary_root_inverse_translate):
1352 Don't declare vars without PROXY_SUPPORT when they won't be used.
1353 (parse_cvsroot): Parse remote connection methods with server support
1354 for PrimaryServer/Redirects. Delay method support verification until
1355 the connect phase.
1356 * root.h (cvsroot_t): Include remote elements with SERVER_SUPPORT.
1357 * server.c (isProxyServer): Delay method verification until the connect
1358 phase.
1359
1360 2005-02-23 Derek Price <derek@ximbiot.com>
1361
1362 * tag.c (tag): Handle -r<tag>:<date>.
1363 * sanity.sh (tagdate-13.*): New tests.
1364
1365 2005-02-23 Derek Price <derek@ximbiot.com>
1366
1367 * annotate.c (annotate), ls.c (ls): Handle -r<tag>:<date>.
1368
1369 2005-02-23 Derek Price <derek@ximbiot.com>
1370
1371 * diff.c: Some reformatting.
1372 (diff): Handle -r<tag>:<date>.
1373 * sanity.sh (tagdate-13b): New test.
1374
1375 2005-02-23 Derek Price <derek@ximbiot.com>
1376
1377 * checkout.c (checkout): Use parse_tagdate.
1378 * tag.c (tag_check_valid_join): Remove this function.
1379 * cvs.h (tag_check_valid_join): Ditto for the proto.
1380 (parse_tagdate): New proto.
1381 (Make_Date): Make arg const.
1382 * main.c (Make_Date): Ditto.
1383 (parse_tagdate): New function.
1384 * update.c (date_rev1, date_rev2): Rename these globals...
1385 (join_date1, join_date2): ...to this.
1386 (update): Use parse_tagdate.
1387 (do_update): Use new API.
1388 * update.h (do_update): Update proto.
1389 * sanity.sh: Misc reformatting.
1390 (tagdate-12): This test now passes.
1391 (tagdate-12b): New test.
1392 (multiroot-9a): Handle new TRACE.
1393
1394 2005-02-23 Derek Price <derek@ximbiot.com>
1395
1396 * rsh-client.c (start_rsh_server): Update comment. Replace
1397 malloc/sprintf combo with a call to Xasprintf.
1398
1399 2005-02-22 Derek Price <derek@ximbiot.com>
1400
1401 * error.c (error): Handle unsigned int format char.
1402 * parseinfo.c (parse_error): New function.
1403 (parse_config): Keep track of line number and output it in error
1404 messages.
1405 * rcs.c (RCS_setlocalid): Accept file path and line number for error
1406 messages. Add header comment block.
1407 * rcs.h (RCS_setlocalid): Update prototype to match.
1408 * parseinfo.h (parse_error): Declare new function.
1409 * sanity.sh: Accept new --noredirect argument.
1410 (checklongoptarg): Accept longoptmode as an argument
1411 rather than via an environment variable.
1412 (notnoredirect): New function.
1413 (newroot): Handle root options.
1414 (keywordexpand, config): Skip in noredirect mode. Update for new
1415 config error messages.
1416 (multiroot): Some reformatting.
1417 (writeproxy, writeproxy-noredirect): Skip in noredirect mode.
1418 (commit, writeproxy-noredirect): Quote CVSROOT arguments since they
1419 might contain semicolons.
1420
1421 2005-02-21 Mark D. Baushke <mdb@cvshome.org>
1422
1423 * import.c (import): Avoid using assert with side effects it may
1424 be configured away using NDEBUG.
1425 (Patch from Frank Hemer <frank@hemer.org>.)
1426
1427 2005-02-20 Mark D. Baushke <mdb@cvshome.org>
1428
1429 * main.c (main): Check the results from xgethostname(). Print a
1430 message with the errno and use "localhost" if NULL is returned.
1431
1432 2005-02-20 Derek Price <derek@ximbiot.com>
1433
1434 * cvs.h (run_arg): Rename to...
1435 (run_add_arg): New function.
1436 * run.c (run_arg): Remove.
1437 (run_add_arg): Remove static declaration.
1438 (run_piped): New function.
1439 * logmsg.c, modules.c: s/run_arg/run_add_arg/.
1440 * release.c (release): Replace use of piped_child with a call
1441 to run_piped to avoid quoting issues.
1442 * sanity.sh (info-cleanup-0): Expect success.
1443
1444 2005-02-19 Derek Price <derek@ximbiot.com>
1445
1446 * edit.c (unedit_fileproc, mark_up_to_date): Replace xmallc/strcat
1447 sequence with single call to Xasprintf.
1448
1449 2005-02-08 Derek Price <derek@ximbiot.com>
1450
1451 * rsh-client.c: Some reformatting.
1452
1453 2005-02-04 Derek Price <derek@ximbiot.com>
1454
1455 * zlib.c (compress_buffer_input): Don't return EOF when there is data
1456 pending.
1457
1458 2005-02-01 Derek Price <derek@ximbiot.com>
1459
1460 * main.c: Update year in copyright notice to match GNU standards.
1461 * sanity.sh (version-1): Update to match.
1462
1463 2005-02-01 Larry Jones <lawrence.jones@ugs.com>
1464
1465 * log.c (log_fileproc, log_expand_revlist): Add support for BASE tag.
1466 * sanity.sh (log): New tests for above.
1467
1468 2005-01-31 Derek Price <derek@ximbiot.com>
1469
1470 * main.c: Rephrase --version message.
1471 * sanity.sh (version-1): Update to match.
1472
1473 2005-01-31 Derek Price <derek@ximbiot.com>
1474
1475 * Makefile.am, add.c, admin.c, annotate.c, checkin.c, checkout.c,
1476 classify.c, commit.c, create_adm.c, cvs.h, cvsrc.c, diff.c, entries.c,
1477 find_names.c, hash.c, hash.h, history.h, import.c, lock.c, log.c,
1478 login.c, logmsg.c, main.c, mkmodules.c, modules.c, myndbm.c, no_diff.c,
1479 parseinfo.c, patch.c, rcs.c, rcs.h, rcscmds.c, recurse.c, remove.c,
1480 repos.c, root.c, root.h, server.h, stack.c, stack.h, status.c, subr.c,
1481 tag.c, update.c, vers_ts.c, version.c: Update copyright notices.
1482
1483 2005-01-29 Derek Price <derek@ximbiot.com>
1484
1485 * log.c (log_usage): Add note about using -S with revision info
1486 supression and selection.
1487 (Suggestion from Dan Peterson <dbpete@aol.com>.)
1488
1489 2005-01-29 Derek Price <derek@ximbiot.com>
1490
1491 * sanity.sh (writeproxy-ssh-noredirect): Remove some commented out
1492 code.
1493
1494 2005-01-25 Larry Jones <lawrence.jones@ugs.com>
1495
1496 * expand_path.c (expand_path): Rewrite using offsets instead of
1497 pointers to simplify and avoid reallocation bugs.
1498 (Inspired by Jeremy Bopp <jeremy@motive.com>.)
1499
1500 2005-01-20 Brian Murphy <brian@murphy.dk>
1501
1502 * server.c fixing the style of the pam function calls and if
1503 statements
1504
1505 2005-01-19 Brian Murphy <brian@murphy.dk>
1506
1507 * server.c (pam_username, pam_password) new global static
1508 variables to hold the username and pasword for cvs_pam_conv.
1509 (cvs_pam_conv) using pam_username and pam_password.
1510 (check_pam_password) set pam_username, pam_password before
1511 authentication and clear them when authentication is finished.
1512 (server, switch_to_user) Check for pamh being set before using
1513 pam functionality, NULL indicating that this user was authenticated
1514 using the repository password file.
1515
1516 2004-12-09 Derek Price <derek@ximbiot.com>
1517
1518 * log-buffer.c (buf_count_mem): Compile this for PROXY_SUPPORT.
1519 (Report from Brad L. Chisholm <blc@bsdwins.com>.)
1520
1521 2004-12-09 Derek Price <derek@ximbiot.com>
1522
1523 * sanity.sh (modules7): New test group.
1524 (Based on a patch from Mark D. Baushke <mdb@cvshome.org>, based on a
1525 report from Richard Verhoeven <Richard_Verhoeven@WestLB.de>.)
1526
1527 2004-12-09 Derek Price <derek@ximbiot.com>
1528
1529 * client.c (start_server): Avoid advertising the Redirect response when
1530 the user asked us not to.
1531 * root.h (cvsroot_t): Add redirect field.
1532 * root.c (new_cvsroot_t): Init redirect field.
1533 (parse_cvsroot_t): Parse Redirect method option.
1534 * server.c (serve_command_prep): Don't throw proxy_log away when
1535 Redirect isn't supported and it might be needed later.
1536 * sanity.sh (parseroot): Improve comment, add a few new tests.
1537 (writeproxy-ssh): Specify Redirect=yes explicitly.
1538 (writeproxy-ssh-noredirect): New test group.
1539
1540 2004-12-09 Mark D. Baushke <mdb@cvshome.org>
1541
1542 * main.c (usg): Remove Dr. Pascal Molli's CVS URL from the
1543 documentation.
1544
1545 2004-12-08 Derek Price <derek@ximbiot.com>
1546
1547 * root.c (Name_Root): s/TRACE_FUNCTION/TRACE_FLOW/.
1548
1549 2004-12-08 Derek Price <derek@ximbiot.com>
1550
1551 * root.c (parse_cvsroot): Suppress -Wall warning.
1552
1553 2004-12-08 Derek Price <derek@ximbiot.com>
1554
1555 * root.c (parse_cvsroot): findnode() compares LIST to NULL w/o help.
1556
1557 2004-12-08 Derek Price <derek@ximbiot.com>
1558
1559 * root.c (Name_root), server.c (serve_referrer): Don't free cvsroot_t.
1560 * server.sh (reposmv): Reaccount for multiple potential warnings and
1561 comment.
1562
1563 2004-12-07 Derek Price <derek@ximbiot.com>
1564
1565 * root.c (parse_cvsroot): Cache parsed values for efficiency and to
1566 avoid printing warnings about non-fatal parsing errors multiple times.
1567 * client.c,, login.c, main.c, recurse.c: Don't dispose of parsed roots,
1568 parse_cvsroot() has control.
1569 * sanity.sh (reposmv): Stop accounting for multiple warnings.
1570
1571 2004-12-03 Mark D. Baushke <mdb@cvshome.org>
1572
1573 * root.h (cvsroot_t): Add cvs_rsh and cvs_server for bookkeeping
1574 purposes.
1575 * root.c (new_cvsroot_t, free_cvsroot_t): Add support for case
1576 insensitive options CVS_RSH and CVS_SERVER.
1577 (parse_cvsroot): Ditto and make all keywords case insensitive.
1578 * client.c (connect_to_forked_server): Add support for the new
1579 "CVS_SERVER" option to CVSROOT.
1580 * rsh-client.c (connect_to_forked_server): Ditto
1581 (start_rsh_server): Ditto and add support for the new "CVS_RSH"
1582 option to CVSROOT.
1583 * sanity.sh (parseroot3): New tests for the new options to
1584 CVSROOT.
1585
1586 2004-11-30 Larry Jones <lawrence.jones@ugs.com>
1587
1588 * mkmodules.c (config_contents): Add LocalKeyword and KeywordExpand,
1589 misc. cleanup.
1590
1591 2004-11-30 Derek Price <derek@ximbiot.com>
1592
1593 * parseinfo.c (readBool): Update quotes in error message for
1594 consistency. Move function to...
1595 * subr.c (readBool): ...here.
1596 (*): Gratuitous reformatting.
1597 * cvs.h: Move all subr.c function prototypes to...
1598 * subr.h: ...this new file.
1599 * Makefile.am (cvs_SOURCES): Add subr.h.
1600
1601 2004-11-30 Derek Price <derek@ximbiot.com>
1602
1603 * parseinfo.c (readBool): Reorder arguments to error() and improve
1604 header comment.
1605
1606 2004-11-30 Derek Price <derek@ximbiot.com>
1607
1608 * client.c (handle_referrer): New function.
1609 (handle_redirect): Handle possibility that CLIENT_REFERRER was set via
1610 a response.
1611 * server.c (serve_command_prep): Send a normalized Referrer response
1612 before a Redirect when the client supports it.
1613
1614 2004-11-29 Mark D. Baushke <mdb@cvshome.org>
1615
1616 * rcs.c (RCS_setlocalid): Do more configuration validation.
1617 Include some gratuitous reformatting.
1618 * sanity.sh (keywordexpand): Add tests for new validation code.
1619
1620 2004-11-24 Derek Price <derek@ximbiot.com>
1621
1622 * server.c (become_proxy): Note assumptions about syncronized primary
1623 and secondary versions with `FIXME?' note.
1624
1625 2004-11-22 Mark D. Baushke <mdb@cvshome.org>
1626
1627 * sanity.sh (info): Ignore comments in verifymsg test.
1628
1629 2004-11-22 Mark D. Baushke <mdb@cvshome.org>
1630
1631 * mkmodules.c (loginfo_contents, verifymsg_contents,
1632 commitinfo_contents, taginfo_contents, preproxy_contents,
1633 postadmin_contents, postproxy_contents, posttag_contents,
1634 postwatch_contents, notify_contents): Add comments regarding the
1635 additional format strings that are available. Include some
1636 gratuitous reformatting.
1637
1638 2004-11-19 Derek Price <derek@ximbiot.com>
1639
1640 * subr.c (Xasnprintf): Improve header comment block.
1641
1642 2004-11-19 Derek Price <derek@ximbiot.com>
1643
1644 * root.c (normalize_cvsroot): Improve header comment block.
1645
1646 2004-11-19 Derek Price <derek@ximbiot.com>
1647
1648 * server.c: Misc reformatting and comment corrections.
1649
1650 2004-11-19 Derek Price <derek@ximbiot.com>
1651
1652 * cvs.h (hostname): Redeclare as pointer rather than array.
1653 * main.c: Include xgethostname.h. Declare server_hostname.
1654 (main): Use xgethostname(). Set server_hostname.
1655 * server.c (MAXHOSTNAMELEN): Remove this macro.
1656 (isThisHost): Reference global HOSTNAME rather than looking it up.
1657 Improve header comment block.
1658 (gserver_authenticate_connection): Likewise.
1659 (serve_command_prep): Correct comment.
1660 (serve_hostname): Don't bother to validate hostname length.
1661
1662 2004-11-19 Derek Price <derek@ximbiot.com>
1663
1664 * server.c (isThisHost): strcasecmp before consulting the DNS as an
1665 optimization.
1666
1667 2004-11-18 Mark D. Baushke <mdb@cvshome.org>
1668
1669 * checkout.c (checkout_proc): Passing the repository to
1670 tag_check_valid seems to stop the assertion failure in recurse.c
1671 do_recursion.
1672 * sanity.sh (basic2-21a): Removed.
1673 (basic2-21c): Fixed.
1674
1675 2004-11-18 Derek Price <derek@ximbiot.com>
1676
1677 * sanity.sh (skip_always, notproxy): New functions.
1678 (skip, remoteonly, sshstdio, client): Use new functions.
1679
1680 2004-11-17 Mark D. Baushke <mdb@cvshome.org>
1681
1682 * sanity.sh (basic2-21a): The val-tags file should have
1683 at least 'rtagged-by-head y' in it. Test from cvs 1.11.18 that
1684 shows fixed result.
1685 (basic2-21b, basic2-21c): New tests showing a cvs bug when
1686 val-tags is not present.
1687 (Report from "John Elgin" <John@JCElgin.com>.)
1688
1689 * sanity.sh (basicb-21): POSIX 1003.2 specifies 'illegal option'
1690 while lots of getopt implementations still use 'invalid option'.
1691 Allow either form for this test.
1692
1693 2004-11-17 Mark D. Baushke <mdb@cvshome.org>
1694
1695 * buffer.c (fd_buffer_block): Deal with BSD and BSDI problems to
1696 set block/nonblock on /dev/null.
1697
1698 2004-11-17 Derek Price <derek@ximbiot.com>
1699
1700 * Makefile.am (distclean-local): Clean check.plog~.
1701
1702 2004-11-11 Derek Price <derek@ximbiot.com>
1703
1704 * sanity.sh: s/cp -r/cp -R/ to meet POSIX specification.
1705 (Thanks to report from Paul Eggert <eggert@cs.ucla.edu>.)
1706
1707 2004-11-10 Mark D. Baushke <mdb@cvshome.org>
1708
1709 * ms-buffer.c (ms_buffer_input): Avoid UNICOS cc error where
1710 'Both sides of the assignment operator are not compatible.'
1711
1712 * sanity.sh (importc, rcs, rcs4, tagdate): Use TZ=UTC0 not TZ=UTC
1713 to get proper POSIX behavior on MacOS X.
1714
1715 2004-11-10 Derek Price <derek@ximbiot.com>
1716
1717 * sanity.sh: Actually parse -e option like we claim to.
1718
1719 2004-11-10 Derek Price <derek@ximbiot.com>
1720
1721 * sanity.sh: Maintain pass/skip/warn status and output at end.
1722 (usage): Note new functionality of -e.
1723 (warn): New function.
1724 (verify_tmp_empty): Warn instead of failing. Delete turds if warn()
1725 doesn't exit.
1726
1727 2004-11-10 Derek Price <derek@ximbiot.com>
1728
1729 * sanity.sh (verify_tmp_empty): New function.
1730 (dotest_internal_*): Call verify_tmp_empty as needed.
1731
1732 2004-11-09 Mark D. Baushke <mdb@cvshome.org>
1733
1734 * sanity.sh (expr_tooltest3): Bugfix. Use $expr rather than $EXPR.
1735
1736 2004-11-08 Derek Price <derek@ximbiot.com>
1737
1738 * sanity.sh (version_test): Echo good version data to the log, even
1739 when it went to stderr. Don't echo bad version data.
1740
1741 2004-11-08 Mark D. Baushke <mdb@cvshome.org>
1742
1743 * sanity.sh (tool_find): Rewrite. API changed to allow a list of
1744 tests to be used against a list of possible command names found on
1745 the SEARCHPATH.
1746 (version_test): Obtain the version of tools under test if
1747 possible.
1748 (id_tool_test): Check that 'id -u' and 'id -un' work.
1749 (expr_tooltest1): Check for NextStep 3.3 expr bug.
1750 (expr_tooltest2): Check for SunOS expr multi-line pattern bug.
1751 (expr_create_bar): Create a test file for expr testing.
1752 (expr_tooltest3): Use it and test for big multi-line identity
1753 matches.
1754 (expr_set_ENDANCHOR): Find and set the right value for ENDANCHOR.
1755 (expr_set_DOTSTAR): Find and set the right value for DOTSTAR.
1756 (expr_tooltest_DOTSTAR): Ensure that DOTSTAR works with big
1757 matches.
1758 (tr_tooltest1): Verify that tr handles NUL bytes.
1759 (ls_tooltest): See if /bin/ls returns true even if wildcard does
1760 not match any files.
1761 (awk_tooltest1): Verify that awk the BEGIN clause works properly.
1762 (awk_tooltest2): Verify that print %c format item works properly.
1763
1764 2004-11-08 Derek Price <derek@ximbiot.com>
1765
1766 * sanity.sh (verify_tmp_empty): New function.
1767 (dotest_internal_*): Call verify_tmp_empty as needed.
1768
1769 2004-11-08 Derek Price <derek@ximbiot.com>
1770
1771 * sanity.sh (run_filter): Add function header comment block.
1772
1773 2004-11-07 Larry Jones <lawrence.jones@ugs.com>
1774
1775 * sanity.sh: Remove trailing / from cp -r commands.
1776
1777 2004-11-04 Derek Price <derek@ximbiot.com>
1778
1779 * gssapi-client.c (connect_to_gserver): Silence gcc -Wall.
1780
1781 2004-11-04 Derek Price <derek@ximbiot.com>
1782
1783 * sanity.sh (set_bad_tool): Remove unnecessary quotes.
1784
1785 2004-11-04 Derek Price <derek@ximbiot.com>
1786
1787 * sanity.sh: s/depends_on_/require/.
1788
1789 2004-11-04 Derek Price <derek@ximbiot.com>
1790
1791 * sanity.sh (find_tool): Eliminate variable with single reference.
1792
1793 2004-11-04 Mark D. Baushke <mdb@cvshome.org>
1794
1795 * sanity.sh (SEARCHPATH): Unify the PATHs that are to be searched.
1796 (Which,find_tool): Use SEARCHPATH.
1797 (LS): Use default $SEARCHPATH for Which.
1798 (depend_on_rsync): Use default $SEARCHPATH for Which.
1799
1800 2004-11-04 Mark D. Baushke <mdb@cvshome.org>
1801
1802 * sanity.sh (depends_on_rsync): Do not echo rsync information to
1803 stdout. Look for rsync in more directories.
1804
1805 2004-11-04 Derek Price <derek@ximbiot.com>
1806
1807 * sanity.sh (depends_on_rsync): Minor simplifications. Make sure that
1808 an rsync that doesn't understand `--version' sends its error message to
1809 the log file too.
1810
1811 2004-11-04 Mark D. Baushke <mdb@cvshome.org>
1812
1813 * sanity.sh (set_bad_tool, is_bad_tool): Avoid printing errors
1814 about the same tool multiple times.
1815
1816 2004-11-03 Mark D. Baushke <mdb@cvshome.org>
1817
1818 * sanity.sh (depends_on_rsync): Deal with missing rsync.
1819
1820 2004-11-03 Mark D. Baushke <mdb@cvshome.org>
1821
1822 * sanity.sh (depends_on_rsync): Include rsync version information
1823 in output.
1824
1825 2004-11-03 Mark D. Baushke <mdb@cvshome.org>
1826
1827 * sanity.sh (depends_on_rsync): More rigorous tests for rsync
1828 2.3.1 problems with --delete --include dir --exclude '*/.
1829
1830 2004-11-03 Derek Price <derek@ximbiot.com>
1831
1832 * sanity.sh (depends_on_rsync): Verify that `rsync --delete' actually
1833 does what it is supposed ot do.
1834
1835 2004-11-03 Derek Price <derek@ximbiot.com>
1836
1837 * subr.c (Xreadlink): Remove MAXSIZE macro. Minor reformatting.
1838
1839 2004-11-03 Mark D. Baushke <mdb@cvshome.org>
1840
1841 * filesubr.c (xreadlink): Remove and use GNULIB version.
1842 (islink): Return ssize_t instead of bool.
1843 (copy_file): Use Xreadlink().
1844 * cvs.h: Add include "xreadlink.h"
1845 (islink): Return ssize_t instead of bool.
1846 * import.c (preserve_initial_permissions): Use Xreadlink.
1847 * rcs.c (RCS_checkin): Ditto.
1848 * update.c (special_file_mismatch): Ditto.
1849 * subr.c (get_file): Ditto.
1850 (resolve_symlink): Ditto.
1851 (Xreadlink): New interface to xreadlink(), never return NULL.
1852
1853 2004-11-02 Mark D. Baushke <mdb@cvshome.org>
1854
1855 * filesubr.c (MAXSIZE): New macro.
1856 (xreadlink): Ensure initial buffer size does not exceed MAXSIZE.
1857 Avoid cast. If readlink fails with buffer size just under MAXSIZE,
1858 try again with MAXSIZE.
1859
1860 2004-11-02 Mark D. Baushke <mdb@cvshome.org>
1861
1862 * filesubr.c (xreadlink): AIX and HP-UX readlink() returns ERANGE
1863 when there is not enough room in the buffer.
1864
1865 2004-11-01 Derek Price <derek@ximbiot.com>
1866
1867 * cvs.h: Remove getdate proto in favor of including getdate.h.
1868 * client.c (handle_mod_time), history.c (history), main.c (Make_Date,
1869 format_date_alloc), rcs.c (RCS_getrevtime), server.c
1870 (serve_checkin_time): Use new get_date API.
1871
1872 2004-11-01 Derek Price <derek@ximbiot.com>
1873
1874 * sanity.sh (rcslib): Fix typo in path.
1875
1876 2004-11-01 Derek Price <derek@ximbiot.com>
1877
1878 * sanity.sh (rcslib): Test a link to a path longer than 128
1879 characters.
1880
1881 2004-10-30 Mark D. Baushke <mdb@cvshome.org>
1882
1883 * patch.c (patch_cleanup): Add signal argument and use it.
1884
1885 2004-10-30 Mark D. Baushke <mdb@cvshome.org>
1886
1887 * client.c: Adjust include files to avoid problems with incomplete
1888 types under --disable-client.
1889 * msg-buffer.c: Deal with --disable-client --disable-server
1890 implicitly meaning --disable-proxy.
1891 * server.c: Adjust include files to avoid problems with incomplete
1892 types under --disable-server.
1893
1894 2004-10-30 Mark D. Baushke <mdb@cvshome.org>
1895
1896 * server.c (isThisHost): Deal with possibility of a missing
1897 hstrerror() function.
1898
1899 2004-10-29 Derek Price <derek@ximbiot.com>
1900
1901 * server.c (server_root, move_file_offset, replace_file_offset):
1902 Remove dead code.
1903
1904 2004-10-29 Derek Price <derek@ximbiot.com>
1905
1906 * filesubr.c (xreadlink): Make sure allocation is tried once at the
1907 maximum buffer size. Protect against overflow.
1908
1909 2004-10-29 Derek Price <derek@ximbiot.com>
1910
1911 * server.c (isSameHost): Handle gethostname & gethostbyname errors.
1912
1913 2004-10-29 Derek Price <derek@ximbiot.com>
1914
1915 * server.c (isSameHost): Use strcasecmp to compare host names.
1916
1917 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1918
1919 * server.c: Need to #include <netdb.h> for either PROXY_SUPPORT or
1920 HAVE_GSSAPI to get gethostbyname() declarations for
1921
1922 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1923
1924 * filesubr.c (SIZE_MAX, SSIZE_MAX): Use #include "xsize.h" instead.
1925 (xreadlink): Use xrealloc instead of xmalloc/free.
1926
1927 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1928
1929 * filesubr.c (SIZE_MAX, SSIZE_MAX): New constants.
1930 (xreadlink): Deal with symlinks longer than 127 bytes.
1931 (Problem reported as issue 190 by Gottfried Ganssauge
1932 <gotti@cvshome.org>.)
1933
1934 2004-10-29 Derek Price <derek@ximbiot.com>
1935
1936 * server.c (isSameHost): New fuction.
1937 (same_path): Rename to...
1938 (isSamePath): ...this.
1939 (isProxyServer): Use new functions/names.
1940
1941 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1942
1943 * sanity.sh (writeproxy): Use DOTSTAR to avoid problems with
1944 a missing Gssapi-authenticate in Valid-requests.
1945
1946 2004-10-28 Derek Price <derek@ximbiot.com>
1947
1948 * server.c (same_path): New function.
1949 (isProxyServer): Use new function.
1950 * sanity.sh (writeproxy): Test that server resolves symlinks when
1951 deciding whether it is a primary server.
1952
1953 2004-10-28 Derek Price <derek@ximbiot.com>
1954
1955 * cvs.h (isdir, isfile, islink, isdevice, isreadable, iswritable,
1956 isaccessible, isabsolute): Return boolean rather than int.
1957 * filesubr.c (isdir, isfile, islink, isdevice, isreadable, iswritable,
1958 isaccessible), subr.c (isabsolute): Ditto. Some reformatting.
1959 * filesubr.c (xresolvepath): Use save_cwd in place of xgetwd. Some
1960 reformatting.
1961
1962 2004-10-28 Derek Price <derek@ximbiot.com>
1963
1964 * client.c (handle_redirect): Detect redirect loops.
1965 * sanity.sh (client-20): Test that client detects redirect loops.
1966
1967 2004-10-28 Mark D. Baushke <mdb@cvshome.org>
1968
1969 * release.c (release): Allow builds of cvs with --disable-server
1970 --disable-client both used for local installation configuration.
1971 * root.c (Name_Root): Ditto.
1972 * update.c (checkout_file): Ditto.
1973 * edit.c (edit_fileproc): Ditto.
1974 * import.c (import): Ditto.
1975 (Problem reported by Jean Olivier Caron <jecar@mlab.t.u-tokyo.ac.jp>.)
1976
1977 2004-10-27 Mark D. Baushke <mdb@cvshome.org>
1978
1979 * cvs.h (RCS_FLAGS_USETIME): New flag.
1980 * rcs.c (RCS_checkin): Add citime argument.
1981 * rcs.h (RCS_checkin): Ditto.
1982 * checkin.c (Checkin): Pass new RCS_checkin argument.
1983 * commit.c (remove_file, checkaddfile): Ditto.
1984 * import.c (add_rev): Ditto.
1985
1986 * sanity.sh (tagdate): Delete tagdate-19b as an incorrect test.
1987
1988 2004-10-27 Mark D. Baushke <mdb@cvshome.org>
1989
1990 * sanity.sh (tagdate): Provide more output.
1991
1992 2004-10-26 Mark D. Baushke <mdb@cvshome.org>
1993
1994 * commit.c (checkaddfile): Create a dead version for a new file
1995 added to a branch. Fixes FIXCVS for tagdate tests.
1996 * sanity.sh (tagdate): Update to expect correct results.
1997 (death2, branch-after-import, join, ignore-on-branch): Ditto.
1998
1999 2004-10-26 Mark D. Baushke <mdb@cvshome.org>
2000
2001 * server.c (isProxyServer): Fix hostname setup.
2002
2003 2004-10-26 Derek Price <derek@ximbiot.com>
2004
2005 Call all exit handlers via atexit() & exit(). Signal handlers exit().
2006 Eliminates a compiler warning.
2007
2008 * exithandle.c (cleanup_register): Don't register a signal handler.
2009 Register a function to block signals before the exit handler is called.
2010 * lock.c (Lock_Cleanup): Remove never_run_again cruft and assoc. cmts.
2011 * rcs.c (rcs_cleanup), server.c (server_cleanup): Ditto, plus assume
2012 signals are blocked.
2013 * main.c (main_cleanup): Declare noreturn attribute.
2014
2015 2004-10-26 Derek Price <derek@ximbiot.com>
2016
2017 * gssapi-client.c (connect_to_gserver): Avoid truncating error messages
2018 from the GSSAPI server.
2019 (Report from Dan Peterson <dbpete@aol.com>.)
2020
2021 2004-10-26 Derek Price <derek@ximbiot.com>
2022
2023 * sanity.sh (import-quirks): Test an even branch number.
2024
2025 2004-10-25 Derek Price <derek@ximbiot.com>
2026
2027 * import.c (import): Repair regex for regressions introduced in last
2028 commit.
2029 * sanity.sh (import-quirks): Test a few branch numbers import shouldn't
2030 have a problem with.
2031
2032 2004-10-25 Mark D. Baushke <mdb@cvshome.org>
2033
2034 * sanity.sh (modes3): Quiet rsync messages in proxy mode when
2035 permissions are removed. They are expected and not a problem here.
2036
2037 2004-10-25 Derek Price <derek@ximbiot.com>
2038
2039 * import.c (import): Anchor and simplify branch verification regex.
2040 * sanity.sh (import-quirks): Test another pattern that should fail.
2041
2042 2004-10-25 Derek Price <derek@ximbiot.com>
2043
2044 * cvs.h (yesno): Remove prototype.
2045 * edit.c, release.c: Include yesno.h. Flush output before calling
2046 yesno().
2047
2048 2004-10-25 Mark D. Baushke <mdb@cvshome.org>
2049
2050 * sanity.sh (tagdate): Added some additional tests and FIXCVS
2051 comments for dealing properly with a 'cvs add' of a file to
2052 a branch that already exists on the mainline.
2053 (Problem reported by Renny Barrett <rbarrett@curamsoftware.com>.)
2054
2055 * sanity.sh (getrlogdate): New shell function.
2056 (tagdate-{13,14,16}): Use it to avoid 'sleep 60' by using
2057 the exact 1.1.4.1 timestamp for tagdate-14 and tagdate-16.
2058
2059 2004-10-25 Derek Price <derek@ximbiot.com>
2060
2061 * sanity.sh (depends_on_rsync): Redirect rsync output to /dev/null when
2062 just testing.
2063
2064 2004-10-23 Mark D. Baushke <mdb@cvshome.org>
2065
2066 * socket-client.c (socket_buffer_initialize): Drop obsolete
2067 arguments to buf_initialize().
2068
2069 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
2070
2071 * client.c (handle_m, handle_e): Winsock is returning
2072 SOCK_ERRNO == WSAENOTSOCK for select() problems and not
2073 setting errno. Do not bother with printing an error from a
2074 select() that is not returning an non-zero errno.
2075 (Report from Conrad T. Pino <Conrad@Pino.com>.)
2076
2077 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
2078
2079 * sanity.sh (proxy): proxycheck depends on rsync, but skip all if
2080 no rsync is found rather than generate an error return.
2081
2082 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
2083
2084 * Makefile.am (proxycheck): New test target.
2085 * sanity.sh: Keep one more level of check.log backup.
2086 * Makefile.in: Regenerated.
2087
2088 2004-10-22 Derek Price <derek@ximbiot.com>
2089
2090 * client.c, update.c: Use new MD5 interface.
2091
2092 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
2093
2094 * sanity.sh (find_tool): Search /usr/pkg/bin for NetBSD tools
2095 like rsync.
2096
2097 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
2098
2099 * sanity.sh (tagdate): Fix typo.
2100
2101 2004-10-21 Derek Price <derek@ximbiot.com>
2102
2103 * subr.c: #include vasnprintf.h to avoid compiler warning.
2104
2105 2004-10-21 Derek Price <derek@ximbiot.com>
2106
2107 * cvs.h (error_use_protocol): Move decl here from lib/error.h so that
2108 we may use an unforked error.h from GNULIB.
2109
2110 2004-10-21 Derek Price <derek@ximbiot.com>
2111
2112 * main.c: #include strftime.h.
2113 (format_time_t, gmformat_time_t): Supply missing args to my_strftime.
2114
2115 2004-10-21 Derek Price <derek@ximbiot.com>
2116
2117 * buffer.c: Don't maintain last_index & last_count for buffers.
2118 * buffer.h (struct buffer): Update struct.
2119 (buf_initialize): Update proto.
2120 * log-buffer.c, ms-buffer.c, zlib.c: Update all callers.
2121
2122 2004-10-21 Derek Price <derek@ximbiot.com>
2123
2124 * sanity.sh: Fail gracefully in proxy mode when rsync is defective.
2125 (depends_on_rsync): New function.
2126 (writeproxy, writeproxy-noredirect, writeproxy-ssh): Skip these tests
2127 gracefully when rsync is missing.
2128
2129 2004-10-21 Mark D. Baushke <mdb@cvshome.org>
2130
2131 * add.c (add): Pay attention to cvswrite mode when resurrecting a
2132 file that was not yet committed.
2133 (Report from Frank Hemer <frank@hemer.org>.)
2134 * sanity.sh (resurrection): Add new tests to deal with read-only
2135 mode on a cvs add durring a resurrection. Verify that -r is not
2136 honored when the resurrected file must be committed to be seen.
2137
2138 2004-10-21 Derek Price <derek@ximbiot.com>
2139
2140 * ls.c (ls_fileproc): Deal with files specified on the command line.
2141 (ls_delproc): Move to a more accessible location.
2142
2143 2004-10-20 Derek Price <derek@ximbiot.com>
2144
2145 * add.c (add): Avoid unnecessary typecast.
2146
2147 2004-10-20 Mark D. Baushke <mdb@cvshome.org>
2148
2149 * Makefile.in: Regenerate for new configure.in.
2150
2151 2004-10-19 Mark D. Baushke <mdb@cvshome.org>
2152
2153 * add.c (add): Backout last typecasts cleanup.
2154
2155 2004-10-19 Derek Price <derek@ximbiot.com>
2156
2157 * add.c (add): Avoid attempting to resurrect a dead rev 1.1.
2158 * sanity.sh (resurrection): Add test for the above.
2159 (Report from Dan Peterson <dbpete@aol.com>.)
2160
2161 2004-10-19 Derek Price <derek@ximbiot.com>
2162
2163 * add.c (add): Avoid unnecessary typecasts.
2164
2165 2004-10-19 Derek Price <derek@ximbiot.com>
2166
2167 * cvs.h: Prototype new function.
2168 * subr.c (Xasnprintf): New function.
2169 * root.c (primary_root_translate, primary_root_inverse_translate):
2170 s/asnprintf/Xasnprintf/.
2171 * client.c (connect_to_pserver): Store line length for efficiency.
2172
2173 2004-10-19 Derek Price <derek@ximbiot.com>
2174
2175 * history.c: Remove unecessary typecasts. Some reformatting.
2176
2177 2004-10-18 Derek Price <derek@ximbiot.com>
2178
2179 * server.c (serve_modified): Eliminate >= 0 check since size_t may not
2180 be negative.
2181 (Originally reported by Martin Neitzel <neitzel@sco.gaertner.de>.)
2182
2183 2004-10-18 Derek Price <derek@ximbiot.com>
2184
2185 * cvs.h (DEVNULL): This is system dependant. Move it to lib/system.h.
2186 * client.c (copy_a_file): Consolidate USE_VMS_FILENAMES stuff under a
2187 single #ifdef.
2188
2189 2004-10-15 Derek Price <derek@ximbiot.com>
2190
2191 * cvs.h: Don't include vasnprintf.h.
2192 (Xasprintf): New prototype.
2193 * client.c, edit.c, history.c, import.c, ls.c, main.c, parseinfo.c,
2194 recurse.c, release.c, repos.c, root.c, server.c, status.c, subr.c,
2195 vers_ts.c: s/asnprintf/Xasprintf/.
2196 * root.c: Include vasnprintf.h.
2197 (primary_root_translate, primary_root_inverse_translate): Use
2198 asnprintf() properly.
2199 * subr.c: Include vasprintf.h.
2200 (Xasprintf): New function.
2201
2202 2004-10-14 Derek Price <derek@ximbiot.com>
2203
2204 * import.c (import): Remove an unecessary level of nesting. Simplify
2205 xmalloc/sprintf with asnprintf. Remove useless comment.
2206
2207 2004-10-14 Derek Price <derek@ximbiot.com>
2208
2209 * import.c (import): Verify branch specifications more thoroughly.
2210 * sanity.sh (importb): Adapt to new error message.
2211 (import-quirks): New test.
2212
2213 2004-10-14 Mark D. Baushke <mdb@cvshome.org>
2214
2215 * server.c (server_pause_check, do_cvs_command, server_cleanup):
2216 Avoid typecasts.
2217
2218 2004-10-14 Derek Price <derek@ximbiot.com>
2219
2220 * gssapi-client.c: Use new size_t buffer APIs.
2221
2222 2004-10-11 Mark D. Baushke <mdb@cvshome.org>
2223
2224 * buffer.h, buffer.c (buf_output, buf_input_data, buf_read_line,
2225 buf_read_data, struct packetizing_buffer,
2226 packetizing_buffer_initialize) Use size_t instead of int.
2227 Silences warnings in buffer.c, server.c, and zlib.c on OpenBSD
2228 sparc64 where sizeof(int) is not the same as sizeof(size_t).
2229 * client.c (read_line_via, read_line, try_read_from_server,
2230 get_server_response, handle_ok, handle_error,
2231 handle_valid_requests, handle_checked_in, handle_new_entry,
2232 handle_checksum, handle_copy_file, handle_updated, handle_merged,
2233 handle_patched, handle_rcs_diff, handle_removed,
2234 handle_remove_entry, handle_set_static_directory,
2235 handle_clear_static_directory, handle_set_sticky,
2236 handle_clear_sticky, handle_clear_template,
2237 handle_module_expansion, handle_wrapper_rcs_option, handle_m,
2238 handle_e, handle_f, handle_notified): Ditto
2239 * client.h (struct response): Ditto.
2240 * server.c (receive_partial_file, receive_file, serve_modified,
2241 do_cvs_command): Ditto.
2242 * zlib.c (compress_buffer_input, compress_buffer_shutdown_input):
2243 Ditto.
2244 (Patch from Alexander Taler <dissent@cvshome.org>.)
2245
2246 2004-10-08 Derek Price <derek@ximbiot.com>
2247
2248 * client.c (send_args): Carry through a const to silence gcc -Wall.
2249 * hardlink.c (delhardlist): New function.
2250 (lookup_file_by_inode): Use new function as delproc since it should
2251 work. Carry through a const to silence gcc -Wall.
2252 * ms-buffer.c (ms_buffer_initialize): Use a working delproc.
2253
2254 2004-10-08 Derek Price <derek@ximbiot.com>
2255
2256 * client.c (open_connection_to_server, close_connection_to_server,
2257 handle_redirect): Add traces.
2258
2259 2004-10-07 Derek Price <derek@ximbiot.com>
2260
2261 * Makefile.am (cvs_SOURCES): Add parseinfo.h.
2262
2263 2004-10-07 Mark D. Baushke <mdb@cvshome.org>
2264
2265 * vers_ts.c (entries_time): Use size_t pointers. sizeof(int)
2266 may not be the same as sizeof(size_t) on OpenBSD sparc64.
2267 (Patch from Alexander Taler <dissent@cvshome.org>.)
2268
2269 * wrapper.c (wrap_clean_fmt_str): Make static.
2270
2271 2004-10-07 Mark D. Baushke <mdb@cvshome.org>
2272
2273 * client.h (struct response): Make name a const.
2274 * cvs.h (RETSIGTYPE): Use a full prototype.
2275 * hash.h (struct node): Use a full prototype for delproc.
2276
2277 * client.c (send_arg, send_option_string, option_with_arg): Make
2278 args of function const.
2279 * client.h (send_arg, send_option_string, option_with_arg): Ditto.
2280
2281 * checkout.c (checkout): Make valid_options const.
2282
2283 2004-10-06 Derek Price <derek@ximbiot.com>
2284
2285 * release.h: Silence gcc -Wall.
2286
2287 2004-10-06 Derek Price <derek@ximbiot.com>
2288
2289 * cvs.h: Move include of getopt.h to system.h with similar headers.
2290
2291 2004-10-06 Derek Price <derek@ximbiot.com>
2292
2293 * login.c: Include getpass.h.
2294
2295 2004-10-06 Derek Price <derek@ximbiot.com>
2296
2297 * cvs.h: Include strcase.h.
2298 (cvs_casecmp): remove proto.
2299 * subr.c (cvs_casecmp): Remove function.
2300 * parseinfo.c: s/cvs_casecmp/strcasecmp/.
2301
2302 2004-10-06 Derek Price <derek@ximbiot.com>
2303
2304 * cvs.h: Move getopt.h and regex.h into the GNULIB include section.
2305
2306 2004-10-06 Derek Price <derek@ximbiot.com>
2307
2308 * main.c (cmds): Release calls unedit, to it modifies the repository.
2309 (struct cmd): Add const and full prototype where needed.
2310 * sanity.sh (edit-check): Use modify_repo where needed.
2311 (release): No more special case for release in proxy mode.
2312 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
2313
2314 * release.c (release): Simplify login in if statement.
2315
2316 2004-10-06 Derek Price <derek@ximbiot.com>
2317
2318 * client.c (send_file_names): Back out broken portion of previous
2319 change.
2320
2321 2004-10-06 Derek Price <derek@ximbiot.com>
2322
2323 * client.c (call_in_directory): Make args of function arg const.
2324 * client.h, client.c, edit.h, edit.c, server.h, zlib.c: Carry change
2325 through to called functions and functions passed in as args.
2326
2327 2004-10-06 Derek Price <derek@ximbiot.com>
2328
2329 * checkout.c, commit.c, edit.c, rcs.c: Avoid typecasts. Some
2330 reformatting.
2331
2332 2004-10-06 Derek Price <derek@ximbiot.com>
2333
2334 * client.c: Avoid more typecasts. Some reformatting.
2335
2336 2004-10-06 Mark D. Baushke <mdb@cvshome.org>
2337
2338 * client.c (send_file_names): Use new save-cwd API.
2339 (connect_to_pserver): Use a union to avoid incompatible pointer
2340 type warnings.
2341
2342 2004-10-05 Derek Price <derek@ximbiot.com>
2343
2344 * cvs.h (Xstrdup): New proto mapped via define to xstrdup.
2345 * subr.c (Xstrdup): New function.
2346
2347 2004-10-05 Derek Price <derek@ximbiot.com>
2348
2349 * add.c, client.c, history.c, import.c, mkmodules.c, modules.c,
2350 recurse.c, release.c, tag.c, update.c: Use new save-cwd API.
2351
2352 2004-10-05 Derek Price <derek@ximbiot.com>
2353
2354 * checkout.c, client.c, commit.c, create_adm.c, cvs.h, filesubr.c,
2355 hardlink.c, history.c, logmsg.c, main.c, recurse.c, update.c:
2356 s/xgetwd/xgetcwd/.
2357
2358 2004-10-04 Derek Price <derek@ximbiot.com>
2359
2360 * client.c (responses): Add "Edit-file".
2361 (handle_edit_file): New function.
2362 * commit.c (usage): Add -c option.
2363 (check_fileproc): Check for edit when requested.
2364 (commit_fileproc): Use new notify_do API.
2365 * edit.c (check_edited): New global.
2366 (setting_tedit, setting_tunedit, setting_tcommit): s/int/bool/.
2367 (ncheck_fileproc): Use new notify_do API.
2368 (send_notifications): Remove redundant proto. Remove unnecessary
2369 repository lock.
2370 (editors_output, find_editors_and_output, edit_file): New functions.
2371 edit_file() factored from...
2372 (edit_fileproc): ...here. Skip files with existing editors when
2373 requested.
2374 (usage): Add -c and -f.
2375 (edit): Handle new -c and -f options.
2376 (notify_do): Accept update_dir as an argument for user messages.
2377 (editors_fileproc): Factor most content to find_editors_and_output()
2378 and edit_file().
2379 * edit.h (notify_do): Proto new API.
2380 (editors_output, edit_file): New functions.
2381 * rcs.c (RCS_unlock): Use new notify_do() API.
2382 * sanity.sh: Update assorted tests to compensate for new output.
2383 (edit-check): New tests.
2384 * server.c (gupdate_dir): New global.
2385 (struct notify_note): Keep track of update_dir.
2386 (serve_notify): Use update_dir.
2387 (serve_hostname, serve_localdir, serve_edit, server_edit_file): New
2388 functions.
2389 (server_notify): Use new notify_do() API.
2390 (requests): Add Hostname, LocalDir, and edit.
2391 * server.h (server_edit_file): New proto.
2392 (Note: Original design of new advisory lock behavior came from Noel Yap
2393 <yap_noel@yahoo.com>'s original advisory locks patch, originally ported
2394 forward and enhanced by Matthew Ogilvie <mmo9317bd@mailcan.com>.)
2395
2396 2004-10-04 Derek Price <derek@ximbiot.com>
2397
2398 * admin.c (postadmin_proc), edit.c (notify_proc), fileattr.c
2399 (postwatch_proc), logmsg.c (logfile_write, verifymsg_proc), server.c
2400 (prepost_proxy_proc), tag.c (pretag_proc, posttag_proc): Pass referrer
2401 to called scripts when possible.
2402 * client.c (handle_redirect): Save the original server.
2403 (start_server): Send referrer to the new server if possible.
2404 * sever.c (referrer): New global.
2405 (serve_referrer): Save referrer.
2406 (requests): Add "Referrer" response.
2407 * server.h (referrer): Add extern decl.
2408 * sanity.sh (ssh-wrapper): Use in remote mode too.
2409 (writeproxy-ssh): New tests.
2410
2411 2004-10-04 Derek Price <derek@ximbiot.com>
2412
2413 * cvs.h (CVSROOT_DFLT): Undef rather than defining to NULL.
2414 * main.c (main): Untangle parsing of CVSROOT, eliminating several
2415 variables in the process. Simplify xmalloc/sprintf with asnprintf.
2416
2417 2004-10-04 Derek Price <derek@ximbiot.com>
2418
2419 * root.c (primary_root_translate, primary_root_inverse_translate,
2420 get_local_root_dir, local_cvsroot): Simplify logic without proxy
2421 support.
2422
2423 2004-10-02 Mark D. Baushke <mdb@cvshome.org>
2424
2425 * root.c (primary_root_translate, primary_root_inverse_translate,
2426 get_local_root_dir): Protect PrimaryServer with #ifdef
2427 PROXY_SUPPORT
2428
2429 2004-10-01 Mark D. Baushke <mdb@cvshome.org>
2430
2431 * main.c (main): Initialize CVSroot before it is used.
2432 (Report and patch by Martin Neitzel <neitzel@sco.gaertner.de>.)
2433 * sanity.sh (status): Test it.
2434
2435 2004-10-01 Derek Price <derek@ximbiot.com>
2436
2437 * checkout.c (checkout_proc), fileattr.c (fileattr_read), find_names.c
2438 (Find_Names), myndbm.c (mydbm_open, mydbm_load_file), parseinfo.c
2439 (Parse_Info), rcs.c (RCS_parsercsfile_i, rcsbuf_getkey,
2440 rcsbuf_getrevnum, rcsbuf_valword): Root translation functions no longer
2441 allocate.
2442 * commit.c (commit): Use send_a_repository rather than reimplementing.
2443 * main.c (main): Remove --primary-root option.
2444 * root.c (primary_root_add): Remove this function.
2445 (primary_root_in, primary_root_out): Remove globals.
2446 (primary_root_translate, primary_root_inverse_translate): Return const.
2447 Don't allocate return value. Rely on parsed root and confg's
2448 PrimarServer rather than separately maintained globals.
2449 (get_local_root_dir): New function.
2450 (local_cvsroot): Translate requests for primary roots when necessary.
2451 * root.h (primary_root_add, primary_root_translate,
2452 primary_root_inverse_translate): Update protos to match.
2453 * sanity.sh (top level, writeproxy): Simplify $proxy setup.
2454 (client): Don't execute $proxy. Simplify skips and reindent.
2455 (writeproxy-noredirect): Use --allow-root in place of --primary-root.
2456 Save and restore $PRIMARY_CVSROOT*.
2457 * server.c (serve_root): Rely on local_cvsroot() to do any necessary
2458 root translation.
2459 (serve_directory): Root translation functions no longer allocate.
2460
2461 2004-10-01 Derek Price <derek@ximbiot.com>
2462
2463 * client.c (arg_should_not_be_sent_to_server), create_adm.c
2464 (Create_Admin), recurse.c (start_recursion, do_recursion, do_dir_proc),
2465 release.c (release), repos.c (Name_Repository, Short_Repository),
2466 update.c (update_filesdone_proc):
2467 s/original_root/original_parsed_root->MEMBER/.
2468 * main.c (set_root_directory): Set original_parsed_root when setting
2469 current_parsed_root.
2470 (main): s/original_root/original_parsed_root->MEMBER/.
2471 * root.c (original_root): Make cvsroot_t and rename to...
2472 (original_parsed_root): ...this.
2473 * root.h: Update extern decl to match.
2474 * server.c (serve_root): Set original_parsed_root.
2475
2476 2004-10-01 Derek Price <derek@ximbiot.com>
2477
2478 * server.c (serve_questionable): Use pending errors per API.
2479
2480 2004-10-01 Derek Price <derek@ximbiot.com>
2481
2482 * repos.c (Name_Repository): asnprintf, not sprintf.
2483
2484 2004-10-01 Derek Price <derek@ximbiot.com>
2485
2486 * sanity.sh (ignore-11r): Rename second occurance to...
2487 (ignore-11ar): ...this.
2488
2489 2004-10-01 Derek Price <derek@ximbiot.com>
2490
2491 * sanity.sh (1): Rename to...
2492 (init-1): ...this.
2493
2494 2004-10-01 Derek Price <derek@ximbiot.com>
2495
2496 * repos.c (Name_Repository): Simplify string construction with
2497 asnprintf(). Improve comment. Some reformatting.
2498
2499 2004-10-01 Derek Price <derek@ximbiot.com>
2500
2501 * release.c (release): Simplify string construction with asnprintf().
2502
2503 2004-10-01 Derek Price <derek@ximbiot.com>
2504
2505 * recurse.c (do_file_proc): Improve header comment. Replace
2506 xmalloc()/strcat() combination with asnprintf().
2507
2508 2004-09-29 Derek Price <derek@ximbiot.com>
2509
2510 * sanity.sh (config): Handle $SECONDRY_ROOT_DIRNAME output in $proxy
2511 mode.
2512
2513 2004-09-29 Mark D. Baushke <mdb@cvshome.org>
2514
2515 * sanity.sh: Workaround MacOS X '/bin/ls' is not returning false
2516 when no files are listed. Label some old tests.
2517
2518 2004-09-29 Derek Price <derek@ximbiot.com>
2519
2520 * cvs.h: Include parseinfo.h.
2521 (top_level_admin, UseNewInfoFmtStrings,
2522 ImportNewFilesToVendorBranchOnly, PrimaryServer, MaxProxyBufferSize,
2523 MaxCommentLeaderLength, UseArchiveCommentLeader, RereadLogAfterVerify,
2524 lock_dir, UserAdminOptions): Move extern decls for global config opts
2525 to config struct in parseinfo.h.
2526 (config): New global.
2527 (parse_config): Move proto to...
2528 * parseinfo.h: This new file.
2529 * parseinfo.c (parse_config): Return struct config.
2530 (new_config): New function.
2531 * admin.c: Remove global UserAdminOptions.
2532 (admin): Don't check config on client.
2533 * checkin.c (Checkin), checkout.c (checkout_proc), filesubr.c (xchmod),
2534 import.c (import, add_rcs_file, expand_and_copy_contents):
2535 Use config instead
2536 of globals. Some reformatting.
2537 * history.c (logHistory): Move to struct config.
2538 (history_write): Use config instead of globals.
2539 * lock.c (lock_dir): Move global to struct config.
2540 (lock_name): Use config instead of globals.
2541 * logmsg.c (RereadLogAfterVerify): Move global to struct config.
2542 (do_verify, logfile_write, verifymsg_proc): Prefer config to globals.
2543 * main.c (top_level_admin, UseNewInfoFmtStrings, PrimaryServer,
2544 MaxProxyBufferSize, MaxCommentLeaderLength, UseArchiveCommentLeader,
2545 ImportNewFilesToVendorBranchOnly): Move globals to struct config.
2546 (config): New global.
2547 (main): Use new parse_config API.
2548 * rcs.c (preserve_perms, keywords): Move globals to struct config.
2549 (keyword_local): Move to struct rcs_keyword.
2550 (new_keywords, free_keywords): New functions.
2551 (expand_keywords, RCS_setlocalid, RCS_setincexc): Prefer config to
2552 globals.
2553 * rcs.h (free_keywords): New proto.
2554 (RCS_setincexc, RCS_setlocalid): Accept opaque keywords element.
2555 * root.c (delconfig, get_root_allow_config): New functions.
2556 * root.h (get_root_allow_config): New proto.
2557 * server.c (system_auth): Move global to struct config.
2558 (isProxyServer, become_proxy, serve_command_prep): Prefer config to
2559 globals.
2560 (serve_root): Ditto. Set config.
2561 * server.h (system_auth): Move extern decl for global moved to config.
2562
2563 2004-09-29 Derek Price <derek@ximbiot.com>
2564
2565 * history.h: Protect against multiple include.
2566
2567 2004-09-29 Derek Price <derek@ximbiot.com>
2568
2569 * root.c (root_allow_count, root_allow_vector, root_allow_size):
2570 Replace with...
2571 (root_allow): ...this single List *.
2572 (root_allow_add, root_allow_free, root_allow_ok): Use new List API.
2573 Make args const. Return bool rather than int when necessary.
2574 * root.h (root_allow_add, root_allow_ok): Update protos to match.
2575
2576 2004-09-29 Derek Price <derek@ximbiot.com>
2577
2578 * admin.c (admin): s/int/bool/ as appropriate. Some reformatting.
2579
2580 2004-09-29 Derek Price <derek@ximbiot.com>
2581
2582 * history.c (history_write): Use asnprintf(). Some reformatting.
2583
2584 2004-09-29 Derek Price <derek@ximbiot.com>
2585
2586 * import.c (killnew): s/int/bool/.
2587 (add_rcs_file): Ditto for do_killnew.
2588 * rcs.h (add_rcs_file): Change proto to match.
2589
2590 2004-09-29 Derek Price <derek@ximbiot.com>
2591
2592 * client.c (start_server): Use bool in place of int.
2593
2594 2004-09-29 Derek Price <derek@ximbiot.com>
2595
2596 * subr.c (cvs_trace): Correct header comment. Some reformatting.
2597
2598 2004-09-28 Mark D. Baushke <mdb@cvshome.org>
2599
2600 * sanity.sh (ssh-wrapper-env): New script to avoid the assumption
2601 that the remote end of a $CVS_RSH is running a bourne shell.
2602 (ssh-wrapper): Use it.
2603
2604 2004-09-28 Derek Price <derek@ximbiot.com>
2605
2606 * sanity.sh (writeproxy): Remove some setup obsoleted by redirects.
2607
2608 2004-09-27 Derek Price <derek@ximbiot.com>
2609
2610 Use original_root for client comparisons with CVS/Root since
2611 current_parsed_root may be the product of a redirect.
2612
2613 * client.c (handle_redirect): Don't free current_parsed_root. Validate
2614 new roots.
2615 (args_should_not_be_sent_to_server):
2616 s/current_parsed_root->original/original_root/.
2617 * create_adm.c (Create_Admin): Likewise.
2618 * cvs.h (current_parsed_root): Move extern decl...
2619 * root.h: ...here. Decl original_root extern.
2620 * main.c (set_root_directory): Store original_root.
2621 (main): s/current_parsed_root->original/original_root/.
2622 * recurse.c, release.c, update.c: Likewise.
2623 * root.c: Declare original_root.
2624
2625 2004-09-24 Derek Price <derek@ximbiot.com>
2626
2627 * sanity.sh (parseroot2): Correct two test names. Restore CVSROOT.
2628
2629 2004-09-24 Derek Price <derek@ximbiot.com>
2630
2631 * root.c (parse_cvsroot): Use TRACE_FLOW, not TRACE_FUNCTION since this
2632 routine is called repeatedly by the recursion routines.
2633 * sanity.sh (multiroot2): Adjust to compensate.
2634
2635 2004-09-24 Derek Price <derek@ximbiot.com>
2636
2637 * sanity.sh (parseroot2): Use remoteonly.
2638
2639 2004-09-24 Derek Price <derek@ximbiot.com>
2640
2641 * sanity.sh (tests): Add parseroot2.
2642
2643 2004-09-24 Derek Price <derek@ximbiot.com>
2644
2645 * recurse.c (do_recursion, do_dir_proc): Make process_this_directory a
2646 boolean.
2647
2648 2004-09-24 Derek Price <derek@ximbiot.com>
2649
2650 * sanity.sh (parseroot2): New test for root parsing consistency.
2651 (Original patch from Alexander Taler <dissent@cvshome.org>.)
2652
2653 * cvs.h (Name_Root, free_cvsroot_t, parse_cvsroot, local_cvsroot,
2654 Create_Root, root_allow_add, root_allow_free, root_allow_ok): Move
2655 these protos to...
2656 * root.h: ...here.
2657 * client.c (arg_should_not_be_sent_to_server), recurse.c
2658 (start_recusrion, do_recursion): Use new Name_Root API.
2659 * main.c (current_root): Remove global.
2660 (set_root_directory): Set current_parsed_root directly.
2661 (main): Use new Name_Root API. Restore deletion of root directories
2662 list.
2663 * root.c (Name_Root): Return a parsed cvsroot_t rather than a string.
2664
2665 2004-09-24 Mark D. Baushke <mdb@cvshome.org>
2666
2667 * buffer.c (buf_append_buffer): Fix typo in comment.
2668
2669 2004-09-23 Mark D. Baushke <mdb@cvshome.org>
2670
2671 * buffer.c (buf_read_file): Fix typo in comment.
2672 (buf_read_file_to_eof): Ditto.
2673 * server.c (serve_command_prep): Ditto.
2674
2675 2004-09-23 Derek Price <derek@ximbiot.com>
2676
2677 * sanity.sh (depends_on_ssh, sshstdio): Don't use skip() to skip
2678 remote-only tests.
2679
2680 2004-09-23 Derek Price <derek@ximbiot.com>
2681
2682 * sanity.sh (crerepos, sshstdio): Minor modifications to make use of
2683 the new depends_on_?sh API.
2684
2685 2004-09-23 Derek Price <derek@ximbiot.com>
2686
2687 * sanity.sh: Accept new -e option to interpret non-fatal calls to skip
2688 as errors.
2689 (skip, depends_on_rsh, depends_on_ssh): New functions.
2690
2691 2004-09-23 Mark D. Baushke <mdb@cvshome.org>
2692
2693 * server.c (cvs_output, cvs_output_binary): fflush (stderr)
2694 here to avoid problems with 'cvs status 2>&1'.
2695 (Report by Frank Hemer <frank@hemer.org>.)
2696
2697 2004-09-17 Derek Price <derek@ximbiot.com>
2698
2699 * buffer.c, buffer.h, log-buffer.c, log-buffer.h, main.c, mkmodules.c,
2700 parseinfo.c, server.c: Remove TRUST_OS_FILE_CACHE.
2701
2702 2004-09-17 Derek Price <derek@ximbiot.com>
2703
2704 * buffer.c (fd_set_block): Ignore FreeBSD /dev/null problem.
2705
2706 2004-09-17 Derek Price <derek@ximbiot.com>
2707
2708 * cvs.h (strip_trailing_slashes): Remove proto in favor of including
2709 dirname.h from GNULIB.
2710 * sever.c (dir_name): Rename to...
2711 (gDirname): ...this to avoid conflicts with the GNULIB function.
2712
2713 2004-09-16 Derek Price <derek@ximbiot.com>
2714
2715 * expand_path.c (expand_path): Silence `gcc -Wall'. Reformat some
2716 comments to fit in 80 characters.
2717
2718 2004-09-15 Derek Price <derek@ximbiot.com>
2719
2720 * sanity.sh (sync-secondary, writeproxy, writeproxy-noredirect): Remove
2721 redundant checks for $RSYNC readability.
2722
2723 2004-09-15 Derek Price <derek@ximbiot.com>
2724
2725 * sanity.sh: Only find $RSYNC once.
2726
2727 2004-09-15 Derek Price <derek@ximbiot.com>
2728
2729 * sanity.sh (writeproxy, writeproxy-noredirect): Find $RSYNC in a
2730 portable manner.
2731
2732 2004-09-15 Mark D. Baushke <mdb@cvshome.org>
2733
2734 * sanity.sh: Find $RSYNC in a portable manner.
2735
2736 2004-09-15 Derek Price <derek@ximbiot.com>
2737
2738 * parseinfo.c (parse_config): Complete parsing of the remainder of the
2739 config file when errors are encountered. Accept and ignore
2740 UseNewInfoFmtStrings=yes when !SUPPORT_OLD_INFO_FMT_STRINGS.
2741
2742 2004-09-15 Derek Price <derek@ximbiot.com>
2743
2744 * buffer.c (buf_copy_data): Pass args to buf_append_data correctly.
2745
2746 2004-09-15 Derek Price <derek@ximbiot.com>
2747
2748 * sanity.sh: Set $RSYNC in proxy mode.
2749
2750 2004-09-15 Derek Price <derek@ximbiot.com>
2751
2752 * main.c: Fix typo in comment.
2753
2754 2004-09-15 Derek Price <derek@ximbiot.com>
2755
2756 * rcs.c: s/abort/assert/. Reformat function headers. Remove
2757 unnecessary typecasts & prototypes.
2758
2759 2004-09-14 Mark D. Baushke <mdb@cvshome.org>
2760
2761 * parseinfo.c (readBool): Remove dead code.
2762
2763 * filesubr.c (cvs_casecmp): Move to...
2764 * subr.c (cvs_casecmp): ...here.
2765 * cvs.h (cvs_casecmp): No longer ifdef under SERVER_SUPPORT
2766
2767 * parseinfo.c (readBool): Return false when there was no boolean
2768 found.
2769
2770 2004-09-14 Derek Price <derek@ximbiot.com>
2771
2772 * cvs.h (top_level_admin, ImportNewFilesToVendorBranchOnly):
2773 s/int/bool/.
2774 (MaxCommentLeaderLength, UseArchiveCommentLeader): New vars.
2775 * main.c: Ditto, for all four vars above.
2776 * mkmodules.c (config_contents): Add default info for
2777 MaxCommentLeaderLength & UseArchiveCommentLeader.
2778 * parseinfo.c (readBool, readSizeT): New functions.
2779 (parse_info): Use new functions. Parse MaxCommentLeaderLength &
2780 UseArchiveCommentLeader.
2781 * rcs.c (expand_keywords): Limit the size of the comment leader to
2782 MaxCommentLeaderLength & fall back to the comment leader specified in
2783 the RCS archive when requested.
2784 (preserve_perms): s/int/bool/.
2785 * rcs.h (preserve_perms), server.c (system_auth), server.h
2786 (system_auth): Likewise.
2787 * sanity.sh (keywordlog): Add new tests for the above.
2788
2789 2004-09-12 Mark D. Baushke <mdb@cvshome.org>
2790
2791 * rcs.c (RCS_checkout): Allow noexec to do checkouts when
2792 server_active is true.
2793 * sanity.sh (join7): Test above change (fixes a FIXCVS).
2794
2795 2004-09-09 Derek Price <derek@ximbiot.com>
2796
2797 * buffer.c (stuct packetizing_buffer): Use size_t & bool as appropriate
2798 in preference to int.
2799 (packetizing_buffer_output): s/int/size_t/ as appropriate.
2800
2801 2004-09-09 Derek Price <derek@ximbiot.com>
2802
2803 * buffer.c (packetizing_buffer_input): s/int/size_t/ as appropriate.
2804
2805 2004-09-09 Mark D. Baushke <mdb@cvshome.org>
2806
2807 * root.c (primary_root_inverse_translate): No longer inline.
2808
2809 2004-09-09 Conrad T. Pino <Conrad@Pino.com>
2810
2811 * server.c: Add comment before #if at line 5580 to move it further
2812 into the file which seems to work around an apparent buffer managment
2813 bug in Microsoft Visual C++ 6.0 compiler.
2814
2815 2004-09-08 Mark D. Baushke <mdb@cvshome.org>
2816
2817 * sanity.sh (join7): Fix if-then-else conditional.
2818
2819 * sanity.sh (join7): Re-order join7-5 and join7-6 tests.
2820
2821 2004-09-08 Conrad T. Pino <Conrad@Pino.com>
2822
2823 * server.c: Remove extra token in conditional compile line 5580
2824 causing error in Windows Visual C++ 6.0 compile.
2825
2826 2004-09-08 Mark D. Baushke <mdb@cvshome.org>
2827
2828 * buffer.c (fd_buffer_block): Protect fcntl calls when F_GETFL,
2829 O_NONBLOCK and F_SETFL are not available.
2830 * server.c (move_file_offset): Ditto.
2831 (set_nonblock_fd): Ditto.
2832
2833 * buffer.c (packetizing_buffer_input): Use size_t rather than int.
2834 (struct packetizing_buffer): Ditto.
2835
2836 2004-09-07 Mark D. Baushke <mdb@cvshome.org>
2837
2838 * server.c (server_updated): Deal with cvs -n update -jt1 -jt2
2839 "protocol error: uncounted data discarded" problem.
2840 * sanity.sh (join7): New test for this case.
2841
2842 2004-09-04 Derek Price <derek@ximbiot.com>
2843
2844 * socket-client.c (socket_client_initialize): Pass new args to
2845 buf_initialize.
2846
2847 2004-09-04 Derek Price <derek@ximbiot.com>
2848
2849 Silence `gcc -Wall'.
2850
2851 * buffer.c (buf_initialize): Remove unnecessary typecasts by using
2852 size_t instead of int or bool as args.
2853 * buffer.c, import.c, log-buffer.c, ms-buffer.c, zlib.c: Change all
2854 callers.
2855 * buffer.h, cvs.h: Update protos.
2856 * client.c, ls.c, main.c, rcs.c, root.c, server.c: Remove unused vars,
2857 add parens, as requested by `gcc -Wall'.
2858
2859 2004-09-04 Mark D. Baushke <mdb@cvshome.org>
2860
2861 * sanity.sh (writeproxy-noredirect): Between "Set" and
2862 "expand-modules" are the optional Kerberos-encrypt, Gssapi-encrypt
2863 and Gssapi-authenticate entries. Use ${DOTSTAR} to deal with
2864 these optionally configured requests.
2865
2866 2004-09-04 Mark D. Baushke <mdb@cvshome.org>
2867
2868 * import.c (expand_at_signs): Typecasting for fwrite results.
2869 * log-buffer.c (log_buffer_input, log_buffer_output,
2870 log_buffer_initialize): Ditto.
2871
2872 * log-buffer.c (log_buffer_initialize): Protect reference to
2873 fatal_errors.
2874
2875 * parseinfo.c (parse_config): Protect reference to PrimaryServer
2876 using #ifdef PROXY_SUPPORT.
2877
2878 * ls.c (ls_fileproc): Remove unused variables.
2879 * subr.c (increment_revnum): Ditto.
2880 * vers_ts.c (time_stamp): Ditto.
2881
2882 2004-09-03 Derek Price <derek@ximbiot.com>
2883
2884 * rcs.c (RCS_checkin), commit.c (remove_file): Accept UPDATE_DIR
2885 argument and use it to output full relative path on commit.
2886 * rcs.h (RCS_checkin): Update prototype.
2887 * checkin.c, commit.c, import.c: Change all callers.
2888 * sanity.sh: Adjust to compensate.
2889
2890 2004-09-03 Derek Price <derek@ximbiot.com>
2891
2892 * client.c (call_in_directory): Change passed in function to accept
2893 void * to avoid typecasting. Change all functions using this API.
2894
2895 2004-09-03 Derek Price <derek@ximbiot.com>
2896
2897 * sanity.sh (secondary-wrapper, writeproxy-secondary-wrapper): Improve
2898 comments. Use exec to launch server.
2899 (writeproxy-noredirect): New tests for writeproxy functionality in
2900 conjunction with clients that cannot handle the `Redirect' response.
2901
2902 2004-09-03 Derek Price <derek@ximbiot.com>
2903
2904 * log-buffer.c, rsh-client.c, client.c: Reformat function headers.
2905 Remove unnecessary typecasts and prototypes.
2906 * client.h: Remove unnecessary extern declarations on protos.
2907
2908 2004-09-03 Derek Price <derek@ximbiot.com>
2909
2910 * sanity.sh (skip): New function.
2911 (sshstdio): Use new function.
2912 (writeproxy): Skip test when rsync isn't found.
2913
2914 2004-09-02 Mark D. Baushke <mdb@cvshome.org>
2915
2916 * server.c (serve_directory): C89 compilers do not like mixed
2917 declarations and code.
2918
2919 2004-08-19 Mark D. Baushke <mdb@cvshome.org>
2920
2921 * sanity.sh (sync-secondary): 'dirname -b' fails during the
2922 spacefiles-5 test on FreeBSD, so use 'dirname -- "\$dir"' for now
2923 and look to AS_DIRNAME at some future date.
2924
2925 2004-08-19 Derek Price <derek@ximbiot.com>
2926
2927 * sanity.sh (ssh-wrapper): Create for $proxy mode too & forward CVS_PID
2928 for crerepos.
2929
2930 2004-08-18 Mark D. Baushke <mdb@cvshome.org>
2931
2932 * sanity.sh (writeproxy): Use CVS_PID instead of PPID as the
2933 former environment variable is set by cvs and the latter is
2934 NOT set by all bourne shells.
2935
2936 2004-08-18 Mark D. Baushke <mdb@cvshome.org>
2937
2938 * log-buffer.c (log_buffer_rewind): Avoid FreeBSD compilation
2939 error for dereferencing a void * pointer tmp as well as using it
2940 as a buffer pointer under some conditions.
2941
2942 2004-08-17 Derek Price <derek@ximbiot.com>
2943
2944 * server.c (isProxyServer): Always compile. Cache hostname lookup.
2945 (serve_notify): Ignore notifications in conjunction with redirects.
2946 (do_cvs_command): Send an error when !PROXY_SUPPORT and a client does
2947 not support redirects. Only close proxy logs when they exist.
2948 (serve_command_prep): New function.
2949 * sanity.sh (secondary-wrapper, writeproxy): Dynamically switch the
2950 servers proxy/primary status for testing.
2951 (basica): Gratuitous reformatting.
2952 (devcom3, config, release): Handle some new proxy/redirect error
2953 messages.
2954
2955 2004-08-17 Derek Price <derek@ximbiot.com>
2956
2957 * main.c (PrimaryServer): Include without PROXY_SUPPORT to support
2958 redirects.
2959 (main): Handle --primary-root without PROXY_SUPPORT.
2960 * mkmodules.c (PrimaryServer), parseinfo.c (parse_config), root.c
2961 (primary_root_add, primary_root_translate,
2962 primary_root_inverse_translate): Likewise.
2963
2964 2004-08-17 Derek Price <derek@ximbiot.com>
2965
2966 * client.c: Misc reformatting.
2967 (handle_redirect, close_connection_to_server): New functions.
2968 (failure_exit,*): s/int/bool/.
2969 (responses): Add `Redirect'.
2970 (get_server_responses): Handle response_type_redirect.
2971 (get_responses_and_close): Use close_connection_to_server().
2972 (supported_request): Change API to use bool & const.
2973 (start_server): Handle response_type_redirect.
2974 * client.h (supported_request): Update proto.
2975 (type): Add response_type_redirect.
2976 * main.c (lookup_command_attribute): Declare arg const.
2977 * cvs.h (lookup_command_attribute): Ditto.
2978 * sever.c (requests): Create dummy `Command-prep' request.
2979
2980 2004-08-12 Derek Price <derek@ximbiot.com>
2981
2982 * main.c (main): Don't process --primary-root without PROXY_SUPPORT.
2983 * root.c (primary_root_translate, primary_root_inverse_translate):
2984 Declare inline.
2985
2986 2004-08-11 Derek Price <derek@ximbiot.com>
2987
2988 * ms-buffer.h, ms-buffer.c: Disable contents without PROXY_SUPPORT.
2989
2990 2004-08-11 Derek Price <derek@ximbiot.com>
2991
2992 * server.c (isProxyServer): Declare inline.
2993 (reprocess_proxy_log): Rename to...
2994 (rewind_buf_from_net): ...this and change all callers.
2995
2996 2004-08-11 Derek Price <derek@ximbiot.com>
2997
2998 * sanity.sh (sync-secondary): Don't bother to log sync activity.
2999
3000 2004-08-11 Derek Price <derek@ximbiot.com>
3001
3002 * buffer.c (buf_copy_data), buffer.h (buf_copy_data), log-buffer.c
3003 (log_buffer_initialize, log_buffer_input, log_buffer_output,
3004 log_buffer_rewind, log_buffer_closelog), log-buffer.h
3005 (log_buffer_initialize), main.c (MaxProxyBufferSize), mkmodules.c
3006 (config_contents), parseinfo.c (parse_config), server.c (server):
3007 Switch eariler support for logs in memory buffers on
3008 TRUST_OS_FILE_CACHE.
3009
3010 2004-08-11 Derek Price <derek@ximbiot.com>
3011
3012 * buffer.c (buf_free_data, buf_copy_data): Only compile with proxy
3013 support.
3014 * buffer.h: Ditto for including the protos.
3015
3016 2004-08-11 Derek Price <derek@ximbiot.com>
3017
3018 * buffer.c (fd_buffer_input): Bracket misguided attempt at improved
3019 I/O efficiency with TRUST_OS_FILE_CACHE pragmas.
3020
3021 2004-08-10 Derek Price <derek@ximbiot.com>
3022
3023 * cvs.h, main.c, mkmodules.c, parseinfo.c, server.c:
3024 s/MaxSecondaryBufferSize/MaxProxyBufferSize/.
3025
3026 2004-08-10 Derek Price <derek@ximbiot.com>
3027
3028 * sever.c (secondary_log, secondary_log_out): Rename globals everywhere
3029 to...
3030 (proxy_log, proxy_log_out): ...these.
3031 (isSecondaryServer): Rename function...
3032 (isProxyServer): ...to this.
3033
3034 2004-08-10 Derek Price <derek@ximbiot.com>
3035
3036 * log-buffer.c: #ifdef PROXY_SUPPORT in appropriate places.
3037
3038 2004-08-10 Derek Price <derek@ximbiot.com>
3039
3040 * cvs.h, log-buffer.h, main.c, mkmodules.c, parseinfo.c, server.c:
3041 s/SECONDARY_SUPPORT/PROXY_SUPPORT/.
3042
3043 2004-08-10 Derek Price <derek@ximbiot.com>
3044
3045 * server.c (isSecondaryServer): Declare static.
3046 * server.h (isSecondaryServer): Remove proto.
3047
3048 2004-08-10 Derek Price <derek@ximbiot.com>
3049
3050 * log-buffer.h (log_buffer_rewind, log_buffer_closelog): Don't define
3051 protos without SECONDARY_SUPPORT.
3052 * server.c (*): #ifdef correctly for !SECONDARY_SUPPORT.
3053 * version.c (version): Remove unused code.
3054
3055 2004-08-10 Derek Price <derek@ximbiot.com>
3056
3057 * server.c (server_cleanup): Remove unused variable.
3058
3059 2004-08-10 Derek Price <derek@ximbiot.com>
3060
3061 * server.c (buf_from_net_save): Remove obsolete variable.
3062 (server_cleanup): Don't close BUF_FROM_NET_SAVE.
3063
3064 2004-08-09 Derek Price <derek@ximbiot.com>
3065
3066 * sanity.sh (sync-secondary, *info): Sync only the updated directories
3067 rather than the entire repository after a write for a minor efficiency
3068 improvement.
3069 (info, taginfo): Hack *info to sync all dirs for these tests rather
3070 than rewriting the sync-secondary script to handle old-style *info
3071 format strings.
3072
3073 2004-08-05 Derek Price <derek@ximbiot.com>
3074
3075 Beginnings of support for turning off writeproxy support (still broke.)
3076 * cvs.h (PrimaryServer, MaxSecondaryBufferSize), main.c (PrimaryServer,
3077 MaxSecondaryBufferSize), mkmodules.c (config_contents), parseinfo.c
3078 (parse_config): Switch off when writeproxy support disabled.
3079 * server.c (replace_file_offset, move_file_offset): Comment out
3080 temporarily.
3081
3082 2004-08-05 Derek Price <derek@ximbiot.com>
3083
3084 * filesubr.c (copy_file): Don't fsync. It's slow.
3085
3086 2004-08-05 Derek Price <derek@ximbiot.com>
3087
3088 * buffer.c (buf_copy_data): New function.
3089 * buffer.h: Proto new function.
3090 * cvs.h (MaxSecondaryBufferSize): Declare new config global.
3091 * log-buffer.c: Allow file-backed memory buffers for "speed".
3092 (struct log_buffer): Add new fields.
3093 (log_buffer_force_file): New function.
3094 (log_buffer_initialize): Initialize new fields.
3095 (log_buffer_input, log_buffer_output): Handle logging to memory when
3096 asked.
3097 (log_buffer_disable): Remove function, moving much functionality...
3098 (log_buffer_rewind): ...to this new function and expanding.
3099 (log_buffer_closelog): Handle new fields and structs.
3100 (log_buffer_get_fd): Remove function.
3101 (setup_logfiles): Use new _initialize API.
3102 * log-buffer.h: Update protos to match.
3103 * main.c (MaxSecondaryBufferSize): Init new config global.
3104 * mkmodules.c (config_contents): Add comments 4 MaxSecondaryBufferSize.
3105 * parseinfo.c (parse_config): Parse MaxSecondaryBufferSize..
3106 * server.c (secondary_log_name, secondary_log_out_name): Remove unused
3107 globals.
3108 (read_secondary_log): Remove function.
3109 (reprocess_secondary_log): Use log_buffer_rewind() instead of the above.
3110 (become_proxy): Ditto.
3111 (server_cleanup): No need to clean up logfiles any longer.
3112 (server): Use new log_buffer_initialize API.
3113
3114 2004-08-04 Derek Price <derek@ximbiot.com>
3115
3116 * buffer.c (buf_read_data): s/abort/assert/.
3117
3118 2004-08-04 Derek Price <derek@ximbiot.com>
3119
3120 * server.c (loop_over_inputs): Remove function, moving contents back...
3121 (server): ...to here.
3122
3123 2004-08-03 Derek Price <derek@ximbiot.com>
3124
3125 Checking in IO changes intended to improve speed for posterity since
3126 they actually increase CPU usage by about .2% in remote mode and 5% in
3127 writeproxy mode.
3128 * Makefile.am (cvs_SOURCES): Add ms-buffer.c & ms-buffer.h.
3129 * buffer.c (buf_free_data): New function.
3130 (buf_read_data): s/abort/assert/.
3131 (fd_buffer_input): Try to improve efficiency of blocking read.
3132 * buffer.h (buf_free_data): New proto.
3133 * server.c (reprocess_secondary_log): Only reopen log and attach to
3134 BUF_FROM_NET - don't actually loop over inputs.
3135 (become_proxy, serve_co, do_cvs_command): Use new log from above.
3136 * ms-buffer.c, ms-buffer.h: New files.
3137
3138 2004-08-03 Derek Price <derek@ximbiot.com>
3139
3140 * sanity.sh (TIMING): Make this work when not in $remotehost mode.
3141 (reserved-13b): Use sorted output.
3142
3143 2004-08-03 Derek Price <derek@ximbiot.com>
3144
3145 * log-buffer.c: Improve comments.
3146
3147 2004-08-02 Derek Price <derek@ximbiot.com>
3148
3149 * sanity.sh (ssh-wrapper): Export CVSUMASK to remote host.
3150 (*): Remove some hacks that were needed because CVSUMASK was not
3151 exported to the remote host. Misc cleanup.
3152
3153 2004-07-28 Mark D. Baushke <mdb@cvshome.org>
3154
3155 * sanity.sh (pserver-auth-no-dos): ENOMEM on Solaris 7, 8, 9, and
3156 AIX 4.3 all use the text "Not enough space" instead of the text
3157 "Cannot allocate memory" as is printed on GNU/Linux, NetBSD, and
3158 FreeBSD systems.
3159
3160 2004-07-28 Derek Price <derek@ximbiot.com>
3161
3162 * sanity.sh (ssh-wrapper): Export CVS_RSH on remote host.
3163
3164 2004-07-28 Mark D. Baushke <mdb@cvshome.org>
3165
3166 * sanity.sh (secondary-wrapper): Not all $TESTSHELL shells
3167 are able to set a variable and export it at the same time.
3168 Separate the value assignment from the export statement.
3169 (writeproxy-secondary-wrapper): Ditto.
3170
3171 2004-07-28 Derek Price <derek@ximbiot.com>
3172
3173 * server.c (isSecondaryServer): Fix array out of bounds problem.
3174 * sanity.sh (ssh-wrapper): Wrap any rsh implementation we are handed to
3175 forward variables relevant to testing. Add new $TIMING variable to
3176 allow timing of processes on a remote host.
3177 (*): Gratuitous reformatting.
3178
3179 2004-07-26 Derek Price <derek@ximbiot.com>
3180
3181 * server.c (read_secondary_log): Minor comment corrections.
3182
3183 2004-07-23 Derek Price <derek@ximbiot.com>
3184
3185 * buffer.c (fd_buffer_output): Don't fsync. It is unneeded and slow.
3186 * server.c (move_file_offset, replace_file_offset): Ditto.
3187 * log-buffer.c (log_buffer_flush_log): Remove function.
3188
3189 2004-07-19 Derek Price <derek@ximbiot.com>
3190
3191 * log-buffer.c (log_buffer_disable): Return log FILE *. Don't close
3192 log. Fix header comment.
3193 (log_buffer_closelog): New function.
3194 * log-buffer.h: Update protos to match.
3195 * server.c (read_secondary_log): Rewind file pointer rather than
3196 closing and reopening file for speed.
3197 (serve_root): Close secondary log rather than just disabling when not
3198 running in secondary mode.
3199
3200 2004-07-19 Derek Price <derek@ximbiot.com>
3201
3202 * buffer.c (buf_flush): Replace abort w/assert.
3203 * log-buffer.c (log_buffer_flush_log): New function for syncing a log.
3204 (log_buffer_flush, log_buffer_flush): Don't sync log for speed.
3205 * log-buffer.h (log_buffer_flush_log): New proto.
3206 * sanity.sh: Tidy.
3207 (run_filter): Accept file name to filter as argument.
3208 (dotest_*): pass new arg to run_filter.
3209 * server.c (read_secondary_log): Sync log before reopening.
3210
3211 2004-07-16 Derek Price <derek@ximbiot.com>
3212
3213 * buffer.c (fd_buffer_input): Back out previous two changes due to
3214 incompatibility with current state of write proxies.
3215 * log-buffer.c (log_buffer_initialize): Handle new buffers which
3216 already have some data in them.
3217 (log_buffer_input): Don't fsync here. It is slow.
3218 * server.c (serve_root): Disable the secondary output log too.
3219 (serve_noop, pserver_authenticate_connection): Misc cleanup.
3220 * sanity.sh: Misc gratuitous cleanup.
3221
3222 2004-07-16 Derek Price <derek@ximbiot.com>
3223
3224 * buffer.c (fd_buffer_input): Don't overwrite the input buffer the
3225 second time through the blocking read loop.
3226
3227 2004-07-15 Derek Price <derek@ximbiot.com>
3228
3229 * buffer.c (fd_buffer_input): Improve efficiency.
3230 * sanity.sh (modify_repo): Move timestamp race avoidance to...
3231 (sync-secondary): This script.
3232 (big): Misc cleanup.
3233
3234 2004-07-15 Derek Price <derek@ximbiot.com>
3235
3236 * sanity.sh: Misc gratuitous cleanup.
3237 (modify_repo): Sleep 1 before rsync to avoid timestamp comparison
3238 issues.
3239
3240 2004-07-15 Derek Price <derek@ximbiot.com>
3241
3242 * log-buffer.c (log_buffer_output): Remove extremely slow fsync call.
3243 (log_buffer_disable): Move to here so log files are sync'd before
3244 close.
3245 * sanity.sh (run_filter): New function to allow for filtering of cruft
3246 output by Rational Quantify or other profilers.
3247 (dotest_*): Call new function.
3248
3249 2004-07-13 Derek Price <derek@ximbiot.com>
3250
3251 * server.c (prepost_proxy_proc): Add the CVSROOT string for the primary
3252 server, as documented.
3253
3254 2004-07-13 Derek Price <derek@ximbiot.com>
3255
3256 * tag.c (tag_filesdoneproc): Don't track posttag errors.
3257 (cvstag): Move addition of successful tags to val-tags to...
3258 (tag_fileproc): ...here and...
3259 (rtag_fileproc): ...here. Consolidate returns at single location.
3260 (*): Misc reformatting.
3261 * sanity.sh (sync-secondary): Include more data in the update-log.
3262
3263 2004-07-13 Derek Price <derek@ximbiot.com>
3264
3265 * .cvsignore: Ignore coverage data generated by GCC.
3266
3267 2004-07-12 Derek Price <derek@ximbiot.com>
3268
3269 * sanity.sh: Watch $servercvs and other minor fixes.
3270
3271 2004-07-12 Derek Price <derek@ximbiot.com>
3272
3273 * server.c: Gratuitous reformatting.
3274 * sanity.sh: Misc write proxy accommodations.
3275
3276 2004-07-11 Derek Price <derek@ximbiot.com>
3277
3278 * log.c (log_fileproc, log_expand_revlist, log_fix_singledate,
3279 log_count_print, log_tree, log_abranch, log_version), parseinfo.c
3280 (Parse_Info, parse_config), rcs.c (RCS_fully_parse, rcsbuf_getkey,
3281 rcsbuf_getrevnum, rcsbuf_valword, RCS_getbranchpoint, RCS_getdate,
3282 RCS_getrevtime, RCS_checkout, RCS_findlock_or_tip, RCS_addbranch,
3283 RCS_cmp_file, RCS_lock, RCS_unlock, RCS_delete_revs, RCS_deltas,
3284 RCS_getdeltatext, RCS_putdtree): Print primary path.
3285 * server.c (serve_kopt): Handle secondary log.
3286 * sanity.sh: Misc accommodations.
3287
3288 2004-07-11 Derek Price <derek@ximbiot.com>
3289
3290 * checkin.c (checkout_proc): Correct vi induced typo.
3291
3292 2004-07-11 Derek Price <derek@ximbiot.com>
3293
3294 * admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
3295 (notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
3296 server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
3297 default %c format string.
3298 * client.c, edit.c, lock.c, fileattr.c, mkmodules.c, myndbm.c,
3299 parseinfo.c, recurse.c: Misc gratuitous cleanup.
3300 * commit.c (commit_filesdoneproc): Move loginfo call to after CVSROOT
3301 sync.
3302 * checkout.c (checkout_proc), fileattr.c (fileattr_read), myndbm.c
3303 (mydbm_open, mydbm_load_file): Print primary path.
3304 * server.c (serve_checkin_time): Handle secondary log.
3305 (prepost_proxy_proc): Move before first call.
3306 (become_proxy): Move before first call.
3307 (serve_notify): Become proxy for this request.
3308 * sanity.sh: Misc accommodations.
3309
3310 2004-07-10 Derek Price <derek@ximbiot.com>
3311
3312 * server.c (serve_notify): Handle secondary_log.
3313
3314 2004-07-08 Derek Price <derek@ximbiot.com>
3315
3316 Intermediate checkin. Adds some new server requests and test fixes.
3317 * sanity.sh: Update tests to handle proxies and new hooks.
3318 * cvs.h (CVSROOTADM_PREPROXY): Alphebetize & sub correct name.
3319 * mkmodules.c (filelist): Alphabetize.
3320 * server.c (serve_max_dotdot, serve_static_directory, serve_argumentx):
3321 Handle secondary_log.
3322 * tag.c (*): Misc gratuitous cleanup.
3323
3324 2004-07-08 Derek Price <derek@ximbiot.com>
3325
3326 Intermediate checkin. Adds preproxy, & postproxy hooks and some test
3327 cruft to test everything.
3328
3329 * cvs.h (CVSROOTADM_*): Add new hook config files.
3330 * log.c (log_fileproc): Print primary path.
3331 * mkmodules.c (*_content): Add init content for new files.
3332 (filelist): Add new files.
3333 * rcs.c (RCS_parsercsfile_i): Set print_path. Misc gratuitous cleanup.
3334 (freercsnode): Free print_path.
3335 * rcs.h (struct rcsnode): Add print_path.
3336 * rcscmds.c (RCS_merge, RCS_exec_rcsdiff): Print primary path.
3337 * server.c (isSecondaryServer): No longer static.
3338 (serve_sticky, serve_argumentx): Handle secondary logging.
3339 (prepost_proxy_proc): New function.
3340 (become_proxy): Call pre & post proxy hooks. Handle IO closing better.
3341 * server.h (isSecondaryServer): No longer static.
3342 * status.c (status_fileproc): Print primary path.
3343 * sanity.sh: Accept --proxy argument and run in write proxy mode when
3344 seen. Misc fixes to account for other changes. Misc gratuitous
3345 cleanup.
3346
3347 2004-07-02 Derek Price <derek@ximbiot.com>
3348
3349 Woo-hoo! Write proxies work!
3350 * client.c (open_connection_to_server): Set up log files...
3351 (start_server): ...here.
3352 * server.c (secondary_log_out_name, secondary_log_out): New globals.
3353 (argument_cound, argument_vector, argument_vector_size): Move before...
3354 (reprocess_secondary_log): ...referencing here. Assume secondary_log.
3355 (read_secondary_log): Accept buf & name args.
3356 (serve_modified, serve_unchanged, serve_is_modified, serve_entry):
3357 Handle logging pass.
3358 (become_proxy): Use new output-to-client-log. Verify buffers still
3359 exist before using.
3360 (output_dir): Translate paths to the client on the secondary.
3361 (serve_co): Only reprocess the secondary log when one exists.
3362 (server_cleanup): Free buf after shutdown. Dispose of client output
3363 log.
3364 (server): Create client output log.
3365 (*): Misc reformatting & detypecasting.
3366 * log-buffer.c (log_buffer_output): Handle fatal_errors.
3367 (log_buffer_flush): Don't operate on NULL streams.
3368 (log_buffer_disable): Reformat so as not to confuse the optimizer.
3369 * root.c (primary_root_translate): Remove unused variable and redundant
3370 slash.
3371 (primary_root_inverse_translate): New function.
3372 * root.h: Add new proto.
3373 * sanity.sh (writeproxy): Wrap server executables to set args and
3374 server variables properly. Fill in some test gaps. Correct `cd' args.
3375 Clean up wrappers.
3376
3377 2004-06-30 Derek Price <derek@ximbiot.com>
3378
3379 * root.h (primary_root_add, primary_root_translate): New protos.
3380 * root.c (primary_root_add, primary_root_translate): New functions.
3381 * main.c (long_options): Add --primary-root. Handle --primary-root
3382 and --allow-root only with SERVER_SUPPORT.
3383 (main): Ditto.
3384 * server.c (move_file_offset): Set block before fsync. Report
3385 ftruncate errors. Force sync after rearranging data.
3386 (replace_file_offset): Force sync after replacing data.
3387 (serve_directory): Translate roots based on --primary-root arg.
3388 (serve_root): Likewise & don't rewrite the log file.
3389 (become_proxy): Increment select's N arg because it is required.
3390 (do_cvs_command): Use MAX macro appropriately.
3391 * sanity.sh (writeproxy): Wrap the secondary server in such a way that
3392 it gets the --primary-root option and the primary does not. Move the
3393 primary root out of the way for the read operations to prove only the
3394 secondary was accessed.
3395
3396 2004-06-30 Derek Price <derek@ximbiot.com>
3397
3398 * log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
3399 soon as they are written to better diagnose hangs.
3400
3401 2004-06-30 Derek Price <derek@ximbiot.com>
3402
3403 * client.c (connect_to_forked_server): Compile for SERVER_SUPPORT.
3404
3405 2004-06-30 Derek Price <derek@ximbiot.com>
3406
3407 * buffer.c (buf_append_buffer): Handle NULL from->data.
3408
3409 2004-06-28 Derek Price <derek@ximbiot.com>
3410
3411 * log-buffer.c (log_buffer_flush): Sync all, not just data.
3412 * buffer.c (fd_buffer_flush): Ditto. Ignore problems synchronizing
3413 unsynchronizable descriptors.
3414
3415 2004-06-28 Derek Price <derek@ximbiot.com>
3416
3417 Intermediate checkin on the way to enabling the write proxy.
3418
3419 * server.c (isSecondaryServer): Handle forked primary.
3420 (read_secondary_log, move_file_offset, replace_file_offset,
3421 become_proxy): New functions.
3422 (reprocess_secondary_log): Use new read_secondary_log().
3423 (serve_root): Replace `Root' request with new version for primary.
3424 (do_cvs_command): Use new become_proxy() function.
3425 (*): Gratuitous reformatting.
3426 (server): Open new logs and avoid opening pipes to pserver twice.
3427 * buffer.c (buf_initialize): Handle new LAST_INDEX & LAST_COUNT
3428 initializers.
3429 (*): Remove unnecessary typecasts. Gratuitous reformatting. Use
3430 assert() rather than if()/abort().
3431 (buf_append_buffer, buf_read_data, buf_copy_lines, buf_copy_counted):
3432 Track LAST_INDEX & LAST_COUNT.
3433 (buf_read_short_line): Track LAST_INDEX & LAST_COUNT.
3434 * buffer.h (struct buffer): Add LAST_INDEX & LAST_COUNT.
3435 * cvs.h: Include minmax.h.
3436 * root.h (enum CVSmethod): Force null_method to 0.
3437 * zlib.c: Remove unnecessary typecasts. Gratuitous reformatting. Use
3438 assert() rather than if()/abort().
3439
3440 2004-06-23 Derek Price <derek@ximbiot.com>
3441
3442 Checkout and probably other read-only commands now work.
3443
3444 * server.c (serve_expand_modules): Discard arguments even when
3445 reprocessing.
3446 (serve_argument): Always process arguments.
3447 (serve_wrapper_sendme_rcs_options): Process in first pass.
3448
3449 2004-06-23 Derek Price <derek@ximbiot.com>
3450
3451 Operate correctly in non-write proxy mode, delaying processing of most
3452 commands until after the `Root' request is received.
3453
3454 * server.c (buf_from_net_save): New global variable to store the input
3455 buffer from the client while the secondary log is being reprocessed.
3456 (reprocessing): Global to track whether we are reprocessing.
3457 (various redundant prototypes): Removed.
3458 (fd_buffer_*): Remove unneeded typecasts.
3459 (serve_valid_responses, serve_global_option, serve_set,
3460 serve_valid_requests): Avoid processing twice.
3461 (command_pid, outbuf_memory_error, input_memory_error): Moved above new
3462 references.
3463 (server): Factor loop over the client inputs to...
3464 (loop_over_inputs): ...this new function.
3465 (serve_root): Loop over secondary log of client inputs when we
3466 discover we are not the secondary.
3467 (*): Add !secondary_log assertions to verify that certain code paths
3468 are not yet taken.
3469 (do_cvs_command, serve_init): Add switch and pseudo-code comments about
3470 what will need to be done on secondary servers.
3471 (seve_noop): Print errors & "ok" in the first pass, skip "ok" but
3472 restore handling of entries and notification in the second.
3473 (serve_co): Note what will need to be done on secondaries.
3474 (server_cleanup): Deal with buf_from_net_save when necessary.
3475
3476 2004-06-22 Derek Price <derek@ximbiot.com>
3477
3478 * server.c (server): Move previously fatal error on failure to open a
3479 secondary log to...
3480 (serve_root): ...here, and only when we discover we are actually a
3481 secondary server.
3482 (server): Ensure an interrupt cannot dump core.
3483
3484 2004-06-22 Derek Price <derek@ximbiot.com>
3485
3486 Enable the writeproxy log and turn it off when we determine we are not
3487 running as a secondary server.
3488
3489 * log-buffer.c: Compile log buffer routines in server mode for write
3490 proxy.
3491 (struct log_buffer): Add fatal_error member.
3492 (log_buffer_initialize, log_buffer_input): Allow for fatal write errors
3493 for writeproxy.
3494 (log_buffer_disable): Turn off the log when asked.
3495 (log_buffer_shutdown): Close log via log_buffer_disable.
3496 (log_buffer_input, log_buffer_output, log_buffer_flush): Don't operate
3497 on the log when it doesn't exist.
3498 (*): Misc gratuitous cleanup.
3499 (setup_logfiles): Use new log_buffer_initialize API.
3500 * log-buffer.h (log_buffer_initialize, log_buffer_disable): New
3501 prototypes.
3502 (log_buffer_initialize): Update prototype.
3503 * server.c: Include log-buffer.h. Gratuitous reformatting of pragmas.
3504 (secondary_log_name, secondary_log): New globals.
3505 (server): Set up recording for writeproxy.
3506 (serve_root): Turn off recording when we determine that we are not a
3507 secondary.
3508
3509 2004-06-21 Derek Price <derek@ximbiot.com>
3510
3511 * sanity.sh (writeproxy): Verify that secondary is updated after a
3512 commit. Comment test that verifies that commit took place on primary.
3513
3514 2004-06-10 Derek Price <derek@ximbiot.com>
3515
3516 * sanity.sh (writeproxy): Test response to a failing rsync.
3517
3518 2004-06-09 Derek Price <derek@ximbiot.com>
3519
3520 * server.c (isSecondaryServer): New function.
3521 (MAXHOSTNAMELEN): Move to top of file and improve comment.
3522
3523 2004-06-09 Derek Price <derek@ximbiot.com>
3524
3525 * parseinfo.c (parse_config): Get my enum references correct.
3526
3527 2004-06-09 Derek Price <derek@ximbiot.com>
3528
3529 * parseinfo.c (parse_config): Verify that the ProxyServer connection
3530 method is valid.
3531
3532 2004-09-02 Derek Price <derek@ximbiot.com>
3533
3534 * server.c (do_cvs_command): Pass new args to fd_buffer_initialize().
3535 (server): Don't initialize BUF_TO_NET & BUF_FROM_NET when
3536 pserver_authenticate already did.
3537 (pserver_read_line): New function to access pserver auth dialogue via
3538 buffers.
3539 (pserver_authenticate_connection): Init buffers to/from net and access
3540 via pserver_read_line() and the buffer output functions.
3541 (fd_buffer_*): Move to...
3542 * buffer.c (fd_buffer_*): ...here. Handle blocking input more
3543 efficiently.
3544 (buf_initialize): Handle get_fd() argument.
3545 (buf_nonio_initialize, packetizing_buffer_initialize): Pass new
3546 get_fd() argument.
3547 (buf_copy_data, buf_free_data, buf_read_short_line, buf_get_fd,
3548 packetizing_buffer_get_fd): New functions.
3549 (bufread_line): Wrap buf_read_short_line().
3550 (stdio_buffer_*): Remove these functions.
3551 (*): Some reformatting of function headers.
3552 * buffer.h (struct buffer, buf_initialize): Add get_fd().
3553 (buf_read_short_line, buf_get_fd, buf_copy_data, buf_free_data,
3554 fd_buffer_initialize): New prototypes.
3555 * client.c (get_port_number, get_cvs_port_number,
3556 get_proxy_port_number): Compile with SERVER_SUPPORT.
3557 (make_bufs_from_fds): Likewise, and accept new ROOT arg and pass on to
3558 fd_buffer_initialize().
3559 (connect_to_pserver, connect_to_forked_server): Pass ROOT to
3560 make_bufs_from_fds().
3561 (start_server): Factor much functionality into...
3562 (open_connection_to_server): ...this new function.
3563 * client.h (make_bufs_from_fds): Update proto.
3564 (open_connection_to_server): New proto.
3565 * log-buffer.c (log_buffer_initialize): Handle get_gd().
3566 (log_buffer_get_fd): New function.
3567 * zlib.c (compress_buffer_initialize, compress_buffer_get_fd): Ditto
3568 twice.
3569 * rsh-client.c (start_rsh_server): Pass ROOT to make_bufs_from_fds().
3570 * sanity.sh (pserver): Expect new error messages.
3571
3572 2004-09-01 Derek Price <derek@ximbiot.com>
3573
3574 * run.c: Remove unneeded typecasts. Reformat function headers. Fix
3575 trace.
3576
3577 2004-08-31 Derek Price <derek@ximbiot.com>
3578
3579 * subr.c (format_cmdline), cvs.h (format_cmdline): Accept bool rather
3580 than int.
3581 * admin.c, commit.c, edit.c, fileattr.c, logmsg.c, tag.c: Change all
3582 callers.
3583 * main.c (UseNewInfoFmtStrings), cvs.h (UseNewInfoFmtStrings):
3584 s/int/bool/.
3585 * parseinfo.c: Change all references.
3586
3587 2004-08-31 Derek Price <derek@ximbiot.com>
3588
3589 * checkout.c: Reformat function headers. Remove unnecessary typecasts
3590 and prototypes. Some other reformatting for legibility.
3591
3592 2004-08-31 Derek Price <derek@ximbiot.com>
3593
3594 * buffer.c: Gratuitous reformatting of header comments.
3595 s/abort/assert/. Remove unnecessary typecasts.
3596 * buffer.h: Remove unnecessary "extern" decls. Some reformatting.
3597
3598 2004-08-24 Derek Price <derek@ximbiot.com>
3599
3600 * recurse.c (start_recursion): Don't shorten //. to / (use //).
3601
3602 2004-08-24 Derek Price <derek@ximbiot.com>
3603
3604 * recurse.c (start_recursion): Strip trailing CWD indirections on
3605 repository.
3606 * sanity.sh (rstar-toplevel): Update to account for new behavior.
3607 (Report from Dan Peterson <dbpete@aol.com>.)
3608
3609 2004-08-24 Mark D. Baushke <mdb@cvshome.org>
3610
3611 * recurse.c (do_recursion): Correct test for calling
3612 server_pause_check to occur when locktype != CVS_LOCK_WRITE.
3613 (Patch suggested by Ian Lance Taylor <ian@wasabisystems.com>
3614 in bug#198).
3615
3616 2004-08-24 Derek Price <derek@ximbiot.com>
3617
3618 * sanity.sh: Update a few tests to account for the recent error message
3619 changes.
3620
3621 2004-08-24 Derek Price <derek@ximbiot.com>
3622
3623 * rcs.c (RCS_valid_rev): Declare arg const.
3624 * rcs.h: Likewise.
3625
3626 2004-08-24 Derek Price <derek@ximbiot.com>
3627
3628 * rcs.c (translate_symtag): Prevent infinite loop.
3629 * tag.c (tag_check_valid): Check tag syntax before searching for tags.
3630 * sanity.sh (tag-space): Some tests for the above.
3631 (Report from Dan Peterson <dbpete@aol.com>.)
3632
3633 2004-08-24 Derek Price <derek@ximbiot.com>
3634
3635 * tag.c (tag_check_valid): Use RCS_valid_rev() rather than duplicating
3636 code. Misc error message improvements.
3637
3638 2004-08-24 Mark D. Baushke <mdb@cvshome.org>
3639
3640 * ignore.c (ignore_directory): Include the terminating NUL
3641 character in the directory name comparison to avoid matching
3642 substrings of directories by accident.
3643 (Report and suggested fix from James E Wilson
3644 <wilson@specifixinc.com>.)
3645 * sanity.sh (modules4): Add some more tests testing the above
3646 change.
3647
3648 2004-08-20 Mark D. Baushke <mdb@cvshome.org>
3649
3650 * sanity.sh (binfiles): Cleanup the 2a temporary directory.
3651
3652 2004-08-20 Derek Price <derek@ximbiot.com>
3653
3654 Cache tags in val-tags on successful creation to avoid problems with
3655 write proxies. Merged from `writeproxy2' branch.
3656
3657 * tag.c (tag_filesdoneproc): Don't track posttag errors.
3658 (cvstag): Move addition of successful tags to val-tags to...
3659 (tag_fileproc): ...here and...
3660 (rtag_fileproc): ...here. Consolidate returns at single location.
3661 (*): Misc reformatting.
3662
3663 * tag.c (add_val_tag): New function with content factored from...
3664 (tag_check_valid): ...here.
3665 (cvstag): Call add_val_tag() when needed.
3666 * annotate.c, checkout.c, commit.c, diff.c, ls.c, patch.c, recurse.c,
3667 tag.c, update.c: Pass new args to tag_check_valid.
3668
3669 Merge of postadmin, posttag, and postwatch functionality from
3670 `writeproxy2' branch.
3671
3672 * admin.c (postadmin_proc), commit.c (precommit_proc), edit.c
3673 (notify_proc), fileattr.c (postwatch_proc), logmsg.c (logfile_write),
3674 server.c (prepost_proxy_proc), tag.c (posttag_proc, pretag_proc): Add
3675 default %c format string.
3676
3677 * cvs.h (CVSROOTADM_POSTWATCH): New macro.
3678 * fileattr.c (*): Misc cleanup.
3679 (postwatch_proc): New function.
3680 (fileattr_write): Call watch proc when done writing fileattr.
3681 * mkmodules.c (postwatch_contents): New var.
3682 (filelist): Add postwatch.
3683 * watch.c (addremove_filesdoneproc): Remove function.
3684 (watch_addremove): Don't call above function.
3685 (*): Misc cleanup.
3686 * watch.h: Remove some unnecessary "extern" decls.
3687
3688 * admin.c (postadmin_proc, admin_filesdoneproc): New functions.
3689 (admin): Pass admin_filesdoneproc() to start_recursion().
3690 (*): Misc gratuitous cleanup.
3691 * cvs.h (CVSROOTADM_*): Alphabetize, add new hook config files.
3692 (format_cmdline): Fix proto to match change below.
3693 * mkmodules.c (*_content): Add init content for new files. Misc
3694 cleanup.
3695 (filelist): Add new files.
3696 * tag.c (struct pretag_proc_data): Move before first use.
3697 (posttag_proc, tag_filesdoneproc): New functions.
3698 (rtag_proc): Pass new procs to start_recursion().
3699 (*): Misc gratuitous cleanup.
3700 * sanity.sh: Misc accommodations.
3701
3702 2004-08-19 Mark D. Baushke <mdb@cvshome.org>
3703
3704 * log-buffer.c (log_buffer_output): Protect call to fsync()
3705 with #ifdef HAVE_FSYNC.
3706
3707 2004-08-18 Mark D. Baushke <mdb@cvshome.org>
3708
3709 * log-buffer.c (log_buffer_input): Protect call to fsync()
3710 with #ifdef HAVE_FSYNC.
3711
3712 2004-08-17 Mark D. Baushke <mdb@cvshome.org>
3713
3714 * sanity.sh (sshstdio): Fix comment typo plus gratuitous
3715 reformatting.
3716
3717 * client.c (handle_m): Workaround to deal with stdio getting put
3718 into non-blocking via redirection of stderr and interaction with
3719 ssh on some platforms. On those boxes, stdio can put stdout
3720 unexpectedly into non-blocking mode which may lead to fwrite() or
3721 fflush() failing with EAGAIN, but cvs not checking for the error.
3722 (Patch suggested by Frank Hemer <frank@hemer.org>.)
3723
3724 * client.c (handle_e): Similar fix for stderr.
3725 * sanity.sh (sshstdio): New test for non-blocking stdio via ssh.
3726
3727 2004-08-11 Derek Price <derek@ximbiot.com>
3728
3729 * sanity.sh (basicc): Work around a problem in Linux 2.2 & Bash 2.05b
3730 which prevents a `cd ..' from a deleted directory from working.
3731 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
3732
3733 2004-07-18 Mark D. Baushke <mdb@cvshome.org>
3734
3735 * sanity.sh (newb-123j0): Use DOTSTAR at end of response.
3736
3737 2004-07-17 Mark D. Baushke <mdb@cvshome.org>
3738
3739 * main.c (ImportNewFilesToVendorBranchOnly): New variable.
3740 * cvs.h (ImportNewFilesToVendorBranchOnly): Declare new variable.
3741 * import.c (import): Respect setting of
3742 ImportNewFilesToVendorBranchOnly.
3743 * mkmodules.c (config_contents): Document the default
3744 ImportNewFilesToVendorBranchOnly=no option in newly generated
3745 config files.
3746 * parseinfo.c (parse_config): Parse
3747 ImportNewFilesToVendorBranchOnly option.
3748 * sanity.sh (importX2): New test, to test
3749 ImportNewFilesToVendorBranchOnly config file option.
3750 (New feature from Chris Demetriou <cgd@broadcom.com>.)
3751
3752 2004-07-17 Mark D. Baushke <mdb@cvshome.org>
3753
3754 * sanity.sh (basic2-14): Use DOTSTAR to be more portable.
3755
3756 * status.c (status_fileproc): Print datetimes using output_cvs_tagged.
3757 * sanity.sh (basic2-14): Allow for an extra blank line at the end.
3758
3759 2004-07-16 Derek Price <derek@ximbiot.com>
3760
3761 * server.c (pamh): New global static to hold the PAM handle.
3762 (server): Close the PAM session so that logging works properly.
3763 (switch_to_user): Opens a PAM session and gets credentials from PAM so
3764 that PAM modules can change group permissions. Get the username from
3765 PAM so that PAM modules can modify the final local username.
3766 (cvs_pam_conv): Changed the assertions to allow PAM to output text to
3767 the user.
3768 (check_system_password): Renamed to...
3769 (check_pam_password): ...this. Changed argument type for username so
3770 that PAM modules can modify the username under authentication. Setting
3771 a terminal so some PAM modules which expect it to be set work, it is
3772 set to the pam servicename which defaults to the binary name. Set the
3773 username from PAM after authentication if a module has changed it.
3774 (check_password): Calls check_pam_password if PAM is enabled otherwiseu
3775 calls check_system_password.
3776 (Patch from Brian Murphy <brian@murphy.dk>.)
3777
3778 2004-07-15 Derek Price <derek@ximbiot.com>
3779
3780 * sanity.sh (run_filter): New function to allow for filtering of cruft
3781 output by Rational Quantify or other profilers.
3782 (dotest_*): Call new function.
3783
3784 2004-07-13 Derek Price <derek@ximbiot.com>
3785
3786 * .cvsignore: Ignore GCC profiling data.
3787
3788 2004-07-12 Derek Price <derek@ximbiot.com>
3789
3790 * client.c: Misc reformatting.
3791
3792 2004-07-12 Derek Price <derek@ximbiot.com>
3793
3794 * main.c: fix format_time_t to call localtime
3795 (Patch from Bart Robinson <lomew@pobox.com>.)
3796
3797 2004-07-02 Derek Price <derek@ximbiot.com>
3798
3799 * vers_ts.c: Gratuitous reformatting & detypecasting.
3800
3801 2004-06-30 Derek Price <derek@ximbiot.com>
3802
3803 * log-buffer.c (log_buffer_input, log_buffer_output): Flush logs as
3804 soon as they are written to better diagnose hangs.
3805
3806 2004-06-29 Derek R. Price <derek@ximbiot.com>
3807
3808 * sanity.sh (toplevel-12): Handle new error output.
3809
3810 2004-06-29 Derek R. Price <derek@ximbiot.com>
3811
3812 * subr.c (xrealloc_and_strcat): Use bool in place of short.
3813
3814 2004-06-29 Derek R. Price <derek@ximbiot.com>
3815
3816 * client.c: Gratuitous reformatting.
3817 (send_repository): Send relative Directory when server reports it is
3818 able to handle it.
3819 * server.c (serve_directory): Handle relative directories.
3820 (output_dir): Send relative directories.
3821 (requests): Add `Relative-directory' request.
3822
3823 2004-06-26 Mark D. Baushke <mdb@cvshome.org>
3824
3825 * import.c (import_usage): Add new -X flag.
3826 (import): Handle new -X flag.
3827 (process_import_file): Handle new -X flag.
3828 (killnew): New static flag variable to indicate use of -X flag.
3829 (preserve_initial_permissions): New function, extracted from
3830 add_rcs_file().
3831 (expand_and_copy_contents): Likewise.
3832 (add_rcs_file): New argument, do_killnew, to cause "import -X" flag
3833 processing. Implement -X flag, and use newly abstracted functions.
3834 * rcs.h (add_rcs_file): Update prototype for do_killnew argument.
3835 * commit.c (checkaddfile): Update for add_rcs_file function change.
3836 * mkmodules.c (init): Likewise.
3837 * client.c (handle_mt): Handle an importmergecmd tag without
3838 any conflicts (for 'import -X' support).
3839 * sanity.sh (importX): New test.
3840 (New feature from Chris Demetriou <cgd@broadcom.com>.)
3841
3842 2004-06-22 Derek Price <derek@ximbiot.com>
3843
3844 * wrapper.c: Add explicit "void" return type to "wrap_clean_fmt_str"
3845 definition.
3846 (Patch from Conrad T. Pino <Conrad@Pino.com>.)
3847
3848 2004-06-09 Derek Price <derek@ximbiot.com>
3849
3850 * server.c (entries, serve_is_modified): Reorder to remove prototypes.
3851 (supported_response): Remove prototype.
3852
3853 2004-06-09 Derek Price <derek@ximbiot.com>
3854
3855 * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
3856 security fixes.
3857 (Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
3858 Krahmer <krahmer@suse.de>.)
3859
3860 * cvs.h: Include xsize.h.
3861
3862 2004-06-09 Derek Price <derek@ximbiot.com>
3863
3864 * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
3865 against malformed entries.
3866 * sanity.sh (server): Tests for same.
3867
3868 2004-06-07 Larry Jones <lawrence.jones@ugsplm.com>
3869
3870 * sanity.sh (basica): More tests for string-based revision inc.
3871
3872 2004-06-04 Larry Jones <lawrence.jones@ugsplm.com>
3873
3874 * subr.c (increment_revnum): Rewrite ala RCS to work directly on
3875 the string rather than converting to int to avoid overflow.
3876 * sanity.sh (basica): New tests for above, update others to match.
3877
3878 2004-06-04 Derek Price <derek@ximbiot.com>
3879
3880 Preliminary writeproxy functionality.
3881 * main.c: Declare PrimaryServer.
3882 * cvs.h: Likewise, but extern.
3883 * mkmodules.c: Add PrimaryServer to default CVSROOT/config content.
3884 * parseinfo.c: Handle PrimaryServer line.
3885 * sanity.sh: (Failing) tests for writeproxy functionality.
3886
3887 2004-05-28 Derek Price <derek@ximbiot.com>
3888
3889 * main.c (format_time_t, gm_format_time_t): Use my_strftime from
3890 GNULIB rather than the system-dependant strftime.
3891
3892 2004-05-20 Derek Price <derek@ximbiot.com>
3893
3894 * sanity.sh: s/GMT/UTC/ where appropriate.
3895
3896 2004-05-20 Derek Price <derek@ximbiot.com>
3897
3898 * server.c (cvs_output_tagged): Move new server code inside a
3899 SERVER_SUPPORT block.
3900
3901 2004-05-19 Derek Price <derek@ximbiot.com>
3902
3903 * cvs.h (gmformat_time_t, entries_time, unix_time_stamp): New protos.
3904 * ls.c (struct long_format_data): New structure.
3905 (ls_print): Print datetimes using cvs_output_tagged.
3906 (long_format_data_delproc): New function.
3907 (ls_fileproc, ls_direntproc): Keep track of long_format_data.
3908 * main.c (Make_Date): Use standard quotes.
3909 (format_time_t, gmformat_time_t): New functions.
3910 (format_date_alloc): Use new functions. Improve comments.
3911 * server.c (cvs_output_tagged): Only output in localtime in local mode.
3912 * vers_ts.c (entries_time, unix_time_stamp): New functions.
3913 (time_stamp): Use new functions.
3914 * sanity.sh (ls, branches2): Use $ISO8601DATE where applicable.
3915
3916 2004-05-19 Derek Price <derek@ximbiot.com>
3917
3918 Output `cvs log' times in the local timezone.
3919
3920 * client.c (handle_mt): Handle the new "date" MT response
3921 * server.c (cvs_output_tagged): Likewise
3922 * cvs.h: Proto for format_date_alloc
3923 * main.c (format_date_alloc, tm_diff): Added.
3924 * log.c (log_version): Use MT response to tag date output.
3925 (Original patch from Bart Robinson <lomew@pobox.com>.)
3926
3927 * sanity.sh (importc, rcs, rcs4): Use TZ=GMT for the duration of these
3928 tests to obtain consistent times in output.
3929 (ISO8601DATE, ISO8601DATE1971, ISO8601DATE2034): Use more precise
3930 regex.
3931
3932 2004-05-19 Derek Price <derek@ximbiot.com>
3933
3934 * server.c (serve_unchanged, serve_is_modified): Overwrite existing
3935 data in timefields. Fixes CAN-2004-0396.
3936
3937 2004-05-15 Derek Price <derek@ximbiot.com>
3938
3939 * lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
3940 (server_cleanup): Clean up inchoherent comment.
3941
3942 2004-05-15 Derek Price <derek@ximbiot.com>
3943
3944 * cvs.h, client.c, history.c, main.c, rcs.c, sanity.sh, server.c:
3945 Back out get_date() changes from 2004-04-28.
3946
3947 2004-05-14 Mark D. Baushke <mdb@cvshome.org>
3948
3949 * sanity.sh (trailingslashes): During cleanup remove topfile,v to
3950 avoid problems in later tests (editor-1).
3951
3952 2004-05-13 Derek Price <derek@ximbiot.com>
3953
3954 * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
3955
3956 2004-05-13 Derek Price <derek@ximbiot.com>
3957
3958 * sanity.sh (trailingslashes): New tests to expose a bug in CVS when
3959 paths are specified with trailing slashes. This relates to TODO #205.
3960
3961 2004-05-13 Mark D. Baushke <mdb@cvshome.org>
3962
3963 * ls.c (ls): Use client_senddate() so the server is able to parse
3964 the date/time.
3965
3966 2004-05-12 Derek Price <derek@ximbiot.com>
3967
3968 * entries.c, subr.c: Gratuitous reformatting.
3969
3970 2004-05-12 Derek Price <derek@ximbiot.com>
3971
3972 * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Only
3973 special case "=" when it is the only character in a timestamp field.
3974 Gratuitous reformatting.
3975 * vers_ts.c (time_stamp_server): Check for NULL in a consistent manner.
3976 Gratuitous reformatting.
3977
3978 2004-05-12 Derek Price <derek@ximbiot.com>
3979
3980 * sanity.sh (ls): Add some new tests of the ls command with dates
3981 specified and show an assertion error when an existing file is
3982 specifically requested.
3983 (Original patch from Alexander Taler <dissent@cvshome.org>.)
3984
3985 2004-05-11 Mark D. Baushke <mdb@cvshome.org>
3986
3987 * sanity.sh (RCSKEYDATE): New regular expression to match the rcs
3988 keyword date format.
3989 (keyword,keywordlog): Use it.
3990 (RCSDELTADATE): New regular expression to match the internal rcs
3991 file format delta.
3992 (admin): Use it.
3993 (RCSDATE): Deleted.
3994 (ISO8601DATE}: A more exact regular expression for cvs log date
3995 output than the previous RCSDATE variable.
3996 (basica,basic2,branches,branches3,multibranch,import,importb,importc,
3997 join,modules,editor,binfiles,log,log2,keyword,multibranch2,admin,
3998 reserved,recase,multiroot,trace):
3999 Use ${ISO8601DATE} for cvs log output date patterns.
4000 (TOUCH1971,ISO8601DATE1971): New variables for test importc.
4001 (TOUCH2034,ISO8601DATE2034): Ditto.
4002 (importc): Use them. Isolate the touch commands in a sub-shell
4003 with TZ=GMT to make the time more predictable.
4004 (RAWRCSDATE2000A,RAWRCSDATE1996A,RAWRCSDATE1996B): New date variables.
4005 (ISO8601DATE2000A,ISO8601DATE1996A,ISO8601DATE1996B): Regexps to match.
4006 (rcs): Use them.
4007 (rcs4): Put the touch commands into sub-shells for temporary
4008 TZ=GMT use.
4009
4010 2004-05-11 Derek Price <derek@ximbiot.com>
4011
4012 * checkin.c (Checkin), commit.c (commit_filesdoneproc, remove_file,
4013 checkaddfile), rcs.c (RCS_checkin): Remove redundant commit messages.
4014 Suppress output when really_quiet.
4015 * sanity.sh: Update to match.
4016
4017 2004-05-10 Derek Price <derek@ximbiot.com>
4018
4019 * sanity.sh (top-level): Rename to...
4020 (rstar-toplevel): ...this for clarity.
4021
4022 2004-05-10 Derek Price <derek@ximbiot.com>
4023
4024 * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
4025
4026 2004-05-08 Larry Jones <lawrence.jones@ugsplm.com>
4027
4028 * log.c (log_expand_revlist): Suppress warnings if really_quiet.
4029
4030 2004-05-08 Derek Price <derek@ximbiot.com>
4031
4032 * server.c: Gratuitous reformatting. Remove unnecessary prototype &
4033 unnecessary type cast.
4034
4035 2004-05-07 Derek Price <derek@ximbiot.com>
4036
4037 * sanity.sh (basica): Remove unnecessary empty arguments.
4038
4039 2004-05-07 Derek Price <derek@ximbiot.com>
4040
4041 * cvs.h (fopen_case): Remove obsolescent prototype.
4042
4043 2004-05-05 Derek Price <derek@ximbiot.com>
4044
4045 * sanity.sh: Wait a second and retry if cvs-serv* directories are
4046 discovered to avoid race conditions on some systems.
4047 (Patch from Pavel Roskin <proski@gnu.org>.)
4048
4049 2004-05-05 Derek Price <derek@ximbiot.com>
4050
4051 * commit.c: Some gratuitous reformatting.
4052
4053 2004-05-04 Derek Price <derek@ximbiot.com>
4054
4055 * update.c: Some gratuitous reformatting.
4056
4057 2004-05-04 Derek Price <derek@ximbiot.com>
4058
4059 * add.c (add): Remove obsolete FIXME comment.
4060 (*): Some gratuitous reformatting.
4061
4062 2004-05-03 Derek Price <derek@ximbiot.com>
4063
4064 * src/sanity.sh (branches2-14-ls-4): Change expectations due to new -d
4065 flag.
4066
4067 2004-05-02 Derek Price <derek@ximbiot.com>
4068
4069 * sanity.sh (ls): Add some new tests of ls -d flag.
4070 (Original patch from Alexander Taler <dissent@cvshome.org>.)
4071
4072 * ls.c (ls): Accept -d to show dead files.
4073 (ls_proc): Add W_ATTIC to start_recursion flags when user requests dead
4074 files.
4075 (ls_fileproc): Don't show dead files with -d. Print "dead" in long
4076 listings for dead files.
4077
4078 2004-05-02 Derek Price <derek@ximbiot.com>
4079
4080 * ls.c (ls_dirleaveproc): Return err.
4081 (Original patch from Mark D. Baushke <mdb@cvshome.org>.)
4082
4083 2004-05-02 Derek Price <derek@ximbiot.com>
4084
4085 * ls.c (ls_print): Return 0.
4086 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
4087
4088 2004-04-30 Derek Price <derek@ximbiot.com>
4089
4090 * tag.c (tag_check_valid): Treat a NULL repository the same as an empty
4091 one.
4092 * sanity.sh (branches2-ls-7): Verify absence of assertion failure.
4093
4094 2004-04-29 Derek Price <derek@ximbiot.com>
4095
4096 * sanity.sh (branches2-rls-1): Reformat comment.
4097
4098 2004-04-28 Derek Price <derek@ximbiot.com>
4099
4100 * sanity.sh (rcs2-5): Update to cope with new getdate.y.
4101
4102 2004-04-28 Derek Price <derek@ximbiot.com>
4103
4104 * Makefile.am (cvs_LIBADD): Use libs for nanosleep & clock_gettime when
4105 necessary.
4106 * cvs.h: Remove get_date() proto and #include getdate.h.
4107 * client.c, history.c, main.c, rcs.c, server.c: Use new form of
4108 get_date().
4109 * Makefile.in: Regenerated.
4110
4111 2004-04-28 Derek Price <derek@ximbiot.com>
4112
4113 * lock.c (set_lock), subr.c (sleep_past): Assume we have nanosleep.
4114
4115 2004-04-27 Derek Price <derek@ximbiot.com>
4116
4117 * root.c (normalize_cvsroot): Use asnprintf in preference to other
4118 indirections.
4119
4120 2004-04-27 Derek Price <derek@ximbiot.com>
4121
4122 Add dirname module from GNULIB.
4123
4124 * add.c, client.c, commit.c, find_names.c, import.c, lock.c, ls.c,
4125 repos.c, server.c, subr.c: s/ISDIRSEP/ISSLASH/.
4126
4127 2004-04-27 Derek Price <derek@ximbiot.com>
4128
4129 * commit.c, create_adm.c, entries.c, filesubr.c, hash.c, update.c:
4130 Gratuitious reformatting.
4131
4132 2004-04-27 Derek Price <derek@ximbiot.com>
4133
4134 * ls.c (ls_direntproc): Remove unneeded assertion.
4135
4136 2004-04-27 Derek Price <derek@ximbiot.com>
4137
4138 * ls.c (ls): Set client_prune_dirs in order to delete any directories
4139 created by the server.
4140 (ls_dirleaveproc): Always delete directories created by
4141 ls_direntproc().
4142 * sanity.sh (ls): Update to match.
4143
4144 2004-04-27 Derek Price <derek@ximbiot.com>
4145
4146 * ls.c: Remove unneeded prototypes. Add `prune' option.
4147 (dircount): Remove static global.
4148 (set_tag, created_dir, ls_prune_dirs): New static globals.
4149 (ls): Handle new prune option.
4150 (ls_print_dir): Don't count directories, just remember not to print a
4151 blank line in front of the first one. Don't list empty directories
4152 when prune is specified.
4153 (ls_delproc): New function to dispose of dirlist.
4154 (ls_direntproc): Reorganize to assume a directory without a parent must
4155 be listed. Create missing directories a la update and checkout so that
4156 they may be processed. Use new delproc when creating new list nodes.
4157 (ls_dirleave_proc): New function to remove directories created by
4158 ls_direntproc.
4159 (ls_proc): Call start_recursion() once for each argument so that
4160 ls_direntproc() may assume that any directory without a parent in the
4161 dirlist must be listed and others must not unless recursing.
4162 * sanity.sh (ls): New tests.
4163 (Thanks to a report from Mark D. Baushke <mdb@cvshome.org>.)
4164
4165 2004-04-26 Derek Price <derek@ximbiot.com>
4166
4167 * rsh-client.c (start_rsh_server): Don't rely on GNU argument
4168 processing capabilities in the RSH command.
4169 (Report from Mark Andrews <Mark_Andrews@isc.org>.)
4170
4171 2004-04-26 Derek Price <derek@ximbiot.com>
4172
4173 * ls.c (dircount): s/long long/long/ for Windows.
4174
4175 2004-04-23 Derek Price <derek@ximbiot.com>
4176
4177 * ls.c (usage): Sync with manual.
4178
4179 2004-04-23 Derek Price <derek@ximbiot.com>
4180
4181 * Makefile.am (cvs_SOURCES): Add ls.c.
4182 * client.c, subr.c: Move #include vasnprintf.h to...
4183 * cvs.h: ...here.
4184 (ls): Add prototype.
4185 * ls.c: New file.
4186 * main.c (cmds): Add ls & rls entries.
4187 * server.c (serve_ls, serve_rls): New functions.
4188 (requests): Add list, ls, rlist, & global-list-quiet.
4189 * sanity.sh (branches2): Test new cvs ls & rls commands.
4190 * Makefile.in: Regenerated.
4191 (Thanks for patches from Alexander Taler <dissent@cvshome.org>
4192 and Mark D. Baushke <mdb@cvshome.org>.)
4193
4194 2004-04-23 Derek Price <derek@ximbiot.com>
4195
4196 * Makefile.am (AM_CPPFLAGS): No, really, $(top_builddir)/lib.
4197 * Makefile.in: Regenerated.
4198
4199 2004-04-23 Derek Price <derek@ximbiot.com>
4200
4201 * Makefile.am (AM_CPPFLAGS): Add the builddir/lib directory for
4202 generated header files.
4203 * Makefile.in: Regenerated.
4204
4205 2004-04-22 Derek Price <derek@ximbiot.com>
4206
4207 * cvs.h: Move include of fnmatch.h into lib/system.h with the other
4208 GNULIB headers.
4209
4210 2004-04-22 Derek Price <derek@ximbiot.com>
4211
4212 * tag.c: Use bool where appropriate. Some gratuitous reformatting.
4213
4214 2004-04-19 Derek Price <derek@ximbiot.com>
4215
4216 * ignore.c: Gratuitous reformatting.
4217
4218 2004-04-16 Derek Price <derek@ximbiot.com>
4219
4220 * tag.c: Gratuitous reformatting.
4221
4222 2004-04-16 Derek Price <derek@ximbiot.com>
4223
4224 * client.c (connect_to_pserver): Use size_t instead of int as argument
4225 to asnprintf. Some gratuitous reformatting.
4226 (Report from Mark <cm_mark@yahoo.com>.)
4227
4228 2004-04-15 Derek Price <derek@ximbiot.com>
4229
4230 * client.c, commit.c, server.c: Gratuitous reformatting.
4231
4232 2004-04-11 Derek Price <derek@ximbiot.com>
4233
4234 * client.c (call_in_directory): Check paths the server sends us to make
4235 sure they are within a sandbox the user requested be updated.
4236 (is_valid_client_path, path_list_prefixed): New functions.
4237
4238 2004-04-11 Derek Price <derek@ximbiot.com>
4239
4240 * modules.c (do_module): Don't allow up-level references in paths to
4241 step out of the repository.
4242 * sanity.sh (multiroot3): Update tests and add a few more.
4243
4244 2004-04-11 Derek Price <derek@ximbiot.com>
4245
4246 * client.c (get_proxy_port_number): Use CVS_PROXY_PORT as the default
4247 proxy port rather than CVS_AUTH_PORT.
4248
4249 2004-04-10 Mark D. Baushke <mdb@cvshome.org>
4250
4251 * client.c (get_cvs_port_number): Use CVS_AUTH_PORT as the default
4252 for "cvspserver" rather than the CVS_PROXY_PORT.
4253 (Fixes parseroot-3r on machines without "cvspserver" in
4254 their /etc/services file.)
4255
4256 2004-04-07 Derek Price <derek@ximbiot.com>
4257
4258 * sanity.sh (parseroot): s/oberon/$username/.
4259
4260 2004-04-06 Derek Price <derek@ximbiot.com>
4261
4262 Import Jim Kingdon's old, old patch which allows CVS to work via a
4263 web proxy server.
4264 * client.c (*): Some gratuitous restyling.
4265 (get_proxy_port_number): New function.
4266 (connect_to_pserver): Connect via proxy.
4267 * client.h (CVS_PROXY_PORT): Define.
4268 * root.c (parse_cvsroot): Parse method options.
4269 * sanity.sh (parseroot): Add new tests.
4270
4271 2004-04-06 Derek Price <derek@ximbiot.com>
4272
4273 * root.h (cvsroot_t): Move username, password, hostname, port inside
4274 CLIENT_SUPPORT ifdefs.
4275 * buffer.c, gssapi-client.c, root.c, sever.c: Add #ifdefs as necessary
4276 so that this will compile without client support and the root.h change.
4277 Some gratuitous restyling.
4278
4279 2004-04-06 Derek Price <derek@ximbiot.com>
4280
4281 * log.c, tag.c: Gratuitous restyling.
4282
4283 2004-04-04 Derek Price <derek@ximbiot.com>
4284
4285 * filesubr.c (isabsolute): Move...
4286 * subr.c: ...here and use new ISABSOLUTE macro.
4287
4288 2004-04-04 Derek Price <derek@ximbiot.com>
4289
4290 * client.c (send_file_names): Cast out an unneeded const to avoid a
4291 warning.
4292
4293 2004-04-03 Larry Jones <lawrence.jones@ugsplm.com>
4294
4295 * cvsrc.c: Remove unused declarations.
4296 * run.c: Ditto.
4297 * server.h (gunzip_and_write): Declare.
4298
4299 * client.c (send_file_names): Remove unused variables.
4300
4301 2004-04-02 Derek Price <derek@ximbiot.com>
4302
4303 * sanity.sh (client): Honor $keep.
4304
4305 2004-04-02 Derek Price <derek@ximbiot.com>
4306
4307 * log.c, patch.c, rcs.c: Gratuitous restyling.
4308
4309 2004-04-02 Derek Price <derek@ximbiot.com>
4310
4311 * import.c (import): Use ISDIRSEP rather than testing paths against `/'
4312 directly. Some gratuitos reformatting.
4313
4314 2004-04-02 Derek Price <derek@ximbiot.com>
4315
4316 * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
4317 running status.
4318
4319 2004-04-02 Derek Price <derek@ximbiot.com>
4320
4321 * client.c (send_file_names): Move code which calculates and sends
4322 Max-dotdot...
4323 (send_max_dotdot): ...to this new function.
4324 (send_files): Call send_max_dotdot.
4325 * sanity.sh (files-14): Expect .. in paths to work now.
4326 (status): Add a few new tests using `..'.
4327
4328 2004-04-01 Derek Price <derek@ximbiot.com>
4329
4330 * lock.c: Gratuitous restyling.
4331
4332 2004-04-01 Derek Price <derek@ximbiot.com>
4333
4334 * commit.c, cvs.h, server.c: Gratuitous restyling.
4335 * run.c (run_exec): Ditto, plus call cvs_flush{out,err}() instead of
4336 flushing stderr & stdout directly.
4337
4338 2004-03-29 Derek Price <derek@ximbiot.com>
4339
4340 * login.c, server.c: Gratuitous restyling.
4341
4342 2004-03-25 Derek Price <derek@ximbiot.com>
4343
4344 * client.c (send_file_names): Initialize string to NULL rather than to
4345 a single byte string containing only a null byte.
4346 * subr.c (xrealloc_and_strcat): If the destination string is NULL,
4347 simply allocate a new string.
4348 (Original report from Chris Bohn <cbohn@rrinc.com>.)
4349
4350 2004-03-24 Mark D. Baushke <mdb@cvshome.org>
4351
4352 * sanity.sh (ISODATE): Fix ISO 8601 format comment.
4353
4354 2004-03-22 Derek Price <derek@ximbiot.com>
4355
4356 * sanity.sh (toplevel): Remove FIXME type comment and unneeded
4357 Emtptydir removal.
4358
4359 2004-03-22 Derek Price <derek@ximbiot.com>
4360
4361 * update.c: Some minor style cleanup.
4362
4363 2004-03-22 Derek Price <derek@ximbiot.com>
4364
4365 * update.c: Some minor style cleanup.
4366
4367 2004-03-22 Derek Price <derek@ximbiot.com>
4368
4369 * sanity.sh (top-level): Don't match most of the assertion since this
4370 string is often system dependent.
4371 (Thanks to Larry Jones <lawrence.jones@ugsplm.com>.)
4372
4373 2004-03-22 Derek Price <derek@ximbiot.com>
4374
4375 * sanity.sh (top-level): Don't match the assertion's line number.
4376
4377 2004-03-22 Derek Price <derek@ximbiot.com>
4378
4379 * sanity.sh (top-level): New test to confirm assertion failure.
4380
4381 2004-03-22 Derek Price <derek@ximbiot.com>
4382
4383 * sanity.sh: Only verify argument to -f when -f was passed. Check for
4384 $TMPDIR/cvsXXXXXX temp files after each test.
4385
4386 2004-03-22 Derek Price <derek@ximbiot.com>
4387
4388 * sanity.sh: Verify that the argument to -f is really a test.
4389
4390 2004-03-20 Larry Jones <lawrence.jones@ugsplm.com>
4391
4392 * cvs.h: Change command_name to cvs_command_name to avoid conflict
4393 on HP-UX (incredibly, it declares a global command_name in prot.h,
4394 which is included from shadow.h, which we include in server.c).
4395 Change all references.
4396
4397 * subr.c (previous_rev): Fix == vs = typo.
4398
4399 * buffer.h: Add prototype for buf_empty.
4400
4401 * add.c (add): Remove unused variable.
4402
4403 2004-03-20 Derek Price <derek@ximbiot.com>
4404
4405 * add.c (add, add_directory, build_entry), admin.c (admin_dirproc),
4406 checkin.c (Checkin), checkout.c (safe_location, build_dirs_and_chdir),
4407 client.c (add_prune_candidate, send_repository, send_a_repository,
4408 send_to_server, start_rsh_server, send_arg, send_modified,
4409 send_ignproc, send_filesdone_proc, send_dirent_proc,
4410 send_dirleave_proc, client_notify), commit.c (check_direntproc,
4411 check_filesdoneproc, checkaddfile, commit_direntproc,
4412 commit_dirleaveproc, lock_RCS, precommit_proc, find_data,
4413 find_dirent_proc, find_ignproc, find_filesdoneproc), create_adm.c
4414 (Create_Admin), cvsrc.c (read_cvsrc), diff.c (diff_dirproc,
4415 diff_filesdoneproc, diff_dirleaveproc), edit.c (onoff_filesdoneproc,
4416 mark_up_to_date, editor_set, notify_proc_args, notify_proc, notify_do,
4417 notify_check), entries.c (Scratch_Entry, Register, WriteTag),
4418 expand_path.c (expand_variable, expand_path), fileattr.c
4419 (fileattr_startdir), filesubr.c (mkdir_if_needed, xchmod,
4420 last_component), history.c (history_write), ignore.c (ignore_directory,
4421 ignore_files), import.c (get_comment, add_rcs_file, expand_at_signs),xi
4422 lock.c (lock_filesdoneproc), log.c (log_dirproc), logmsg.c
4423 (logfile_write, rcsinfo_proc, update_logfile_proc, editinfo_proc,
4424 verifymsg_proc, do_editor, do_verify, Update_Logfile), main.c (main
4425 program_name, program_path, command_name), parseinfo.c (Parse_Info),
4426 patch.c (patch_dirproc), rcs.c (RCS_getdatebranch, rcs_lockfilename,
4427 RCS_parse, RCS_setattic, RCS_getversion, RCS_gettag, RCS_getbranch,
4428 RCS_getdate, RCS_datecmp, RCS_getrevtime, RCS_setexpand,
4429 expand_keywords, RCS_checkout, RCS_addbranch, RCS_checkin, RCS_lock,
4430 RCS_cmp_file, RCS_deltas, rcs_lockfilename, make_file_label),
4431 rcscmds.c (RCS_output_diff_options, call_diff, RCS_merge,
4432 RCS_exec_rcsdiff, diff_exec), recurse.c (start_recursion, do_recursion,
4433 do_file_proc), remove.c (remove_dirproc), repos.c (Name_Repository,
4434 Short_Repository), root.c (Name_Root, Create_Root), run.c
4435 (piped_child), server.c (output_dir, server_register,
4436 server_checked_in, server_update_entries, server_copy_file,
4437 server_set_entstat, server_clear_entstat, server_set_sticky,
4438 server_template, cvs_output_tagged), status.c (status_dirproc), subr.c
4439 (make_message_rcslegal), tag.c (pretag_proc, tag_dirproc,
4440 check_fileproc, check_filesdoneproc, tag_fileproc, val_direntproc),
4441 update.c (update_dirent_proc, update_dirleave_proc, update_ignproc,
4442 update_filesdone_proc, isemptydir), vers_ts.c (time_stamp_server,
4443 time_stamp), watch.c (watch_modify_watchers, addremove_filesdoneproc),
4444 zlib.c (read_and_gzip): Make most string args const, mainly in the
4445 interest of preserving repository & updatedir but including some
4446 collateral damage. Update a few functions to comply with new
4447 requirement. Some style fixes.
4448 * client.h, cvs.h, edit.h, fileattr.h, rcs.h, server.h, update.h,
4449 watch.h: Update prototypes to match.
4450
4451 2004-03-20 Derek Price <derek@ximbiot.com>
4452
4453 * sanity.sh (conflicts2): s/cvs/$testcvs/.
4454
4455 2004-03-20 Derek Price <derek@ximbiot.com>
4456
4457 * add.c (add): Correct longstanding resurrection bugs. Remove FIXME
4458 comment to this effect. Set mode and Entries timestamps of resurrected
4459 files correctly.
4460 * sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
4461 update-p): Update tests to compensate. Remove FIXCVS comments.
4462
4463 2004-03-19 Mark D. Baushke <mdb@cvshome.org>
4464
4465 * server.c (gserver_authenticate_connection): Handle large
4466 GSSAPI packets dynamically.
4467 (Bug report from Douglas Engert <DEEngert@anl.gov>)
4468
4469 2004-03-19 Derek Price <derek@ximbiot.com>
4470
4471 * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
4472 prototype arguments to avoid potential conflicts with implementations.
4473
4474 2004-03-18 Derek Price <derek@ximbiot.com>
4475
4476 * cvs.h (pathname_levels): Make string argument const.
4477 * subr.c (pathname_levels): Simplify function.
4478
4479 2004-03-17 Derek Price <derek@ximbiot.com>
4480
4481 * commit.c (precommit_list_to_args_proc), logmsg.c (do_editor), subr.c
4482 (format_cmdline), tag.c (pretag_list_to_args_proc):
4483 s/atribute/attribute/.
4484 (Report from Matthew Doar <matt@trpz.com>.)
4485
4486 2004-03-17 Derek Price <derek@ximbiot.com>
4487
4488 * subr.c (pathname_levels): Get it right this time.
4489
4490 2004-03-17 Derek Price <derek@ximbiot.com>
4491
4492 * subr.c (pathname_levels): Remove incorrect assertion and just
4493 return 0 when pathname is NULL.
4494
4495 2004-03-17 Derek Price <derek@ximbiot.com>
4496
4497 * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
4498 and remove FIXME comment to that effect.
4499
4500 2004-03-16 Derek Price <derek@ximbiot.com>
4501
4502 * main.c (main): Update the --version Copyright (c) string to
4503 include 2004.
4504
4505 2004-03-15 Mark D. Baushke <mdb@cvshome.org>
4506
4507 * release.c (release): Add missing xmalloc of update_cmd.
4508
4509 2004-03-15 Derek Price <derek@ximbiot.com>
4510
4511 * release.c (release): Enable authentication and encryption for a child
4512 update process when necessary.
4513 (Original patch from Dan Russell <russelld@aol.net> via Hal Mahaffey
4514 <HMahaffey@aol.com>.)
4515
4516 2004-03-14 Derek Price <derek@ximbiot.com>
4517
4518 * add.c (add): Only call server_updated() when we actual have a new
4519 resurrected file for the client.
4520
4521 2004-03-14 Derek Price <derek@ximbiot.com>
4522
4523 * cvs.h (previous_rev, write_letter): New prototypes.
4524 (struct file_info): Move to before the write_letter prototype.
4525 * add.c (add): Allow resurrection of files which used to exist on a
4526 branch.
4527 * subr.c (previous_rev): New function.
4528 * update.c: Consolidate like pragmas.
4529 (write_letter): Remove prototype. Remove static declaration.
4530 * sanity.sh (resurrection): New tests.
4531
4532 2004-03-14 Derek Price <derek@ximbiot.com>
4533
4534 * commit.c (remove_file): Print the actual previous revision instead of
4535 a branch number.
4536 * sanity.sh: Update to match.
4537
4538 2004-03-14 Derek Price <derek@ximbiot.com>
4539
4540 * rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
4541 open in the error message.
4542
4543 2004-03-14 Derek Price <derek@ximbiot.com>
4544
4545 * diff.c (diff_fileproc): Allow diffing of new files against arbitrary
4546 revisions instead of assuming that there is no RCS archive file.
4547
4548 2004-03-14 Derek Price <derek@ximbiot.com>
4549
4550 * sanity.sh: Update serveral tests to use $CPROG & $SPROG correctly.
4551
4552 2004-03-14 Derek Price <derek@ximbiot.com>
4553
4554 * add.c (add): Update file resurrection messages for consistency.
4555 * sanity.sh: Update to match.
4556
4557 2004-03-13 Derek Price <derek@ximbiot.com>
4558
4559 * server.c (server_updated): Fix header comment.
4560
4561 2004-03-13 Derek Price <derek@ximbiot.com>
4562
4563 * Makefile.am (cvs_SOURCES): Remove error.h since it is now included in
4564 lib.
4565 * Makefile.in: Regenerated.
4566
4567 2004-03-09 Larry Jones <lawrence.jones@ugsplm.com>
4568
4569 * run.c: Move #includes required for cmdline_escape and friends...
4570 * subr.c: ...to here.
4571
4572 2004-03-07 Derek Price <derek@ximbiot.com>
4573
4574 * run.c (struct cmdline_bindings, cmdline_bindings_hash_node_delete,
4575 cmdline_escape, cmdline_quote, format_cmdline): Move...
4576 * subr.c: ...here so they will compile under Windows.
4577
4578 2004-03-03 Derek Price <derek@ximbiot.com>
4579
4580 * import.c (import): Check that the module name specified by the user
4581 does not contain `CVS' as a directory name.
4582 * ignore.c (ign_add): Never cease ignoring "CVS" - it is a reserved
4583 name.
4584 (Original patch from Dan Peterson <dbpete@aol.com>.)
4585
4586 * sanity.sh (import-CVS): New tests for the above.
4587
4588 2004-02-29 Larry Jones <lawrence.jones@ugsplm.com>
4589
4590 * import.c (expand_at_signs): Change type of len to size_t.
4591 * subr.c (resolve_symlink): Move declaration of newname inside
4592 #ifdef, clean up coding style.
4593 * zlib.c (gunzip_and_write): Fix up potential overlow problems.
4594 (read_and_gzip): Add explicit casts to placate paranoid compilers.
4595
4596 2004-02-28 Larry Jones <lawrence.jones@ugsplm.com>
4597
4598 * sanity.sh (join6): New tests for previous fix.
4599
4600 * update.c (join_file): One more fix to avoid dereferencing NULL.
4601 (Reported by Steve McIntyre <steve@einval.com>.)
4602 * sanity.sh (join6): New tests for above.
4603
4604 2004-02-25 Larry Jones <lawrence.jones@ugsplm.com>
4605
4606 * update.c (join_file): Fix optimization to avoid dereferencing NULL.
4607 (Reported by Steve McIntyre <steve@einval.com>.)
4608
4609 2004-02-25 Derek Price <derek@ximbiot.com>
4610
4611 No longer require directories specified to `checkout -d' to exist.
4612
4613 * checkout.c (safe_location): Only confirm that destination is a safe
4614 location for directories that already exist since we can assume that
4615 creating directories under such a safe directory is acceptable.
4616 (dir_to_build): Remove just_chdir member.
4617 (checkout_proc): Add trace. No longer set dir_to_build->just_chdir.
4618 Minor reformatting.
4619 (build_dirs_and_chdir): Don't create or register directories that are
4620 not created.
4621 * sanity.sh (*): Update tests to account for new behavior.
4622
4623 2004-02-25 Derek Price <derek@ximbiot.com>
4624
4625 * buffer.c (buf_empty): New function.
4626 * server.c (server): Check for unread data in buffer before closing.
4627
4628 2004-02-25 Derek Price <derek@ximbiot.com>
4629
4630 * release.c (release): Restore the initial directory before and after
4631 calling various sections of code that expect it to prevent corruption
4632 of CVS/Entries files on release of a subdir and tell unedit() what to
4633 release.
4634 * sanity.sh: Add test case for release.c fix.
4635 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
4636
4637 * client.c (last_entries): Move global variable...
4638 (call_in_directory): ...here (now a local variable). Remove test that
4639 always evaluates to true.
4640 (last_dir_name): Remove unused global variable.
4641
4642 2004-02-24 Larry Jones <lawrence.jones@ugsplm.com>
4643
4644 * filesubr.c (xresolvepath): Fix crash in error case.
4645 (Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
4646
4647 2004-02-24 Derek Price <derek@ximbiot.com>
4648
4649 * sanity.sh (crerepos): Fix it so that it ignores the user's
4650 .cvsrc file (.cvsrc "checkout -r" used to cause the "rm -r 1"
4651 command to print warnings and wait for input).
4652 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
4653
4654 * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
4655 s/_SAVED\>/_save/ for consistency.
4656
4657 2004-02-24 Derek Price <derek@ximbiot.com>
4658
4659 * sanity.sh (taginfo-newfmt-examine-2): Correct expected results.
4660
4661 2004-02-23 Larry Jones <lawrence.jones@ugsplm.com>
4662
4663 * sanity.sh (taginfo-examine-1): Correct expected results.
4664
4665 2004-02-20 Derek Price <derek@ximbiot.com>
4666
4667 * subr.c (expand_string): Use x2realloc() from GNULIB for core
4668 functionality.
4669
4670 2004-02-20 Derek Price <derek@ximbiot.com>
4671
4672 * subr.c (set_nonblock_fd): Move back to...
4673 * server.c: ...here.
4674 * cvs.h: Remove protos for the above two functions.
4675 * buffer.c (stdio_buffer_shutdown): Remove unexessary and possibly
4676 dangerous check for unread data on a pipe with a nonblock read.
4677
4678 2004-02-20 Larry Jones <lawrence.jones@ugsplm.com>
4679
4680 * tag.c (check_fileproc): Remove unused variable.
4681
4682 2004-02-20 Derek Price <derek@ximbiot.com>
4683
4684 * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
4685 update.c: Remove VIM editor commands.
4686
4687 2004-02-20 Derek Price <derek@ximbiot.com>
4688
4689 Import xalloc module from GNULIB, as well as its remaining unimported
4690 dependency, the exitfail module.
4691
4692 * cvs.h: #include "xalloc.h".
4693 * subr.c (xmalloc, xrealloc, xstrdup): Remove these functions.
4694
4695 2004-02-20 Larry Jones <lawrence.jones@ugsplm.com>
4696
4697 * hash.h (struct node): Change data from char * to void *, change
4698 all callers.
4699
4700 * run.c (cmdlinequote, cmdlineescape): Use prototype in definition
4701 to match cvs.h.
4702 (format_cmdline): UNIQUE_*_TYPE_* macros imply HAVE_*, so no need
4703 to check for both. Remove duplicate code for size_t and ptrdiff_t.
4704
4705 * tag.c (check_fileproc): Remove spurious invalid cast, clean up
4706 coding style.
4707
4708 * commit.c (precommit_list_proc): Remove vestigial prototype.
4709
4710 2004-02-19 Derek Price <derek@ximbiot.com>
4711
4712 * run.c (format_cmdline): Don't accept printf `L' modifier at all when
4713 long doubles are not available. Allow UNIQUE_FLOAT_TYPE_LONG_DOUBLE to
4714 imply HAVE_LONG_DOUBLE.
4715
4716 2004-02-19 Derek Price <derek@ximbiot.com>
4717
4718 * run.c: Remove include of stddef.h - it is already included via
4719 lib/system.h.
4720
4721 2004-02-19 Larry Jones <lawrence.jones@ugsplm.com>
4722
4723 * run.c: Include the appropriate headers for wchar_t and wint_t,
4724 create a typedef for convproc and use it (required for va_arg),
4725 add explicit comparisons to keep gcc -Wall happy, remove unused
4726 variables.
4727 (format_cmdline): Fix bugs and portability problems.
4728 * tag.c: Remove unused global variable.
4729 (pretag_proc): Correct call to format_cmdline: %hhc is not a valid
4730 printf format (should just be %c) and NULL must be cast to the correct
4731 type in a varargs call.
4732 (pretag_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
4733 remove unused variable, add auxiliary variable to simplify code,
4734 clean up coding style.
4735
4736 * commit.c (precommit_list_to_args_proc): Initialize arg to keep
4737 gcc -Wall happy, remove unused variable, clean up coding style.
4738 (precommit_proc): Cast NULL to the correct type in varargs call.
4739 * edit.c (notify_proc): Remove unused variables.
4740 * expand_path.c (expand_path): Initialize inquotes, add explicit
4741 comparison to keep gcc -Wall happy.
4742 * logmsg.c: Remove unused global variables and function decl.
4743 (do_verify): Add explicit comparison to keep gcc -Wall happy,
4744 clean up coding style.
4745 (logmsg_list_to_args_proc): Initialize arg to keep gcc -Wall happy,
4746 remove unused variable.
4747 (logfile_write): Cast NULL to the correct type in varargs call.
4748 (verifymsg_proc): Cast NULL to the correct type in varargs call.
4749
4750 2004-02-19 Derek Price <derek@ximbiot.com>
4751
4752 * run.c (format_cmdline): Correct some typos and cut/paste errors.
4753 Switch on HAVE_WINT_T for Solaris. Switch on HAVE_INTMAX_T for other
4754 pre-C99 platforms.
4755
4756 2004-02-19 Derek Price <derek@ximbiot.com>
4757
4758 * sanity.sh (crerepos): Correct comment.
4759
4760 2004-02-19 Derek Price <derek@ximbiot.com>
4761
4762 * logmsg.c (verifymsg_proc), run.c (format_cmdline): Plug memory leak.
4763 (Report from Mark D. Baushke <mdb@cvshome.org>.)
4764
4765 * run.c (format_cmdline): Simplify two expressions.
4766
4767 2004-02-19 Larry Jones <lawrence.jones@ugsplm.com>
4768
4769 * login.c (password_entry_operation): Initialize line.
4770
4771 2004-02-19 Derek Price <derek@ximbiot.com>
4772
4773 * sanity.sh (tests): Add errmsg3.
4774
4775 2004-02-19 Derek Price <derek@ximbiot.com>
4776
4777 * sanity.sh (errmsg3): Don't create directories named `tmp' in
4778 $TESTDIR to avoid conflicts with the default value of $TMPDIR.
4779
4780 2004-02-19 Derek Price <derek@ximbiot.com>
4781
4782 * sanity.sh (crerepos): Don't create directories named `tmp' in
4783 $TESTDIR to avoid conflicts with the default value of $TMPDIR.
4784
4785 2004-02-19 Derek Price <derek@ximbiot.com>
4786
4787 * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
4788 dotest functions.
4789
4790 2004-02-19 Derek Price <derek@ximbiot.com>
4791
4792 * sanity.sh: No longer allow user override of $tmp. Set $TMPDIR to a
4793 directory under $TESTDIR, as for $HOME, but still allowing for user
4794 override. Check for cvs-serv* directories under $TMPDIR rather than
4795 $tmp at the end of the script.
4796
4797 2004-02-19 Derek Price <derek@ximbiot.com>
4798
4799 * run.c (cmdline_quote): Plug memory leak.
4800 (format_cmdline): Don't bother with freeing memory before a call to
4801 error() which will exit. Plug memory leak.
4802 (Report from Mark D. Baushke <mdb@cvshome.org>.)
4803
4804 2004-02-18 Derek Price <derek@ximbiot.com>
4805
4806 * run.c (format_cmdline): Move variable declaration to a position more
4807 acceptable to the ANSI C standards.
4808
4809 2004-02-17 Derek Price <derek@ximbiot.com>
4810
4811 * commit.c (precommit_proc): Installed new format_cmdline() instead
4812 of the old, nonuniform info file interpreter. Support for new user
4813 data field in Parse_Info() callbacks. Use cmdlinequote() instead of c.
4814 10 lines of quote processing.
4815 * cvs.h (expand_path): Update proto.
4816 (UseNewInfoFmtStrings): New global variable to keep track of the config
4817 option of the same name.
4818 (format_cmdline): Added function prototypes and type definitions to
4819 support this new function.
4820 * edit.c (notify_proc): Added the formatsafe flag to an
4821 expand_path() call. Installed new format_cmdline() instead of the old,
4822 nonuniform info file interpreter. Support for new user data field in
4823 Parse_Info() callbacks.
4824 * expand_path.c (expand_path): Added the formatsafe flag to and some
4825 code to double up '%'s in variable subs if formatsafe is set on the
4826 presumption that the variables that expand_path() subs into the string
4827 are already working paths to files or whatever. It should be quoting
4828 too but I haven't done that yet.
4829 * logmsg.c (title_proc, logmsg_list_to_args_proc, update_logfile_proc,
4830 rcsinfo_proc, editinfo_proc, verifymsg_proc, logfile_write): Installed
4831 new format_cmdline() instead of the old, nonuniform info file
4832 interpreter. Support for new user data field in Parse_Info()
4833 callbacks.
4834 * main.c: Added global UseNewInfoFmtStrings variable to keep track
4835 of the config file option of the same name (see above).
4836 * mkmodules.c (commitinfo_contents, editinfo_contents,
4837 taginfo_contents, verifymsg_contents, loginfo_contents: Document new
4838 format string features.
4839 (config_contents): Added new UseNewInfoFmtStrings option with default
4840 of yes.
4841 * modules.c (do_module): Added the formatsafe flag to an
4842 expand_path call.
4843 * parseinfo.c (Parse_Info, parse_config): Added the formatsafe flag
4844 to an expand_path() call. Added handling for UseNewInfoFmtStrings
4845 option in the config file. Set to no, modifications needed to set to
4846 yes are harmless. Set to yes, modifications needed for full
4847 compatibility cause deprecation warnings. Eliminating deprecation
4848 warnings should allow executable to be compile with
4849 --disable-old-info-format-support passed into configure. Added user
4850 data field (closure) which is passed through into callproc to
4851 Parse_Info().
4852 * run.c (format_cmdline): New function to provide uniform handling of
4853 *info file scripting hook lines.
4854 (cmdline_bindings_hash_node_delete,
4855 (cmdlineescape, cmdlinequote): New functions to "quote" and "escape"
4856 strings like you would to get them past a command line parser as an
4857 argument.
4858 (run_setup): Made quote aware
4859 * sanity.sh (info, taginfo, config, pserver, lockfiles, reserved):
4860 New tests for the new format string functionality as well as the
4861 support of backwards compatibility. Had to alter a few of the tests to
4862 not care which version of some of the (shared) config files they'd just
4863 checked in so that the tests can be run in any order.
4864 (taginfo): Add tests for file names with spaces in them.
4865 * server.c (template_proc): Support for new user data field in
4866 Parse_Info() callbacks.
4867 * tag.c (pretag_proc): Installed new format_cmdline() instead of the
4868 old, nonuniform info file interpreter. Add support for new user data
4869 field in Parse_Info() callbacks.
4870 (check_fileproc): Add proper tag_info struct as node data rather than a
4871 single revision number in a string and pass tlist properly rather than
4872 in a global variable.
4873 (check_filesdone_proc): Altered to use non-global tlist.
4874 (tag_delproc): Handle new tag_info struct data members.
4875 (pretag_list_to_args_proc): Ditto.
4876 (pretag_list_proc): Deleted.
4877 * wrapper.c (Parse_Info): Added the formatsafe flag to an expand_path()
4878 call.
4879
4880 2004-02-17 Derek Price <derek@ximbiot.com>
4881
4882 * sanity.sh: Check for $PWD != $TESTDIR after each set of tests rather
4883 than once at the end. Check that there are no cvs-serv* directories in
4884 $tmp after each set of remote tests.
4885
4886 2004-02-17 Derek Price <derek@ximbiot.com>
4887
4888 * sanity.sh: Don't check for an empty $TESTDIR - if $TESTDIR was empty
4889 then the preceding call to mkdir would have failed anyhow.
4890
4891 2004-02-17 Larry Jones <lawrence.jones@ugsplm.com>
4892
4893 * log.c (rlog_proc): Fix (harmless) uninitialized variable.
4894
4895 * sanity.sh (basicc): Add tests pointing out defective handling
4896 of the Entries file.
4897
4898 2004-02-17 Derek Price <derek@ximbiot.com>
4899
4900 * checkout.c (build_dir_and_chdir): Expand header comment.
4901
4902 2004-02-15 Mark D. Baushke <mdb@cvshome.org>
4903
4904 * annotate.c (rannotate_proc): Plug a memory leak.
4905 * log.c (log_fileproc): Ditto.
4906 * tag.c (tag_fileproc): Ditto.
4907 * update.c (checkout_file): Ditto.
4908 * server.c (server_updated): Do not buf_free (filebuf) here.
4909
4910 2004-02-15 Derek Price <derek@ximbiot.com>
4911
4912 Make error() accessible to the GNULIB functions.
4913
4914 * error.h: Move into the ../lib directory.
4915
4916 2004-02-13 Derek Price <derek@ximbiot.com>
4917
4918 * lock.c (Reader_Lock, lock_dir_for_write): Plug memory leaks.
4919 (Report from Mark D. Baushke <mdb@cvshome.org>.)
4920
4921 2004-02-13 Derek Price <derek@ximbiot.com>
4922
4923 * lock.c (remove_lock_files): Minor refactoring.
4924
4925 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
4926
4927 * lock.c (lock_exists): Plug a memory leak.
4928
4929 2004-02-12 Derek Price <derek@ximbiot.com>
4930
4931 * modules.c: Reformat comment and line to fit in 80 chars.
4932
4933 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
4934
4935 * server.c (do_cvs_command): Plug a memory leak.
4936 (Use buf_free() rather than free().)
4937
4938 2004-02-12 Derek Price <derek@ximbiot.com>
4939
4940 * sanity.sh (lockfiles): Reformat a comment for 80 characters. Fix a
4941 few minor issues that caused tests to fail in remote mode. Clean up
4942 after test.
4943
4944 2004-02-12 Derek Price <derek@ximbiot.com>
4945
4946 * lock.c (unlock_proc): Don't expect an int in closure as it is not
4947 condoned in the C standard. For now, just assume zero since this
4948 function is currently only called from one location.
4949 (remove_locks): Pass NULL for the closure argument to unlock_proc().
4950
4951 2004-02-12 Derek Price <derek@ximbiot.com>
4952
4953 * lock.c (unlock_proc): Use closure as true/false free_repository
4954 free_repository argument to remove_lock_files. Move to a position
4955 above remove_locks and delete prototype.
4956 (remove_locks): Don't free storage, as specified in our header comment,
4957 in order to avoid a seg fault that could otherwise occur after waiting
4958 on a lock.
4959 * sanity.sh (lockfiles): Add tests for all operation (read, read
4960 promotably, or write) and lock combinations.
4961 (Original report from Mark <cm_mark@yahoo.com>.)
4962
4963 2004-02-12 Larry Jones <lawrence.jones@ugsplm.com>
4964
4965 * modules.c (_do_module): Rename to my_module to avoid reserved name.
4966 * stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
4967
4968 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
4969
4970 * commit.c (find_fileproc): Plug a memory leak.
4971
4972 2004-02-12 Larry Jones <lawrence.jones@ugsplm.com>
4973
4974 * lock.c (_lock_simple_remove): Rename to remove_lock_files to avoid
4975 reserved name. Fix typo (free => free_repository).
4976 (lock_simple_remove): Delete; use remove_lock_files directly.
4977 (lock_simple_remove_and_free): Ditto.
4978 (_lock_exists): Rename to lock_exists.
4979
4980 2004-02-11 Larry Jones <lawrence.jones@ugsplm.com>
4981
4982 * root.c (parse_cvsroot): Set hostname in fork mode for error messages.
4983 * buffer.c (stdio_buffer_shutdown): Undo previous change.
4984
4985 2004-02-11 Mark D. Baushke <mdb@cvshome.org>
4986
4987 * buffer.c (buf_free): Plug a memory leak.
4988 * commit.c (checkaddfile): Ditto.
4989
4990 * server.c (fd_buffer_shutdown): Avoid a double free().
4991
4992 * parseinfo.c (parse_config): Fix comments.
4993
4994 2004-02-11 Derek Price <derek@ximbiot.com>
4995
4996 * buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
4997 print current_parsed_root->hostname when using the fork method.
4998
4999 2004-02-11 Derek Price <derek@ximbiot.com>
5000
5001 * server.c (do_cvs_command): Simplify stream & pipe closing.
5002 (Suggestion from Eric Siegerman <erics@telepres.com>.)
5003
5004 * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
5005
5006 2004-02-11 Derek Price <derek@ximbiot.com>
5007
5008 * checkout.c (checkout_proc): Remove unneeded variable and enclosing
5009 block.
5010 * modules.c (_do_modules): Minor whitespace change.
5011
5012 2004-02-10 Derek Price <derek@ximbiot.com>
5013
5014 * lock.c (lock_simple_remove): Move core functionality...
5015 (_lock_simple_remove): ...here.
5016 (lock_simple_remove_and_free): New function.
5017 (set_promotable_lock): Use new function to avoid freeing data that will be
5018 reused.
5019
5020 2004-02-10 Derek Price <derek@ximbiot.com>
5021
5022 * server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
5023 (set_block_fd, set_nonblock_fd): Move to...
5024 * subr.c: ...here.
5025 * cvs.h: Add protos for the above two functions.
5026 * buffer.c (stdio_buffer_shutdown): Replace fgetc() which checked for
5027 unread data on a pipe with a nonblock read.
5028
5029 2004-02-10 Derek Price <derek@ximbiot.com>
5030
5031 * server.c (do_cvs_command): Have the server child close all the pipes
5032 but the flow control pipe and wait on an EOF on the flow control pipe
5033 from the parent when done to avoid a race condition that could
5034 otherwise generate a SIGPIPE for the parent before the SIGCHILD when
5035 the other pipes were so full after a child exited that the parent
5036 attempted to write a stop byte to the flow control pipe.
5037 (Original report from <jesse_off@stchome.com>.)
5038
5039 2004-02-10 Derek Price <derek@ximbiot.com>
5040
5041 * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
5042
5043 2004-02-09 Derek Price <derek@ximbiot.com>
5044
5045 * lock.c (lock_simple_remove): Add comments. Use critical sections to
5046 set some variables that might otherwise cause trouble.
5047 (struct lock): Correct comment.
5048
5049 2004-02-09 Derek Price <derek@ximbiot.com>
5050
5051 Attempt to improve readability of code.
5052
5053 * lock.c (promotable_lock): Rename to...
5054 (set_promotable_lock): ...this.
5055 (set_promotablelock_proc): Expand header comment.
5056 (Promotable_Lock): Rename to...
5057 (lock_tree_promotably): ...this.
5058
5059 2004-02-09 Derek Price <derek@ximbiot.com>
5060
5061 * lock.c (set_writelock_proc): Remove unused prototype.
5062 (promotable_lock): Remove unneded whitespace.
5063 (Promotable_Lock): Correct comments.
5064
5065 2004-02-09 Derek Price <derek@ximbiot.com>
5066
5067 * sanity.sh (co-d): Update comments and tests to reflect the current
5068 state of my side of my discussion with Larry Jones on how these
5069 commands should behave.
5070
5071 2004-02-09 Derek Price <derek@ximbiot.com>
5072
5073 * sanity.sh (emptydir): Add two new tests for how modules -d behaves
5074 when a directory already exists in the user's workspace.
5075 (emptydir): Add --keep functionality.
5076
5077 2004-02-09 Derek Price <derek@ximbiot.com>
5078
5079 * sanity.sh (co-d): New test to prove `co -d' failure case.
5080
5081 2004-02-05 Derek Price <derek@ximbiot.com>
5082
5083 * sanity.sh (recase): Fix typo that creeped in somehow between my last
5084 test run and my commit.
5085
5086 2004-02-04 Derek Price <derek@ximbiot.com>
5087
5088 * modules.c (do_modules): Move content to and make this function a
5089 wrapper for...
5090 (_do_modules): ...this new function which can watch for infinite loops
5091 in alias modules.
5092 * stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
5093 unshift_string, shift_string): New
5094 functions.
5095 * stack.h (push_string, pop_string, unshift_string, shift_string: New
5096 prototypes.
5097 * sanity.sh (modules): Add check for nested alias loops.
5098
5099 2004-02-04 Derek Price <derek@ximbiot.com>
5100
5101 * sanity.sh (recase): Update test names and comments for clarity and
5102 consistency.
5103
5104 2004-02-04 Derek Price <derek@ximbiot.com>
5105
5106 * sanity.sh (recase): Restore some cruft necessary when clients know
5107 they are on case insensitive systems.
5108
5109 2004-02-03 Derek Price <derek@ximbiot.com>
5110
5111 Preserve the case of checked out directories in a path as well as file
5112 names for client communication with the server.
5113
5114 * Makefile.am (cvs_SOURCES): Add stack.c & stack.h.
5115 * stack.c, stack.h: New files.
5116 * cvs.h: Include stack.h.
5117 * client.c (send_file_names): Preserve the case of directories in a
5118 path as well as file names for communication with the server.
5119
5120 * Makefile.in: Regenerated.
5121
5122 2004-02-04 Derek Price <derek@ximbiot.com>
5123
5124 * checkout.c (find_fileproc): Update error message for consistency.
5125 * sanity.sh (basica): Update to compensate.
5126
5127 2004-02-04 Derek Price <derek@ximbiot.com>
5128
5129 * classify.c (Classify_File): Update header comment block and reformat
5130 prototype for readability in 80 character widths.
5131
5132 2004-02-02 Derek Price <derek@ximbiot.com>
5133
5134 * sanity.sh (*): Update tests for the new status message from update.c.
5135
5136 2004-02-02 Derek Price <derek@ximbiot.com>
5137
5138 * sanity.sh (join-rm): New test for issue #104 & #159.
5139
5140 2004-02-02 Derek Price <derek@ximbiot.com>
5141
5142 * update.c (join_file): Correct status message for consistency.
5143
5144 2004-02-02 Derek Price <derek@ximbiot.com>
5145
5146 Continue removal from server of handling of case insensitive clients.
5147
5148 * cvs.h: Remove extern declaration of ign_case.
5149 * ignore.c (ign_case): Remove declaration.
5150 (ign_name): Remove support for ign_case.
5151 * server.c (serve_case): Ditto.
5152 (requests): No longer support the "Case" request.
5153 * rcs.c (locate_rcs): Remove reference to GLOBAL in function header
5154 comment.
5155
5156 2004-02-02 Derek Price <derek@ximbiot.com>
5157
5158 * client.c (send_file_names): Restore prescribed client handling of the
5159 FILENAMES_CASE_INSENSITIVE switch.
5160
5161 2004-01-25 Derek Price <derek@ximbiot.com>
5162
5163 * server.c (kserver_authenticate_connection): Fix call to
5164 switch_to_user().
5165 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
5166
5167 2004-01-22 Derek Price <derek@ximbiot.com>
5168
5169 * modules.c (do_module): Strip trailing slashes before checking for
5170 infinite alias loops.
5171 * sanity.sh (modules): Tests for response to infinite alias loops.
5172
5173 2004-01-17 Mark D. Baushke <mdb@cvshome.org>
5174
5175 * logmsg.c (do_verify): Eliminate double-free bug.
5176 (Original patch from Gerald Combs.)
5177
5178 2004-01-12 Mark D. Baushke <mdb@cvshome.org>
5179
5180 * lock.c (lock_name): Deal with potentially NULL string pointers
5181 in calls to TRACE.
5182 (promotable_lock): Ditto.
5183 (set_lock): Ditto.
5184 * sanity.sh (trace): Update to latest patterns.
5185
5186 2004-01-07 Larry Jones <lawrence.jones@ugsplm.com>
5187
5188 * checkout.c (safe_location): Remove unused variable(s).
5189 * lock.c (lock_tree_for_write): Ditto.
5190 * rcs.c (RCS_checkin): Ditto.
5191 * subr.c (compare_revnums): Ditto.
5192 * tag.c (tag_check_valid): Ditto.
5193 * mkmodules.c (init): Initialize err and return it rather than 0.
5194 * server.c (do_cvs_command): Only define and set max_command_fd if
5195 we're actually going to use it.
5196
5197 2004-01-06 Mark D. Baushke <mdb@cvshome.org>
5198
5199 * socket-client.c (socket_buffer_initialize): Fix argument
5200 declaration for VMS compiler.
5201 (Patch submitted from Michael Lemke
5202 <ai26@sternwarte.uni-erlangen.de>.)
5203
5204 2004-01-01 Larry Jones <lawrence.jones@ugsplm.com>
5205
5206 * zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
5207 overruns, use names for magic numbers.
5208 (Original patch from Jeff Downs <heydowns@borg.com>.)
5209
5210 2003-12-17 Larry Jones <lawrence.jones@ugsplm.com>
5211
5212 * main.c (main): Don't reference isremote without CLIENT_SUPPORT.
5213 (Patch from Jim Salter <jsalterjim@earthlink.net>.)
5214
5215 2003-12-18 Derek Price <derek@ximbiot.com>
5216
5217 * server.c (switch_to_user): SysLog attempts to root from pserver.
5218
5219 2003-12-18 Derek Price <derek@ximbiot.com>
5220
5221 * server.c (switch_to_user): Don't allow CVS to run as root in pserver
5222 mode.
5223 (Original patch from Wichert Akkerman via Bradley M Kuhn
5224 <bkuhn@fsf.org>.)
5225 * sanity.sh (pserver): Check for bad root error message.
5226
5227 2003-12-17 Larry Jones <lawrence.jones@eds.com>
5228
5229 * run.c (close_on_exec): fcntl is not documented to return 0 for
5230 success (and QNX doesn't), only -1 for error.
5231 (Patch from George Refseth <george.refseth@arxi.no>.)
5232
5233 2003-12-10 Larry Jones <lawrence.jones@eds.com>
5234
5235 * rcs.c: Cleanup HAVE_MMAP code in preparation for falling back to
5236 stdio if mmap fails on large files.
5237
5238 2003-12-10 Mark D. Baushke <mdb@cvshome.org>
5239
5240 * tag.c (tag_check_valid): Fix typo.
5241 (Patch from Rob Clevenger <rob@robsite.org>.)
5242
5243 2003-12-09 Derek Price <derek@ximbiot.com>
5244
5245 Rewrite code to use promotable write locks to avoid locking more than a
5246 directory at a time for a full write.
5247
5248 * cvs.h (lock_tree_for_write): Rename to...
5249 (lock_tree_promotably): ...this.
5250 (Simple_Lock_Cleanup): New prototype.
5251 * lock.c: Remove some unneeded prototypes. Some function
5252 reorganization.
5253 (struct lock): Make repository const. Add file1 & file2 to
5254 track lock names. Keep track of when repository needs to be freed.
5255 (promotablelock, global_writelock): New globals.
5256 (locked_dir, locked_list): Remove unneeded globals.
5257 (lock_name): Take const args.
5258 (remove_locks): Update comment. Move readlock cleanup...
5259 (Simple_Lock_Cleanup): ...to this new function which also cleans up
5260 writelocks.
5261 (Lock_Cleanup): No need to clean up after the obsolete locked_dir &
5262 locked_list.
5263 (lock_simple_remove): Use new lock name cache. Set lock->repository to
5264 NULL to show locks are removed. Free repository name when necessary.
5265 (Reader_Lock): Copy xrepository argument so we do not need to trust the
5266 caller not to dispose of it. Use lock name cache. Factor code to set
5267 the global readlock variable...
5268 (set_readlock_name): ...to this new function so it can be used by
5269 promotable_lock too.
5270 (readers_exist): Factor common code and make wrapper for...
5271 (_lock_exists): ...this new function.
5272 (promotable_exists): Wrapper for _lock_exists().
5273 (write_lock): Rename to...
5274 (promotable_lock): ...this and tweak for new behavior.
5275 (set_writelock_proc): Rename to...
5276 (set_promotablelock_proc): ...this and tweak for new functionality.
5277 (Write_Lock): Rename to...
5278 (Promotable_Lock): ...this and tweak for new functionality.
5279 (set_lock): Add trace.
5280 (lock_tree_for_write): Rename to...
5281 (lock_tree_promotably): ...this and tweak for new functionality.
5282 (lock_dir_for_write): Lock only one directory at a time in a promotable
5283 lock aware fashion using new interfaces.
5284 * admin.c, commit.c, edit.c, watch.c:
5285 s/lock_tree_for_write/lock_tree_promotably/.
5286 s/CVS_LOCK_NONE/CVS_LOCK_WRITE/ in calls to start_recursion that used
5287 to rely on lock_tree_for_write() to obtain their write locks. Remove
5288 some unnecessary typecasting.
5289 * recurse.c (do_recursion): Use Simple_Lock_Cleanup() rather than
5290 Lock_Cleanup to avoid removing promotable locks.
5291 * server.c (do_cvs_command): Add traces.
5292 (server): Add new way to sleep the parent server process for connecting
5293 a debugger.
5294 * sanity.sh (lockfiles, multiroot2): Update tests to accomodate minor
5295 trace inconsistencies.
5296
5297 2003-12-09 Mark D. Baushke <mdb@cvshome.org>
5298
5299 * sanity.sh (trace): Remove trace from the set of tests to run.
5300 The regexps used take an excessive amount of time and need to
5301 be simplified.
5302
5303 2003-12-08 Mark D. Baushke <mdb@cvshome.org>
5304
5305 * rcs.c (rcsbuf_ftell): Rename to...
5306 (rcsbuf_ftello): this.
5307 (rcsbuf_cache_open): Use off_t rather than long as the pos
5308 argument. Use fseeko rather than fseek and ftello rather than
5309 ftell.
5310 * rcs.h (struct rcsnode): delta_pos is now an off_t type.
5311
5312 2003-12-03 Derek Price <derek@ximbiot.com>
5313
5314 * sanity.sh (recase): Add some clarifying comments.
5315
5316 2003-12-03 Larry Jones <lawrence.jones@eds.com>
5317
5318 * expand_path.c (expand_variable): Expand ${CVSROOT} to just the
5319 directory like it's supposed to be.
5320 (Reported by Michael S. Tsirkin <cvs1@misha.eml.cc>.)
5321
5322 2003-11-26 Mark D. Baushke <mdb@cvshome.org>
5323
5324 * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
5325
5326 2003-11-26 Derek Price <derek@ximbiot.com>
5327
5328 Remove server support for case insensitive clients. Includes some
5329 merges from 1.11.x.
5330
5331 * add.c, client.c, cvs.h, rcs.c, subr.c: Remove unnecessary support for
5332 case insensitive clients.
5333 * sanity.sh (tests): Add recase.
5334 (recase): New test of cases that might be expected to cause problems
5335 with a heterogeneous mix of case sensitive and case insensitive clients
5336 and servers.
5337
5338 2003-11-26 Derek Price <derek@ximbiot.com>
5339
5340 * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
5341 intermittent conniptions.
5342
5343 2003-11-25 Mark D. Baushke <mdb@cvshome.org>
5344
5345 * sanity.sh (binfiles2): Correct yet another Cygwin difficulty.
5346
5347 2003-11-25 Derek Price <derek@ximbiot.com>
5348
5349 * sanity.sh (release): Perform forgotten cleanup.
5350
5351 2003-11-25 Derek Price <derek@ximbiot.com>
5352
5353 * sanity.sh (env): Enable to work with $remotehost.
5354
5355 2003-11-25 Mark D. Baushke <mdb@cvshome.org>
5356
5357 * sanity.sh (trace-19): Separate stdout and stderr to workaround
5358 problems on SGI IRIX.
5359 (crecrepos): Use 'unset DISPLAY' to avoid problems with ssh
5360 X11Forwarding configurations.
5361
5362 2003-11-25 Derek Price <derek@ximbiot.com>
5363
5364 * sanity.sh (pserver, server, server2): Save $servercvs and use the
5365 local $testcvs for these tests.
5366
5367 2003-11-25 Derek Price <derek@ximbiot.com>
5368
5369 * commit.c (commit_fileproc): Reword comment.
5370
5371 2003-11-25 Derek Price <derek@ximbiot.com>
5372
5373 * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
5374 considerably between platforms.
5375
5376 2003-11-25 Mark D. Baushke <mdb@cvshome.org>
5377
5378 * sanity.sh (CVS_RSH): Read config file sooner to pickup RSH_DFLT
5379 for use in setting CVS_RSH variable.
5380 * sanity.config.sh.in (RSH_DFLT): Use new substitution variable.
5381 * Makefile.am (localcheck, remotecheck): Depend on sanity.config.sh.
5382 * Makefile.in: Regenerate for new Makefile.am.
5383
5384 * update.c (join_file): Deal with rev1 == NULL due to rev1 merge tag
5385 being missing from the current file.
5386 * sanity.sh (join6): New tests for this case.
5387 (trace): Renumber test cases.
5388
5389 2003-11-24 Larry Jones <lawrence.jones@eds.com>
5390
5391 * diff.c (diff_file_nodiff): use_rev1 does *not* imply that diff_rev1
5392 is not null, diff_date1 could be set instead (ditto for use_rev2).
5393 (Reported by <jnelson-cvsbug@jamponi.net>.)
5394
5395 2003-11-24 Mark D. Baushke <mdb@cvshome.org>
5396
5397 * client.c (connect_to_forked_server): Avoid passing NULL strings
5398 to TRACE. Calling printf("%s",NULL) is not defined and may
5399 segfault on some systems.
5400 * diff.c (diff_file_nodiff): Ditto.
5401 * main.c (main): Ditto.
5402 * modules.c (do_module): Ditto.
5403 * patch.c (patch_proc): Ditto.
5404 * rcs.c (RCS_cmp_file): Ditto.
5405 * recurse.c (start_recursion): Ditto.
5406 * root.c (parse_cvsroot): Ditto.
5407 * server.c (dirswitch, server_pathname_check, dirswitch,
5408 serve_directory): Ditto.
5409 * tag.c (rtag_proc, check_fileproc, tag_check_valid): Ditto.
5410 * sanity.sh (trace): New testcase to test the -t option.
5411 (RCSDATE, ISODATE, PFMT): New variables in aid of the trace tests.
5412 (dotest_fail_sort): New function in aid of the trace tests.
5413 (template): Fix cleanup.
5414
5415 2003-11-24 Derek Price <derek@ximbiot.com>
5416
5417 * sanity.sh (modes3): Skip modes3-5 entirely under Cygwin since
5418 permisions are broken there. This change removes most of the earlier
5419 Cygwin differentiation in this test ($cygwin_hack & $cygwin_hack2) in
5420 favor of skipping the test entirely.
5421
5422 2003-11-24 Derek Price <derek@ximbiot.com>
5423
5424 * sanity.sh: Add `-h <hostname>' option to enable testing across a
5425 :ext: connection to another host. Warn when `-h' is specified without
5426 $TESTDIR. Leave $TESTDIR intact when it looks absolute since it may
5427 contain symlinks. Allow $CVS_SERVER to be overridden via the
5428 environment for `-h'. Default $CVS_RSH to `ssh'.
5429 (*): Use $CVS_RSH to perform certain commands on the remote host (esp.
5430 `ln -s' and `chmod') when `-h' is specified to work around
5431 incompatibilities with CygWin & Samba. Add a few other minor
5432 workarounds for Cygwin bugs.
5433
5434 (newroot): New function.
5435 (*): Use newroot when appropriate.
5436
5437 2003-11-21 Larry Jones <lawrence.jones@eds.com>
5438
5439 * hash.c (printnode, printlist): Cast %p arguments to void * as
5440 required by the C standard.
5441
5442 2003-11-21 Larry Jones <lawrence.jones@eds.com>
5443
5444 * recurse.c (start_recursion, do_recursion): Cast %p arguments to
5445 void * as required by the C standard.
5446
5447 2003-11-19 Larry Jones <lawrence.jones@eds.com>
5448
5449 * rcs.c (RCS_getrevtime): Add error checking; cleanup.
5450
5451 2003-11-18 Derek Price <derek@ximbiot.com>
5452
5453 * socket-client.c (socket_buffer_initialize): Rename poorly named `n'
5454 to a slightly more descriptive `sbuf'.
5455 (Suggestion from Larry Jones <lawrence.jones@eds.com>.)
5456
5457 2003-11-18 Derek Price <derek@ximbiot.com>
5458
5459 * socket-client.c (socket_buffer_initialize): Pass in the socket
5460 closure we allocate.
5461 (Report from Larry Jones <lawrence.jones@eds.com>.)
5462
5463 2003-11-18 Derek Price <derek@ximbiot.com>
5464
5465 * modules.c (do_module): Reject absolute paths.
5466 (Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
5467
5468 * sanity.sh (abspath2): Check for the above.
5469 (spacefiles): Remove tests that expect absolute paths to files in the
5470 top level repository directory to work.
5471 (tests): Add abspath2.
5472
5473 2003-11-18 Derek Price <derek@ximbiot.com>
5474
5475 * socket-client.c (socket_buffer_initialize): Correct a typo that
5476 happened to compile.
5477 (Report and suggested fix from Patrick Brown <BrownP@symbol.com>.)
5478
5479 2003-11-13 Derek Price <derek@ximbiot.com>
5480
5481 * rcs.c (RCS_delete_revs): It's `&&', not `and'.
5482
5483 2003-11-13 Derek Price <derek@ximbiot.com>
5484
5485 * sanity.sh: Create the empty log to make it easier to tail immediately
5486 after the script is started.
5487
5488 2003-11-13 Derek Price <derek@ximbiot.com>
5489
5490 * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
5491 the help option.
5492
5493 2003-11-13 Derek Price <derek@ximbiot.com>
5494
5495 * rcs.c (RCS_delete_revs): Don't use the WOE32 kludge which refuses to
5496 delete revisions from bvinary files on Cygwin. I'm not sure what the
5497 kludge was trying to avoid, but commenting it out causes the test suite
5498 to pass.
5499
5500 2003-11-12 Derek Price <derek@ximbiot.com>
5501
5502 * main.c (main): Remove a trailing newline from the version string.
5503 Replace multiple calls to fputs to a single call reformated to C89
5504 specifications. Remove some typecasts unecessary under C89.
5505 * sanity.sh (version): Remove trailing newline from the version string.
5506
5507 2003-11-12 Derek Price <derek@ximbiot.com>
5508
5509 * add.c (add): Allocate more space for the string I added characters
5510 to.
5511 (Report from Mark D. Baushke <mdb@cvshome.org>.)
5512
5513 2003-11-11 Derek Price <derek@ximbiot.com>
5514
5515 * add.c (add), classify.c (Classify_File), client.c (update_entries),
5516 repos.c (Name_Repository): Use consistent quoting in error messages.
5517 Misc reformatting.
5518 * sanity.sh: Update to match.
5519
5520 2003-11-10 Derek Price <derek@ximbiot.com>
5521
5522 * commit.c (find_fileproc, check_fileproc): Refuse to remove files
5523 when the file exists in the sandbox. This used to cause data loss.
5524 (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
5525
5526 * sanity.sh (rmadd3): Update to match. Expand comments.
5527
5528 2003-11-10 Derek Price <derek@ximbiot.com>
5529
5530 * sanity.sh (rmadd3): Test the behavior of commit after the
5531 add/replace.
5532 (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
5533
5534 2003-11-10 Derek Price <derek@ximbiot.com>
5535
5536 * sanity.sh (rmadd3): Fix another typo.
5537
5538 2003-11-10 Mark D. Baushke <mdb@cvshome.org>
5539
5540 * recurse.c (do_dir_proc): Set xframe.repository to NULL after a
5541 call to free().
5542
5543 2003-11-10 Derek Price <derek@ximbiot.com>
5544
5545 * sanity.sh (rmadd3): Fix typo.
5546
5547 2003-11-10 Derek Price <derek@ximbiot.com>
5548
5549 * sanity.sh (rmadd3): New tests that confirms that CVS refuses to
5550 delete a file it thinks was already removed.
5551 (Report and test from Andreas Reifschneider
5552 <andyreif@studcs.uni-sb.de>.)
5553
5554 2003-11-03 Derek Price <derek@ximbiot.com>
5555
5556 * sanity.sh (server): Test that the global `-l' option is ignored
5557 nonfatally.
5558
5559 2003-11-03 Derek Price <derek@ximbiot.com>
5560
5561 * server.c (serve_global_option): Warn that -l is being ignored rather
5562 than exiting fatally due to backwards compatibility complaints from
5563 administrators.
5564
5565 2003-11-01 Larry Jones <lawrence.jones@eds.com>
5566
5567 * filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
5568 (Reported by Paul Edwards <kerravon@nosppaam.w3.to>.)
5569
5570 2003-10-31 Derek Price <derek@ximbiot.com>
5571
5572 * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
5573
5574 2003-10-28 Derek Price <derek@ximbiot.com>
5575
5576 * sanity.sh (devcom): Renumber tests and use dotest function.
5577
5578 2003-10-28 Derek Price <derek@ximbiot.com>
5579
5580 * sever.h: Add the standard copyright notice.
5581
5582 2003-10-28 Derek Price <derek@ximbiot.com>
5583
5584 * lock.c: Remove some suggestions which have already been implemented
5585 or which have become obsolete from the header comment.
5586
5587 2003-10-26 Derek Price <derek@ximbiot.com>
5588
5589 * sanity.sh (join6): Fix a few typos in the last test and remove a
5590 misplaced test.
5591
5592 2003-10-25 Mark D. Baushke <mdb@cvshome.org>
5593
5594 * sanity.sh (parseroot): Use dokeep function.
5595
5596 * sanity.sh (parseroot): Perform this test in a subdirectory.
5597 It should avoid problems on case-insensitive systems where
5598 CVSROOT and cvsroot are the same directory (eg, MacOS X).
5599
5600 2003-10-24 Derek Price <derek@ximbiot.com>
5601
5602 * update.c (join_file): Restore the optimization Mark recently removed,
5603 but fix it. Move one other optimization up since it needs to be
5604 checked for first. Add bew status messages like merge_file produces
5605 when the requested diff has already been applied to the destination.
5606 Expand header comment.
5607 * sanity.sh (join6): Add tests for the new error messages.
5608 (import-113, join-admin-2, diffmerge1): Fix collateral damage.
5609
5610 2003-10-24 Derek Price <derek@ximbiot.com>
5611
5612 * update.c (merge_file): Optimize & eliminate code.
5613
5614 2003-10-24 Derek Price <derek@ximbiot.com>
5615
5616 * recurse.c (do_recursion): Assert that ignoring the return value of
5617 Name_Repository is not a memory leak.
5618
5619 2003-10-24 Derek Price <derek@ximbiot.com>
5620
5621 * repos.c (Name_Repository): Replace a FIXME with the improved error
5622 message it requested.
5623 * sanity.sh (errmsg3): New test for the above.
5624
5625 2003-10-24 Derek Price <derek@ximbiot.com>
5626
5627 * patch.c (patch_proc): Avoid memory leak.
5628 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
5629 (patch_proc): Reformat a few long lines for readability.
5630
5631 2003-10-24 Derek Price <derek@ximbiot.com>
5632
5633 * vers_ts.c (Version_TS): Move variable declaration inside the only
5634 block where it is used and remove uneeded reinitialization.
5635
5636 2003-10-24 Derek Price <derek@ximbiot.com>
5637
5638 * server.h: s/^extern// off of function declarations per HACKING.
5639 Reformat protos for readability.
5640
5641 2003-10-24 Derek Price <derek@ximbiot.com>
5642
5643 * vers_ts.c (Version_TS): Reformat declaration and expand header
5644 comment.
5645
5646 2003-10-24 Derek Price <derek@ximbiot.com>
5647
5648 * update.c (merge_file): Remove code that hasn't been used since CVS
5649 used an external RCS (1.9.something).
5650
5651 2003-10-23 Mark D. Baushke <mdb@cvshome.org>
5652
5653 * update.c (join_file): Do the -jrev1 -jrev2 merge even when
5654 the file is already at rev2.
5655 * sanity.sh (join6): New testcase for above.
5656 (Suggested by Paul Edwards, from somewhere in Australia.)
5657 (import): Fix collateral damage.
5658
5659 2003-10-23 Derek Price <derek@ximbiot.com>
5660
5661 * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
5662 on failure.
5663
5664 2003-10-22 Derek Price <derek@ximbiot.com>
5665
5666 * recurse.c (start_recursion): Reformat function declaration and
5667 expand comments.
5668 (Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
5669
5670 2003-10-22 Derek Price <derek@ximbiot.com>
5671
5672 * Makefile.am (cvs_LDADD): Add $(LIBINTL) for gettext.
5673 * Makefile.in: Regenerated.
5674
5675 2003-10-19 Mark D. Baushke <mdb@cvshome.org>
5676
5677 * sanity.sh (admin-31): Fix more typos.
5678
5679 2003-10-18 Mark D. Baushke <mdb@cvshome.org>
5680
5681 * sanity.sh (admin): Fix a typo.
5682
5683 * admin.c (admin_fileproc): Restore the ':' character in the
5684 -mtag:message admin argument even if the tag does not exist so
5685 that other files with the tag will be found. Also, be more
5686 paranoid that a symbolic tag actually points to a version that
5687 exists.
5688 (Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
5689 * sanity.sh (admin): Test these changes.
5690
5691 2003-10-17 Mark D. Baushke <mdb@cvshome.org>
5692
5693 * admin.c (admin_fileproc): Force tag match on admin
5694 -mversion:message rather than altering the wrong log message.
5695 (Patch from "Rodolfo Schulz de Lima" <rodsoft@uol.com.br>.)
5696 * sanity.sh (admin): Test case for it.
5697
5698 2003-10-15 Larry Jones <lawrence.jones@eds.com>
5699
5700 * commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
5701 if the RCS file didn't get created at all.
5702 (Reported by David Wood <David.Wood@thestreet.com>.)
5703
5704 2003-10-14 Derek Price <derek@ximbiot.com>
5705
5706 Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
5707 testing with _POSIX2_VERSION=200112 in the environment.
5708
5709 * sanity.sh: Use 'sed 1q', not 'head -1'.
5710 (Patch from Paul Eggert <eggert@twinsun.com>.)
5711
5712 2003-10-10 Derek Price <derek@ximbiot.com>
5713
5714 * lock.c (set_lock): Clarify comment.
5715
5716 2003-10-11 Larry Jones <lawrence.jones@eds.com>
5717
5718 * server.c (server_cleanup): Replace CVS_CHDIR call: some systems
5719 won't allow you to delete a directory tree containg your working
5720 directory.
5721
5722 2003-10-10 Derek Price <derek@ximbiot.com>
5723
5724 * server.c (cvs_output, cvs_outerr): Protect calls to syslog()
5725 with the usual preprocessor condition: HAVE_SYSLOG_H.
5726 (Original patch from Terrence Enger <tenger@iSeries-guru.com>.)
5727
5728 2003-10-09 Derek Price <derek@ximbiot.com>
5729
5730 * cvs.h: s/^extern// off of function declarations per HACKING.
5731
5732 2003-10-08 Derek Price <derek@ximbiot.com>
5733
5734 * Makefile.am (cvs_SOURCES): Add history.h.
5735 * history.c: Include history.h. Add the `P' record types to more
5736 comments. s/ALL_REC_TYPES/ALL_HISTORY_REC_TYPES/.
5737 (usage): Reference ALL_HISTORY_REC_TYPES rather than using a separate
5738 string literal.
5739 (report_hrecs): Handle `P' record type.
5740 (ALL_REC_TYPES): Rename and move...
5741 * history.h (ALL_HISTORY_REC_TYPES): ...here.
5742 * mkmodules.c: Include history.h.
5743 (config_contents): Update contents of and references to LogHistory
5744 records to use ALL_HISTORY_REC_TYPES.
5745 * sanity.sh (basic2-64): Update to include history records of type `P'.
5746
5747 * Makefile.in: Regenerated.
5748
5749 2003-10-08 Derek Price <derek@ximbiot.com>
5750
5751 * update.c (patch_file): Correct spelling and punctuation in comment.
5752 Update some lines to fit in 80 characters.
5753
5754 2003-10-08 Derek Price <derek@ximbiot.com>
5755
5756 * lock.c (remove_locks): Copy global struct and set status variable to
5757 NULL before calling disposal functions that might try to access it
5758 during calls to error(1,...).
5759
5760 2003-10-08 Larry Jones <lawrence.jones@eds.com>
5761
5762 * history.c (history): Don't conflate -e with -x since the client's
5763 idea of what -e means may not match the server's.
5764 (Reported by Frank Hemer <frank@hemer.org>.)
5765
5766 2003-10-08 Derek Price <derek@ximbiot.com>
5767
5768 * lock.c (Lock_Cleanup), rcs.c (rcs_cleanup), server.c
5769 (server_cleanup): Expand comments about the never_run_again variable
5770 and its interoperation with critical sections, exit, and interrupts.
5771
5772 2003-10-08 Derek Price <derek@ximbiot.com>
5773
5774 * lock.c (remove_locks): Reduce TRACE level since this function is
5775 rarely called and we can usually rely on tracing higher level
5776 functions.
5777
5778 2003-10-08 Derek Price <derek@ximbiot.com>
5779
5780 * lock.c (lock_name, lock_simple_remove),
5781 server.c (server_pathname_check, dirswitch): Add TRACE.
5782
5783 2003-10-08 Derek Price <derek@ximbiot.com>
5784
5785 * main.c: Reformat header comment to fit in 80 chars.
5786
5787 2003-10-08 Larry Jones <lawrence.jones@eds.com>
5788
5789 * sanity.sh: Use dotest_fail instead of dotest_status for diff tests
5790 since CVS only returns success/fail rather than 0/1/2 like diff does.
5791
5792 2003-10-08 Derek Price <derek@ximbiot.com>
5793
5794 Fix a client/server bug introduced via the data loss fix of 2003-03-17.
5795 Basically, the server was reporting ambiguous filename requests when it
5796 should have been trusting the user to type the intended case or using
5797 the case the client preserved in CVS/Entries before it tried to look
5798 anything up in case insensitive mode.
5799
5800 * rcs.c (locate_rcs): Use the filename exactly as cased before
5801 investigating a case insensitive lookup, per the client/server protocol
5802 specification. Expand comments.
5803 * subr.c (locate_file_in_dir): This function only needs to locate files
5804 case insensitively. Expand comments.
5805 * cvs.h (locate_file_in_dir): Only prototype when servers which need to
5806 handle case insensitivity are being compiled.
5807
5808 2003-10-08 Derek Price <derek@ximbiot.com>
5809
5810 * rcs.c (locate_rcs): Declare static. Move to an earlier location in
5811 file to avoid prototyping.
5812 * rcs.h (locate_rcs): Remove proto.
5813
5814 2003-10-08 Derek Price <derek@ximbiot.com>
5815
5816 * lock.c (lock_filesdoneproc): Reformat long function prototype.
5817
5818 2003-10-07 Larry Jones <lawrence.jones@eds.com>
5819
5820 * server.c (server_cleanup): Remove old code that was commented out
5821 with //, which isn't valid in C.
5822
5823 2003-10-04 Derek Price <derek@ximbiot.com>
5824
5825 * exithandle.c: New file.
5826 * Makefile.am (cvs_SOURCES): Add exithandle.c.
5827 * cvs.h (cleanup_register, signals_register): New prototypes.
5828 * lock.c (Lock_Cleanup, remove_locks), rcs.c (rcs_cleanup),
5829 server.c (server_cleanup): Avoid calling twice when called from a
5830 signal handler and then exit. Avoid being interrupted while globals
5831 that the signal handler might touch are in inconsistent states. Expand
5832 comments.
5833 * rcs.c (rcs_internal_lockfile): Ditto. Use cleanup_register rather
5834 than calling atexit() directly.
5835 * main.c (main): Consolidate signal stuff into a call to
5836 signals_register(). Call cleanup_register to register cleanup
5837 functions rather than calling atexit() directly.
5838
5839 * Makefile.in: Regenerated.
5840
5841 2003-10-04 Derek Price <derek@ximbiot.com>
5842
5843 * error.c, error.h: Remove error_exit() function.
5844 * add.c, client.c, history.c, import.c, main.c, mkmodules.c, modules.c,
5845 rcscmds.c, recurse.c, release.c, root.c, server.c, socket-client.c,
5846 tag.c, update.c: s/\<error_exit *();$/exit (EXIT_FAILURE);/. Remove
5847 related comments.
5848
5849 2003-10-04 Derek Price <derek@ximbiot.com>
5850
5851 * buffer.c: Reformat a few long function prototypes and lines.
5852
5853 2003-10-04 Derek Price <derek@ximbiot.com>
5854
5855 * hash.c (dellist): Immediately set input pointers to NULL in case they
5856 are references to global variables which might be accessed by interrupt
5857 handlers.
5858
5859 2003-10-04 Derek Price <derek@ximbiot.com>
5860
5861 * rcs.c (rcs_cleanup): Declare static.
5862 * rcs.h (rcs_cleanup): Remove prototype.
5863
5864 2003-10-03 Derek Price <derek@ximbiot.com>
5865
5866 Move calls to Lock_Cleanup to the atexit handler.
5867
5868 * commit.c (commit): Don't call Lock_Cleanup on error exit.
5869 * error.c (error_exit): Don't call Lock_Cleanup.
5870 * lock.c (Lock_Cleanup): Don't worry about recursive calls now that we
5871 are using atexit for calls on exit. Dispose locklist storage after the
5872 locks are removed. Expand comments.
5873 * main.c (main): Move Lock_Cleanup call into atexit(Lock_Cleanup).
5874 * server.c (server_notify): Add TRACE.
5875
5876 2003-10-03 Derek Price <derek@ximbiot.com>
5877
5878 * recurse.c (start_recursion): Remove unnecessary typecasts.
5879 (do_recursion): Ditto. Add TRACE. Expand comments. Remove unneeded
5880 parens.
5881
5882 2003-10-03 Derek Price <derek@ximbiot.com>
5883
5884 * main.c (main): Dispose of old Tmpdir and Editor when specified
5885 multiple times between the command line & the ~/.cvsrc file.
5886
5887 2003-10-03 Derek Price <derek@ximbiot.com>
5888
5889 * lock.c (remove_locks): Eliminate unecessary typecasting.
5890
5891 2003-10-03 Derek Price <derek@ximbiot.com>
5892
5893 Move calls to rcs_cleanup to the atexit handler.
5894
5895 * error.c (error_exit): Don't call rcs_cleanup.
5896 * rcs.c: Initialize global RCS_LOCKFILE to NULL.
5897 (rcs_internal_lockfile): Use atexit (rcs_cleanup) rather than
5898 setting up signal handlers.
5899
5900 2003-10-03 Derek Price <derek@ximbiot.com>
5901
5902 * modules.c (do_module): Format prototype.
5903
5904 2003-10-03 Derek Price <derek@ximbiot.com>
5905
5906 * server.c (server_cleanup): Skip BUF_TO_NET checks as an optimization
5907 when ERROR_USE_PROTOCOL is set.
5908
5909 2003-10-03 Derek Price <derek@ximbiot.com>
5910
5911 * modules.c (do_module): Use TRACE.
5912
5913 2003-10-02 Derek Price <derek@ximbiot.com>
5914
5915 * main.c (main): Don't free globals that might be needed by the cleanup
5916 functions.
5917 * server.c (server_cleanup): Only clean up when called in the parent
5918 process. Set buffers to NULL before shutting down and freeing in case
5919 we are interrupted. Improve comments. Add TRACE.
5920
5921 2003-10-01 Derek Price <derek@ximbiot.com>
5922
5923 * main.c (main): Use symbolic name for trace level.
5924
5925 2003-10-01 Derek Price <derek@ximbiot.com>
5926
5927 * client.c (connect_to_forked_server): Use TRACE macro rather than the
5928 old style.
5929
5930 2003-10-01 Derek Price <derek@ximbiot.com>
5931
5932 * server.c (protocol): Initialize the protocol buffer to NULL so that
5933 use before initialization may be detected.
5934 (cvs_output, cvs_outerr): Syslog messages when the appropriate buffers
5935 are not available.
5936 (server_cleanup): Reorganize for a single exit point and to eliminate
5937 duplicated code. Set buf_to_net to NULL before calling the buffer
5938 shutdown functions in order to force error messages into the syslog.
5939 * buffer.c (stdio_buffer_close): Remove FIXME comment re syslog since
5940 the calls to error should go through the cvs_outerr function anyhow.
5941
5942 2003-09-30 Derek Price <derek@ximbiot.com>
5943
5944 * entries.c (WriteTemplate): TRACE on entrance to a function, not exit.
5945 Don't worry about checking noexec without server support since this
5946 function will then do nothing.
5947
5948 2003-09-30 Derek Price <derek@ximbiot.com>
5949
5950 * update.c (do_update): Reformat function decl. Move and merge
5951 comment.
5952
5953 2003-09-30 Derek Price <derek@ximbiot.com>
5954
5955 * client.h (buf_output, buf_outerr): Check that our buffers exist
5956 before sending them data.
5957 (buf_output_binary): Assert that the output buffer is not NULL.
5958
5959 2003-09-30 Derek Price <derek@ximbiot.com>
5960
5961 * client.h, rcs.c, rcs.h, server.h: Assume __STDC__ since it is
5962 defined as part of the C89 spec.
5963
5964 2003-09-30 Derek Price <derek@ximbiot.com>
5965
5966 * commit.c (commit): Optimize function towards a single exit point.
5967
5968 2003-09-30 Derek Price <derek@ximbiot.com>
5969
5970 * error.c (error_exit): Remove call to SYSTEM_CLEANUP.
5971 * main.c (main): Set up atexit(SYSTEM_CLEANUP) rather than calling it
5972 explicitly before exit.
5973 * server.c (pserver_authenticate_connection): Don't call SYSTEM_CLEANUP
5974 before exiting.
5975
5976 2003-09-30 Derek Price <derek@ximbiot.com>
5977
5978 * error.c (exit_error): Remove call to server_cleanup.
5979 * main.c (main): Call atexit(server_cleanup). Let server_cleanup turn
5980 server_active off.
5981 * server.c (server_cleanup): Don't require an argument. Fill out
5982 header comment. Unset server_active when done.
5983 (server): Don't call server_cleanup - let it be called via the atexit
5984 handler.
5985 * server.h (server_cleanup): Update proto.
5986
5987 2003-09-30 Derek Price <derek@ximbiot.com>
5988
5989 * server.c (buf_output): Don't check that the buffers exist before
5990 using them since cvs_outerr does this without problems.
5991
5992 2003-09-30 Derek Price <derek@ximbiot.com>
5993
5994 * server.c: Remove some unecessary function prototypes.
5995
5996 2003-09-29 Derek Price <derek@ximbiot.com>
5997
5998 * rcs.c (make_file_label): Make a failure to stat a file a fatal error
5999 since it signals that a later read will also fail.
6000
6001 2003-09-29 Derek Price <derek@ximbiot.com>
6002
6003 * diff.c (diff_fileproc): Optimize the check for labels set by the
6004 user.
6005
6006 2003-09-26 Derek Price <derek@ximbiot.com>
6007
6008 * diff.c (diff): Add a FIXME re spaces in diff arguments.
6009
6010 2003-09-25 Mark D. Baushke <mdb@cvshome.org>
6011
6012 * rcs.c (make_file_label): Do not return an uninitialized label.
6013 (Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
6014
6015 2003-09-24 Derek Price <derek@ximbiot.com>
6016
6017 * lock.c (lock_name): Remove useless prototype.
6018
6019 2003-09-12 Derek Price <derek@ximbiot.com>
6020
6021 * sanity.sh (mkmodules): Correct comments.
6022
6023 2003-09-12 Derek Price <derek@ximbiot.com>
6024
6025 * mkmodules.c (mkmodules): Do not pass a string which came from the
6026 checkoutlist file directly to error as a format string since we don't
6027 want to trust any user with access to checkoutlist with creating printf
6028 format strings. I already claimed I did this in the NEWS file.
6029 (Thanks to Larry Jones for spotting my mistake.)
6030 * sanity.sh (mkmodules): Test for the above.
6031
6032 2003-09-12 Derek Price <derek@ximbiot.com>
6033
6034 * mkmodules.c (checkoutlist_contents): Document the optional portions
6035 of this file format more accurately.
6036 (mkmodules): Ditto, in comments. Fix bug that always failed to ignore
6037 whitespace before error messages.
6038 * sanity.sh (mkmodules-temp-file-removal): Rename to...
6039 (mkmodules): ...this and add a test of the checkoutlist error message.
6040 Add cleanup step to restore checkoutlist.
6041
6042 2003-09-08 Derek Price <derek@ximbiot.com>
6043
6044 * filesubr.c (cvs_temp_file): Replace a chmod 0600, which shouldn't
6045 really be necessary and which provided a false sense of security, with
6046 an informative comment.
6047 (Thanks to Paul Eggert <eggert@cs.ucla.edu> for his educational
6048 advice.)
6049
6050 2003-08-29 Derek Price <derek@ximbiot.com>
6051
6052 * cvs.h: Delete reference to CVSADMROOT_EDITINFO.
6053 * logmsg.c (editinfo_proc): Delete function and proto.
6054 (do_editor): Don't look for editinfo script.
6055 * mkmodules.c (editinfo_contents): Delete.
6056 * sanity.sh (*): Remove references to editinfo in updates of the
6057 CVSROOT module.
6058
6059 2003-08-29 Derek Price <derek@ximbiot.com>
6060
6061 * remove.c (cvsremove): Update quotes for consistency.
6062
6063 2003-08-27 Larry Jones <lawrence.jones@eds.com>
6064
6065 * history.c: 'P' is a valid record type and has been for a long time.
6066 Add it to the comments, usage message, and, most important,
6067 ALL_REC_TYPES so it gets recorded by default.
6068 * server.c (do_cvs_command): Set global command_name to the real
6069 command name rather than leaving it set to "server".
6070 * sanity.sh: Update to match.
6071 (Reported by Dmitry Ryzhkov <rdim_outside@softhome.net>.)
6072
6073 2003-08-19 Derek Price <derek@ximbiot.com>
6074
6075 * filesubr.c (cvs_temp_file): Expand comments. Check for glibc version
6076 before compiling chmod command. Remove FIXME to this effect.
6077
6078 2003-08-19 Derek Price <derek@ximbiot.com>
6079
6080 * logmsg.c (do_editor): Use cvs_temp_file rather than cvs_temp_name to
6081 create and open the temporary file. Remove FIXME to this effect.
6082
6083 2003-08-19 Derek Price <derek@ximbiot.com>
6084
6085 * logmsg.c (do_editor): Move editinfo processing to before creation of
6086 the temp file so that it may be skipped when no editor is defined.
6087 Remove related FIXME. Add comments. Remove some processing of
6088 editinfo_editor rendered obsolete when editinfo_editor ceased to be a
6089 global.
6090
6091 2003-08-19 Derek Price <derek@ximbiot.com>
6092
6093 * (*.c): Move some includes to lib/system.h.
6094
6095 2003-08-18 Derek Price <derek@ximbiot.com>
6096
6097 * add.c (add): Use consistent quoting style in user messages.
6098 * sanity.sh (*): Ditto.
6099
6100 2003-08-13 Larry Jones <lawrence.jones@eds.com>
6101
6102 * server.c (server_cleanup): Don't shutdown buf_from_net if it's
6103 null.
6104 (Reported by Scott Mitchell <scott@fishballoon.org>.)
6105
6106 2003-08-03 Mark D. Baushke <mdb@cvshome.org>
6107
6108 * lock.c: Do not include xtime.h (already included via system.h).
6109 * subr.c: Ditto.
6110 (Original patch from Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6111 to fix IRIX 5.3 problem.)
6112
6113 2003-08-01 Derek Price <derek@ximbiot.com>
6114
6115 * sanity.sh (join5): Use $SPROG rather than $PROG.
6116
6117 2003-08-01 Derek Price <derek@ximbiot.com>
6118
6119 * sanity.sh (join5): Use $PROG consistently and escape a `.'.
6120
6121 2003-08-01 Derek Price <derek@ximbiot.com>
6122
6123 * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
6124
6125 2003-07-31 Derek Price <derek@ximbiot.com>
6126
6127 * rcscmds.c (RCS_merge): Pass `--' before the filename arguments to
6128 diff so that filenames starting with `-' can be merged.
6129 * sanity.sh (join5): New test for same.
6130
6131 2003-07-31 Derek Price <derek@ximbiot.com>
6132
6133 * add.c (add_directory): Don't print status information in really_quiet
6134 mode.
6135
6136 2003-07-29 Derek Price <derek@ximbiot.com>
6137
6138 * commit.c (checkaddfile): Simplify the logic here, using assumptions
6139 already made later in the function to remove calls to locate_rcs and
6140 some conditionals. Use same assumptions to remove some variables.
6141
6142 2003-07-29 Derek Price <derek@ximbiot.com>
6143
6144 * login.c: Remove GETPASS & HAVE_GETPASSPHRASE cruft in favor of always
6145 using the GNULIB getpass since the system getpass was removed from the
6146 POSIX.2 specification.
6147
6148 2003-07-28 Derek Price <derek@ximbiot.com>
6149
6150 * subr.c (strip_trailiing_newlines): Use size_t rather than int to
6151 count string length.
6152 (Suggestion from Paul Edwards, who provides a broken return email
6153 address in Tonga. I believe he is actually from Australia.)
6154
6155 2003-07-28 Derek Price <derek@ximbiot.com>
6156
6157 * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
6158 and Update.prog.
6159
6160 2003-07-25 Derek Price <derek@ximbiot.com>
6161
6162 * rcs.c (RCS_parsercsfile): Declare rcsfile argument as const.
6163 * rcs.h (RCS_parsercsfile): Update prototype to match.
6164 * commit.c (fixaddfile): Accept a single path to an rcs file as an
6165 argument rather than trying to look it up again when it is not
6166 necessary.
6167
6168 2003-07-25 Derek Price <derek@ximbiot.com>
6169
6170 * commit.c (finaladd): But don't free variables we no longer allocate.
6171
6172 2003-07-25 Derek Price <derek@ximbiot.com>
6173
6174 * checkin.c (Checkin): The rcs argument is unecessary since we know
6175 that the parsed RCS data always exists as part of finfo by the time
6176 this function gets called.
6177 * commit.c (commit_fileproc, finaladd): Use new Checkin() API.
6178 * cvs.h (Checkin): Update prototype.
6179
6180 2003-07-25 Derek Price <derek@ximbiot.com>
6181
6182 * subr.c (strip_trailing_newlines): Check len b4 str[len] to avoid
6183 exceeding the array bounds when the string length == 0.
6184 (Report from John Tytgat <JoTy@esko-graphics.com>.)
6185
6186 2003-07-25 Derek Price <derek@ximbiot.com>
6187
6188 * subr.c (strip_trailing_newlines): Generalize this function to watch
6189 len so that it cannot walk past the beginning of the string passed in.
6190 (Report from John Tytgat <JoTy@esko-graphics.com>.)
6191
6192 2003-07-25 Derek Price <derek@ximbiot.com>
6193
6194 * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
6195 branch.
6196
6197 2003-07-25 Derek Price <derek@ximbiot.com>
6198
6199 * cvs.h (strip_trailing_newlines): Update prototype.
6200 * subr.c (strip_trailing_newlines): Return true when newlines are
6201 removed.
6202 * server.c (pserver_authenticate_connection): Don't give a DOS attack a
6203 chance to authenticate accidentally because I like to be paranoid.
6204 * sanity.sh (pserver): New test for same.
6205
6206 2003-07-24 Mark D. Baushke <mdb@cvshome.org>
6207
6208 * server.c (check_system_password): Cleanup pam_* return code
6209 checking. (Original patch from Brian Murphy <brian@murphy.dk>.)
6210
6211 2003-07-24 Derek Price <derek@ximbiot.com>
6212
6213 * main.c: But the GNULIB gethostname accepts an int not ssize_t.
6214
6215 2003-07-24 Derek Price <derek@ximbiot.com>
6216
6217 * main.c: Don't declare gethostname when we already have it to avoid
6218 decl conflicts.
6219
6220 2003-07-24 Derek Price <derek@ximbiot.com>
6221
6222 * server.c (server_directory): Add a TRACE for OS X debugging.
6223
6224 2003-07-23 Derek Price <derek@ximbiot.com>
6225
6226 * client.c: Avoid some warning from gcc -Wall.
6227 * lock.c: Ditto.
6228 * login.c: Ditto.
6229 * modules.c: Ditto.
6230 * server.c: Ditto.
6231
6232 2003-07-23 Derek Price <derek@ximbiot.com>
6233
6234 * filesubr.c (isaccessible): Correct some double const warnings from
6235 protoize.
6236 * login.c (password_entry_parseline): Ditto.
6237 * server.c (kserver_authenticate_connection): Remove a multi-line
6238 string along with the warning from GCC.
6239
6240 2003-07-23 Derek Price <derek@ximbiot.com>
6241
6242 * *.{c,h}: Back out the indent run.
6243
6244 2003-07-23 Derek Price <derek@ximbiot.com>
6245
6246 * cvs.h: Move some includes into lib/system.h.
6247
6248 2003-07-23 Derek Price <derek@ximbiot.com>
6249
6250 * *.{c,h}: Run these through GNU indent as per the NEWS file to fix
6251 some of the long function decls which came out of protoize.
6252
6253 2003-07-23 Derek Price <derek@ximbiot.com>
6254
6255 * *.c: Run these through GCC's protoize to convert the pre-ANSI C
6256 function decls to C89 compliance.
6257
6258 2003-07-22 Derek Price <derek@ximbiot.com>
6259
6260 * cvs.h: Remove support for the PTR macro, since we can assume void *
6261 under C89. It also was not being made use of in very many places so
6262 even most K&R compilers must have supported it, or nobody was using
6263 K&R compilers. We can also assume <stdarg.h> under C89, but move the
6264 include...
6265 * error.c: ...here, de-macro VA_START, and...
6266 * subr.c: ...put a copy here too, as well as de-macroing VA_START.
6267 * history.c: s/PTR /void */g;
6268 * modules.c: Ditto.
6269
6270 2003-07-22 Derek Price <derek@ximbiot.com>
6271
6272 * cvs.h: Include GNULIB exit.h.
6273
6274 2003-07-20 Derek Price <derek@ximbiot.com>
6275
6276 * server.c: Add PAM support.
6277 (cvs_pam_userinfo): New data type for PAM conversations.
6278 (cvs_pam_conv): New function.
6279 (check_password): Add PAM support.
6280 (Original patch from Brian Murphy <brian@murphy.dk>.)
6281
6282 2003-07-20 Derek Price <derek@ximbiot.com>
6283
6284 * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
6285 a comment.
6286
6287 2003-07-18 Derek Price <derek@ximbiot.com>
6288
6289 * sanity.sh (release): Add new tests for release with unrecognized
6290 recognized directories.
6291
6292 2003-07-18 Derek Price <derek@ximbiot.com>
6293
6294 * vers_ts (Version_TS): Don't allow command line keyword expansion
6295 modes to override binary mode.
6296 * sanity.sh (): Tests for the above.
6297 (Original patch from Dieter Maurer <dieter@handshake.de>.)
6298
6299 2003-07-16 Derek Price <derek@ximbiot.com>
6300
6301 * add.c: s/PROTO//.
6302 * admin.c: Ditto.
6303 * annotate.c: Ditto.
6304 * buffer.c: Ditto.
6305 * buffer.h: Ditto.
6306 * checkout.c: Ditto.
6307 * classify.c: Ditto.
6308 * client.c: Ditto.
6309 * client.h: Ditto.
6310 * commit.c: Ditto.
6311 * cvs.h: Ditto.
6312 * diff.c: Ditto.
6313 * edit.c: Ditto.
6314 * edit.h: Ditto.
6315 * entries.c: Ditto.
6316 * error.c: Ditto.
6317 * error.h: Ditto.
6318 * expand_path.c: Ditto.
6319 * fileattr.c: Ditto.
6320 * fileattr.h: Ditto.
6321 * filesubr.c: Ditto.
6322 * find_names.c: Ditto.
6323 * gssapi-client.c: Ditto.
6324 * gssapi-client.h: Ditto.
6325 * hardlink.h: Ditto.
6326 * hash.c: Ditto.
6327 * hash.h: Ditto.
6328 * history.c: Ditto.
6329 * import.c: Ditto.
6330 * kerberos4-client.h: Ditto.
6331 * lock.c: Ditto.
6332 * log-buffer.c: Ditto.
6333 * log-buffer.h: Ditto.
6334 * log.c: Ditto.
6335 * login.c: Ditto.
6336 * logmsg.c: Ditto.
6337 * mkmodules.c: Ditto.
6338 * modules.c: Ditto.
6339 * myndbm.c: Ditto.
6340 * myndbm.h: Ditto.
6341 * patch.c: Ditto.
6342 * rcs.c: Ditto.
6343 * rcs.h: Ditto.
6344 * rcscmds.c: Ditto.
6345 * recurse.c: Ditto.
6346 * release.c: Ditto.
6347 * remove.c: Ditto.
6348 * root.c: Ditto.
6349 * rsh-client.h: Ditto.
6350 * run.c: Ditto.
6351 * server.c: Ditto.
6352 * server.h: Ditto.
6353 * socket-client.c: Ditto.
6354 * socket-client.h: Ditto.
6355 * status.c: Ditto.
6356 * subr.c: Ditto.
6357 * tag.c: Ditto.
6358 * update.c: Ditto.
6359 * update.h: Ditto.
6360 * vers_ts.c: Ditto.
6361 * watch.c: Ditto.
6362 * watch.h: Ditto.
6363 * wrapper.c: Ditto.
6364 * zlib.c: Ditto.
6365
6366 2003-07-16 Derek Price <derek@ximbiot.com>
6367
6368 * cvs.h: Include pathmax.h.
6369
6370 2003-07-16 Derek Price <derek@ximbiot.com>
6371
6372 * myndbm.c: Use the GNU getdelim function rather than our package
6373 getstr.
6374 * server.c: Use the (hopefully) GNULIB and more appropriately named
6375 getnline function rather than our getline_safe function.
6376
6377 2003-07-12 Larry Jones <lawrence.jones@eds.com>
6378
6379 * sanity.sh (diffnl): New tests for diff on files with no newline
6380 at end.
6381 (Patch from Andrew Moise <chops@demiurgestudios.com>.)
6382
6383 2003-07-11 Larry Jones <lawrence.jones@eds.com>
6384
6385 * Makefile.am (cvs_DEPENDENCIES): Include the libraries.
6386 * Makefile.in: Regenerated.
6387
6388 * diff.c (diff_file_nodiff): Fix -Wall complaints.
6389 * log.c (rlog_proc): Ditto.
6390 * rcs.c (RCS_setlocalid): Ditto.
6391 * recurse.c (start_recursion): Handle null repository_in in TRACE.
6392
6393 2003-07-09 Larry Jones <lawrence.jones@eds.com>
6394
6395 * sanity.sh: Use ${CPROG} instead of ${PROG} so that changes merged
6396 from cvs1-11-x-branch without updating won't appear to work.
6397
6398 * sanity.sh (keywordexpand): Use ${SPROG} instead of ${PROG} as
6399 required.
6400
6401 * add.c (add): Update "re-adding" message to have quotes around
6402 the file name like all the other similar messages.
6403 * sanity.sh: Update to match.
6404
6405 * update.c (join_file): Handle locally removed but not yet committed
6406 files.
6407 (Reported by Larry Lords <LordsLL@ldschurch.org>.)
6408 * sanity.sh (join, join4): New tests for above.
6409
6410 2003-06-28 Larry Jones <lawrence.jones@eds.com>
6411
6412 * commit.c (fixaddfile): Bail out if locate_rcs() fails. Make
6413 parameters const.
6414
6415 * add.c (add): Fix -Wall complaints.
6416 * diff.c (diff_file_nodiff): Ditto.
6417 * filesubr.c (cvs_casecmp): Ditto.
6418 * patch.c (patch_fileproc): Ditto.
6419 * rcs.c (RCS_cmp_file): Ditto.
6420 * root.c (parse_cvsroot): Ditto.
6421 * subr.c (locate_file_in_dir): Ditto.
6422 * cvs.h (cvs_casecmp, locate_file_in_dir): Update prototypes.
6423
6424 2003-06-27 Larry Jones <lawrence.jones@eds.com>
6425
6426 * lock.c (readers_exist): Use LockDir rather than always looking
6427 in the repository.
6428 (Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
6429 Remove vestigial lock promotion code.
6430
6431 2003-06-27 Derek Price <derek@ximbiot.com>
6432
6433 * checkout.c (safe_location): Don't try and print from a NULL pointer.
6434 (Report and original patch from Sampo Kellomaki <sampo@symlabs.com>.)
6435
6436 2003-06-26 Larry Jones <lawrence.jones@eds.com>
6437
6438 * hash.c (sortlist): Avoid crash when list is null.
6439
6440 2003-06-23 Derek Price <derek@ximbiot.com>
6441
6442 * patch.c (patch_fileproc): Output revision number of the original
6443 revision in the removed case.
6444 (Idea from Paul Edwards <kerravon@w3.to>.)
6445
6446 * sanity.sh (rdiff-add-remove-nodiff): Rename to...
6447 (rdiff-short): ...this. Test for the above changes. Add some tests
6448 for when rev2 defaults to the trunk. Expand comments.
6449
6450 2003-06-23 Derek Price <derek@ximbiot.com>
6451
6452 * client.c: Reapply Alexey's changes to client.c from three commits
6453 back they were left out of the diff.
6454
6455 2003-06-23 Derek Price <derek@ximbiot.com>
6456
6457 * add.c (add): Fix xmalloc's strlen() of wrong variable.
6458 * checkout.c (safe_location): leak: reused where_location without free.
6459 * log.c (rlog_proc): leak: free where before exit.
6460 * logmsg.c (do_verify): leak: free verifymsg_script before exit.
6461 (Original patch from Kenneth Lorber <keni@his.com>.)
6462
6463 2003-06-23 Derek Price <derek@ximbiot.com>
6464
6465 * client.c: Remove silly comment.
6466 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6467
6468 2003-06-23 Derek Price <derek@ximbiot.com>
6469
6470 * kerberos4-client.h, kerberos4-client.c, client.c: Rename
6471 start_tcp_server() to start_kerberos4_server().
6472 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6473
6474 2003-06-20 Derek Price <derek@ximbiot.com>
6475
6476 * kerberos-client.c, kerberos-client.h, client.c: Split out
6477 Kerberos 4 code to separate files.
6478
6479 * Makefile.am: Mention new files.
6480 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6481
6482 * Makefile.in: Regenerated.
6483
6484 2003-06-16 Derek Price <derek@ximbiot.com>
6485
6486 * cvs.h: Comment an #endif.
6487
6488 2003-06-13 Derek Price <derek@ximbiot.com>
6489
6490 * filesubr.c (cvs_temp_name): Remove portability cruft obsoleted by the
6491 import of GNULIB's mkstemp().
6492
6493 2003-06-13 Derek Price <derek@ximbiot.com>
6494
6495 * subr.c (file_has_conflict): Fix comment.
6496 (Patch from Paul Edwards <kerravon@w3.to>.)
6497
6498 2003-06-13 Derek Price <derek@ximbiot.com>
6499
6500 * subr.c (xrealloc): Trivial comment fix.
6501 (Patch from Kenneth Lorber <keni@his.com>.)
6502
6503 2003-06-13 Derek Price <derek@ximbiot.com>
6504
6505 * diff.c (diff_fileproc): Fix memory leak.
6506 (Patch from Kenneth Lorber <keni@his.com>.)
6507
6508 2003-06-12 Derek Price <derek@ximbiot.com>
6509
6510 * root.c (parse_cvsroot, local_cvsroot): Parse trailing '/'s off the
6511 end of cvsroots. Make arguments const.
6512 * cvs.h: Update prototypes to match.
6513 (Idea from Miles Zarathustra <shiva@aranyaka.org>.)
6514
6515 2003-06-12 Derek Price <derek@ximbiot.com>
6516
6517 * checkout.c (safe_location): Fix memory leak.
6518 (Patch from Kenneth Lorber <keni@his.com>.)
6519
6520 2003-06-11 Larry Jones <lawrence.jones@eds.com>
6521
6522 * filesubr.c (xresolvepath): Fix memory leak.
6523 (Original patch from Kenneth Lorber <keni@his.com>.)
6524
6525 2003-06-11 Derek Price <derek@ximbiot.com>
6526
6527 * commit.c: Change Parse_Info calling convention to include void *
6528 suggested in HACKING file and generalize all argument to opt.
6529 * cvs.h: update defs for Parse_Info and its callproc.
6530 * edit.c: Change Parse_Info calls for new calling convention.
6531 * logmsg.c: Ditto.
6532 * parseinfo.c: Change Parse_Info for new calling convention.
6533 * server.c: Change Parse_Info calls for new calling convention.
6534 * tag.c: Ditto.
6535 (Original patch from Ken Lorber <keni@his.com>.)
6536
6537 2003-06-11 Derek Price <derek@ximbiot.com>
6538
6539 * Makefile.in: Regenerate for new configure.in.
6540
6541 2003-06-11 Larry Jones <lawrence.jones@eds.com>
6542
6543 * sanity.sh: Change warning messages to note that defective tools
6544 can result in defective results, both pass and fail. Also change
6545 "which" to "that" for errant grammar pedants.
6546
6547 2003-06-10 Derek Price <derek@ximbiot.com>
6548
6549 * recurse.c (start_recursion): Avoid unneeded allocation.
6550
6551 2003-06-10 Mark D. Baushke <mdb@gnu.org>
6552
6553 * rcs.c (RCS_setlocalid,RCS_setincexc): New functions to support
6554 LocalKeyword and KeywordExpand config keywords.
6555
6556 * rcs.h (RCS_setlocalid,RCS_setincexc): New prototypes.
6557
6558 * parseinfo.c (parse_config): Added LocalKeyword
6559 and KeywordExpand keywords.
6560
6561 * sanity.sh (keywordexpand): New CVSROOT/config tests for
6562 LocalKeyword and KeywordExpand options.
6563
6564 2003-06-09 Derek Price <derek@ximbiot.com>
6565
6566 * rcs.c (RCS_delete_revs): Reference WOE32 rather than WIN32 in
6567 accordance with the GNU convention to avoid implying that we consider
6568 the Microsoft Windows Operating Environment any sort of "win".
6569
6570 2003-06-09 Derek Price <derek@ximbiot.com>
6571
6572 * filesubr.c (cvs_temp_file): Tidy a comment.
6573
6574 2003-06-09 Derek Price <derek@ximbiot.com>
6575
6576 * patch.c (patch_fileproc): Don't assume the content of files is
6577 different just because the revision number is different.
6578 * sanity.sh (rdiff-add-remove-nodiff): New tests for the above.
6579 (Report & original patches from Paul Edwards <kerravon@w3.to>.)
6580
6581 2003-06-04 Derek Price <derek@ximbiot.com>
6582
6583 * cvs.h (locate_file_in_dir): New proto.
6584 (locate_rcs): Move proto...
6585 * rcs.h: ...here.
6586 * filesubr.c (locate_rcs): Move function...
6587 * rcs.c: ...here for Windows.
6588 * filesubr.c (locate_file_in_dir): Move function...
6589 * subr.c: ...here for Windows.
6590
6591 2003-06-02 Derek Price <derek@ximbiot.com>
6592
6593 * sanity.sh: Add comments re portability of test -x & test -e. Don't
6594 bother with quotes in arguments to test when we have laready checked
6595 the variables for empty content.
6596
6597 2003-06-02 Derek Price <derek@ximbiot.com>
6598
6599 * sanity.sh: Don't use `test -x' since BSD 4.3 doesn't like it. Minor
6600 reorganization for clarity. Don't check for $server = false after we
6601 set its default. Use </dev/null with calls to $prog --version when we
6602 don't know what $prog does for sure.
6603
6604 2003-06-02 Derek Price <derek@ximbiot.com>
6605
6606 * diff.c (diff_file_nodiff): Don't assume that because two specified
6607 revision numbers are different, the contents are different.
6608 (Original report & patch from Paul Edwards <kerravon@w3.to>.)
6609
6610 * diff.c (diff_file_nodiff): Pass through rev1_cache to be filled in
6611 by RCS_cmp_file when it needs to check out revision 1 into a file. Add
6612 some more informative error messages. Cleanup for efficiency &
6613 readability.
6614 (diff_fileproc): Pass the cached revision to RCS_exec_diff(). Clean up
6615 the error exit code. Remove code killed by the changes to
6616 diff_file_nodiff().
6617 * rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
6618 if present.
6619 * rcs.c (RCS_cmp_file): Accept a second revision number and cache the
6620 first revision if it needs to be checked out.
6621
6622 * checkin.c (Checkin): Use new RCS_cmp_file().
6623 * import.c (update_rcs_file): Ditto.
6624 * no_diff.c (No_Difference): Ditto.
6625
6626 * cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
6627 * rcs.h (RCS_cmp_file): Ditto.
6628
6629 * sanity.sh: Minor corrections to handle the above changes.
6630
6631 2003-05-31 Derek Price <derek@ximbiot.com>
6632
6633 * root.c (parse_cvsroot): Refuse :fork: only in client mode, not
6634 server.
6635 * client.c (connect_to_forked_server): Die without SERVER_SUPPORT when
6636 CVSSERVER isn't supplied in the environment.
6637 * sanity.sh: Default $servercvs to $testcvs. Add SPROG so that testing
6638 a client and server with different names works in order to test the
6639 above changes. s/PROG/SPROG/ almost everywhere. Misc corrections to
6640 tests when ${PROG} is required not to use [a-z]*. Misc uniqifications
6641 of test names. Misc replacement of CVS_SERVER=${testcvs} with
6642 CVS_SERVER=${servercvs}. Confirm ${testcvs} & ${servercvs} exist and
6643 are executable. Set testcvs_server_support=true if the ${testcvs}
6644 executable has server support. Misc comment corrections.
6645 (pserver): s/\$\{testcvs\}/${servercvs}/ for invocations of pserver.
6646 (server): Ditto for invocations of `cvs server'.
6647 (fork): Accept the `was not compiled with server support' error
6648 message.
6649
6650 2003-05-29 Derek Price <derek@ximbiot.com>
6651
6652 * client.c (start_server): Don't send -l to server.
6653 * history.c (history_write): Fix comment.
6654 * main.c (main): Don't process -l.
6655 * server.c (serve_global_option): Ditto.
6656 (Suggestion from Rob Lanphier <robla@real.com>.)
6657
6658 2003-05-29 Derek Price <derek@ximbiot.com>
6659
6660 * log-buffer.c, rsh-client.c, socket-client.c: Allow compilation
6661 with --disable-client.
6662 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6663
6664 2003-05-29 Derek Price <derek@ximbiot.com>
6665
6666 * gssapi-client.h: Move contents of lib/xgssapi.h here.
6667 * server.c: xgssapi.h is no more.
6668 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6669
6670 2003-05-28 Derek Price <derek@ximbiot.com>
6671
6672 * server.c: Use standard PROTOTYPES symbol instead of non-standard
6673 USE_PROTOTYPES.
6674 * error.h, cvs.h: Use PROTO.h.
6675 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6676
6677 2003-05-23 Larry Jones <lawrence.jones@eds.com>
6678
6679 * sanity.sh (info-cleanup-verifymsg): Avoid race in output.
6680
6681 * sanity.sh (template): Fix unintended duplicate DEFAULT lines,
6682 duplicate test names.
6683
6684 2003-05-22 Larry Jones <lawrence.jones@eds.com>
6685
6686 * commit.c (commit): Fix leading zero stripping code to not strip
6687 unless there's a following digit.
6688
6689 * parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
6690 * sanity.sh (info): New test for above.
6691
6692 2003-05-21 Derek Price <derek@ximbiot.com>
6693
6694 * Makefile.in: Regenerate with Automake version 1.7.5.
6695
6696 2003-05-20 Larry Jones <lawrence.jones@eds.com>
6697
6698 * parseinfo.c (Parse_Info): Fix stupid memory management error.
6699
6700 * logmsg.c (do_verify): Treate Parse_Info errors as failure.
6701 * parseinfo.c (Parse_Info): Don't call expand_path until executing
6702 the command so that errors in unexecuted commands aren't reported.
6703 * sanity.sh (info): New tests for above.
6704
6705 2003-05-20 Derek Price <derek@ximbiot.com>
6706
6707 * mkmodules.c (config_contents): Add missing newline.
6708 (Patch from Kenneth Lorber <keni@his.com>.)
6709
6710 2003-05-20 Derek Price <derek@ximbiot.com>
6711
6712 * Makefile.am: Macro subsitution for zlib include path and library
6713 location
6714 * zlib.c: #ifdef inclusion of <zlib.h> versus "zlib.h"
6715 (Original patch from Anthon Pang <apang@telus.net>.)
6716
6717 * Makefile.in: Regenerated
6718
6719 2003-05-20 Derek Price <derek@ximbiot.com>
6720
6721 * cvs.h: Move the standard includes into lib/system.h.
6722 * subr.c: s/malloc/CVS_MALLOC/;s/realloc/CVS_REALLOC/.
6723
6724 2003-05-19 Derek Price <derek@ximbiot.com>
6725
6726 * filesubr.c: s/\bstat\b/CVS_STAT/g;s/\blstat\b/CVS_LSTAT/g
6727 * hardlink.c: Ditto.
6728 * ignore.c: Ditto.
6729 * rcs.c: Ditto.
6730 * update.c: Ditto.
6731
6732 2003-05-18 Larry Jones <lawrence.jones@eds.com>
6733
6734 * checkout.c (safe_location): Remove unused variable.
6735 * hash.c (walklist, printnode, printlist): Use %p to print pointers
6736 if available, convert to unsigned long if not.
6737 * recurse.c (start_recursion, do_recursion): Ditto.
6738 * tag.c (rtag_proc, tag_check_valid): Ditto.
6739
6740 2003-05-18 Mark D. Baushke <mdb@gnu.org>
6741
6742 * Makefile.am (localcheck,remotecheck): Use cvs$(EXEEXT) not cvs.
6743 * Makefile.in: Regenerated.
6744 * sanity.sh (status-init-7): Use ${PROG} not cvs in tests.
6745 (branch-after-import-5): Ditto.
6746 (keywordname-update-11): Ditto.
6747
6748 2003-05-18 Larry Jones <lawrence.jones@eds.com>
6749
6750 * server.h (kserver_authenticate_connection,
6751 pserver_authenticate_connection): Add prototypes.
6752
6753 * client.c (update_entries): Set file's access time to the current
6754 time rather than the same as the modification time.
6755 * vers_ts.c (Version_TS): Ditto.
6756
6757 2003-05-09 Derek Price <derek@ximbiot.com>
6758
6759 * client.c: #ifdef inclusion of gssapi-client.h.
6760 * server.c: Ditto.
6761 (Reported by Boyd Lynn Gerber <gerberb@zenez.com>.)
6762
6763 2003-05-09 Derek Price <derek@ximbiot.com>
6764
6765 * client.h: Move some of the GSSAPI stuff...
6766 * gssapi-client.h: ...to this new file.
6767 * client.c (start_server): Use new initialize_gssapi_buffers().
6768 (*): Move most of the GSSAPI stuff from here and...
6769 * server.c (*): ...here...
6770 * gssapi-client.c: ...to this new file.
6771 * Makefile.am (EXTRA_cvs_SOURCES, cvs_DEPENDENCIES, cvs_LDADD): Support
6772 $(cvs_client_objects).
6773 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6774
6775 * Makefile.in: Regenerated.
6776
6777 2003-05-09 Derek Price <derek@ximbiot.com>
6778
6779 * buffer.c: Reindent some compiler directives in order to make nesting
6780 clearer.
6781
6782 2003-05-08 Derek Price <derek@ximbiot.com>
6783
6784 * client.c (log_buffer*): Move...
6785 * log-buffer.c (log_buffer*): ...to this new file.
6786 * log-buffer.h (setup_logfiles): New file to share prototype.
6787 * Makefile.am: Add log-buffer.c & log-buffer.h.
6788 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6789
6790 * Makefile.in: Regenerated.
6791
6792 2003-05-08 Derek Price <derek@ximbiot.com>
6793
6794 * client.c (init_sockaddr): Move...
6795 * socket-client.c (init_sockaddr): ...here.
6796 * socket-client.h (init_sockaddr): Prototype.
6797 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6798
6799 2003-05-08 Derek Price <derek@ximbiot.com>
6800
6801 * client.c (send_to_server): Move most of the functionality to and
6802 wrap...
6803 (send_to_server_via): ...this new function which accepts the buffer
6804 pointer as an argument.
6805 (read_line): Ditto, but to...
6806 (read_line_via): ...here.
6807 (auth_server): Rename lto_server & lfrom_server to s/^l//. Remove
6808 ugly code which sets the global versions of these variables
6809 temporarily for function calls.
6810 s/send_to_server(/send_to_server_via(to_server,/g,
6811 s/read_line(/read_line(from_server,/g,
6812 Remove emotional FIXME comment to the effect that all this is
6813 necessary.
6814 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6815
6816 2003-05-07 Derek Price <derek@ximbiot.com>
6817
6818 * client.c (from_server, to_server): Rename these global buffer
6819 pointers to...
6820 (global_from_server, global_to_server): ...this in order to avoid
6821 confusion.
6822 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6823
6824 2003-05-07 Derek Price <derek@ximbiot.com>
6825
6826 * client.c (make_bufs_from_fds, connect_to_forked_server,
6827 start_tcp_server): Rename struct buffer ** arguments to s/$/_p/ in an
6828 attempt to denote their pointerness more clearly.
6829 * rsh-client.c (start_rsh_client): Ditto.
6830 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6831
6832 * client.h (make_bufs_from_fds): Sanitize prototype so that the
6833 argument name change doesn't clash.
6834
6835 2003-05-07 Derek Price <derek@ximbiot.com>
6836
6837 * client.h (make_bufs_from_fd): Prototype in order to make available to
6838 rsh-client.c.
6839 * client.c (start_rsh_server): Moved most of the RSH (:ext:) client
6840 stuff to...
6841 * rsh-client.h: ...here...
6842 * rsh-client.c: ...and here.
6843 * Makefile.am (cvs_SOURCES): Add new source files.
6844 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6845
6846 * Makefile.in: Regenerated.
6847
6848 2003-05-06 Derek Price <derek@ximbiot.com>
6849
6850 * client.c (socket_buffer_*): Moved most of the socket stuff to...
6851 * socket-client.h: ...here...
6852 * socket-client.c: ...and here.
6853 * Makefile.am (cvs_SOURCES): Add new source files.
6854 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6855
6856 * Makefile.in: Regenerated.
6857
6858 2003-05-05 Derek Price <derek@ximbiot.com>
6859
6860 * hash.c (findnode): Document behavior of this function when its list
6861 argument is NULL and document this behavior. Remove FIXME comment to
6862 the effect that this is necessary.
6863
6864 2003-05-01 Derek Price <derek@ximbiot.com>
6865
6866 * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
6867 (Report from Jim Salter <jsalterjim@earthlink.net>.)
6868
6869 2003-05-01 Derek Price <derek@ximbiot.com>
6870
6871 * repos.c (Sanitize_Repository_Name): Remove some old comments about
6872 the defunct RELATIVE_REPOS macro.
6873 * server.c (outside_root): Ditto.
6874
6875 2003-04-30 Derek Price <derek@ximbiot.com>
6876
6877 * vers_ts.c (Version_TS): Minor optimization.
6878
6879 2003-04-30 Derek Price <derek@ximbiot.com>
6880
6881 * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
6882
6883 2003-04-30 Derek Price <derek@ximbiot.com>
6884
6885 * commit.c: Free vers in single place
6886 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6887
6888 2003-04-30 Derek Price <derek@ximbiot.com>
6889
6890 * Makefile.am: Get rid of $includeopt, using $CPPFLAGS as intended by
6891 the Autoconf folk.
6892 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
6893
6894 * Makefile.in: Regenerated.
6895
6896 2003-04-30 Derek Price <derek@ximbiot.com>
6897
6898 * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
6899
6900 2003-04-28 Derek Price <derek@ximbiot.com>
6901
6902 * client.c (save_prog): Remove unneeded struct.
6903 (checkin_progs, update_progs): Remove these unneeded globals.
6904 (handle_set_checkin_prog, handle_set_update_prog, do_deferred_progs):
6905 Remove these functions.
6906 (send_repository): Remove checkin and update prog support.
6907 (responses): Remove Set-checkin-prog and Set-update-prog.
6908 (get_responses_and_close): Don't call do_deferred_prog().
6909 * commit.c (commit_usage): Remove reference to -n.
6910 (commit): Don't set and send run_module_prog via -n. Don't run
6911 Checkin.prog or Checkout.prog in local mode.
6912 * modules.c (CVSMODULE_OPTS): Remove -i and -u.
6913 (do_module): Don't process -i and -u options to set checkin and update
6914 progs, respectively.
6915 * server.c (server_prog, serve_checkin_prog, server_update_prog):
6916 Remove unused functions.
6917 (requests): Remove Checkin-prog and Update-prog.
6918 * update.c (update_dirleave_proc): Remove update prog functionality.
6919
6920 * cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
6921 * server.h (server_prog): Remove proto.
6922 (progs): Remove enum.
6923
6924 * sanity.sh (modules5): Remove tests for checkin and update programs.
6925
6926 2003-04-15 Derek Price <derek@ximbiot.com>
6927
6928 * sanity.sh (*): Shrink the yucky case statement using sed's transform
6929 functionality.
6930 (getlongoptarg): Convert this function to only confirm the arg and move
6931 it...
6932 (checklongoptarg): ...here.
6933
6934 2003-04-10 Larry Jones <lawrence.jones@eds.com>
6935
6936 * Makefile.in: Regenerated.
6937
6938 2003-04-04 Larry Jones <lawrence.jones@eds.com>
6939
6940 * sanity.sh (branches4-15): New test.
6941
6942 * error.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
6943 versions < 3.0.
6944
6945 2003-04-03 Derek Price <derek@ximbiot.com>
6946
6947 * Makefile.am (DISTCLEAN_FILES): Move the contents of this variable...
6948 (distclean-local): ...to this target now that Automake supports it.
6949
6950 2003-04-03 Derek Price <derek@ximbiot.com>
6951
6952 * cvs.h: Avoid __pure__ for GCC versions < 2.96 & __malloc__ for GCC
6953 versions < 3.0.
6954
6955 2003-04-02 Larry Jones <lawrence.jones@eds.com>
6956
6957 * update.c (update, update_fileproc, update_filesdone_proc,
6958 update_dirent_proc, update_dirleave_proc): Keep track of whether
6959 a tag is both a revision tag and a branch tag and warn the user.
6960 * sanity.sh (branches4): New tests for above.
6961
6962 2003-04-02 Derek Price <derek@ximbiot.com>
6963
6964 * recurse.c (do_recursion): Use strstr("/./") rather than strchr('.')
6965 to catch only indirections in paths and not directory names with dots
6966 in them.
6967 (Report from Pavel Roskin <proski@gnu.org>.)
6968
6969 * sanity.sh (multiroot): Put a dot in the CVSROOT_DIRNAMEs.
6970 (dottedroot): New test.
6971 (Based on a script from Pavel Roskin <proski@gnu.org>.)
6972
6973 2003-04-01 Derek Price <derek@ximbiot.com>
6974
6975 * sanity.sh (multiroot2-9): Add newly TRACEd parse_cvsroot() to
6976 expected output.
6977
6978 2003-03-31 Derek Price <derek@ximbiot.com>
6979
6980 * rcs.c (freercsnode): Revert an accidental change from the previous
6981 commit.
6982
6983 2003-03-31 Derek Price <derek@ximbiot.com>
6984
6985 * recurse.c (start_recursion): Accept new repository argument so that
6986 the working directory may be tracked by do_recursion without using
6987 xgetwd(), which returned a value different from the one the user
6988 requested when symlinks were in use. Add TRACE. Pass repository_in
6989 to do_recursion() as part of the recursion frame.
6990 (do_recursion): Default srepository to NULL and only set when we set
6991 repository. Keep track of repository using xframe.repository for the
6992 r* commands rather than xgetwd(), which used to break when CVSROOT was
6993 a symlink to a real root.
6994
6995 * cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
6996 (xresolvepath): New proto.
6997 (start_recursion): Add repository to proto.
6998 (*): Define some more abstract TRACE levels.
6999 * update.h (do_update): Add repository argument to proto.
7000
7001 * checkout.c (safe_location): Add more complete header comment. Add
7002 TRACE. Use new xresolvepath() function. Always return true in
7003 client mode since checking our destination path against the CVSROOT
7004 path is usually meaningless in client/server mode.
7005 (checkout_proc): Pass repository to do_update() for later use with
7006 start_recursion().
7007 (*): s/<chdir>/CVS_CHDIR/.
7008 * filesubr.c (xreadlink): #ifdef HAVE_READLINK this function. Add more
7009 complete header comment.
7010 (xresolvepath): New function.
7011 * hash.c (walklist): Add TRACE.
7012 * main.c (main): Don't copy and dispose of CVSRoot_cmdline twice.
7013 * patch.c (patch_proc): Add TRACE. Pass repository to
7014 tag_check_valid() for r* commands.
7015 * root.c (parse_cvsroot): Add TRACE.
7016 * tag.c (rtag_proc): Add TRACE.
7017 (check_fileproc): Ditto.
7018 (tag_check_valid): Ditto.
7019 * update.c (do_update): Accept new repository argument for co.
7020 (update): Pass NULL repository to do_update().
7021
7022 * admin.c (*): Use new definition of start_recursion().
7023 * annotate.c (*): Ditto.
7024 * client.c (*): Ditto.
7025 * commit.c (*): Ditto.
7026 * diff.c (*): Ditto.
7027 * edit.c (*): Ditto.
7028 * lock.c (*): Ditto.
7029 * log.c (*): Ditto.
7030 * patch.c (*): Ditto.
7031 * remove.c (*): Ditto.
7032 * status.c (*): Ditto.
7033 * tag.c (*): Ditto.
7034 * update.c (*): Ditto.
7035 * watch.c (*): Ditto.
7036
7037 * sanity.sh: Add new -l option to test symlinked roots.
7038 (abspath-3.2): Use [a-z]* rather than "checkout".
7039 (check_repository-1): Add server error messages about absolute paths
7040 since the client now skips destination validity checks.
7041 (check_repository-2): Process client error messages about CVSROOT
7042 files being in the way since the client skips destination validity
7043 checks since it should be rare that a client is running in
7044 client/server mode on the server and CVS has no current way to check if
7045 it is runnning on the server.
7046
7047 2003-03-27 Mark D. Baushke <mdb@cvshome.org>
7048
7049 * sanity.sh (rdiff2): Add new test case for SEGV problem reported
7050 against cvs 1.11.5.
7051 (Report from James Cribb)
7052
7053 2003-03-26 Derek Price <derek@ximbiot.com>
7054
7055 * client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
7056 and HAVE_GSSAPI.
7057 * client.h: Ditto. Remove some unecessary server function prototypes.
7058
7059 2003-03-26 Derek Price <derek@ximbiot.com>
7060
7061 * client.c: Include the net headers for HAVE_GSSAPI.
7062 (Report from Jim Salter <jsalterjim@earthlink.net>.)
7063
7064 2003-03-26 Derek Price <derek@ximbiot.com>
7065
7066 * main.c (main): Verify the argument to -z when running without
7067 CLIENT_SUPPORT since Eric Siegerman complained about being bit
7068 by a run of `cvs -z -n up' which parsed the -n as the argument to
7069 -z.
7070 * sanity.sh (opterrmsg): New tests for -z argument checking.
7071
7072 2003-03-26 Larry Jones <lawrence.jones@eds.com>
7073
7074 * main.c (main): Use strtol() instead of atoi() when parsing -z
7075 to detect errors.
7076 (Reported by Eric Siegerman <erics@telepres.com>.)
7077
7078 2003-03-25 Derek Price <derek@ximbiot.com>
7079
7080 * cvs.h: Disable GNU attributes as part of PROTO behavior.
7081 * error.h: Mirror GNU attribute definitions from cvs.h.
7082
7083 2003-03-25 Derek Price <derek@ximbiot.com>
7084
7085 * subr.c (cvs_trace): #ifdef use of server_active.
7086 (Report from Jim Salter <jsalter@proofpoint.com>.)
7087
7088 * cvs.h (xmalloc, xrealloc, xstrdup, parse_cvsroot,
7089 local_cvsroot, normalize_cvsroot): Use GNU attributes.
7090 * error.h (error_exit): Fix PROTO/__attribute__ specification.
7091 * root.c (new_cvsroot_t): Add GNU attribute.
7092
7093 2003-03-24 Derek Price <derek@ximbiot.com>
7094
7095 * Makefile.am: Update copyright notice.
7096
7097 * Makefile.in: Regenerated.
7098
7099 2003-03-24 Larry Jones <lawrence.jones@eds.com>
7100
7101 * server.h (server_clear_template): Add declaration.
7102 (server_template): Add parameter names to prototype.
7103
7104 2003-03-20 Mark D. Baushke <mdb@cvshome.org>
7105
7106 * sanity.sh (env): Try more than one ps command if the first one
7107 fails. This may let the test succeed on more platforms. Also,
7108 keep the ps output that was processed for the error report.
7109
7110 2003-03-19 Mark D. Baushke <mdb@cvshome.org>
7111
7112 * sanity.sh (env): Use 'ps -el' rather than 'ps -l' so that
7113 crontab jobs that might be running these tests without a
7114 controlling terminal work properly.
7115
7116 * client.c (start_rsh_server): Use new definition of RSH_DFLT to
7117 allow "rsh" to be configured to default to "ssh" or some other
7118 local remote transport program.
7119
7120 * Makefile.in: Regenerated.
7121
7122 2003-03-19 Larry Jones <lawrence.jones@eds.com>
7123
7124 * filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
7125 (Patch from Brian Poole <raj@cerias.purdue.edu>.)
7126 * sanity.sh (abspath-4): Update to match.
7127
7128 * filesubr.c (locate_rcs): Fix gcc warning.
7129
7130 2003-03-19 Derek Price <derek@ximbiot.com>
7131
7132 * add.c (add_directory): Only call WriteTemplate when the server is
7133 active.
7134 * create_adm.c (Create_Admin): Don't call WriteTemplate here since
7135 Create_Admin is only called from the client.
7136 * commit.c (commit_dirleaveproc): Don't call WriteTemplate here. I'm
7137 a little confused as to why since update_direntproc works for update.c,
7138 but I can't come up with a test case that fails when this call is
7139 missing. Nor can I come up with a test case that passes when this call
7140 is present and the one in commit_filesdoneproc is removed.
7141 * sanity.sh (template): Tidy, minimize, and add some extra tests.
7142
7143 2003-03-19 Mark D. Baushke <mdb@cvshome.org>
7144
7145 * .cvsignore: Added sanity.config.sh, a new auto-generated file.
7146
7147 * cvs.h (CVS_PID_ENV): New environment variable CVS_PID has the
7148 pid of the parent cvs process.
7149 * main.c (main): Initialize it.
7150 * sanity.sh (env): Test it.
7151
7152 2003-03-19 Derek Price <derek@ximbiot.com>
7153
7154 * sanity.config.sh.in: New file.
7155 * sanity.sh: Source new config file when available. Accept alternate
7156 config file as an argument to a -c option. Accept long options with
7157 arguments.
7158 (getlongoptarg): New function.
7159
7160 * Makefile.in: Regenerated.
7161
7162 2003-03-18 Derek Price <derek@ximbiot.com>
7163
7164 * root.c (parse_root): Add some more comments and expand
7165 #ifdef CLIENT_SUPPORT pragmas. Rearrange sanity checks slightly.
7166
7167 2003-03-18 Derek Price <derek@ximbiot.com>
7168
7169 * main.c (main): Output -R warning in quiet mode and correct spelling
7170 in this warning message.
7171 * sanity.sh (commit-readonlyfs-2r4): Correct cascaded spelling mistake
7172 in test.
7173
7174 2003-03-17 Derek Price <derek@ximbiot.com>
7175
7176 * add.c: Correct comment.
7177 * client.c: Ditto.
7178 * checkin.c (Checkin): Pass work file name to RCS_checkin so that this
7179 function works properly in the case insensitive mode.
7180 * commit.c (checkaddfile): Fix and factor add logic so that the
7181 correct files and directories are created in the case insensitive mode.
7182 Reuse code in RCS_parse() below. This avoids a problem that could
7183 cause corrupted RCS files to be created on an add from a case
7184 insensitive system. Corrupted RCS files could cause later assertion
7185 failures for everyone.
7186 (locate_rcs): Move this function...
7187 * filesubr.c (locate_rcs): ...here and rewrite it.
7188 (fopen_case): Remove this function.
7189 (locate_file_in_dir): New function.
7190 * cvs.h (locate_rcs): Prototype new function.
7191 * rcs.c (RCS_parse): Factor out file location into locate_rcs.
7192
7193 2003-03-17 Mark D. Baushke <mdb@cvshome.org>
7194
7195 * main.c (main): Issue a warning about readonlyfs options unless
7196 quiet or really_quiet is set.
7197 * lock.c (Writer_Lock): Modify readonlyfs error message text.
7198 * sanity.sh (commit-readonlyfs): Adjust test for new messages.
7199
7200 2003-03-17 Larry Jones <lawrence.jones@eds.com>
7201
7202 * server.c (switch_to_user): Add syslog calls for setgid/setuid
7203 failure.
7204
7205 2003-03-16 Mark D. Baushke <mdb@cvshome.org>
7206
7207 * cvs.h (CVSREADONLYFS_ENV): New macro to support new environment
7208 variable "CVSREADONLYFS" for read-only file-system repository mode.
7209 * lock.c (Reader_Lock, Writer_Lock): Add support for new read-only
7210 file-system repository mode.
7211 * main.c (main, opt_usage): Ditto.
7212 * root.c (parse_cvsroot): Ditto.
7213 * sanity.sh (commit-readonlyfs): Test new read-only file-system
7214 repository mode.
7215
7216 2003-03-14 Mark D. Baushke <mdb@cvshome.org>
7217
7218 * server.c (template_proc): Fix broken Template protocol code.
7219 Must call send buf_send_counted() for Template files to avoid
7220 "Protocol error: uncounted data discarded" messages in some
7221 circumstances.
7222 * sanity.sh (template): Test case to verify fix this fix.
7223
7224 2003-03-10 Mark D. Baushke <mdb@cvshome.org>
7225
7226 * cvs.h (WriteTemplate): Add missing prototype.
7227
7228 2003-03-07 Mark D Baushke <mdb@cvshome.org>
7229
7230 * sanity.sh: Fix broken setting of the servercvs variable.
7231
7232 2003-03-07 Derek Price <derek@ximbiot.com>
7233
7234 * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
7235 consistency.
7236
7237 2003-03-07 Derek Price <derek@ximbiot.com>
7238
7239 * sanity.sh (usage): Show users long --help rather than less
7240 informative -h.
7241
7242 2003-03-07 Derek Price <derek@ximbiot.com>
7243
7244 * sanity.sh: Add support for long options.
7245 (exit_usage): Move the actual generation of usage text to...
7246 (usage): ...this new function and improve the usage message.
7247 (exit_help): New function.
7248
7249 2003-03-07 Mark D. Baushke <mdb@cvshome.org>
7250
7251 * sanity.sh: Drop the clientcvs option. Add usage info for
7252 the -s servercvs option.
7253
7254 2003-03-07 Larry Jones <lawrence.jones@eds.com>
7255
7256 * commit.c (check_fileproc): Remove unused variables.
7257
7258 * patch.c (patch): Pass local to do_module so that -l actually works.
7259 (Reported by John Coers <coers@intrinsity.com>.)
7260 (patch_fileproc): Fix uninitialized variables.
7261 * sanity.sh: Define a DATE pattern for rdiff and use it.
7262 (basic2-24a): New test for above.
7263
7264 2003-03-07 Mark D. Baushke <mdb@cvshome.org>
7265
7266 * entries.c (WriteTemplate): New function to control updates to
7267 the CVS/Template file or its removal.
7268 * create_adm.c (Create_Admin): Use the new WriteTemplate function.
7269 * add.c (add_directory): Add a WriteTemplate() call
7270 when a new directory is added to the repository.
7271 * commit.c (commit_filesdoneproc): Ensure that the CVS/Template is
7272 updated at the end of a commit -- mostly to remove it if it is not
7273 relevant.
7274 (commit_dirleaveproc): Ensure that the CVS/Template gets updated
7275 when the directory is left.
7276 * update.c (update_dirent_proc): Update CVS/Template file.
7277 * server.c (server_clear_template): New protocol response to
7278 remove existing CVS/Template files.
7279 * client.c (clear_template): New function to remove or truncate a
7280 CVS/Template file.
7281 (handle_clear_template): New function. Handle Clear-template
7282 protocol response message.
7283 (save_prog): Add new Clear-template response line.
7284 * sanity.sh (template): Test the CVS/Template creation with
7285 the remote protocol. Nothing gets created locally.
7286 (multiroot2): Fix for minor changes to trace output.
7287 (getopts): Allow tests to be run with specified client and server
7288 cvs commands to allow for interoperatbility testing.
7289 (check_keep): New shell function for --keep processing.
7290
7291 2003-03-06 Derek Price <derek@ximbiot.com>
7292
7293 * subr.c (file_has_conflict): New file.
7294 * commit.c (check_fileproc): Factor code into new file_has_conflict()
7295 function.
7296 * update.c (update_fileproc): Ditto.
7297 * status.c (status_fileproc): Use new file_has_conflict() function.
7298 (Report from Bernd Kuemmerlen <bkuemmer@mevis.de>.)
7299
7300 * sanity.sh (status): New test for same.
7301
7302 2003-03-06 Larry Jones <lawrence.jones@eds.com>
7303
7304 * sanity.sh (branches3-4): Set and export CVS_LOCAL_BRANCH_NUM
7305 to be sure it really gets into the environment, then unset it
7306 when finished (ala CVSWRAPPERS et al).
7307
7308 2003-03-03 Mark D. Baushke <mdb@cvshome.org>
7309
7310 * sanith.sh (branches3): Localize the setting of
7311 the CVS_LOCAL_BRANCH_NUM environment variable.
7312
7313 * rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
7314 Port of the FreeBSD hack for setting the next magic branch number
7315 to be used. The original patch was written by Peter Wemm
7316 <peter@FreeBSD.org> and may be found by visiting the URL:
7317 http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
7318 Implement a horrible (but simple) hack to allow some control over the
7319 branch number that is assigned. This is specifically to support the
7320 local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
7321 (say) 1000 then branches the local repository, the revision numbers
7322 will look like 1.66.1000.xx. This is almost a dead-set certainty that
7323 there will be no conflicts with version numbers.
7324 (This needs to be something more than an option to 'cvs tag' or 'cvs
7325 rtag' as various parts of cvs "know" how to automatically branch files
7326 (eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
7327 * sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
7328
7329 2003-03-04 Derek Price <derek@ximbiot.com>
7330
7331 * history.c (history_write): Remove unneeded O_CREAT in the call to
7332 open() since we abort a few lines earlier if the file doesn't exist.
7333 Add a comment to the effect that this is not the optimal method of
7334 doing things and needs fixed.
7335
7336 2003-02-28 Derek Price <derek@ximbiot.com>
7337
7338 * root.c (parse_cvsroot): Set no_password for :gserver: and :kserver:
7339 as tokens should already be obtained via external sources.
7340 * update.c (update_fileproc): Remove redundant code.
7341
7342 2003-02-28 Larry Jones <lawrence.jones@eds.com>
7343
7344 * lock.c (set_lock): If possible, try a short wait with no message
7345 before calling lock_wait() to optimize master lock contention.
7346
7347 2003-02-26 Larry Jones <lawrence.jones@eds.com>
7348
7349 * checkout.c (checkout): Send "--" before file names.
7350 * sanity.sh (spacefiles): Remote now works just like local.
7351
7352 2003-02-25 Derek Price <derek@ximbiot.com>
7353
7354 * sanity.sh (rcs4): Use UTC to work across timezones.
7355
7356 2003-02-25 Derek Price <derek@ximbiot.com>
7357
7358 * rcs.c (RCS_getdate): Fix a bug that shows up when checking out
7359 files by date with the "-D date" command line option. There is
7360 code in the original to handle a special case. If the date search
7361 finds revision 1.1 it is supposed to check whether revision
7362 1.1.1.1 has the same date stamp, which would indicate that the
7363 file was originally brought in with "cvs import". In that case it
7364 is supposed to return the vendor branch version 1.1.1.1.
7365
7366 However, there was a bug in the code. It actually compares the date
7367 of revision 1.1 for equality with the date given on the command
7368 line -- clearly wrong. This commit fixes the coding bug.
7369
7370 Note: There is an additional bug which is _not_ fixed in this
7371 commit. The date comparison should not be a strict equality test.
7372 It should allow a fudge factor of, say, 2-3 seconds. Old versions
7373 of CVS created the two revisions with two separate invocations of
7374 the RCS "ci" command. We have many old files in the tree in which
7375 the dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
7376
7377 This bug was discovered and fixed for FreeBSD cvs. See v 1.21 of
7378 <http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff>
7379 for more information.
7380
7381 * sanity.sh (rcs4): Tests for same.
7382 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
7383
7384 2003-02-25 Derek Price <derek@ximbiot.com>
7385
7386 * logmsg.c (logfile_write): Do not pass a NULL pointer to
7387 fprintf() when we have an empty log message.
7388 * sanity.sh (editor): Add new tests to verify correct behavior of
7389 empty log messages.
7390 (Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
7391 Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
7392
7393 2003-02-25 Derek Price <derek@ximbiot.com>
7394
7395 * cvs.h (user_admin_options): Rename to...
7396 (UserAdminOptions): ...this to match the convention set by
7397 of RereadLogAfterVerify.
7398 * admin.c (admin): Ditto.
7399 * parseinfo.c (parse_config): Ditto.
7400
7401 * mkmodules.c (config_contents): Update with UserAdminOptions
7402 information.
7403
7404 2003-02-25 Derek Price <derek@ximbiot.com>
7405
7406 * cvsbug.in: Import use of mktemp function from RedHat 8.0's
7407 CVS 1.11.2 RPM. Use new MKTEMP configure variable. Use new
7408 SENDMAIL from configure.
7409
7410 * Makefile.in: Regenerated.
7411
7412 2003-02-25 Derek Price <derek@ximbiot.com>
7413
7414 * cvs.h (user_admin_options): New global config option.
7415 * admin.c (admin): Handle user_admin_options.
7416 * parseinfo.c (parse_config): Handle UserAdminOptions.
7417 (Original patch from Dan Peterson <dbpete@aol.com>.)
7418
7419 2003-02-25 Derek Price <derek@ximbiot.com>
7420
7421 * watch.c (watch_usage): Use {} rather than () for literals.
7422
7423 2003-02-21 Larry Jones <lawrence.jones@eds.com>
7424
7425 * server.c (switch_to_user): Update comment, change error message
7426 so it's not an exact duplicate of the one in check_password.
7427 (check_repository_password): Add syslog call for password mismatches.
7428 (check_password): Add syslog call for password mismatches, rearrange
7429 code to simplify and eliminate redundancy.
7430 (pserver_authenticate_connection): Remove syslog call, now done by
7431 lower-level routines.
7432
7433 2003-02-19 Larry Jones <lawrence.jones@eds.com>
7434
7435 * sanity.sh (admin-10): Add test for repository files not in
7436 working directory.
7437
7438 * admin.c (admin_fileproc): Fix crash when no rcs file, return
7439 failure status for bogus files.
7440 * sanity.sh (admin-4a): Test for above.
7441 (Original patch submitted by Mark D. Baushke <mdb@cvshome.org>).
7442
7443 2003-02-14 Larry Jones <lawrence.jones@eds.com>
7444
7445 * log.c (log_expand_revlist): Fix crashes in error cases.
7446 (Reported by Bart Santy <Bart.Santy@switch.be>.)
7447 * sanity.sh (log): New tests for above.
7448
7449 2003-02-14 Derek Price <derek@ximbiot.com>
7450
7451 * rcs.h (RCSNode): Add a field for the original path to print with
7452 error messages.
7453 * rcs.c (RCS_parsercsfile_i): Keep track of the original path for error
7454 messages.
7455 (freercsnode): Free the origpath.
7456
7457 2003-02-14 Derek Price <derek@ximbiot.com>
7458
7459 * watch.c (watch_usage): Make the repeatability of -a part of the
7460 usage spec.
7461
7462 2003-02-14 Derek Price <derek@ximbiot.com>
7463
7464 * watch.c (watch_usage): Mention default for -a. Mention multiple
7465 invocations of -a. Mention -R as default. Use required () rather than
7466 optional [] around watch subcommand list in invocation spec. Use
7467 `path' instead of `file'. Put variable <> around `action' and `path'.
7468
7469 2003-02-12 Derek Price <derek@ximbiot.com>
7470
7471 * main.c (main): Update copyright message to 2003.
7472
7473 2003-02-08 Derek Price <derek@ximbiot.com>
7474
7475 * rcs.c (RCS_checkout): Supply the full function name in the TRACE
7476 output.
7477 * update.c (checkout_file, join_file): Supply tag properly to
7478 RCS_checkout more often.
7479 (patch_file): Ditto. Fill out comments.
7480 * sanity.sh (keyword, keywordname): Some changes to accomodate the fact
7481 that the above changes cause patches generated by patch_file to fail
7482 occassionally.
7483
7484 2003-02-07 Derek Price <derek@ximbiot.com>
7485
7486 * sanity.sh (*): Don't keep running after a test when --keep has been
7487 supplied. That was kind of silly, wasn't it?
7488
7489 2003-02-07 Derek Price <derek@ximbiot.com>
7490
7491 * rcscmds.c (RCS_merge): Add a FIXME.
7492
7493 2003-02-07 Derek Price <derek@ximbiot.com>
7494
7495 * commit.c (checkaddfile): Do not lose the vendor branch when
7496 adding files to a new branch. Avoids extranious conflicts for
7497 future vendor imports. This was found and fixed in FreeBSD cvs.
7498 See http://www.freebsd.org/cgi/query-pr.cgi?pr=4033 for details.
7499 * sanity.sh (branch-after-import): New test.
7500 (Thanks to Mark D Baushke <mdb@cvshome.org> for forwarding the
7501 patch and writing the test cases!)
7502
7503 * sanity.sh (branch-after-import): Misc portablility and standard
7504 changes.
7505
7506 2003-02-07 Derek Price <derek@ximbiot.com>
7507
7508 * add.c: Exercise the pet peeve Karl Fogel, I think, infected me with
7509 about using the word invalid rather than illegal and reserving illegal
7510 for use when actually discussing laws and governmentally enforced
7511 restrictions:
7512 s/illegal/invalid/g;s/legality/validity/g;s/legal/valid/g;
7513 * admin.c: Ditto.
7514 * cvs.h: Ditto.
7515 * expand_path.c: Ditto.
7516 * log.c: Ditto.
7517 * modules.c: Ditto.
7518 * rcs.c: Ditto.
7519 * rcs.h: Ditto.
7520 * repos.c: Ditto.
7521 * root.c: Ditto.
7522 * sanity.sh: Ditto.
7523 * scramble.c: Ditto.
7524 * server.c: Ditto.
7525 * subr.c: Ditto.
7526
7527 2003-02-06 Derek Price <derek@ximbiot.com>
7528
7529 * rcs.c (RCS_getdatebranch): Update header comment to reflect the state
7530 of the docs and the code's operation.
7531
7532 2003-02-06 Derek Price <derek@ximbiot.com>
7533
7534 * client.c: Use the complete path to the CVSADM_TEMPLATE file in
7535 error messages. Remove related FIXME.
7536
7537 2003-02-04 Derek Price <derek@ximbiot.com>
7538
7539 * status.c (status_fileproc): Add a FIXME comment.
7540
7541 2003-02-04 Derek Price <derek@ximbiot.com>
7542
7543 * sanity.sh (conflicts2- c. 142d): New test for double add and two
7544 attempted commits of files with the same name. Fill out some comments
7545 and change one FIXME to a FIXCVS THEN FIXME.
7546
7547 2003-02-03 Derek Price <derek@ximbiot.com>
7548
7549 * client.c (start_Server): Send multiple trace options when
7550 necessary.
7551 * server.c (server): Update trace option processing to accept multiple
7552 -t arguments.
7553 * *: Use new TRACE macro.
7554
7555 2003-02-02 Larry Jones <lawrence.jones@eds.com>
7556
7557 * error.c: Update to match error.h.
7558
7559 * cvs.h (cvs_trace): Add attribute for GNU printf format checking.
7560 * error.h: Use same check for prototypes as cvs.h. Use PROTO
7561 macro rather than #ifdef for error and error_exit.
7562
7563 2003-02-01 Larry Jones <lawrence.jones@eds.com>
7564
7565 * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
7566 (Patch from Johannes Grødem <johs+n@ifi.uio.no>.)
7567
7568 2003-02-01 Derek Price <derek@ximbiot.com>
7569
7570 * lock.c: Remove extra line feed on TRACE output.
7571
7572 2003-01-31 Derek Price <derek@ximbiot.com>
7573
7574 * cvs.h: Move header includes in from...
7575 * error.c: ...here. Remove checks for definition of vprintf().
7576 Since our error() function was making assumptions about the definition
7577 of VA_START, we must not have been compiling on platforms without
7578 vprintf for quite awhile and I've heard no complaints.
7579 (fperrmsg): Assume vprintf().
7580 * subr.c (cvs_trace): Don't assume ANSI C function declarations.
7581
7582 2003-01-31 Derek Price <derek@ximbiot.com>
7583
7584 * main.c (main): Allow multiple -t options.
7585 (opt_usage): Correct usage.
7586 * cvs.h (TRACE): New macro.
7587 * subr.c (cvs_trace): New function.
7588 (Thanks to the team at the CVSNT project.)
7589
7590 * lock.c (*): Use new TRACE macro.
7591
7592 2003-01-31 Derek Price <derek@ximbiot.com>
7593
7594 * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
7595
7596 2003-01-30 Derek Price <derek@ximbiot.com>
7597
7598 * sanity.sh (keywordname): New test.
7599
7600 2003-01-23 Larry Jones <lawrence.jones@eds.com>
7601
7602 * diff.c (diff_fileproc): Restructure code to simplify and eliminate
7603 redundant tests.
7604
7605 * server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
7606 coding test for core file.
7607
7608 2003-01-21 Larry Jones <lawrence.jones@eds.com>
7609
7610 * root.c (method_name): Redefine as a 2D array.
7611 * root.h (method_name): Ditto.
7612
7613 2003-01-21 Jim Meyering <jim@meyering.net>
7614
7615 * add.c (add): Rename local-shadowing `i' to `j'.
7616
7617 * root.c (method_names): Declare to be a const array of const strings.
7618 (Name_Root): Save errno so it doesn't get clobbered
7619 by the intervening error call.
7620 Use getline's return value, mainly to save a call to strrchr.
7621
7622 2003-01-20 Larry Jones <lawrence.jones@eds.com>
7623
7624 * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
7625 it parses correctly.
7626 (Reported by Andres Bertens <abertens@entelchile.net>.)
7627
7628 2003-01-15 Karl Fogel <kfogel@collab.net>
7629
7630 * server.c (dirswitch): Don't free dir_name until right before
7631 allocating it again. This removes a potential double-free
7632 problem, whereby this function could free dir_name and then
7633 immediately return due to invalid directory syntax (without ever
7634 reassigning dir_name), then reenter and free dir_name again.
7635
7636 Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
7637
7638 2003-01-08 Larry Jones <lawrence.jones@eds.com>
7639
7640 * client.c (update_entries): Only "0" is a special version number;
7641 other numbers starting with 0 (like 0.1) are normal version numbers.
7642 * commit.c (find_fileproc): Ditto. Also reorganize the code to
7643 simplify the conditions.
7644 (Reported by Michele Zamparelli <michele.zamparelli@eso.org>.)
7645
7646 2003-01-02 Larry Jones <lawrence.jones@eds.com>
7647
7648 * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
7649
7650 2002-12-27 Derek Price <derek@ximbiot.com>
7651
7652 * admin.c: s/LOCK_(NONE|WRITE|READ)/CVS_$&/g; since the definition of
7653 LOCK_WRITE clashes with a definition in objidl.h on Windoze platforms.
7654 * annotate.c: Ditto.
7655 * client.c: Ditto.
7656 * commit.c: Ditto.
7657 * cvs.h: Ditto.
7658 * diff.c: Ditto.
7659 * edit.c: Ditto.
7660 * lock.c: Ditto.
7661 * log.c: Ditto.
7662 * patch.c: Ditto.
7663 * recurse.c: Ditto.
7664 * remove.c: Ditto.
7665 * status.c: Ditto.
7666 * tag.c: Ditto.
7667 * update.c: Ditto.
7668 * watch.c: Ditto.
7669 * myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
7670 Windoze.
7671 (Thanks to Stephane Rouleau <s.rouleau@videotron.ca>,
7672 Cristopher Seawood <cls@seawood.org>, and
7673 Frederico Costa <frederico.costa@tiscali.no> for all their hints,
7674 tips, and patches for this problem.)
7675
7676 2002-12-20 Derek Price <derek@ximbiot.com>
7677
7678 * client.c (send_a_repository): Suppress a warning under Windoze.
7679
7680 2002-12-19 Derek Price <derek@ximbiot.com>
7681
7682 * Makefile.am: Remove reference to options.h.
7683 * cvs.h: Ditto.
7684 * options.h: Remove this obsolete file.
7685 * sanity.sh: Remove comment about external diffs causing tests to fail
7686 since CVS hasn't used external diffs in years.
7687
7688 * Makefile.in: Regenerated.
7689
7690 2002-12-16 Derek Price <derek@ximbiot.com>
7691
7692 * admin.c: Disable cvsadmin group checking on the client.
7693 (Reported by Dan Peterson <dbpete@aol.com>.)
7694
7695 2002-12-06 Derek Price <derek@ximbiot.com>
7696
7697 * buffer.c: Replace calls to malloc with calls to xmalloc and calls to
7698 realloc with calls to xrealloc.
7699 * parseinfo.c: Ditto.
7700 * root.c: Ditto.
7701 * server.c: Ditto.
7702 * zlib.c: Ditto.
7703 * scramble.c: Change some comments to refer to xmalloc rather than
7704 malloc.
7705 (Reported by Dan Peterson <dbpete@aol.com>.)
7706
7707 2002-12-04 Derek Price <derek@ximbiot.com>
7708
7709 * options.h: Remove CVS_ADMIN_GROUP.
7710
7711 2002-12-02 Larry Jones <lawrence.jones@eds.com>
7712
7713 * commit.c (commit): Strip leading zeros from numeric revision
7714 in addition to trailing dots.
7715 (Reported by Peter Meszaros <pme@prolan.hu>.)
7716
7717 2002-11-22 Larry Jones <lawrence.jones@eds.com>
7718
7719 * sanity.sh: Note that the tests run for a long time.
7720
7721 * checkout.c (safe_location): Use xstrdup, not strdup.
7722 (Reported by Terrence Enger <tenger@iSeries-guru.com>.)
7723
7724 2002-11-19 Larry Jones <lawrence.jones@eds.com>
7725
7726 * log.c (log_expand_revlist): Fix cross-branch correction code.
7727
7728 * sanity.sh: Set $LANG for systems that ignore $LC_ALL.
7729 (rcs2-7): Change date offset from 100 months to 96 months to reduce
7730 periodic problems with invalid dates.
7731
7732 2002-11-12 Derek Price <derek@ximbiot.com>
7733
7734 * sanity.sh (rcslib-symlink): Use rm -f rather than a simple rm when
7735 removing links because under some configurations of RH Linux 8.0 the
7736 script pauses to ask for removal approval.
7737
7738 2002-11-08 Derek Price <derek@ximbiot.com>
7739
7740 * sanity.sh (importc): Update the use of the touch command to be
7741 compliant with POSIX 1003.1-2001, SUS2, and SUS3 now that GNU touch
7742 supports this. If this breaks any test platforms we should test
7743 the behavior of touch like we do for other tools.
7744
7745 2002-11-03 Derek Price <derek@ximbiot.com>
7746
7747 * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
7748
7749 2002-11-03 Derek Price <derek@ximbiot.com>
7750
7751 * sanity.sh (rcs2-7): Notate with three more failure dates.
7752
7753 2002-10-25 Derek Price <derek@ximbiot.com>
7754
7755 * root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
7756 more appropriate calls to error_exit().
7757 * server.c: Ditto.
7758 * tag.c: Ditto.
7759
7760 2002-10-24 Derek Price <derek@ximbiot.com>
7761
7762 * buffer.c (stdio_buffer_shutdown): Remove the getc() call used to
7763 detect spurious output from clients since getc() would sometimes
7764 block and hang indefinately if the client kept the conection open but
7765 sent no data. Bug reports state that this hapened frequently with
7766 older clients connecting to 1.11.2 servers, especially when
7767 compression is enabled.
7768 (Original report from Mark D. Baushke <mdb@juniper.net>.
7769 Original patch from Ralf S. Engelschall <rse@engelschall.com>
7770 via Peter Wemm <peter@freebsd.org>.)
7771
7772 2002-10-05 Larry Jones <lawrence.jones@eds.com>
7773
7774 * recurse.c (start_recursion, do_recursion): Allow write locking
7775 in addition to read locking. Change all callers.
7776 * cvs.h: Change prototype to match, add lock types.
7777 * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Have start_recursion
7778 use write locks rather than calling lock_dir_for_write to avoid deadly
7779 embrace.
7780
7781 2002-10-04 Larry Jones <lawrence.jones@eds.com>
7782
7783 * client.c (get_responses_and_close, connect_to_pserver): Set
7784 to_server and from_server to NULL after freeing.
7785 * main.c (main): Clear server_active when finished. Also neaten
7786 up the SERVER_SUPPORT ifdef's.
7787 * server.c (do_cvs_command): Set protocol_inbuf, stderrbuf, and
7788 stdoutbuf to NULL after freeing.
7789 (server_cleanup): Free buf_from_net and buf_to_set and set to NULL.
7790 Also reset error_use_protocol.
7791 (server): Don't SIG_register server_cleanup. main_cleanup (which
7792 is already registered) outputs a fatal error which causes it to
7793 be called; registering it directly results in it being called twice.
7794 (cvs_output): Don't try to use buf_to_net or protocol if they're NULL.
7795
7796 2002-10-03 Larry Jones <lawrence.jones@eds.com>
7797
7798 * lock.c (readers_exist): Ignore our own read lock, if any, to
7799 allow upgrading an existing read lock to a write lock.
7800 * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Rather than
7801 locking the entire tree, have start_recursion establish read
7802 locks and then upgrade the read lock to a write lock (so only
7803 one directory is locked at a time).
7804
7805 2002-09-27 Larry Jones <lawrence.jones@eds.com>
7806
7807 * add.c (add): Send "--" before file names.
7808 * admin.c (admin): Ditto.
7809 * annotate.c (annotate): Ditto.
7810 * commit.c (commit): Ditto.
7811 * diff.c (diff): Ditto.
7812 * edit.c (watch_onoff, editors): Ditto.
7813 * log.c (cvslog): Ditto.
7814 * remove.c (cvsremove): Ditto.
7815 * status.c (cvsstatus): Ditto.
7816 * tag.c (cvstag): Ditto.
7817 * update.c (update): Ditto.
7818 * watch.c (watch_addremove, watchers): Ditto.
7819
7820 * sanity.sh (client-9): Update to match.
7821
7822 2002-09-24 Derek Price <derek@ximbiot.com>
7823
7824 * options.h: Remove prototype of STDC exit() function. If this breaks
7825 a build, this should be detected in configure.in somehow rather than
7826 restoring the line to this file.
7827
7828 2002-09-24 Derek Price <derek@ximbiot.com>
7829
7830 * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
7831
7832 2002-09-24 Derek Price <derek@ximbiot.com>
7833
7834 * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
7835
7836 2002-09-24 Derek Price <derek@ximbiot.com>
7837
7838 * options.h: Move definition of UMASK_DFLT into configure.in.
7839
7840 2002-09-24 Derek Price <derek@ximbiot.com>
7841
7842 * Makefile.in: Regenerated using Automake 1.6.3.
7843
7844 2002-09-24 Larry Jones <lawrence.jones@eds.com>
7845
7846 * filesubr.c, history.c, import.c, rcs.c, update.c: Use
7847 HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV instead of
7848 the obsolete HAVE_ST_BLKSIZE and HAVE_ST_RDEV.
7849
7850 2002-09-24 Derek Price <derek@ximbiot.com>
7851
7852 * options.h: Move definition of TMPDIR_DFLT into configure.in.
7853
7854 2002-09-24 Derek Price <derek@ximbiot.com>
7855
7856 * options.h: Move defininition of EDITOR_DFLT into configure.in.
7857
7858 * Makefile.in: Regenerated.
7859
7860 2002-09-23 Jim Meyering <meyering@lucent.com>
7861
7862 If `cvs -d REPO commit ...' was used to override CVS/Root,
7863 then modified files in the directory from which cvs is invoked
7864 would not be committed.
7865 * client.c (arg_should_not_be_sent_to_server): The above would happen
7866 because this function would throw out a file name when CVS/Root
7867 did not match the current server. Fix by allowing the command-line-
7868 specified repository to take precedence over the value returned
7869 by Name_Root. Patch by Simon Walton <simonw@lucent.com>.
7870 * sanity.sh (commit-d): New tests for the above.
7871 Patch by Simon Walton <simonw@lucent.com>.
7872
7873 2002-09-20 Derek Price <derek@ximbiot.com>
7874
7875 * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
7876 and SERVER_LO_WATER into configure.in.
7877
7878 2002-09-20 Derek Price <derek@ximbiot.com>
7879
7880 * options.h: Move definition of PATCH_PROGRAM to configure.in.
7881
7882 2002-09-18 Larry Jones <lawrence.jones@eds.com>
7883
7884 * client.c (call_in_directory): Don't create admin directory when
7885 exporting into an existing directory.
7886 (Reported by Jens Engel <Jens.Engel@marconi.com>.)
7887 * sanity.sh (basic2): New tests for above.
7888
7889 2002-09-16 Jim Meyering <meyering@lucent.com>
7890
7891 * server.c (do_cvs_command): Move declarations of locals, timeout and
7892 timeout_ptr, `up', out of enclosing `#ifdef SERVER_FLOWCONTROL' block.
7893 Otherwise, this file would not compile with SERVER_FLOWCONTROL
7894 turned off. Patch by Ed Santiago <esm@ascend.com>.
7895
7896 2002-09-15 Larry Jones <lawrence.jones@eds.com>
7897
7898 * myndbm.c (mydbm_open): Open the file read/write rather than read-
7899 only if that's what the user asked for to ensure that the later open
7900 for write will succeed.
7901 (Patch submitted by Josh Lehan <cvs@krellan.com>.)
7902
7903 2002-08-28 Larry Jones <lawrence.jones@eds.com>
7904
7905 * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
7906 (Reported by Eric Siegerman <erics@telepres.com>.)
7907
7908 2002-08-16 Derek Price <derek@ximbiot.com>
7909
7910 * create_adm.c (Create_Admin): Assume RELATIVE_REPOS is set.
7911 * server.c (outside_root): Add comment.
7912 * options.h: Remove RELATIVE_REPOS & CVS_BADROOT.
7913 * sanity.sh: Remove a lot of !RELATIVE_REPOS cruft from tests.
7914
7915 2002-08-14 Derek Price <oberon@umich.edu>
7916
7917 * server.c (server): Dispose of the correct pointer. Tidy comment.
7918
7919 2002-08-13 Derek Price <oberon@umich.edu>
7920
7921 * client.c (get_cvs_port_number): Fix typo in comment. Add comments.
7922 * server.c (server): Fix a FIXME. Remove an errant "const" directive.
7923 Remove some redundant memory allocation and error handling code.
7924
7925 2002-08-08 Derek Price <oberon@umich.edu>
7926
7927 * import.c (import): Surrounded `server_active' with
7928 #ifdef SERVER_SUPPORT/#endif.
7929 * commit.c (commit_fileproc, commit_direntproc): Likewise.
7930 (Patch from John Tytgat <John.Tytgat@aaug.net>.)
7931
7932 2002-07-31 Derek Price <oberon@umich.edu>
7933
7934 * filesubr.c: Add a line so VIM can determine tab stops and shift widths.
7935 * root.c: Ditto.
7936 * (parse_cvsroot): Add comments and tidy slightly.
7937
7938 2002-07-31 Derek Price <oberon@umich.edu>
7939
7940 * sanity.sh: Add another date to the comment about rcs2-7 failing.
7941
7942 2002-07-26 Jim Meyering <meyering@lucent.com>
7943
7944 * commit.c (find_fileproc): When committing in client mode,
7945 arrange to fail if a `cvs add'ed file no longer exists in the
7946 working directory.
7947 * sanity.sh (commit-add-missing): New test for above.
7948
7949 2002-07-25 Larry Jones <lawrence.jones@eds.com>
7950
7951 * sanity.sh: Set $TMPDIR if it's not already set and use it rather
7952 than /tmp for the expected server temp directory path.
7953
7954 2002-07-09 Larry Jones <lawrence.jones@eds.com>
7955
7956 * vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
7957 struct_tm copying.
7958
7959 * lock.c (lock_wait, lock_obtained): Display time in UTC if possible
7960 to reduce confusion in client/server mode.
7961 (Original patch from Eduardo Perez Ureta <eperez@it.uc3m.es>.)
7962
7963 2002-06-26 Larry Jones <lawrence.jones@eds.com>
7964
7965 * tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
7966 is also a valid status.
7967 (Reported by David Everly <David.Everly@wcom.com>.)
7968 * sanity.sh (tagc): New tests for above.
7969
7970 2002-06-18 Larry Jones <lawrence.jones@eds.com>
7971
7972 * update.c (patch_file): Don't patch if diff bigger than file.
7973 Don't bother adjusting the permission on the diff output if
7974 we're not going to use it.
7975
7976
7977 2002-06-18 Derek Price <oberon@umich.edu>
7978
7979 * server.c: Handle HPUX password expiration fields in the passwd
7980 string in case we are set up on a server with NIS passwords served
7981 from HPUX.
7982 (Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
7983
7984 2002-06-17 Larry Jones <lawrence.jones@eds.com>
7985 and Jonathan Kamens <jik@kamens.brookline.ma.us>
7986
7987 * commit.c (commit_fileproc, commit_direntproc): Don't try to call
7988 an editor to get the log message if running as a server. Instead,
7989 just use an empty log message.
7990 * import.c (import): Ditto.
7991
7992 * import.c (import): In client mode, always send a message to the
7993 server, even if it's empty (this parallels a change made by Larry
7994 Jones to commit.c on May 7).
7995
7996 2002-05-31 Larry Jones <lawrence.jones@eds.com>
7997
7998 * rcs.c: Conditionally define MAP_FAILED for old systems that don't
7999 have it in <mman.h>.
8000 (Reported by jeremy brand <jeremy@earth.care2.com>.)
8001
8002 2002-05-24 Larry Jones <lawrence.jones@eds.com>
8003
8004 * rcscmds.c (diff_exec): Add a -- before the first file name just
8005 in case it looks like an option.
8006 (Reported by Zooko <zooko@zooko.com>.)
8007
8008 * rcscmds.c (diff_execv): Remove -- same as diff_exec. Change
8009 only caller.
8010 * cvs.h: Ditto.
8011
8012 2002-05-23 Larry Jones <lawrence.jones@eds.com>
8013
8014 * cvs.h (strcat_filename_onto_homedir): Make arguments const.
8015 * filesubr.c (strcat_filename_onto_homedir): Make arguments const,
8016 move more code here from callers, change all callers.
8017
8018 2002-05-22 Derek Price <oberon@umich.edu>
8019
8020 * cvs.h: Add prototype for this...
8021 * filesubr.c (strcat_filename_onto_homedir): new function.
8022 * login.c (): Use new function.
8023
8024 * cvsrc.c (read_cvsrc): Use new function due to problems on VMS.
8025 * ignore.c (ign_setup): Ditto.
8026 * wrapper.c (wrap_setup): Ditto.
8027 (Original patch from Karsten Spang <ksp@dannet.dk>.)
8028
8029 2002-05-21 Larry Jones <lawrence.jones@eds.com>
8030
8031 * rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
8032 and add a similar assertion for ptrend.
8033 (Reported by Rebecca Young <raygirl@cvshome.org>.)
8034 (rcsbuf_fill): Remove redundant code.
8035
8036 2002-05-20 Derek Price <oberon@umich.edu>
8037
8038 * buffer.h: New prototype for...
8039 * buffer.c (stdio_buffer_get_file): this new function to abstract
8040 access to a buffer's file descriptor.
8041 * client.c (auth_server): Use the new function.
8042 (Original patch from Jonathan Kamens <jik@kamens.brookline.ma.us>.)
8043
8044 2002-05-20 Derek Price <oberon@umich.edu>
8045
8046 * main.c (main): Add 2002 to the copyright years output with the
8047 version string.
8048
8049 2002-05-15 Larry Jones <lawrence.jones@eds.com>
8050
8051 * log.c (log_parse_list): Fix off-by-one error which caused
8052 incorrect handling of 'cvs log -wuser1,user2 foo.c' command.
8053 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>,
8054 reported by Alex Morozov <morozov@novosoft.ru>.)
8055
8056 2002-05-09 Larry Jones <lawrence.jones@eds.com>
8057
8058 * login.c (password_entry_operation): Get cvsroot_canonical before
8059 trying to read the user's password file so we have it even if the
8060 file doesn't exist.
8061 (Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
8062
8063 2002-05-08 Derek Price <oberon@umich.edu>
8064
8065 * Makefile.am (cvs_SOURCES): Add options.h explicitly - since we
8066 stopped generating it dynamically, Automake stopped noticing it and
8067 including it in dists. See TODO item #214 for notes.
8068
8069 2002-05-08 Derek Price <oberon@umich.edu>
8070
8071 * cvs.h: Use the HAVE_CONFIG_H define.
8072
8073 2002-05-07 Larry Jones <lawrence.jones@eds.com>
8074
8075 * filesubr.c (isaccessible): Set errno before returning failure
8076 in the SETXID_SUPPORT code.
8077
8078 * logmsg (do_verify): Avoid even more work if there's no verifymsg
8079 script to run.
8080
8081 * logmsg: Use fputs/putc rather than fprintf where appropriate.
8082 (do_verify): Run the verifymsg script even if there's no log
8083 message. (Reported by Andy Baker <Andy.Baker2@t-mobile.co.uk>.)
8084 Don't reread the log message unless a verifymsg script was run.
8085
8086 * commit.c (commit): Always send -m to the server, even if there's
8087 no message.
8088
8089 * create_adm.c (Create_Admin): Add dotemplate parameter to trace.
8090 Remove unreachable code.
8091
8092 2002-05-03 Larry Jones <lawrence.jones@eds.com>
8093
8094 * server.c (serve_watch_on, serve_watch_off, serve_watch_add,
8095 serve_watch_remove): Just pass "watch" as the command name
8096 to do_cvs_command to avoid unknown command errors.
8097 (Reported by Gary Hennigan <gary@ieee.org>.)
8098
8099 * rcs.c (RCS_checkin): Fix bad call to error () in buggy
8100 PRESERVE_PERMISSIONS code.
8101 (rcs_internal_unlockfile): Include current value of errno in error
8102 message even though it may well be irrelevant (it's still better
8103 than nothing).
8104
8105 2002-05-02 Derek Price <oberon@umich.edu>
8106
8107 * .cvsignore: Remove lines for files obsoleted by new autotools.
8108
8109 2002-05-02 Derek Price <oberon@umich.edu>
8110
8111 * stamp-h2.in: Remove this uneeded file.
8112
8113 2002-05-01 Derek Price <oberon@umich.edu>
8114
8115 * options.h.in: Move to...
8116 * options.h: here.
8117
8118 2002-04-30 Derek Price <oberon@umich.edu>
8119
8120 * version.h.in: Remove this file.
8121 * version.h: Ditto.
8122
8123 * Makefile.am: Remove references to version.h.
8124 * cvs.h: Use <> rather than "" around the config.h #include. I didn't
8125 quite bother to understand why, but autoconf recommends it.
8126 * cvsbug.in: Use PACKAGE_BUGREPORT defined by configure for the bug
8127 report email address.
8128 * version.c (version): Use PACKAGE_STRING defined in config.h instead
8129 of the version_string that used to be defined in version.h.
8130
8131 * Makefile.in: Regenerated with automake 1.6.
8132
8133 2002-04-28 Derek Price <oberon@umich.edu>
8134
8135 * cvs.h: Use `"'s around includes when we mean a local file.
8136
8137 2002-04-28 Derek Price <oberon@umich.edu>
8138
8139 * cvs.h: #define new names for functions and variables when they
8140 might conflict with system definitions (namely on Mac OS X 10.1 with
8141 the most recent dev packages - This should be removable after the Mac
8142 dev packages are fixed.).
8143
8144 2002-04-26 Larry Jones <larry.jones@sdrc.com>
8145
8146 * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
8147 (Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
8148
8149 2002-04-19 Larry Jones <larry.jones@sdrc.com>
8150
8151 * log.c (log_expand_revlist): First cut at code to allow logging
8152 between a revision and *any* ancestor, not just one explicitly on
8153 the same branch (e.g., from 1.1 to 4.1.2.3.6.1).
8154
8155 * subr.c (gca): Simplify and optimize.
8156
8157 2002-04-19 Jim Meyering <meyering@lucent.com>
8158 and Ed Santiago <easm@lucent.com>
8159
8160 * classify.c (Classify_File): Fix it so that `cvs update -p -r...'
8161 works, even under some slightly unusual (though perfectly legitimate)
8162 circumstances.
8163 * sanity.sh (update-p): New tests for this.
8164
8165 2002-04-18 Derek Price <oberon@umich.edu>
8166
8167 * sanity.sh: Move test for regex metacharacters in username until
8168 after we're sure we found the version of expr that we're going to use.
8169
8170 2002-04-18 Larry Jones <larry.jones@sdrc.com>
8171
8172 * admin.c (admin_fileproc): Allow admin to be used on RCS files with
8173 no local version (e.g., removed files) like most other subcommands.
8174
8175 * wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
8176
8177 2002-04-18 Derek Price <oberon@umich.edu>
8178
8179 * version.h: Regenerated for 1.11.2.1 version update.
8180
8181 2002-04-17 Derek Price <oberon@umich.edu>
8182
8183 * version.h: Regenerated for 1.11.2.
8184
8185 2002-04-03 Derek Price <oberon@umich.edu>
8186
8187 * stamp-h2.in: Regenerate with recent version of Autoconf.
8188
8189 2002-04-03 Derek Price <oberon@umich.edu>
8190
8191 * sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
8192 to /dev/null to avoid spurious output on some operating systems
8193 (notably Mac OS X).
8194
8195 2002-03-22 Larry Jones <larry.jones@sdrc.com>
8196
8197 * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
8198 of cvs.
8199
8200 2002-03-21 Derek Price <oberon@umich.edu>
8201
8202 * vers_ts.c (time_stamp): Return the timestamp for the newer of the
8203 link and the link's source when the file is a link.
8204 (Patch from RedHat cvs-1.11.1p1-7 SRPM.)
8205
8206 * sanity.sh (rcslib): Test for same.
8207
8208 2002-03-17 Larry Jones <larry.jones@sdrc.com>
8209
8210 * log.c (cvslog, log_fileproc): Add -S option to suppress head or
8211 file name if no revisions selected.
8212 * sanity.sh (log): New tests for above.
8213
8214 2002-03-13 Derek Price <oberon@umich.edu>
8215
8216 * main.c (usg): Correct a spelling mistake in a comment.
8217 (Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
8218
8219 2002-03-09 Larry Jones <larry.jones@sdrc.com>
8220
8221 * import.c (import): Change the suggested merge message to use
8222 rev tags instead of the branch tag with a date.
8223 * sanity.sh (import, importb): Change to match.
8224
8225 * remove.c (remove_fileproc): Disallow removing files with sticky
8226 dates for the same reason we already disallow sticky numeric tags.
8227 * sanity.sh (sticky): New test for above.
8228
8229 2002-02-27 Larry Jones <larry.jones@sdrc.com>
8230
8231 * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
8232
8233 2002-02-26 Larry Jones <larry.jones@sdrc.com>
8234
8235 * diff.c (diff): Remove -V and --paginate options: they aren't valid.
8236 (diff_usage): Document all the diff options.
8237
8238 2002-02-13 Larry Jones <larry.jones@sdrc.com>
8239
8240 * rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
8241 else does and I don't see any documentation that says it should).
8242 (translate_symtag): Break out of loop at end of symbols to prevent
8243 looping forever when tag is "".
8244 (Reported by Alain ENOUT <aln00@udcast.com>
8245 via Eric Gillespie <epg@pretzelnet.org>.)
8246
8247 2002-02-11 Larry Jones <larry.jones@sdrc.com>
8248
8249 * server.c (server_cleanup): Set buf_to_net back to blocking mode
8250 and flush it (in case there are any error messages pending) before
8251 shutting down buf_from_net and again right before shutting it down.
8252
8253 2002-02-08 Larry Jones <larry.jones@sdrc.com>
8254
8255 * main.c (lookup_command_attribute): Throw a fatal error if the
8256 command is not found.
8257 * server.c (server_tag): Use the correct command name.
8258
8259 2002-01-30 Larry Jones <larry.jones@sdrc.com>
8260
8261 * error.h (error_exit): Remove unintended prototype.
8262
8263 * server.c (serve_root): Remove check for impossible condition.
8264 (serve_init): Save and restore current_parsed_root.
8265
8266 2002-01-29 Larry Jones <larry.jones@sdrc.com>
8267
8268 * error.h (error_exit): Declare __noreturn__ to avoid spurious
8269 warnings.
8270
8271 * server.c (serve_root): If the specified root doesn't match the
8272 pserver root, return before changing current_parsed_root to prevent
8273 subsequent commands from accessing an unchecked root directory.
8274 (server_init): Check specified root against the pserver root and
8275 complain if they don't match. Also, if there are pending errors,
8276 print them and return before changing current_parsed_root to prevent
8277 subsequent commands from accessing an unchecked root directory.
8278 * sanity.sh (pserver): New tests for above.
8279
8280 2002-01-10 Larry Jones <larry.jones@sdrc.com>
8281
8282 * log.c (log_version_requested): Change :: in revision spec to be
8283 exclusive just on the low end (so -r tag1::tag2 gives revisions
8284 after tag1 but up to and including tag2), which is much more useful
8285 than the previous (exclusive at both ends) behavior.
8286 (log_usage): Update to match.
8287 * sanity.sh (log): Update to match.
8288
8289 2002-01-02 Larry Jones <larry.jones@sdrc.com>
8290
8291 * server.c (LOG_DAEMON): Define if needed.
8292 (Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
8293
8294 * server.c (pserver_authenticate_connection): Add a specific error
8295 message for EOF at protocol start and syslog if available.
8296 * sanity.sh (pserver-bufinit): Update to match.
8297
8298 2001-12-10 Larry Jones <larry.jones@sdrc.com>
8299
8300 * log.c (log_usage): Note that -r and -d take lists, not just a
8301 single specification.
8302 (log_expand_revlist): Don't dereference null pointers when one end
8303 of a revision range is a non-existent tag.
8304
8305 2001-12-03 Larry Jones <larry.jones@sdrc.com>
8306
8307 * annotate.c (annotate, annotate_fileproc): Don't annotate binary
8308 files unless new -F option given.
8309 * sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
8310 to match.
8311
8312 2001-11-30 Larry Jones <larry.jones@sdrc.com>
8313
8314 * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
8315
8316 2001-10-25 Larry Jones <larry.jones@sdrc.com>
8317
8318 * log.c (log_expand_revlist): Make erroneous or inconsistent revision
8319 specs select no revisions rather than all revisions.
8320
8321 2001-10-23 Larry Jones <larry.jones@sdrc.com>
8322
8323 * import.c (add_rcs_file): Don't put an expand entry into the file
8324 for the default expansion mode (kv).
8325 * wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
8326 with default expansion mode since they may be needed to avoid matching
8327 a more general entry later.
8328 (wrap_add): Set rcsOption to NULL for default (kv).
8329 (wrap_add_entry): Use structure assignment to copy entries rather
8330 that copying members by hand.
8331 * sanity.sh (binwrap3): Revise to test wrapper entries that don't
8332 specify any non-default options but just prevent matching later,
8333 more general entries.
8334
8335 2001-10-02 Larry Jones <larry.jones@sdrc.com>
8336
8337 * rcs.c (RCS_fully_parse): Add revision number to more error messages.
8338
8339 2001-09-27 Larry Jones <larry.jones@sdrc.com>
8340
8341 * rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
8342 number to the "mismatch" error message.
8343
8344 * sanity.sh (multiroot2-9a): Update to match changes to lock.c.
8345
8346 2001-09-26 Larry Jones <larry.jones@sdrc.com>
8347
8348 * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
8349
8350 2001-09-24 Derek Price <dprice@collab.net>
8351
8352 * find_names.c (add_entries_proc): Leave closure specified as such in the
8353 function definition for clarity.
8354
8355 * find_names.c (Find_Names): Use 'closure' feature of walklist()
8356 to eliminate the static variable.
8357 (add_entries_proc): Expect closure to be the file list.
8358 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
8359
8360 2001-09-19 Derek Price <dprice@collab.net>
8361
8362 * rcs.c (rcsbuf_valpolish_internal): Restore one of the
8363 "if ( ... ) abort();" sequences since it seems to check the validity of
8364 the RCS file rather than for a programming error. Also added a FIXME
8365 comment to the effect that we should explain the RCS file error to the
8366 user as such if it is such.
8367 (Thanks to Larry Jones <scjones@sdrc.com>.)
8368
8369 2001-09-19 Derek Price <dprice@collab.net>
8370
8371 * rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
8372 of the form "if ( ... ) abort();" with equivalent calls to assert().
8373
8374 2001-09-17 Derek Price <dprice@collab.net>
8375
8376 * myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
8377 messages more informative.
8378 * sanity.sh (modules6): New test.
8379 (Original report from Taska <taska@collab.net> and others.)
8380
8381 2001-09-14 Derek Price <dprice@collab.net>
8382
8383 * logmsg.c (do_verify): Dispose memory when finished with it.
8384
8385 2001-09-07 Larry Jones <larry.jones@sdrc.com>
8386
8387 * mkmodules.c (notify_contents): In the example, move the %s to
8388 the end since many, if not most, versions of mail insist on
8389 options coming before addresses.
8390
8391 2001-09-06 Derek Price <dprice@collab.net>
8392
8393 * login.c (login): Deal with NULL return value from getpass.
8394
8395 2001-09-04 Derek Price <dprice@collab.net>
8396
8397 * Makefile.in: Regenerated with automake 1.5.
8398 * stamp-h2.in: Ditto.
8399
8400 2001-09-04 Derek Price <dprice@collab.net>
8401
8402 * main.c (main): Fix empty CVSROOT message to specify `valid' instead
8403 of `legal'.
8404
8405 2001-09-04 Derek Price <dprice@collab.net>
8406
8407 * server.c (pserver_authenticate_connection): Back out changes from the
8408 30th and...
8409 * getline.c (getstr): init the buffer instead.
8410
8411 2001-08-31 Derek Price <dprice@collab.net>
8412
8413 * Makefile.in: Backed out accidental commit from yesterday.
8414
8415 2001-08-30 Derek Price <dprice@collab.net>
8416
8417 * server.c (pserver_authenticate_connection): Don't print from the
8418 NULL pointer in the error message string in the case where the client
8419 didn't send any data.
8420 * sanity.sh (pserver): Test for this case.
8421 (Report from Mark Welch <mark@collab.net>).
8422
8423 2001-08-24 Derek Price <dprice@collab.net>
8424
8425 * logmsg.c (do_editor): Add comment and assertion.
8426 * import.c (import): Don't call do_editor with a repository argument
8427 in client mode.
8428 (Report and original patch from darkness <darkness@invado.com>.)
8429
8430 2001-08-24 Larry Jones <larry.jones@sdrc.com>
8431
8432 * log.c (log_expand_revlist): Arrange for nil revision specs to
8433 select nothing instead of everything.
8434 * sanity.sh (log): New tests for above.
8435
8436 2001-08-24 Derek Price <dprice@collab.net>
8437
8438 * parseinfo.c (Parse_Info): Change the function name in the trace
8439 and add the client/server string.
8440
8441 2001-08-24 Derek Price <dprice@collab.net>
8442
8443 * Implement RereadLogAfterVerify CVSROOT/config option to control
8444 FreeBSD read-write of log messages in the verification script.
8445 * logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
8446 to preserve the status quo.
8447 * parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
8448 option. Possible values are: no | never | yes | always | stat
8449 * cvs.h: Add extern for RereadLogAfterVerify and new value macros
8450 LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
8451 its values.
8452 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
8453
8454 * Apply changes from FreeBSD cvs sources to implement a read-write
8455 user-defined verification script.
8456 * logmsg.c (do_verify): Update do_verify to expect a pointer
8457 to the saved message. The log file passed to the verifymsg_script
8458 should be re-read after the user-defined verification script has
8459 been run. The user-defined verification script is allowed to
8460 modify the message. This allows the script to add extra
8461 information to the log message or to remove template lines that
8462 are not needed.
8463 * cvs.h: Update prototype for do_verify prototype to expect a
8464 pointer to the saved_message.
8465 * commit.c (commit, commit_fileproc, commit_direntproc): Update
8466 calls to do_verify as the saved_message arg is now read-write.
8467 * import.c (import): Update calls to do_verify as the
8468 saved_message arg is now read-write.
8469 * sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
8470 and add a new info-v4 test case have the verification script
8471 modify the log message to test the above changes.
8472 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
8473
8474 * logmsg.c: Change RereadLogAfterVerify default to always.
8475 (do_verify): Reformat and make minor fixes to Mark's patch.
8476 * mkmodules.c (config_constants): Add comment about
8477 RereadLogAfterVerify.
8478 * sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
8479 reformat them a bit.
8480
8481 2001-08-23 Derek Price <dprice@collab.net>
8482
8483 * sanity.sh (info): Demonstrate that the verifymsg scripts can
8484 sometimes, but not always, retreive information on which directory is
8485 being committed to.
8486
8487 2001-08-22 Derek Price <dprice@collab.net>
8488
8489 * logmsg.c: Back out the last change - the repository which is passed
8490 in is actually the directory and changes with each call to do_verify.
8491 If a verifymsg script is using `pwd`, this could change the operation.
8492 * cvs.h: Ditto.
8493 * commit.c: Ditto.
8494 * import.c: Ditto.
8495
8496 2001-08-22 Derek Price <dprice@collab.net>
8497
8498 * logmsg.c (do_editor): Return reused_message.
8499 (do_verify): Don't verify the same log message more than once.
8500 * cvs.h: Update prototypes for do_verify and do_editor.
8501 * commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
8502 * import.c (import): Ditto.
8503
8504 2001-08-22 Derek Price <dprice@collab.net>
8505
8506 * logmsg.c (do_verify): Remove an unecessary "else" clause following an
8507 exit and unindent the former contents.
8508
8509 2001-08-22 Derek Price <dprice@collab.net>
8510
8511 * commit.c (commit): Don't call do_verify in client mode since we know
8512 do_verify will just return anyhow.
8513
8514 2001-08-20 Derek Price <dprice@collab.net>
8515
8516 * Makefile.am (cvs_SOURCES): Add version.c and version.h.
8517 (BUILT_SOURCES): Add version.h.
8518 (Maintainer Targets): Remove version.h.
8519 * version.c: Remove @VERSION@ dependant bits.
8520 * version.c.in: Removed.
8521 * version.h.in: New file.
8522 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
8523
8524 * Makefile.am: Various modifications to make Automake, make dist, and
8525 windows targets work like they are supposed to.
8526 * version.h: New (generated) file.
8527
8528 * Makefile.in: Regenerated.
8529
8530 2001-08-09 Derek Price <dprice@collab.net>
8531
8532 * client.c (socket_buffer_shutdown): Use recv instead of read and
8533 return 0 on success.
8534 (Patch from "Manfred Klug" <manklu@web.de>.)
8535
8536 2001-08-09 Derek Price <dprice@collab.net>
8537
8538 * buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
8539 when NO_SOCKET_TO_FD is defined.
8540 * client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
8541 call and reference to S_ISSOCK since these functions aren't available
8542 under Windows.
8543 (connect_to_forked_server, connect_to_pserver, start_tcp_server,
8544 start_server, start_rsh_server): Use new argument.
8545 (Patch from "Manfred Klug" <manklu@web.de>.)
8546
8547 * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
8548 where rsh pipes weren't being closed.
8549
8550 2001-08-09 Derek Price <dprice@collab.net>
8551
8552 * sanity.sh (rmadd, rm-update-message, join-two-branch,
8553 ignore-on-branch): Change a few references to `cvs' to `$PROG'.
8554
8555 2001-08-07 Derek Price <dprice@collab.net>
8556
8557 * build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
8558 * patch.c: VMS time_t appears to be unsigned. Add a cast when testing
8559 for (time_t)-1.
8560 * subr.c: #else,#endif for no symlinks should be moved.
8561 (Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
8562
8563 2001-08-06 Derek Price <dprice@collab.net>
8564
8565 * Makefile.in: Regenerated.
8566
8567 2001-08-01 Derek Price <dprice@collab.net>
8568
8569 * diff.c (diff): Send long option for side-by-side diffs to the server
8570 rather than '-y', for backwards compatibility with old servers.
8571 (Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
8572
8573 2001-07-19 Larry Jones <larry.jones@sdrc.com>
8574
8575 * mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
8576 disabled in wrapper.c.
8577
8578 * checkout.c (checkout): Don't complain about checking out into the
8579 repository when piping output.
8580 (Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
8581 * sanity.sh (checkout_repository): New tests for above.
8582
8583 2001-07-10 Larry Jones <larry.jones@sdrc.com>
8584
8585 * sanity.sh (importc-7): Now works correctly in local mode.
8586
8587 * commit.c (commit_dirleaveproc): We're still in the directory when
8588 this is called, so the first argument to Name_Repository needs to
8589 be NULL, not dir.
8590 * sanity.sh (rmadd): New tests for above.
8591
8592 * commit.c (commit): Reword error messages for committing as root.
8593
8594 2001-07-08 Larry Jones <larry.jones@sdrc.com>
8595
8596 * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
8597 NUL terminator.
8598 * update.c (special_file_mismatch): Ditto.
8599 (Reported by Pekka Savola <pekkas@netcore.fi>.)
8600
8601 2001-07-05 Larry Jones <larry.jones@sdrc.com>
8602
8603 * client.c, root.c: Fix -Wall warnings.
8604
8605 * buffer.c: #include socket header to declare shutdown().
8606
8607 * rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
8608 portability.
8609 (RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
8610
8611 2001-07-04 Derek Price <dprice@collab.net>
8612
8613 * Makefile.in: Regenerated with new Automake release candidate 1.4h.
8614
8615 2001-07-03 Derek Price <dprice@collab.net>
8616
8617 * rcs.c (rcsbuf_open): Reduce memory consumption still further by not
8618 mmapping the entire file when pos is specified.
8619 (rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
8620 caching.
8621
8622 2001-07-03 Derek Price <dprice@collab.net>
8623
8624 * rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
8625 consumption, especially with large (e.g. binary) files.
8626 (rcsbuf_close): Call munmap.
8627 (rcsbuf_getkey): Remove the buffer fill code when using mmap.
8628 (rcsbuf_getrevnum): Ditto.
8629 (rcsbuf_fill): Remove this function when using mmap.
8630 (rcsbuf_cache_open): Mostly don't use this function with mmap.
8631 (RCS_copydeltas): Don't depend on the file pointer with mmap.
8632
8633 * stamp-h2.in: Regenerated.
8634
8635 2001-07-03 Derek Price <dprice@collab.net>
8636
8637 * update.c: Indent compiler directives.
8638
8639 2001-07-02 Larry Jones <larry.jones@sdrc.com>
8640
8641 * import.c (update_rcs_file): Use -kb instead of -ko when comparing
8642 binary files.
8643 (Reported by Gyula Faller <gfaller@graphisoft.hu>.)
8644
8645 2001-06-28 Larry Jones <larry.jones@sdrc.com>
8646
8647 * checkout.c (checkout): Explicitly initialize all the static options
8648 so that multiple calls work right. Also fix potential memory leaks.
8649 (Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
8650
8651 2001-06-28 Derek Price <dprice@collab.net>
8652
8653 * Makefile.in: Regenerated with new version of Automake.
8654
8655 2001-06-28 Larry Jones <larry.jones@sdrc.com>
8656
8657 * checkout.c (checkout): Set history_name for export as well as
8658 checkout.
8659 (checkout_proc): Use it.
8660
8661 * checkout.c (safe_location): Add missing argument in error message.
8662
8663 2001-06-26 Larry Jones <larry.jones@sdrc.com>
8664
8665 * recurse.c (start_recursion): Use strip_trailing_slashes instead
8666 of doing it by hand.
8667
8668 * server.c (pserver_authenticate_connection): Don't clear out
8669 descrambled_password until *after* it's (potentially) logged.
8670 (Reported by Eric Hanchrow <offby1@blarg.net>.)
8671
8672 2001-06-25 Larry Jones <larry.jones@sdrc.com>
8673
8674 * recurse.c (start_recursion): Deal with at least some of the cases
8675 where trailing slashes cause confusion.
8676 (Reported by Malcolm Fernandes <fernande@redback.com>.)
8677 * sanity.sh (basica, basicb): Tweak existing tests to check this.
8678
8679 2001-06-22 Larry Jones <larry.jones@sdrc.com>
8680
8681 * sanity.sh (modules5): New tests with -d on command line.
8682
8683 2001-06-21 Larry Jones <larry.jones@sdrc.com>
8684
8685 * modules.c (do_module): Use run_module_prog and server_active to
8686 determine when to call server_prog instead of using server_expanding
8687 so that we get the right paths in the replies as long as we take
8688 mwhere into account in addition to where.
8689 (Reported by Pascal Bourguignon <pjb@informatimago.com>.)
8690 * server.c (server_prog): Use protocol pipe instead of buf_to_net.
8691 * sanity.sh (modules5): Remove FIXCVS comment and update to match.
8692 * server.c, server.h: Remove server_expanding since now unused.
8693
8694 2001-06-21 Larry Jones <larry.jones@sdrc.com>
8695 for Stephen Rasku <stephen@tgivan.com>
8696
8697 * admin.c: Corrected spelling mistakes in help.
8698
8699 2001-06-20 Derek Price <dprice@collab.net>
8700
8701 * client.c (socket_buffer_shutdown): Fix untested typos.
8702 (Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
8703
8704 * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
8705 the correct place.
8706
8707 2001-06-20 Derek Price <dprice@collab.net>
8708
8709 * logmsg.c (do_editor): Abort in the case that the file has only
8710 comment lines.
8711 (Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
8712
8713 * logmsg.c (do_editor): Fix rare memory leak.
8714 * sanity.sh (editor): Add tests for aborted log messages.
8715
8716 2001-06-20 Larry Jones <larry.jones@sdrc.com>
8717
8718 * server.c (switch_to_user): Only set $CVS_USER if
8719 AUTH_SERVER_SUPPORT is defined.
8720 (Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
8721
8722 2001-06-13 Derek Price <dprice@collab.net>
8723
8724 * client.c: Fix incorrect fixed-size buffer usage in
8725 connect_to_gserver().
8726 (Minor changes to a patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
8727
8728 2001-06-11 Derek Price <dprice@collab.net>
8729
8730 * main.c (main): Always print $CVSROOT when parse_cvsroot fails.
8731 * root.c (parse_cvsroot): Tidy error messages and provide more
8732 consistent behavior.
8733 * sanity.sh (crerepos): Adapt to new error messages.
8734 (Suggested by Alexey Mahotkin <alexm@hsys.msk.ru>.)
8735
8736 2001-06-08 Derek Price <dprice@collab.net>
8737
8738 * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
8739
8740 2001-06-07 Larry Jones <larry.jones@sdrc.com>
8741
8742 * rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
8743 should never break locks, you have to specify a specific revision
8744 to do that. Also add an informative message for a bare -u when
8745 the user doesn't hold any locks.
8746 * commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
8747 * sanity.sh (rmadd-24): Update to match.
8748
8749 * sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
8750 dotest_fail. Allow for "broken pipe" rather than "end of file".
8751
8752 2001-06-07 Derek Price <dprice@collab.net>
8753
8754 * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
8755 /tmp/cvs-sanity/cvsroot.
8756
8757 2001-06-06 Derek Price <dprice@collab.net>
8758
8759 (Reformatting, bug fixes, tests, and comments to a
8760 patch from Stephen Cameron <steve.cameron@compaq.com>.)
8761
8762 * tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
8763 Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
8764 and "cvs rtag -d" so that they will not disturb existing
8765 branch tags unless a new "-B" option is given.
8766 * sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
8767 to "cvs tag" and "cvs rtag"
8768
8769 2001-06-06 Derek Price <dprice@collab.net>
8770
8771 * sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
8772 test call at Larry's suggestion. Also, test the error message since
8773 it's fixed now.
8774
8775 2001-06-05 Larry Jones <larry.jones@sdrc.com>
8776
8777 * rcs.c (RCS_unlock): Note when breaking someone else's lock.
8778 (Reported by MURVAI-BUZOGANY Laszlo
8779 <Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
8780 * sanity.sh (reserved-14): Update to match.
8781
8782 2001-06-05 Derek Price <dprice@collab.net>
8783
8784 * sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false... this is a local
8785 mode only test anyhow.
8786 (Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
8787
8788 2001-05-31 Derek Price <dprice@collab.net>
8789
8790 * sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
8791 in the hopes that the data will eventually prove useful to someone
8792 motivated enough to fix the problem.
8793
8794 2001-05-30 Derek Price <dprice@collab.net>
8795
8796 * stamp-h2.in: Regenerated.
8797
8798 2001-05-30 Derek Price <dprice@collab.net>
8799
8800 * *: Various bug fixes and comments for the following
8801 patch from Donald Sharp <sharpd@cisco.com>:
8802
8803 * checkout.c (safe_location): cvs co -d <directory> still had
8804 failure modes from the way the -d option works.
8805 * sanity.sh: Misc error message resynching.
8806
8807 2001-05-29 Derek Price <dprice@collab.net>
8808
8809 * Makefile.am (cvs_SOURCES): Add root.h.
8810
8811 * Makefile.in: Regenerated.
8812 * stamp-h2.in: Regenerated.
8813
8814 2001-05-29 Derek Price <dprice@collab.net>
8815
8816 * checkout.c (safe_location): Correct formatting.
8817
8818 2001-05-29 Derek Price <dprice@collab.net>
8819
8820 * root.c (parse_cvsroot): Fix a comment.
8821
8822 2001-05-26 Larry Jones <larry.jones@sdrc.com>
8823
8824 * checkout.c (safe_location): Use old-style definition to keep
8825 non-ANSI compilers happy.
8826
8827 * sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
8828 of /tmp/cvs-sanity/cvsroot.
8829
8830 2001-05-25 Larry Jones <larry.jones@sdrc.com>
8831
8832 * sanity.sh (modules5): Add sleep to script to help avoid out of
8833 order messages.
8834
8835 * filesubr.c (mkdir_if_needed): Return 1 if the directory exists
8836 reguardless of what errno is set to.
8837 (Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
8838
8839 2001-05-25 Derek Price <dprice@collab.net>
8840 for Donald Sharp <sharpd@cisco.com>
8841
8842 * checkout.c: Modified safe_location() to refuse checkout if
8843 the -d option to co specifies inside of the repository.
8844 * import.c: New parameter to safe_location needed to be added.
8845 * cvs.h: New parameter to safe_location needed to be added.
8846 * sanity.sh: Test case to test for failure mode.
8847
8848 2001-05-23 Larry Jones <larry.jones@sdrc.com>
8849
8850 * checkout.c (checkout_proc): Don't build top_level_admin directory
8851 when exporting.
8852 (Reported by Tony Byrne <tonyb@directski.com>.)
8853
8854 2001-05-21 Derek Price <dprice@collab.net>
8855
8856 * client.c: Fix a mispelling in a comment.
8857 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
8858
8859 2001-05-05 Larry Jones <larry.jones@sdrc.com>
8860
8861 * login.c (password_entry_operation): Only warn if unable to open
8862 .cvspass for reading: may be initial login and it doesn't exist yet.
8863
8864 2001-05-15 Derek Price <dprice@collab.net>
8865
8866 * client.c (start_tcp_server): Use the struct sockaddr_in declared in
8867 the function.
8868 (Reported by Emil Isberg <isberg@dynarc.se>.)
8869
8870 2001-05-05 Larry Jones <larry.jones@sdrc.com>
8871
8872 * annotate.c (annotate): Pass local to do_module and rannotate_proc
8873 so that -l actually works.
8874 * log.c (cvslog): Ditto.
8875 * patch.c (patch): Ditto; make local local instead of global.
8876 (patch_proc): Use local_specified parameter instead of global.
8877 * tag.c (cvstag, rtag_proc): Ditto.
8878
8879 2001-05-05 Larry Jones <larry.jones@sdrc.com>
8880
8881 * client.h: Declare "struct buffer" outside prototype for __STDC__
8882 compilers.
8883
8884 2001-05-04 Derek Price <dprice@collab.net>
8885
8886 * client.c: General refactoring. Removed several global variables in
8887 favor of passing locals and/or dynamic evaluation.
8888 (recv_line): Removed this function.
8889 (make_bufs_from_fds): New function with factored code.
8890 (connect_to_forked_server): New prototype. Use new functions.
8891 (connect_to_pserver): New prototype. Use new functions.
8892 (connect_to_gserver): New prototype. Use new API.
8893 (auth_server): Factored this portion of the pserver code so it can be
8894 shared. Rewrote to use buffers rather than depending on a socket.
8895 (start_rsh_server): New prototype. Use new API.
8896 (start_tcp_server): New prototype. Use new API.
8897 (start_server): Factor some code. Use new API.
8898 * client.h: New prototypes.
8899 * cvs.h: Gratuitous reformatting. Use new root.h.
8900 * login.c (login): Use new connect_to_pserver API.
8901 * root.h: New file. Contains some code that used to be in cvs.h.
8902
8903 2001-05-04 Derek Price <dprice@collab.net>
8904
8905 * client.c: Gratuitous reformatting.
8906 * client.h: Ditto.
8907
8908 2001-05-04 Derek Price <dprice@collab.net>
8909
8910 * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
8911 prototype.
8912 (compress_buffer_shutdown_output): Ditto.
8913 (Thanks to Pavel Roskin <proski@gnu.org>.)
8914
8915 2001-05-03 Derek Price <dprice@collab.net>
8916
8917 * buffer.c (struct stdio_buffer_closure): New structure to hold a
8918 FILE * and the child's PID when necessary.
8919 (stdio_buffer_initialize): Change proto to accept PID. Set up new
8920 closure. Pass new stdio_buffer_shutdown to buf_initialize.
8921 (stdio_buffer_input): Use new closure.
8922 (stdio_buffer_output): Ditto.
8923 (stdio_buffer_flush): Ditto.
8924 (stdio_buffer_shutdown): New function. Teach buffer to close itself.
8925 (packetizing_buffer_shutdown): Use new buffer shutdown proto.
8926 * buffer.h (struct buffer): New buffer shutdown proto.
8927 (stdio_buffer_initialize): New proto.
8928 * client.c (log_buffer_shutdown): Use new proto.
8929 (socket_buffer_initialize): Pass shutdown func.
8930 (socket_buffer_shutdown): New function.
8931 * server.c (get_responses_and_close): Remove most of the guts. Rely
8932 on the buffer shutdown function from now on.
8933 (start_rsh_server): Return child PID.
8934
8935 2001-05-03 Larry Jones <larry.jones@sdrc.com>
8936
8937 * history.c (history_write): Handle the case where the user's home
8938 directory doesn't exist gracefully instead of erroring out.
8939 (Reported by David Hoover <dhoover@cadence.com>.)
8940
8941 2001-05-03 Derek Price <dprice@collab.net>
8942
8943 * cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
8944 I wrote in the ChangeLog, oh, so long ago.
8945 * diff.c (diff): Ditto.
8946 * subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
8947
8948 2001-05-02 Larry Jones <larry.jones@sdrc.com>
8949
8950 * rcs.c (RCS_getdate): Handle the (unusual!) case where we
8951 can't find any revisions at all.
8952 (Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
8953
8954 2001-04-30 Larry Jones <larry.jones@sdrc.com>
8955
8956 * sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
8957 duplicate names; fix to work without SERVER_SUPPORT defined.
8958 (Reported by Pavel Roskin <proski@gnu.org>.)
8959
8960 2001-04-29 Derek Price <dprice@collab.net>
8961
8962 * Makefile.am (check-local): Make dependent on localcheck and
8963 remotecheck and move old check target...
8964 (localcheck): here.
8965
8966 * Makefile.in: Regenerated.
8967
8968 2001-04-27 Larry Jones <larry.jones@sdrc.com>
8969
8970 * sanity.sh (pserver): Add tests for readers and writers.
8971
8972 2001-04-27 Derek Price <dprice@collab.net>
8973
8974 * sanity.sh (version-2r): Update to handle patch releases in version
8975 numbers.
8976
8977 2001-04-27 Derek Price <dprice@collab.net>
8978
8979 * version.c: Regenerated.
8980
8981 2001-04-27 Derek Price <dprice@collab.net>
8982
8983 * version.c: Regenerated.
8984
8985 2001-04-27 Larry Jones <larry.jones@sdrc.com>
8986
8987 * main.c (lookup_command_attribute): Lookup specified command, not
8988 whatever's in the global command_name.
8989
8990 2001-04-25 Derek Price <dprice@collab.net>
8991
8992 * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
8993 * version.c: Regenerated.
8994
8995 2001-04-22 Larry Jones <larry.jones@sdrc.com>
8996
8997 * tag.c (tag_check_valid): Make an unwritable val-tags file a
8998 warning instead of a fatal error.
8999
9000 2001-04-20 Larry Jones <larry.jones@sdrc.com>
9001
9002 * annotate.c (annotate_usage): -r and -D are not mutually exclusive.
9003 * main.c (cmd_usage): Add missing version subcommand.
9004 * update.c (update_usage): Add missing -C option.
9005
9006 * sanity.sh (death2): New tests for previous change.
9007
9008 * classify.c (Classify_File): Treat a dead revision like the RCS
9009 file doesn't exist.
9010 * sanity.sh: Update to match.
9011
9012 2001-04-16 Larry Jones <larry.jones@sdrc.com>
9013
9014 * checkout.c, update.c: Fix usage messages: -r and -D are not
9015 mutually exclusive.
9016 (Suggested by David L. Martin <dlmart2@home.com>.)
9017
9018 * logmsg.c (do_editor): Don't add a blank line to the message.
9019 * sanity.sh (editor-log-file*): Update to match.
9020
9021 * checkout.c, update.c: Note in usage message that -k is sticky.
9022
9023 * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
9024 (Suggested by Rob Saccoccio <robs@chelsea.net>.)
9025
9026 2001-04-04 Larry Jones <larry.jones@sdrc.com>
9027
9028 * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
9029 dotest_sort): Don't count on $? being set in then or else clauses.
9030
9031 * ignore.c (ignore_files): Collect unignored files into a list and
9032 sort it before calling PROC to avoid order dependencies. Rewrite
9033 the while loop to allow normal continues instead of goto.
9034
9035 2001-04-04 Derek Price <dprice@collab.net>
9036
9037 * sanity.sh (ignore-on-branch-3): Fix in the remote case.
9038
9039 2001-04-03 Larry Jones <larry.jones@sdrc.com>
9040
9041 * update.c (update_fileproc): Remove unused variable (resurrecting).
9042
9043 2001-04-03 Derek Price <dprice@collab.net>
9044 Larry Jones <larry.jones@sdrc.com>
9045 reported by Jakob Bøhm <JB@Danware.dk>
9046
9047 * update.c (update_fileproc): Don't store a file with T_UNKNOWN status
9048 in ignlist if present in the sandbox.
9049 * sanity.sh (ignore-on-branch): New test.
9050 (ignore): Tidy this test.
9051
9052 2001-04-02 Derek Price <dprice@collab.net>
9053
9054 * sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
9055 is used and the user is root. Fix some quoting in error messages.
9056 (fork): Take `cvs' out of the PATH.
9057 (TODO): Add note about the test suite not working with user names over
9058 eight characters in length.
9059
9060 2001-04-02 Derek Price <dprice@collab.net>
9061
9062 * sanity.sh (fork): New test for CVS_SERVER default.
9063 (TODO): Note about eventually removing most of the references to
9064 CVS_SERVER.
9065
9066 2001-04-02 Larry Jones <larry.jones@sdrc.com>
9067
9068 * client.c (connect_to_forked_server): Use program_path as the default
9069 server instead of "cvs".
9070
9071 2001-04-02 Derek Price <dprice@collab.net>
9072
9073 * sanity.sh: Use less obfuscated English in my comment about sanity
9074 checking sanity.sh.
9075
9076 2001-04-02 Derek Price <dprice@collab.net>
9077
9078 * sanity.sh (rm-update-message): Create a test directory again but
9079 change back to the correct directory upon completion this time.
9080
9081 2001-04-02 Derek Price <dprice@collab.net>
9082
9083 * sanity.sh: Change last two '[.*]'s to 'test's for
9084 consistency and remove...
9085 (TODO): the note from the TODO list.
9086
9087 2001-04-02 Derek Price <dprice@collab.net>
9088
9089 * sanity.sh: Add test for PWD before successful exit.
9090
9091 2001-03-30 Larry Jones <larry.jones@sdrc.com>
9092
9093 * sanity.sh (rm-update-message): Remove duplicate code.
9094
9095 2001-03-30 Derek Price <dprice@collab.net>
9096
9097 * sanity.sh (rm-update-message): New test for local/client-server
9098 warning message discrepency.
9099
9100 2001-03-30 Larry Jones <larry.jones@sdrc.com>
9101
9102 * annotate.c: Move annotate() here from rcs.c, support rannotate.
9103 * Makefile.am, Makefile.in: Add annotate.c.
9104 * main.c (cmds[], cmd_usage[]): Add rannotate.
9105 * rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
9106 * rcs.h: ... here.
9107 * server.c (serve_rannotate): New.
9108 (requests[]): Add rannotate.
9109 * sanity.sh (ann): New tests for rannotate.
9110
9111 * log.c (rlog_proc): Remove dead code.
9112
9113 2001-03-30 Derek Price <dprice@collab.net>
9114
9115 * sanity.sh (join-readonly-conflict): Run more of this through dotest.
9116
9117 2001-03-30 Larry Jones <larry.jones@sdrc.com>
9118
9119 * log.c (log_fileproc): Don't output working file for rlog.
9120 * sanity.sh (log): New tests for rlog.
9121
9122 * cvs.h (mtype): Add MISC type.
9123 * log.c (cvslog): Support rlog as well as log.
9124 (rlog_proc): New.
9125 * main.c (cmds[], cmd_usage[]): Add rlog.
9126 (main): Remove old rlog warning message.
9127 * server.c (serve_rlog): New.
9128 (requests[]): Add rlog.
9129
9130 2001-03-29 Derek Price <dprice@collab.net>
9131
9132 * sanity.sh: cd to $TESTDIR once after it is normalized. Make TODO
9133 on history and symlinks more specific. Tested properly this time.
9134
9135 2001-03-29 Larry Jones <larry.jones@sdrc.com>
9136
9137 * main.c (cmds[], lookup_command_attribute, main): Include the
9138 command attributes in the global command table instead of inferring
9139 them from the command names. Change the sense of the
9140 CVS_CMD_IGNORE_ADMROOT attribute to match its name.
9141
9142 2001-03-29 Derek Price <dprice@collab.net>
9143
9144 * sanity.sh (*, basic2-64): Remove references to TMPPWD. Fix FIXME
9145 at end of script now that $TESTDIR can't be relative.
9146
9147 2001-03-29 Derek Price <dprice@collab.net>
9148
9149 * sanity.sh: Normalize TESTDIR even when the user set it.
9150
9151 2001-03-29 Larry Jones <larry.jones@sdrc.com>
9152
9153 * client.c (connect_to_pserver, start_tcp_server): Add IP address
9154 to connect failed message.
9155 (connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
9156 trace messages ala start_rsh_server.
9157 (start_rsh_server): Include entire command in trace message for
9158 START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
9159
9160 2001-03-29 Derek Price <dprice@collab.net>
9161
9162 * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
9163 ${CVSROOT_DIRNAME} for consistency.
9164
9165 2001-03-29 Derek Price <dprice@collab.net>
9166
9167 * sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
9168 for a CVS bug since May 96/97. Not sure when the bug went bye-bye, but
9169 the tests broke when $TESTDIR != $TMPPWD.
9170
9171 2001-03-26 Larry Jones <larry.jones@sdrc.com>
9172
9173 * classify.c (Classify_File): Don't report a conflict for a removed
9174 file when piping. Also simplify the code structure.
9175 (Reported by Milos Kleint <milos.kleint@netbeans.com>.)
9176 * sanity.sh (rmadd2-14[abc]): New tests for above.
9177
9178 2001-03-24 Noel Cragg <noel@shave.cnet.com>
9179
9180 * diff.c: mods to allow `-T' and `-y' options to be passed through
9181 to the diff library. This wasn't allowed earlier because of a
9182 similarly named options that got passed through to the old rcs
9183 programs. We've long since stopped sending `-T' to any rcs
9184 utility and have never used `-y'. Any users of moldly CVS
9185 versions which used to support `-T' have (hopefully) upgraded to
9186 one where that option isn't supported. It seems reasonable to
9187 enable them again and pass them through. (sanity.sh still works
9188 anyways...)
9189 (longopts): add short option equivalents for --initial-tab and
9190 --side-by-side.
9191 (diff): add new short options to getopt string and switch
9192 statement.
9193
9194 2001-03-22 Larry Jones <larry.jones@sdrc.com>
9195
9196 * sanity.sh: Add check for ${DOTSTAR} with large matches.
9197
9198 2001-03-23 Derek Price <dprice@collab.net>
9199
9200 * sanity.sh: Do the same as below for $keep.
9201
9202 2001-03-23 Derek Price <dprice@collab.net>
9203
9204 * sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
9205 often 'false' and more often ':' are shell builtins. This makes the
9206 succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
9207 Alter tests in the rest of the script to match the new usage. Added
9208 a suffix of 'r' to remote test names when it was appropriate and I
9209 remembered. Some reformatting.
9210
9211 2001-03-22 Larry Jones <larry.jones@sdrc.com>
9212
9213 * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
9214 output instead of using wildcards to avoid buffer overflows in some
9215 versions of expr.
9216
9217 2001-03-21 Derek Price <dprice@collab.net>
9218
9219 * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
9220 a value inside ${TESTDIR} by the script.
9221
9222 2001-03-20 Derek Price <dprice@collab.net>
9223
9224 * sanity.sh (diffmerge1): Minor formatting and syntax changes.
9225
9226 for Jacob Burckhardt <bjacob@ca.metsci.com>
9227
9228 * sanity.sh (diffmerge1): More merging behavior tests. Specifically,
9229 test some cases which broke before in Karl Tomlinson's diff fix was
9230 checked in today.
9231
9232 2001-03-20 Derek Price <dprice@collab.net>
9233
9234 * sanity.sh: Don't use unescaped parens in sh outside of quotes.
9235
9236 2001-03-20 Derek Price <dprice@collab.net>
9237
9238 * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
9239
9240 2001-03-20 Derek Price <dprice@collab.net>
9241
9242 * sanity.sh: Change usage to match the new getopts format and comment.
9243
9244 2001-03-16 Derek Price <dprice@collab.net>
9245
9246 * sanity.sh (modules2-nestedrename): New test. Verifies behavior of
9247 renames nested under an ampersand module.
9248 (modules2-ampertag): New test. Verifies an error condition which
9249 prevents some ampersand modules from being checked out when a tag
9250 is specified.
9251
9252 2001-03-16 Derek Price <dprice@collab.net>
9253
9254 * sanity.sh (modules2): Additional test for ampersand module behavior
9255 with '-d'.
9256
9257 for Greg Klanderman <greg@itasoftware.com>
9258
9259 * checkout.c (build_one_dir): Fix typo where clauses of two
9260 conditionals were reversed in call to Create_Admin. This caused
9261 the CVS/Tag file to be removed in cases where it should have been
9262 set, and vice-versa. It only surfaced in rare cases as this code
9263 is only invoked when using the -d option to build the path to
9264 check out in. Further, the bug would only matter when checking
9265 out a module containing ampersand modules within it, via
9266 client/server CVS.
9267
9268 2001-03-16 Derek Price <dprice@collab.net>
9269
9270 * sanity.sh (admin-28-5): Confirm that a missing tag during an
9271 'admin -n' operation is not a fatal error.
9272
9273 2001-03-16 Derek Price <dprice@collab.net>
9274
9275 * admin.c (admin_data): Remove 'quiet' member.
9276 (admin_fileproc): Use global 'really_quiet' rather than
9277 admin_data->quiet.
9278
9279 2001-03-16 Derek Price <dprice@collab.net>
9280
9281 * sanity.sh (admin): Replace hardcoded testdir path with the variable.
9282
9283 2001-03-15 Derek Price <derek.price@openavenue.com>
9284
9285 * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
9286 * admin.c (admin_fileproc): Only print messages when not in
9287 really_quiet mode.
9288
9289 for Stephen Rasku <stephen@tgivan.com>
9290
9291 * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
9292
9293 2001-03-15 Larry Jones <larry.jones@sdrc.com>
9294
9295 * subr.c (sleep_past): Fix various bugs that would result in a
9296 negative sleep time if it weren't unsigned; since it is, it would
9297 result in a very large sleep time. Ensure that us is always less
9298 than 1000000. Don't try to sleep for more 1 sec with usleep.
9299 Cast NULL select arguments to correct type just in case.
9300
9301 2001-03-14 Derek Price <derek.price@openavenue.com>
9302
9303 * subr.c (sleep_past): New function.
9304 * client.c (get_responses_and_close): Use new function.
9305 * commit.c (commit): Ditto.
9306 * update.c (do_update): Ditto.
9307 * cvs.h: Prototype new function.
9308
9309 * stamp-h2.in: Regenerated.
9310
9311 2001-03-14 Derek Price <derek.price@openavenue.com>
9312
9313 * Makefile.in: Regenerated.
9314 * stamp-h2.in: Ditto.
9315
9316 2001-03-14 Larry Jones <larry.jones@sdrc.com>
9317
9318 * commit.c (check_fileproc): Allow adding on the trunk when there's
9319 an existing non-Attic RCS file as long as the head revision is dead.
9320 This can happen due to an aborted resurrection.
9321 (commit_fileproc): When resurrecting, consider the dead revision
9322 along with the other files' revisions.
9323 (findmaxrev): Avoid unnecessary work.
9324 (checkaddfile): Only warn if file isn't in Attic as expected.
9325 (Reported by Ross Burton <r.burton@180sw.com>.)
9326 * sanity.sh (basica-r*): New tests for above.
9327 (basica-o4): Update to match.
9328
9329 2001-03-09 Larry Jones <larry.jones@sdrc.com>
9330
9331 * edit.c (edit_fileproc, unedit_fileproc): Some implementations of
9332 asctime/ctime apparently use a leading zero on the date instead
9333 of the space required by the C Standard. Correct for this so that
9334 shared working directories work without hassle.
9335 (Reported by David L. Martin <dlmart2@home.com>.)
9336 * entries.c (fgetentent): Ditto.
9337 * vers_ts.c (time_stamp_server, time_stamp) Ditto.
9338
9339 2001-03-07 Larry Jones <larry.jones@sdrc.com>
9340
9341 * sanity.sh (basica, binfiles2, head, admin): Update to match
9342 change to admin.c.
9343
9344 2001-03-06 Larry Jones <larry.jones@sdrc.com>
9345
9346 * client.c (recv_bytes): Handle EOF as in recv_line().
9347 (Reported by Pavel Roskin <proski@gnu.org>.)
9348
9349 * admin.c (admin_fileproc): Change final error message to clarify
9350 that CVS refused to modify the RCS file rather than being unable to.
9351
9352 2001-02-28 Jim Meyering <meyering@lucent.com>
9353
9354 * commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
9355 the description of that option, to be consistent with the `-F logfile'
9356 in the Usage: line. Use spaces instead of TAB characters, and realign.
9357
9358 2001-03-02 Derek Price <derek.price@openavenue.com>
9359
9360 * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
9361 name of the command it actually used rather than 'rsh'.
9362
9363 2001-02-27 Derek Price <derek.price@openavenue.com>
9364
9365 * sanity.sh (modules2-ampermod-*): Added these tests to make sure the
9366 top level directory is created in an ampermodule when '-n' is passed to
9367 checkout.
9368
9369 original bug report from
9370 Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
9371
9372 2001-02-27 Derek Price <derek.price@openavenue.com>
9373
9374 * sanity.sh (version-[12]): replace ' (client/server)' with .* in these
9375 two tests so that 'make check' works with whatever client/server
9376 options the executable was compiled with.
9377
9378 2001-02-23 Derek Price <derek.price@openavenue.com>
9379
9380 * main.c (main): Only check a cvsroot_t's isremote member when client
9381 support is enabled.
9382 * server.c: Include GSSAPI headers with client support as well as
9383 server support.
9384
9385 2001-02-21 Larry Jones <larry.jones@sdrc.com>
9386
9387 * modules.c, cvs.h (do_module): Add build_dirs argument and use it
9388 instead of run_module_prog. Change all callers.
9389 * tag.c (cvstag): For rtag, don't build directories.
9390 * sanity.sh (modules3): Update to match.
9391
9392 2001-02-20 Derek Price <derek.price@openavenue.com>
9393
9394 * client.c: Use xgssapi.h.
9395 * server.c: Ditto.
9396
9397 2001-02-15 Derek Price <derek.price@openavenue.com>
9398
9399 * Makefile.am (cvs_SOURCES): Correct error from yesterday.
9400 * Makefile.in: Regenerated.
9401
9402 2001-02-14 Derek Price <derek.price@openavenue.com>
9403
9404 * server.c: Include xselect.h.
9405 * update.c (do_update): Use best available sleep function.
9406
9407 2001-02-14 Derek Price <derek.price@openavenue.com>
9408
9409 * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
9410 (cvs_LDADD): Alphabetize and split to one/line.
9411 * Makefile.in: Regenerated.
9412
9413 2001-02-14 Larry Jones <larry.jones@sdrc.com>
9414
9415 * build_src.com: Remove references to rtag.c & rtag.obj.
9416
9417 2001-02-13 Derek Price <derek.price@openavenue.com>
9418
9419 * main.c (date_to_tm): New function to convert an RCS date string to a
9420 struct tm.
9421 (tm_to_internet): New function to convert a struct tm to a date string
9422 as specified by RFC822 and amended by RFC 1123.
9423 (date_to_internet): Use the above two functions and a struct tm
9424 intermediary for conversion.
9425 * patch.c (patch_fileproc): Answer somebody's comment and use the new
9426 diff_exec API.
9427 * rcs.c (RCS_checkin): Use new diff_exec API.
9428 (RCS_delete_revs): Use new diff_exec API.
9429 (make_file_label): If the file name is DEVNULL, date it the Epoch for
9430 compatibility with the POSIX.2 spec and Larry Wall's patch
9431 implementation.
9432 * rcscmds.c (diff_exec): Accept new label arguments.
9433 * sanity.sh (death2): Update some diff tests to accept the new format.
9434 * update.c (patch_file): Use new diff_exec API.
9435 * diff.c (diff_fileproc): Create header labels appropriate for
9436 compatibility with the Larry Wall version of patch.
9437 (diff): Rename calls to strcat_and_allocate.
9438 (strcat_and_allocate): Rename and move...
9439 * subr.c (xrealloc_and_strcat): here.
9440 * cvs.h: Update prototypes to match.
9441
9442 2001-02-13 Derek Price <derek.price@openavenue.com>
9443
9444 * Makefile.am (cvs_SOURCES): Remove rtag.c.
9445
9446 2001-02-07 Larry Jones <larry.jones@sdrc.com>
9447
9448 * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
9449 (basic2): Rewrite using dotest.
9450
9451 2001-02-06 Larry Jones <larry.jones@sdrc.com>
9452
9453 * tag.c, rtag.c: Merge with tag.c being the surviving file.
9454 * Makefile.in: Update to match.
9455 * main.c (cmds): rtag() => cvstag().
9456 * server.c (serve_rtag): Ditto, and set command name.
9457
9458 2001-02-06 Derek Price <derek.price@openavenue.com>
9459 Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
9460 Shawn Smith <Shawn_Smith@notes.ymp.gov>
9461
9462 * add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
9463 CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
9464 5.7 {open,read,close}dir problems. Check today's entry in the vms
9465 subdir for more.
9466 * filesubr.c: ditto
9467 * find_names.c: ditto
9468 * ignore.c: ditto
9469 * import.c: ditto
9470 * lock.c: ditto
9471 * update.c: ditto
9472
9473 2001-02-02 Larry Jones <larry.jones@sdrc.com>
9474
9475 * error.h: Changed include guard macro from _error_h_ to ERROR_H;
9476 names beginning with underscore are reserved.
9477 * login.c (password_entry_parseline, password_entry_operation,
9478 password_entry_operation_e, password_entry_operation_t): Removed
9479 leading underscore(s).
9480 (password_entry_parseline): Corrected error messages.
9481 (password_entry_operation): Fixed uninitialized variable (password).
9482 (login): Removed unused variable (found_password).
9483
9484 * rtag.c (rtag_proc): Call lock_tree_for_write() before calling
9485 start_recursion. This fixes a serious problem where do_recursion
9486 was reading and caching RCS files without any locks in place and
9487 that information was subsequently being used to rewrite the file
9488 causing any intermediate changes to be lost.
9489 (rtag_filesdoneproc): Defunct.
9490 (Reported by Karl Tomlinson <k.tomlinson@auckland.ac.nz>.)
9491 * tag.c (cvstag, tag_filesdoneproc): Ditto.
9492 * lock.c (lock_tree_for_write): Add which argument, change all
9493 callers to pass W_LOCAL.
9494 * rcs.h: Ditto.
9495
9496 2001-01-29 Derek Price <derek.price@openavenue.com>
9497
9498 * client.c (get_cvs_port_number): change the prototype to accept a
9499 const cvsroot_t * as input and add a FIXME comment
9500 * cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
9501 * login.c (_password_entry_operation): consolidate all the ~/.cvspass
9502 access into a single new function which reads ~/.cvspass in a backwards
9503 compatible manner
9504 (logout): use the new _password_entry_operation function
9505 (login): ditto
9506 (get_cvs_password): ditto
9507 * root.c (normalize_cvsroot): move knowledge of default port & username
9508 values inside
9509
9510 2001-01-29 Larry Jones <larry.jones@sdrc.com>
9511
9512 * subr.c (shell_escape): New function.
9513 * cvs.h: Declare it.
9514 * logmsg.c (logfile_write): Use it to avoid problems with filenames
9515 containing "'".
9516 (Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
9517
9518 * server.c (outbuf_memory_error, pserver_authenticate_connection,
9519 kserver_authenticate_connection): If available, use syslog() to
9520 record some errors.
9521
9522 2001-01-25 Larry Jones <larry.jones@sdrc.com>
9523
9524 * server.c (do_cvs_command): If there's a partial output line left
9525 over and the client doesn't support MT, go ahead and send it in an
9526 M response instead of just dropping it.
9527 (Reported by Milos Kleint <Milos.Kleint@netbeans.com>.)
9528
9529 * update.c (update_fileproc): Handle toss_local_changes in the
9530 T_NEEDS_MERGE case.
9531 (Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
9532 * sanity.sh (clean): New tests for above.
9533
9534 2001-01-23 Derek Price <derek.price@openavenue.com>
9535
9536 * run.c (run_exec): flush, if used, stderr and stdout before exit
9537 * server.c (cvs_flusherr): flush stderr & send a stderr flush command
9538 on the protocol pipe
9539 (cvs_flushout): like above, for stdout
9540 (do_cvs_command): handle flushes properly
9541 * sanity.sh (reserved): make the commitinfo script echo errors to
9542 stderr rather than stdin
9543
9544 2001-01-18 Larry Jones <larry.jones@sdrc.com>
9545
9546 * log.c (option_revlist, revlist, log_usage, cvslog,
9547 log_parse_revlist, log_expand_revlist, log_version_requested): Add
9548 support for :: for exclusive ranges.
9549 * admin.c (admin_usage): Reorder -o to be parallel to log -r.
9550 * sanity.sh (log): New tests for above.
9551
9552 2001-01-18 Derek Price <derek.price@openavenue.com>
9553
9554 * main.c: Add '2001' to the range of copyright years listed by the
9555 --version option
9556 * version.c.in (version): check current_parsed_root before its isremote
9557 member to avoid a core dump
9558 * sanity.sh (version): add a test for the version command
9559
9560 * version.c: regenerated
9561
9562 2001-01-12 Larry Jones <larry.jones@sdrc.com>
9563
9564 * rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
9565 correct revision so that symbolic tags work correctly. (This
9566 requires removing the "const" from the rev parameter since it's
9567 passed to RCS_gettag which might modify it.)
9568 (Reported by irina sturm <irina.sturm@st.com>.)
9569
9570 2001-01-11 Larry Jones <larry.jones@sdrc.com>
9571
9572 * run.c (close_on_exec): Remove check for FD_CLOEXEC. As far as I
9573 can see, it's *never* been defined, which defeats the whole point.
9574 If F_SETFD is defined, it's probably safe to use it.
9575
9576 * server.c (do_cvs_command): Call close_on_exec on the protocol and
9577 flow control pipes in the child process so they don't get inherited
9578 by any subsidiary processes.
9579 (Reported by Tristan Gingold <tgi@netgem.com>.)
9580
9581 * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
9582
9583 2001-01-10 Derek Price <derek.price@openavenue.com>
9584 Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
9585
9586 * build_src.com: VMS changes
9587 * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
9588 * rcs.c: ditto
9589
9590 2001-01-10 Derek Price <derek.price@openavenue.com>
9591
9592 * main.c (current_root): explicitly list this as a static global
9593
9594 2001-01-10 Derek Price <derek.price@openavenue.com>
9595
9596 * cvs.h (get_cvs_port_number): change name & prototype from
9597 get_port_number
9598 * client.c (get_cvs_port_number): new function which returns a port
9599 number based on a cvsroot_t rather than requiring all possible sources
9600 passed in
9601 (connect_to_pserver): use new get_cvs_port_number function
9602 (connect_to_server): ditto
9603 * login.c (get_password): use new get_cvs_port_number function
9604 (login): ditto
9605 (logout): ditto
9606
9607 2001-01-10 Derek Price <derek.price@openavenue.com>
9608
9609 * Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
9610 of the build since some systems don't allow mv's across partitions
9611 * Makefile.in: regenerated
9612
9613 2001-01-10 Derek Price <derek.price@openavenue.com>
9614
9615 * Makefile.am (version.c): specify $(srcdir) explicitly in target rule
9616 so version.c gets built properly for all makes.
9617 (version.o): specify $(srcdir)/version.c explicitly so dependency is
9618 found and built properly
9619 * Makefile.in: regenerated
9620
9621 2001-01-09 Derek Price <derek.price@openavenue.com>
9622
9623 * version.c: updated timestamp
9624
9625 2001-01-09 Larry Jones <larry.jones@sdrc.com>
9626
9627 * server.c (server): Change to server_temp_dir immediately after
9628 creating it so that any stray files that happen to be created go
9629 there instead of in the server's initial directory, wherever that
9630 may be.
9631 * sanity.sh (modules5-15): Update to match.
9632
9633 * version.c.in: Update to match Derek's change to version.c.
9634
9635 2001-01-09 Derek Price <derek.price@openavenue.com>
9636
9637 * cvs.h: Remove the various CVSroot_* bits and replace them with a
9638 single structure of type cvsroot_t (current_parsed_root)
9639
9640 * root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
9641 altering global variables
9642 (local_cvsroot): return a pointer to a new cvsroot_t rather than
9643 setting globals. changed the name of this function from
9644 set_local_cvsroot to better explain new functionality
9645 (new_cvsroot_t): new initializer function
9646 (free_cvsroot_t): new function
9647 (others): use current_parsed_root rather than the old CVSroot_* globals
9648
9649 * add.c: use current_parsed_root rather than the old CVSroot_* globals
9650 * admin.c: ditto
9651 * checkout.c: ditto
9652 * client.c: ditto
9653 * commit.c: ditto
9654 * create_adm.c: ditto
9655 * diff.c: ditto
9656 * edit.c: ditto
9657 * expand_path.c: ditto
9658 * find_names.c: ditto
9659 * history.c: ditto
9660 * ignore.c: ditto
9661 * import.c: ditto
9662 * lock.c: ditto
9663 * log.c: ditto
9664 * login.c: ditto
9665 * logmsg.c: ditto
9666 * main.c: ditto
9667 * mkmodules.c: ditto
9668 * modules.c: ditto
9669 * parseinfo.c: ditto
9670 * patch.c: ditto
9671 * rcs.c: ditto
9672 * recurse.c: ditto
9673 * release.c: ditto
9674 * remove.c: ditto
9675 * repos.c: ditto
9676 * rtag.c: ditto
9677 * server.c: ditto
9678 * status.c: ditto
9679 * tag.c: ditto
9680 * update.c: ditto
9681 * version.c: ditto
9682 * watch.c: ditto
9683 * wrapper.c: ditto
9684
9685 2001-01-05 Derek Price <derek.price@openavenue.com>
9686
9687 * cvs.h (enum CVSmethod): add null_method
9688 * root.c (method_names): correlate null_method & "undefined"
9689 (parse_cvsroot): make two error cases non fatal
9690 * sanity.sh (crerepos-6b): account for new error message, re above
9691
9692 2001-01-05 Derek Price <derek.price@openavenue.com>
9693
9694 * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
9695 target to configure.in - see ../ChangeLog for more
9696 * src/cvsbug.in: Rename from cvsbug.sh
9697 * src/cvsbug.sh: Rename to cvsbug.in
9698
9699 2001-01-04 Larry Jones <larry.jones@sdrc.com>
9700
9701 * Makefile.am (cvsbug): Explicitly list input file ($< is only
9702 valid in inference rules).
9703 * Makefile.in: Ditto.
9704
9705 2001-01-04 Derek Price <derek.price@openavenue.com>
9706
9707 * sanity.sh: use getopts rather than getopt for portability reasons
9708
9709 2001-01-03 Derek Price <derek.price@openavenue.com>
9710
9711 * Makefile.am (remotecheck): depend on 'all'
9712 * Makefile.in: regenerated
9713
9714 2000-12-29 Derek Price <derek.price@openavenue.com>
9715
9716 * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
9717 to the line following the 'for'. Apparently this is more portable.
9718
9719 2000-12-29 Derek Price <derek.price@openavenue.com>
9720
9721 * sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
9722 implementation of Bourne shell doesn't seem to implement this default
9723 behavior.
9724
9725 2000-12-27 Derek Price <derek.price@openavenue.com>
9726
9727 * sanity.sh: add a -f option for continuing from a particular test
9728 and shorten --keep to -k so we can use the getopt function.
9729
9730 2000-12-27 Derek Price <derek.price@openavenue.com>
9731
9732 * Makefile.am (remotecheck): Make remotecheck dependant on all
9733 * Makefile.in: regenerated
9734
9735 2000-12-26 Derek Price <derek.price@openavenue.com>
9736
9737 * Makefile.in: update timestamp
9738 * stamp-h2.in: ditto
9739 * version.c: ditto
9740
9741 2000-12-26 Derek Price <derek.price@openavenue.com>
9742
9743 * Makefile.am: new target for version.c
9744 (EXTRA_DIST): add version.c.in & version.c so builds work when
9745 configure doesn't
9746 * Makefile.in: Regenerated
9747 * stamp-h2.in: update timestamp
9748 * version.c: ditto
9749
9750 2000-12-26 Derek Price <derek.price@openavenue.com>
9751
9752 * Makefile.am (INCLUDES): add zlib
9753 * Makefile.in: Regenerated
9754
9755 2000-12-22 Derek Price <derek.price@openavenue.com>
9756
9757 * Makefile.am (DISTCLEANFILES): added a few files
9758 (INCLUDES): commented
9759 * Makefile.in: Regenerated
9760
9761 2000-12-21 Derek Price <derek.price@openavenue.com>
9762
9763 * .cvsignore: Added .deps directory and a new stamp file
9764 * Makefile.am: New file needed by Automake
9765 * Makefile.in: Regenerated
9766 * stamp-h2.in: New stamp file created by Automake
9767 * version.c.in: use configure to generate version.c
9768
9769 2000-12-16 Derek Price <derek.price@openavenue.com>
9770
9771 * server.c (server_update): Keep the vers structure up to date after
9772 sending a Remove or Remove-entry command to the client
9773 * update.c (update): remove call to server_updated() after
9774 scratch_file()
9775 (scratch_file): in server mode, call server_updated(), otherwise keep
9776 the vers structure up to date
9777 (join_file): add a trace, save the revision to Register() on a remove
9778 before calling server_scratch & server_updated
9779 * sanity.sh (join): Add test for a remove/add caused by an update
9780 to a new branch and a join in the same step.
9781
9782 2000-12-15 Larry Jones <larry.jones@sdrc.com>
9783
9784 * error.c (error): Add %ld and %lu.
9785
9786 * history.c: Change hrec.idx from int to long, reformat NEXT_BAR
9787 for readability, add hrec_idx.
9788 (fill_hrec): Change initialization to be portable and always set
9789 idx so it can be used as a line number in error messages; improve
9790 parsing and error checking.
9791 (read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
9792 no newline at end of file.
9793 (select_hrec): Add basic validity checking.
9794
9795 2000-12-07 Larry Jones <larry.jones@sdrc.com>
9796
9797 * history.c (history): Allow multiple -m options as documented.
9798
9799 2000-11-29 Derek Price <derek.price@openavenue.com>
9800
9801 * root.c (parse_cvsroot): back out yesterday's redundant changes
9802 * main.c (main): fix CVSROOT trace message to look like other trace
9803 messages
9804 * sanity.sh (multiroot2-9): expect new trace message
9805
9806 2000-11-28 Derek Price <derek.price@openavenue.com>
9807
9808 * root.c (parse_cvsroot): add trace on this function
9809 * client.c (get_port_number): make trace print look like others
9810
9811 2000-11-16 Derek Price <derek.price@openavenue.com>
9812
9813 * filesubr.c (cvs_temp_file): back out the previous change in the
9814 interests of portability, add an assertion, and fix the header comment
9815
9816 2000-11-16 Derek Price <derek.price@openavenue.com>
9817
9818 * filesubr.c (cvs_temp_file): refine the exit behavior to notice if
9819 the out param was passed in NULL and, if so, avoid setting it and delete
9820 the temp file for later
9821
9822 2000-11-16 Derek Price <derek.price@openavenue.com>
9823
9824 * filesubr.c (cvs_temp_file): fixed a garble or two, added some
9825 additional error checking, and added a comment
9826
9827 2000-11-15 Derek Price <derek.price@openavenue.com>
9828
9829 * filesubr.c (cvs_temp_file): added cvs_temp_file
9830 function to use mkstemp rather than one of the other temp file
9831 generators as gcc keeps complaining I should.
9832 (cvs_temp_name): altered this function to simply wrap cvs_temp_file
9833 and deprecated it
9834 * cvs.h: added prototype for cvs_temp_file
9835 * commit.c (commit): use the new function instead of the old and plug
9836 an old (though related) memory leak.
9837 * import.c (import): use the new function
9838 * login.c (login): Ditto
9839 * logmsg.c (do_editor, do_verify): Ditto
9840 * patch.c (patch_fileproc): Ditto
9841
9842 2000-11-14 Larry Jones <larry.jones@sdrc.com>
9843
9844 * update.c, update.h (do_update): Add xdotemplate parameter.
9845 Change all callers.
9846 (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
9847 * checkout.c (checkout_proc): Don't create CVS/Template if
9848 exporting.
9849 (Reported by Andrey Podkolzin <mdh@zenon.net>.)
9850
9851 2000-11-08 Larry Jones <larry.jones@sdrc.com>
9852
9853 * admin.c (admin): Use getgroups() to check for membership in
9854 CVS_ADMIN_GROUP if it exists. In any event, check the user's
9855 primary group in addition to any additional groups.
9856 (Reported by Thomas Okken <TOkken@refco.com>.)
9857
9858 2000-11-06 Jim Meyering <meyering@lucent.com>
9859
9860 Compile with gcc's -Wformat and fix the exposed problems.
9861 * root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
9862 for the %s error format spec.
9863 [! HAVE_GSSAPI]: Likewise.
9864 (normalize_cvsroot): Put comment delimiters around token after `#endif'.
9865
9866 2000-11-03 Larry Jones <larry.jones@sdrc.com>
9867
9868 * sanity.sh: Some versions of sed require a space between -e and
9869 the value.
9870
9871 2000-10-27 Larry Jones <larry.jones@sdrc.com>
9872
9873 * checkout.c (checkout): Don't check for a safe location if just
9874 cat'ing the module database.
9875 (Reported by Ilya Martynov <m_ilya@agava.com>.)
9876 Have -s set cat as well as status; it simplifies the code.
9877
9878 2000-10-26 Larry Jones <larry.jones@sdrc.com>
9879
9880 * sanity.sh (join-admin-2): Check output from all commands instead
9881 of (mostly) discarding. (Some of the tests used to produce stray
9882 output in remote mode.)
9883
9884 * sanity.sh (dotest_line_by_line): Handle empty lines in pattern
9885 (expr doesn't distingish between successfully matching nothing
9886 and failing to match anything).
9887
9888 * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
9889
9890 2000-10-24 Jim Meyering <meyering@lucent.com>
9891
9892 Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
9893 sometimes be ignored for some of the files involved in an update.
9894
9895 * update.c (join_file): Restore the original value of `options'
9896 right after calling checkout_file.
9897 * sanity.sh (join-admin-2): New test for this.
9898
9899 2000-10-23 Derek Price <derek.price@openavenue.com>
9900 James Youngman <jay@gnu.org>
9901
9902 * sanity.sh: it's /gnu/bin, not /gun/bin. Thanks go to James Youngman
9903 <jay@gnu.org> for the bug report and patch.
9904
9905 2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
9906
9907 * server.c (switch_to_user): Set CVS_USER. Patch from Sudish
9908 Joseph and popularized by dozens (e.g. mozilla.org, also others).
9909
9910 2000-10-20 Derek Price <derek.price@openavenue.com>
9911 KOIE Hidetaka <hide@koie.org>
9912
9913 * root.c (normalize_cvsroot): plug a memory leak. Thanks to
9914 KOIE Hidetaka <hide@koie.org>
9915
9916 2000-10-18 Derek Price <derek.price@openavenue.com>
9917
9918 * client.c (connect_to_pserver): added a close brace the lack of which
9919 was preventing compilation when gssapi was enabled. Removed a
9920 redundant check for HAVE_KERBEROS.
9921
9922 2000-10-18 Derek Price <derek.price@openavenue.com>
9923
9924 * root.c (normalize_cvsroot): removed references to free_port_s and the
9925 now useless call to free now that port_s is on the stack. Thanks to
9926 Jon Miner.
9927
9928 2000-10-18 Derek Price <derek.price@openavenue.com>
9929
9930 * root.c (normalize_cvsroot): remove calls to snprintf for
9931 compatibility with M$ Windoze.
9932
9933 2000-10-18 Derek Price <derek.price@openavenue.com>
9934
9935 * sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
9936 the output of a test to /dev/null since we don't know what error
9937 messages specific rsh implementations will output.
9938
9939 2000-10-17 Derek Price <derek.price@openavenue.com>
9940
9941 * cvs.h: added CVSroot_password variable. Provided prototypes for
9942 get_port_number & normalize_cvsroot.
9943 * client.c (get_port_number): Fixed an ANSI prototype I had included
9944 for get_port_number.
9945 * login.c (login, logout): Removed two checks for a non-null
9946 CVSroot_username since parse_cvsroot now supplies a default in pserver
9947 mode. allow for a password in CVSROOT
9948 (get_cvs_passsword): return CVSroot_password if it was supplied
9949 in the CVSROOT.
9950 * root.c (parse_cvsroot): Changed CVSROOT spec from
9951 :method:user@host/port:/cvsroot to
9952 :method:[[user][:password]@]host[:[port]]/cvsroot
9953 Removed the xstrdup function since we'd rather have the error checking
9954 from the version in subr.c anyhow. Moved some error messages which
9955 looked like they would print the wrong error message after a failed
9956 connect_to_gserver call.
9957 (normalize_cvsroot): return a normalized CVSROOT for use in the
9958 .cvspass file.
9959 * sanity.sh (crerepos-6): fix a test which was expecting an old error
9960 message.
9961
9962 * client.c (connect_to_pserver): Moved some error messages which looked like they
9963 would print the wrong error message after a failed connect_to_gserver
9964 call.
9965
9966 * login.c (login): Paranoiacly zero a password in memory.
9967
9968 2000-10-12 Derek Price <derek.price@openavenue.com>
9969
9970 * client.c (auth_server_port_number -> get_port_number, start_pserver,
9971 start_tcp_server): use a port specified in CVSROOT instead of the
9972 default port. Failing that, use the CVS_CLIENT_PORT environment
9973 variable.
9974 * cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
9975 * root.c (parse_cvsroot): Parse the new CVSROOT format properly.
9976 Incidentally reformated some error messages for uniformity and
9977 readability.
9978 * sanity.sh (crerepos): fix two tests which were now expecting the
9979 wrong error message.
9980
9981 2000-10-11 Larry Jones <larry.jones@sdrc.com>
9982
9983 * server.c (pserver_authenticate_connection): Fix stupid mistake
9984 in previous change.
9985
9986 2000-10-11 Derek Price <derek.price@openavenue.com>
9987
9988 * main.c (main): Dispose old CVSroot when parsing a '-d' option if
9989 free_CVSroot is set.
9990 * root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
9991 static boolean I expect hasn't been used since CVS learned to handle
9992 multiple CVSROOTs.
9993
9994 2000-10-10 Larry Jones <larry.jones@sdrc.com>
9995
9996 * server.c (print_error): Make up a message if strerror fails.
9997
9998 * server.c (pserver_authenticate_connection): Give a real error
9999 message for an invalid repository.
10000
10001 2000-10-06 Derek Price <derek.price@openavenue.com>
10002
10003 * add.c (add): Made quiet mode affect some warning messages as seemed
10004 appropriate. Specifically, some of the messages which a user might
10005 want to ignore so they don't have to be quite so specific on the
10006 command line: files added twice, files already in the repository and
10007 check out properly (i.e. but picked up by 'cvs add *'), & files which
10008 are readded in place of a dead revision or onto a branch. '-q' will
10009 not change the non-zero exit code for the cases where at least one
10010 passed in file name was already in the Entries file. There seems to
10011 be a precedent in remove.c.
10012 * remove.c (cvsremove): switched the "use cvs ci to make these changes
10013 permanent message" to only print w/o '-Q' to match the new behavior of
10014 add. This seems appropriate as '-Q' is defined to restrict messages
10015 to critical errors.
10016 * sanity.sh (adderrmsg): Added some tests for the above behavior.
10017
10018 2000-10-05 Larry Jones <larry.jones@sdrc.com>
10019
10020 * client.c (call_in_directory): Create CVSADM directory if it doesn't
10021 exist in the directory. This makes client/server work more like
10022 standalone when checking out into an existing (non-CVS) directory.
10023 * sanity.sh (dirs2, conflicts3, toplevel): Update to match.
10024
10025 2000-10-03 Larry Jones <larry.jones@sdrc.com>
10026
10027 * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
10028
10029 2000-10-02 Larry Jones <larry.jones@sdrc.com>
10030
10031 * cvs.h: Define (and use) T_PATCH as a valid file classification
10032 even when SERVER_SUPPORT isn't defined -- it simplifies the code.
10033 * classify.c (Classify_File): Ditto.
10034 * commit.c (check_fileproc): Ditto.
10035 * status.c (status_fileproc): Ditto.
10036 * update.c (update_fileproc): Ditto.
10037 * tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
10038 * sanity.sh (tagc-10): Update to match.
10039
10040 2000-09-29 Larry Jones <larry.jones@sdrc.com>
10041
10042 * client.c (get_responses_and_close): Reset server_fd to -1 after
10043 shutting down.
10044 (Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
10045
10046 2000-09-27 Larry Jones <larry.jones@sdrc.com>
10047
10048 * commit.c (commit): Don't sleep before returning in server mode,
10049 just let the client do it.
10050 * update.c (do_update): Ditto.
10051
10052 * sanity.sh (find_tool): Correct method of checking for GNU tools.
10053
10054 * checkout.c (checkout_proc): Match up user directories with
10055 repository directories instead of using Emptydir.
10056 * sanity.sh (cvsadm, emptydir): Update to match.
10057
10058 2000-09-19 Larry Jones <larry.jones@sdrc.com>
10059
10060 * version.c: Push version number to 1.11.0.1.
10061
10062 * version.c: Version 1.11.
10063
10064 2000-09-07 Larry Jones <larry.jones@sdrc.com>
10065
10066 * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
10067 from autoconf.
10068
10069 2000-08-23 Larry Jones <larry.jones@sdrc.com>
10070
10071 * mkmodules.c (init): Create an empty val-tags file if it doesn't
10072 already exist to avoid problems with users not having sufficient
10073 permissions to create it later.
10074
10075 2000-09-06 Jim Kingdon <jkingdon@dhcp-net200-89.su.valinux.com>
10076
10077 * main.c (lookup_command_attribute): Add "release" to commands
10078 which can be done by a read-only user.
10079
10080 2000-08-23 Larry Jones <larry.jones@sdrc.com>
10081
10082 * repos.c (Name_Repository): Use pathname_levels to detect attempts
10083 to get above the repository instead of checking for leading ..
10084 which isn't reliable.
10085 * sanity.sh (multiroot3-12 to multiroot3-15): New tests for above.
10086
10087 2000-08-21 Larry Jones <larry.jones@sdrc.com>
10088
10089 * rcs.c (expand_keywords): Handle the unusual case of log == NULL.
10090 (Reported by Craig Metz <cmetz@inner.net>.)
10091
10092 2000-08-01 Larry Jones <larry.jones@sdrc.com>
10093
10094 * subr.c (pathname_levels): Fix bug that miscounts adjacent
10095 slashes.
10096 (Patch submitted by Tanaka Akira <akr@m17n.org>.)
10097
10098 * loginc.c (login): If available, use getpassphrase instead of
10099 getpass to support long passwords on Solaris.
10100
10101 2000-07-28 Larry Jones <larry.jones@sdrc.com>
10102
10103 * server.c (server_noop): Avoid do_cvs_command() overhead.
10104 (requests): Make noop RQ_ROOTLESS.
10105
10106 2000-07-27 Noel Cragg <noel@red-bean.com>
10107
10108 * root.c (parse_cvsroot): change fork method to behave like other
10109 remote methods -- let the server check that the repository
10110 directory is an absolute pathname.
10111
10112 2000-07-27 Larry Jones <larry.jones@sdrc.com>
10113
10114 * lock.c (set_lock): Include actual lock directory in error message.
10115 * sanity.sh (multiroot3-10): Change to match.
10116
10117 * sanity.sh (client-3): Allow for a potential "broken pipe".
10118
10119 2000-07-26 Larry Jones <larry.jones@sdrc.com>
10120
10121 * commit.c (commit_filesdoneproc): Flush stdout before running script.
10122 * modules.c (do_module): Ditto.
10123 * update.c (update_dirleave_proc): Ditto.
10124 * server.c (do_cvs_command): Give input from the protocol pipe
10125 precedence over input from stdout/stderr. There's no particularly
10126 good justification for this other than helping to avoid out-of-order
10127 messages in sanity.sh.
10128
10129 * admin.c (admin_usage): Add the supported options.
10130
10131 * sanity.sh (info): Try to avoid out-of-order messages.
10132
10133 * sanity.sh (info): Fix problems when running twice in a row.
10134
10135 2000-07-17 Larry Jones <larry.jones@sdrc.com>
10136
10137 * sanity.sh (modules5-7, cvsadm-1e, emptydir-2): Allow for a nil
10138 commit (can happen if the test is run twice in a row).
10139
10140 2000-07-19 Pavel Roskin <proski@gnu.org>
10141 and Larry Jones <larry.jones@sdrc.com>
10142
10143 * mkmodules.c (config_contents): Add a commented out example for
10144 LockDir. Don't suggest PreservePermissions unless it's enabled.
10145
10146 2000-07-17 Larry Jones <larry.jones@sdrc.com>
10147
10148 * login.c (get_cvs_password): Handle malformed ~/.cvspass more
10149 gracefully.
10150
10151 2000-07-12 Larry Jones <larry.jones@sdrc.com>
10152
10153 * sanity.sh (modules5): New tests for module programs.
10154
10155 2000-07-11 Larry Jones <larry.jones@sdrc.com>
10156
10157 * filesubr.c (copy_file, xcmp): Handle systems (like Plan 9) that
10158 don't support mknod() and/or st_rdev.
10159 * import.c (add_rcs_file): Ditto.
10160 * rcs.c (RCS_checkout, RCS_checkin): Ditto.
10161 * update.c (special_file_mismatch): Ditto.
10162
10163 2000-07-10 Larry Jones <larry.jones@sdrc.com>
10164
10165 * zlib.c (gunzip_and_write): Fix type clashes.
10166
10167 * main.c (main): Remove unused variables.
10168
10169 2000-07-10 Jim Meyering <meyering@lucent.com>
10170
10171 When a command like `cvs update -kk -jT1 -jT2' creates a new file
10172 (because it had the T2 tag, but not T1), the subsequent commit of
10173 that just-added file would effectively set the admin `-kk' option
10174 for that file in the repository.
10175
10176 * update.c (join_file): Rename global-shadowing local `options'
10177 to `t_options'.
10178 Set file-scoped global `options' to NULL just before
10179 check-out.
10180 * sanity.sh (join-admin): New test for this.
10181
10182 2000-07-08 Larry Jones <larry.jones@sdrc.com>
10183
10184 * version.c, cvs.h (version): New function.
10185 * main.c (cmds[]): Add version command to invoke it.
10186 (main): Also use it in -v.
10187 * server.c (serve_version): New function.
10188 (requests[]): Add version command to invoke it.
10189
10190 2000-07-06 Karl Fogel <kfogel@red-bean.com>
10191
10192 * sanity.sh (pserver-14): remove this test for portability
10193 reasons (it was only recently added for the 2000-07-04 change).
10194
10195 2000-07-06 Larry Jones <larry.jones@sdrc.com>
10196
10197 sanity.sh (modules-148): Don't test for specific revisions.
10198
10199 * main.c (main): Catch SIGABRT to try to clean up after assertion
10200 failures. Don't bother SIG_register'ing Lock_Cleanup because
10201 main_cleanup calls it indirectly anyway.
10202 * patch.c (patch): Catch SIGABRT.
10203 * rcs.c (rcs_internal_lockfile): Ditto.
10204 * server.c (server): Ditto.
10205
10206 * fileattr.c (fileattr_write): Don't delete the unrecog_head list
10207 when writing...
10208 (fileattr_free): Delete it when freeing!
10209
10210 2000-07-05 Larry Jones <larry.jones@sdrc.com>
10211
10212 * admin.c (admin): Handle -t in client so reading from files works
10213 correctly in client/server mode.
10214 * sanity.sh (log2): Update to match.
10215
10216 2000-07-04 Karl Fogel <kfogel@red-bean.com>
10217
10218 * server.c (pserver_authenticate_connection): use new
10219 getline_safe() during authentication phase, to avoid a
10220 denial-of-service attack in which client sends arbitrary
10221 amounts of data with no newlines.
10222 (Reported by <jpmg@eng.cam.ac.uk>.)
10223
10224 * sanity.sh: new test pserver-14 for above.
10225
10226 * myndbm.c: #include getline.h.
10227 (mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
10228
10229 2000-07-03 Larry Jones <larry.jones@sdrc.com>
10230
10231 * sanity.sh (modules): Rewrite using dotest. Add "modules-"
10232 prefix to test names.
10233
10234 2000-06-28 Larry Jones <larry.jones@sdrc.com>
10235
10236 * error.c (error_exit): Call rcs_cleanup () to release any rcs locks.
10237 * rcs.c, rcs.h (rcs_cleanup): Make public, close file before trying
10238 to remove (some systems won't remove open files).
10239 (RCS_putdtree): Don't worry about cleaning up before call error
10240 since it now does it for us.
10241 (rcs_internal_lockfile, rcs_internal_unlockfile): Keep track of
10242 lock file fd for rcs_cleanup ().
10243
10244 * client.c (handle_set_checkin_prog, handle_set_update_prog):
10245 Just ignore the request when exporting.
10246
10247 2000-06-27 Larry Jones <larry.jones@sdrc.com>
10248
10249 * create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
10250 Change all callers.
10251 * checkout.c (checkout_proc): Don't create CVS/Template if
10252 exporting.
10253
10254 2000-06-26 Pavel Roskin <proski@gnu.org>
10255 and Larry Jones <larry.jones@sdrc.com>
10256
10257 * server.c (switch_to_user): Only set CVS_Username if
10258 AUTH_SERVER_SUPPORT is defined.
10259
10260 2000-06-23 Larry Jones <larry.jones@sdrc.com>
10261
10262 * client.c (send_dirent_proc): Don't allocate ignlist if you're
10263 going to skip the directory (plugs memory leak).
10264 (send_dirleave_proc): New function.
10265 (send_files): Use it (plugs memory leak).
10266 * root.c (root_allow_free): Plug memory leaks.
10267 * server.c (serve_directory, serve_notify, check_password,
10268 pserver_authenticate_connection): Ditto.
10269 * update.c (update): Ditto.
10270
10271 This completes the memory leak shoot-out -- the Purify'ed version
10272 of CVS now runs the entire test suite, both local and remote (except
10273 for remote crerepos, which causes Purify to choke) with *no* memory
10274 leaks.
10275
10276 * server.c (pserver_authenticate_connection): Don't free null pointer.
10277
10278 2000-06-21 Larry Jones <larry.jones@sdrc.com>
10279
10280 * client.c (update_entries, get_responses_and_close): Plug memory leaks.
10281 * commit.c (find_fileproc, commit): Ditto.
10282 * import.c (import): Ditto.
10283 * log.c (cvslog): Ditto.
10284 * recurse.c (start_recursion): Ditto.
10285 * remove.c (cvsremove): Ditto.
10286 * server.c (fd_buffer_initialize, server_notify, do_cvs_command): Ditto.
10287 (fd_buffer_shutdown): New function.
10288
10289 2000-06-20 Larry Jones <larry.jones@sdrc.com>
10290
10291 * root.c (parse_cvsroot): Put the terminating NUL byte into the
10292 string *before* copying it, not after. :-(
10293
10294 2000-06-19 Larry Jones <larry.jones@sdrc.com>
10295
10296 * main.c (main): Plug memory leaks.
10297 * root.c (parse_cvsroot, set_local_cvsroot): Ditto.
10298 * server.c (serve_root): Ditto.
10299
10300 2000-06-16 Larry Jones <larry.jones@sdrc.com>
10301
10302 * fileattr.c (fileattr_read): Plug memory leak.
10303 * rcs.c (RCS_whatbranch): Ditto.
10304 * update.c (update_dirleave_proc): Ditto.
10305
10306 * ignore.c (ign_dir_add): Duplicate string so caller can free.
10307
10308 * modules.c (do_module): Don't write into dbm's memory!
10309
10310 2000-06-15 Larry Jones <larry.jones@sdrc.com>
10311
10312 * checkout.c (checkout_proc): Fix non-ANSI code in call to
10313 findslash(), minor cleanups.
10314
10315 2000-06-14 Larry Jones <larry.jones@sdrc.com>
10316
10317 * tag.c (val_direntproc): Return R_PROCESS instead of 0.
10318
10319 * client.c (update_entries): Fix type clash calling gunzip_and_write().
10320 * server.c (receive_file): Fix type clash calling gunzip_and_write().
10321 (server_updated): Fix type clash calling buf_output().
10322 * error.c (error): Make buf char instead of unsigned char to avoid
10323 type clashes.
10324
10325 * modules.c (do_module): Change callback_proc to pass argc by
10326 value instead of by reference: callback procs shouldn't be
10327 messing with the callers argc/argv, it makes correct memory
10328 management impossible. Plug memory leaks.
10329 * cvs.h: Change to match.
10330 * checkout.c (checkout_proc): Ditto; use a local argv array instead
10331 of messing with caller's.
10332 * modules.c (callback_proc): Ditto.
10333 * patch.c (patch_proc): Ditto; use a local argv array instead
10334 of messing with caller's.
10335 * rtag.c (rtag_proc): Ditto; use a local argv array instead
10336 of messing with caller's.
10337 * server.c (expand_proc): Ditto.
10338 * subr.c (line2argv): Change initial argv_allocated back to 1.
10339
10340 * checkout.c (findslash): Fix non-ANSI code.
10341
10342 * sanity.sh (modes3): Fix test names.
10343
10344 2000-06-13 Larry Jones <larry.jones@sdrc.com>
10345
10346 * add.c (add): Plug memory leaks.
10347 * admin.c (admin_fileproc): Ditto.
10348 * checkout.c (build_dirs_and_chdir): Ditto.
10349 * edit.c (editors_fileproc): Ditto.
10350 * log.c (cvslog, log_parse_revlist, log_parse_date): Ditto.
10351 * rcs.c (RCS_addaccess): Ditto.
10352 * tag.c (check_fileproc): Ditto.
10353 * vers_ts.c (Version_TS): Ditto.
10354 * watch.c (watchers_fileproc): Ditto.
10355
10356 2000-06-12 Larry Jones <larry.jones@sdrc.com>
10357
10358 * rcs.c (rcsbuf_valword): Set rcsbuf->vlen to keep rcsbuf_valcopy()
10359 from allocating more memory than needed for @ strings. Don't declare
10360 unless PRESERVE_PERMISSIONS_SUPPORT (since not defined).
10361
10362 * rcs.c (RCS_abandon): New function to abandon changes.
10363 * rcs.h: Declare it.
10364 * admin.c (admin_fileproc): Use it instead of RCS_reparsercsfile.
10365
10366 * commit.c (commit_fileproc): Fix memory leaks.
10367 * patch.c (patch_fileproc): Ditto.
10368 * rcs.c (RCS_nodeisbranch, RCS_copydeltas): Ditto.
10369 * tag.c (tag_fileproc): Ditto.
10370 * update.c (update): Ditto.
10371
10372 2000-06-09 Larry Jones <larry.jones@sdrc.com>
10373
10374 * rcs.c (RCS_reparsercsfile, RCS_fully_parse, getdelta,
10375 RCS_getdeltatext): Handle newphrases with composite values.
10376 (rcsbuf_getkey): Don't remove @s in composite values -- it makes
10377 it impossible to parse the value! Set special flag to indicate
10378 a composite value.
10379 (rcsbuf_valcopy, rcsbuf_valpolish_internal): Handle composite values.
10380 (putrcsfield): Write composite values.
10381 (RCS_checkin): Set node types in other_delta list.
10382 * hash.h: Add RCSCMPFLD.
10383 * hash.c (nodetypestring): Ditto.
10384
10385 * rcs.c (getdelta): Never allocate space for value, just return
10386 pointer into rcsbuf (fixes memory leaks). Use rcsbuf_getkey to
10387 read a key and value and then parse the value if needed rather
10388 than trying to read it in bits and pieces with rcsbuf_getid,
10389 rcsbuf_getstring, and rcsbuf_getword.
10390 (RCS_reparsercsfile): Change callers to compensate.
10391 (rcsbuf_valcmp, rcsbuf_valword): New functions.
10392 (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): Deleted.
10393 * sanity.sh (rcs3-1): Now get slightly different error message.
10394
10395 2000-06-08 Larry Jones <larry.jones@sdrc.com>
10396
10397 * main.c (usg): Update CVS home page URL.
10398
10399 * main.c (main): Provide an actual error message for an unknown
10400 command in addition to the usage message.
10401
10402 2000-06-07 Larry Jones <larry.jones@sdrc.com>
10403
10404 * server.c (serve_root, dirswitch, serve_repository,
10405 serve_static_directory, serve_sticky, receive_partial_file,
10406 receive_file, serve_modified, server_write_entries, serve_notify,
10407 serve_checkin_prog, serve_update_prog, server): Don't set
10408 pending_error before calling alloc_pending, it makes it fail;
10409 use alloc_pending instead of malloc when reasonable; be sure to
10410 save errno before calling functions that might change it.
10411 (Patch submitted by Dietmar Petras <dietmar.petras@elsa.de>.)
10412
10413 2000-06-03 Larry Jones <larry.jones@sdrc.com>
10414
10415 * commit.c (checkaddfile): Plug memory leak.
10416 * rcs.c (RCS_checkin): Plug memory leaks.
10417 * server.c (do_cvs_command): Plug file descriptor leaks.
10418 * tag.c (check_fileproc): Plug memory leak.
10419
10420 2000-05-26 Larry Jones <larry.jones@sdrc.com>
10421
10422 * recurse.c (unroll_files_proc): Plug memory leak.
10423
10424 * recurse.c (addfile): Fix nonportable pointer cast.
10425
10426 * rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
10427 leaks.
10428
10429 2000-05-25 Larry Jones <larry.jones@sdrc.com>
10430
10431 * checkout.c (checkout, build_one_dir, checkout_proc): Move m_type
10432 to file scope and use it instead of continually doing strcmp on
10433 command_name.
10434 (build_one_dir, checkout_proc): Don't allow export if CVSADM
10435 directory already exists.
10436
10437 2000-05-23 Larry Jones <larry.jones@sdrc.com>
10438
10439 * rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks. (Patch
10440 submitted by Chris G. Demetriou <cgd@sibyte.com>.)
10441
10442 2000-05-20 Ian Lance Taylor <ian@zembu.com>
10443
10444 * client.c (connect_to_gserver): Handle server error messages
10445 reasonably.
10446
10447 2000-05-19 Larry Jones <larry.jones@sdrc.com>
10448
10449 * server.c (requests): Make Global_option RQ_ROOTLESS so it can be
10450 used with init.
10451
10452 2000-05-18 Larry Jones <larry.jones@sdrc.com>
10453
10454 * client.c (start_server): Don't do encryption, authentication,
10455 compression, or case insensitivity when doing init because init
10456 is ROOTLESS and they're not.
10457
10458 * client.c (connect_to_pserver): Include repository and username in
10459 authorization failed message -- if a directory tree crosses multiple
10460 repositories, it can be quite difficult for the user to figure out
10461 which one is the problem.
10462
10463 2000-05-17 Larry Jones <larry.jones@sdrc.com>
10464
10465 * main.c (main): Use full set of options when looking for -f to
10466 avoid misparsing options that take values (previously, -sVAR=foo
10467 was incorrectly parsed as though it were -s -V -A -R -= -f -o -o
10468 because it didn't know that -s takes a value).
10469 * sanity.sh (info-6b): New test for above.
10470
10471 * sanity.sh (conflicts-status): Fix tests so they work remotely, too.
10472
10473 2000-05-17 Jim Meyering <meyering@lucent.com>
10474
10475 * sanity.sh (TESTDIR): Fix braino in last change:
10476 cd to /tmp before invoking pwd.
10477
10478 * sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
10479 is a symlink.
10480 (join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
10481 (conflicts-132): Remove unnecessary `rm aa'.
10482
10483 2000-05-16 Jim Kingdon <kingdon@redhat.com>
10484
10485 * cvs.h, checkout.c (safe_location): Make extern.
10486 * import.c (import): Call it rather than reimplementing
10487 (incompletely) the same check.
10488
10489 2000-05-16 Larry Jones <larry.jones@sdrc.com>
10490
10491 * rcs.h, subr.c (file_has_markers): Check for any of the three
10492 conflict marker lines, not just one.
10493 * sanity.sh (conflicts-status): New tests for above.
10494 * sanity.sh: Revise to avoid tripping the above check when merging
10495 changes into sanity.sh itself.
10496
10497 2000-05-15 Larry Jones <larry.jones@sdrc.com>
10498
10499 * update.c (join_file): When registering the result of the merge,
10500 make sure that the version number is valid (vers->vn_rcs may be
10501 null if the file doesn't exist on the branch yet). (Patch submitted
10502 by Robert de Vries <rhdv@rhdv.cistron.nl>.)
10503 * update.c (join_file): Correct diagnostics (previous change was not
10504 correct -- the file *does* exist in the specified revision, it just
10505 doesn't exist in the sandbox).
10506 * sanity.sh (import-113, join): New tests and changes for above.
10507
10508 2000-05-04 Larry Jones <larry.jones@sdrc.com>
10509
10510 * sanity.sh: Look for a useful id program. Since we're getting
10511 the real username for some tests anyway, use it for all the
10512 tests instead of a generic regular expression that may or may
10513 not match the actual username.
10514
10515 2000-05-04 Larry Jones <larry.jones@sdrc.com>
10516
10517 * server.c: More error messages.
10518
10519 2000-05-02 Donald Sharp <sharpd@cisco.com>
10520 and Larry Jones <larry.jones@sdrc.com>
10521
10522 * history.c (report_hrecs): Added code to print out year instead of
10523 just month/day.
10524 * sanity.sh (basic2-64, history): Update to match.
10525
10526 2000-04-19 Larry Jones <larry.jones@sdrc.com>
10527
10528 * server.c (dirswitch): Set pending_error_text in addition to
10529 pending_error to aid in problem determination.
10530
10531 2000-03-23 Larry Jones <larry.jones@sdrc.com>
10532
10533 * mkmodules.c (mkmodules): Return without doing anything if noexec
10534 is set to avoid trashing existing files.
10535
10536 2000-03-23 Larry Jones <larry.jones@sdrc.com>
10537
10538 * main.c: Alphabetize cmds[] and cmd_usage[] and add server
10539 commands to cmd_usage[].
10540
10541 2000-03-21 Larry Jones <larry.jones@sdrc.com>
10542
10543 * sanity.sh (client-1): May get "Broken pipe" message from the
10544 "server" in addition to the expected output.
10545
10546 2000-03-17 Larry Jones <larry.jones@sdrc.com>
10547
10548 * server.c (switch_to_user): Set CVS_Username if it hasn't already
10549 been set elsewhere. (Patch submitted by Gordon Matzigkeit
10550 <gord@fig.org>).
10551
10552 2000-03-13 Larry Jones <larry.jones@sdrc.com>
10553
10554 * parseinfo.c: Add extern to logHistory declaration. (Reported by
10555 <John.Tytgat@aaug.net>.)
10556 (parse_config): Reformat logHistory code.
10557
10558 2000-03-10 Larry Jones <larry.jones@sdrc.com>
10559
10560 * add.c (add): Don't try to set cvsroot_len until after checking
10561 for help only -- CVSroot_directory isn't set in that case.
10562
10563 2000-03-03 Larry Jones <larry.jones@sdrc.com>
10564
10565 * mkmodules.c (init): Use mkdir_if_needed to create CVSROOT/Emptydir
10566 so we don't fail if run multiple times. (Reported by KOIE Hidetaka
10567 <hide@koie.org>.)
10568 * sanity.sh (1a): New test for above.
10569
10570 2000-03-02 Larry Jones <larry.jones@sdrc.com>
10571
10572 * main.c: Use identical #if's in the command table and the code
10573 for pserver and kserver to prevent "peculiar" configurations from
10574 having really perverse behavior because the command table entries
10575 are present but the related code isn't.
10576
10577 2000-03-01 Larry Jones <larry.jones@sdrc.com>
10578
10579 * import.c (import): Don't allow importing the repository.
10580 * sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
10581
10582 2000-03-01 Larry Jones <larry.jones@sdrc.com>
10583
10584 * main.c (main): Update year in copyright message.
10585
10586 2000-03-01 Larry Jones <larry.jones@sdrc.com>
10587
10588 * logmsg.c (do_editor): Correct previous change.
10589
10590 2000-02-29 Larry Jones <larry.jones@sdrc.com>
10591
10592 * logmsg.c (do_editor): When reading temp file, check that message
10593 buffer is large enough to hold the next line and expand if needed.
10594
10595 2000-02-28 Larry Jones <larry.jones@sdrc.com>
10596
10597 * commit.c (commit): Use get_file() to read log file correctly
10598 and in text mode rather than binary mode.
10599
10600 * subr.c (get_file): Ignore bufsize if buf is NULL. Include
10601 terminating NUL byte when estimating required buffer size.
10602
10603 2000-02-28 Larry Jones <larry.jones@sdrc.com>
10604
10605 * sanity.sh (find_tool): New function to replace duplicated code.
10606
10607 2000-02-25 Larry Jones <larry.jones@sdrc.com>
10608
10609 * import.c (add_rcs_file): Don't abort just because lstat fails.
10610
10611 2000-02-16 Jim Meyering <meyering@lucent.com>
10612
10613 Avoid race condition whereby a catchable signal could
10614 end up corrupting the repository.
10615 * commit.c (checkaddfile): Put a critical section around the code
10616 that handles the first commit on the trunk of a file that's already
10617 been committed on a branch.
10618 * cvs.h (Sig_inCrSect): Declare new function.
10619
10620 2000-02-21 Karl Fogel <kfogel@red-bean.com>
10621
10622 * main.c (main): still check for repository, but not history file
10623 (correction to 2000-02-18 change -- that's what I get for
10624 believing the comment rather than the code).
10625
10626 2000-02-21 K.J. Paradise <kj@sourcegear.com>
10627
10628 * history.c mkmodules.c parseinfo.c: control which actions
10629 get logged to the cvs history file via CVSROOT/config file
10630 and LogHistory keyword. (John P Cavanaugh <cavanaug@sr.hp.com>)
10631
10632 2000-02-18 Karl Fogel <kfogel@red-bean.com>
10633
10634 * history.c (history_write): don't die if history file not
10635 writable, just warn (unless `really_quiet') and skip out.
10636
10637 * main.c (main): don't bother checking if history file is
10638 writable.
10639
10640 * server.c (serve_root): same.
10641
10642 2000-02-17 Larry Jones <larry.jones@sdrc.com>
10643
10644 * sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
10645 default since PreservePermissions code is now disabled.
10646
10647 2000-02-17 Larry Jones <larry.jones@sdrc.com>
10648
10649 * sanity.sh (import-113): Revise to match Jim Meyering's fix.
10650
10651 2000-02-16 Larry Jones <larry.jones@sdrc.com>
10652
10653 * add.c (add): Don't allow adding files or directories to Emptydir.
10654 (Patch submitted by Chris Cameron <chris.cameron@ot.co.nz>.)
10655 * sanity.sh (emptydir): Revise (emptydir-7 and emptydir-8) for this.
10656
10657 2000-02-16 Jim Meyering <meyering@lucent.com>
10658
10659 * update.c (join_file): Correct typo in diagnostic:
10660 change `file %s is present...' to `file %s is not present...'.
10661
10662 2000-02-10 Larry Jones <larry.jones@sdrc.com>
10663
10664 * parseinfo.c (Parse_Info): Treat matching lines with bad expansions
10665 as errors rather than just ignoring.
10666
10667 2000-02-10 Larry Jones <larry.jones@sdrc.com>
10668
10669 * edit.c (edit): Check for invalid characters in hostname and CurDir.
10670 (Reported by "Andrew S. Townley" <atownley@informix.com>.)
10671 * sanity.sh (devcom2): New tests for above.
10672
10673 2000-02-10 Larry Jones <larry.jones@sdrc.com>
10674
10675 * cvs.h: Always #include "server.h" to prevent compile errors when
10676 neither CLIENT_SUPPORT nor SERVER_SUPPORT is defined.
10677 (Reported by "Crow, Ian" <ian.crow@linklaters.com>.)
10678 * log.c (send_one, send_arg_list): Only define when CLIENT_SUPPORT
10679 is defined to prevent link errors.
10680
10681 * server.c (server): Always create a new temporary directory, don't
10682 try to reuse an existing one since we might not have correct
10683 permissions. Also, include directory name in error messages.
10684
10685 2000-01-29 Jim Kingdon <http://developer.redhat.com/>
10686
10687 * ignore.c (ignore_files): Correctly set errno to 0 when we go
10688 back to the top of the loop. Fixes spurious errors like "cvs
10689 update: error reading current directory: No such file or
10690 directory".
10691
10692 2000-01-26 Larry Jones <larry.jones@sdrc.com>
10693
10694 * run.c (run_exec): Conditionalize K.J.'s change so that it only
10695 applies when SETXID_SUPPORT is defined since some platforms don't
10696 have setegid().
10697
10698 2000-01-26 Larry Jones <larry.jones@sdrc.com>
10699
10700 * sanity.sh: Make TESTDIR earlier then use it to check for versions
10701 of expr that don't work right with long expressions.
10702
10703 * sanity.sh (dotest_line_by_line): Have wc read from stdin so it
10704 doesn't output the file name and confuse expr. Make the output a
10705 bit less verbose and easier to read.
10706
10707 2000-01-24 K.J. Paradise <kj@sourcegear.com>
10708
10709 * run.c :> prevents a user from creating a privileged shell from the
10710 text editor when the SETXID_SUPPORT option is selected. This came from
10711 Bob Colle <bcolle@ilx.com>, and is his completely.
10712
10713 2000-01-22 Jim Kingdon <http://developer.redhat.com/>
10714
10715 * sanity.sh (emptydir): Add a case in which one might hope for a
10716 non-Emptydir result, but which result?
10717
10718 2000-01-18 Larry Jones <larry.jones@sdrc.com>
10719
10720 * main.c (main): Allow -z0 to disable gzip compression.
10721
10722 2000-01-17 Larry Jones <larry.jones@sdrc.com> for
10723 K.J. Paradise (kj@sourcegear.com)
10724
10725 * version.c: Push version number to 1.10.8.1.
10726
10727 * version.c: Version 1.10.8.
10728
10729 2000-01-17 Larry Jones <larry.jones@sdrc.com>
10730
10731 * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
10732 with users not having sufficient permissions to create it later.
10733
10734 2000-01-04 Larry Jones <larry.jones@sdrc.com>
10735
10736 * client.c (get_responses_and_close): Simplify time-stamp race
10737 avoidance code.
10738 * commit.c (commit): Ditto.
10739 * update.c (do_update): Ditto.
10740 (Prompted by patch submitted by Pavel Roskin
10741 <pavel_roskin@geocities.com>.)
10742
10743 * hardlink.c: sizeof (char) is 1, by definition.
10744 * logmsg.c: Ditto.
10745 * rcs.c: Ditto.
10746
10747 2000-01-03 Karl Fogel <kfogel@red-bean.com>
10748
10749 * filesubr.c, subr.c (backup_file): moved this function from
10750 filesubr.c to subr.c, at JimK's suggestion.
10751
10752 2000-01-03 Jim Kingdon <http://developer.redhat.com/>
10753
10754 * sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
10755 file, not just its existence.
10756
10757 2000-01-03 Karl Fogel <kfogel@red-bean.com>
10758
10759 * cvs.h, filesubr.c (backup_file): use `const' for suffix too;
10760 correct suffix length calculation and appending behavior; discard
10761 unnecessary `void' cast. Thanks to Jim Meyering for noticing.
10762
10763 2000-01-03 Larry Jones <larry.jones@sdrc.com>
10764
10765 * sanity.sh (clean): Fix up expected output.
10766
10767 2000-01-02 John P Cavanaugh <cavanaug@sr.hp.com>
10768 and Karl Fogel <kfogel@red-bean.com>
10769
10770 New -C option to update: overwrites local changes with clean
10771 copies from the repository. (This is an unreversion of the
10772 1999-12-10 change, further modified to work remotely.)
10773
10774 * client.h (BACKUP_MODIFIED_FILES): new #define.
10775
10776 * client.c (struct send_data): new element `backup_modified'.
10777 (send_files): set above element if BACKUP_MODIFIED_FILES flag is
10778 present.
10779
10780 * filesubr.c (backup_file): new function.
10781
10782 * cvs.h: prototype for new function `backup_file'.
10783
10784 * update.c (toss_local_changes): new file-scoped global.
10785 (update): set toss_local_changes if -C flag seen. If
10786 client_active, send "-C" to server, and set SEND_NO_CONTENTS and
10787 BACKUP_MODIFIED_FILES flags before calling send_files().
10788
10789 (update_fileproc): if file is modified and toss_local_changes is
10790 set, then back the file up and then check out a fresh copy from
10791 the repository. Also, fixed indentation and formatting for a
10792 particularly bad stretch of code near (but unrelated to) these
10793 changes.
10794
10795 * sanity.sh: new test `clean', for update -C option.
10796
10797 1999-12-29 Jim Kingdon <http://developer.redhat.com/>
10798
10799 * history.c (read_hrecs): st_blksize is unsigned long, not int.
10800 This isn't just cosmetic - getting it wrong will cause coredumps
10801 and such on 64 bit machines.
10802
10803 * import.c (import_descend), ignore.c (ignore_files): Placate gcc
10804 -Wall by parenthesizing foo || (bar && baz).
10805
10806 1999-12-24 Larry Jones <larry.jones@sdrc.com>
10807
10808 * release.c (release): Use fputs to echo lines from update instead
10809 of printf to avoid problems with lines containing "%". (Reported
10810 by Jean-Luc Simard <Jean-Luc.Simard@matrox.com>.)
10811
10812 * history.c (read_hrecs): Allocate a single 2-block buffer instead
10813 of allocating and freeing a buffer for each block.
10814 (fill_hrec): Remove redundant code.
10815 (select_hrec): Plug memory leak.
10816
10817 1999-12-22 Larry Jones <larry.jones@sdrc.com>
10818
10819 * history.c (history): For "modified" or "checkout", sort on
10820 file if user specified -l, even if user also specified a date-
10821 oriented flag.
10822 * sanity.sh (history): Update to match; add new tests.
10823
10824 1999-12-15 Pavel Roskin <pavel_roskin@geocities.com>
10825 and Larry Jones <larry.jones@sdrc.com>
10826
10827 * lock.c (lock_name): fixed assertion failure for the
10828 top-level CVS directory when LockDir is used
10829 * sanity.sh (lockfiles-9): new test for this case
10830
10831 1999-12-11 Karl Fogel <kfogel@red-bean.com>
10832
10833 * Revert previous change -- it doesn't work remotely yet.
10834
10835 1999-12-10 John P Cavanaugh <cavanaug@sr.hp.com>
10836 and Karl Fogel <kfogel@red-bean.com>
10837
10838 * update.c: new -C option to update, overwrites local changes with
10839 clean copies from the repository.
10840 Also, fixed indentation and formatting for a particularly bad
10841 stretch of code near these changes in update_fileproc().
10842
10843 * sanity.sh: test new update -C option.
10844
10845 1999-12-10 Larry Jones <larry.jones@sdrc.com>
10846
10847 * commit.c (remove_file): Call history_write with update_dir NULL
10848 like Checkin() does for add and modify.
10849 * sanity.sh (basic2-64): Update to match, add "R" records to expected
10850 remote output.
10851
10852 1999-12-09 K.J. Paradise (kj@sourcegear.com)
10853
10854 * history.c, commit.c, sanity.sh: found (I think) final
10855 cause of seg fault in history command. Also, added the "R"
10856 history functionality. Fixed basic2-64 so it looks correct for
10857 the change.
10858
10859 1999-11-30 K.J. Paradise (kj@sourcegear.com)
10860
10861 * history.c: fixed seg fault caused by 11-03 changes.
10862 off by one in block memory allocations.
10863
10864 1999-11-29 Karl Fogel <kfogel@red-bean.com>
10865
10866 * login.c (logout): free `tmp_name' when done.
10867 Correct a comment.
10868
10869 1999-11-29 Larry Jones <larry.jones@sdrc.com>
10870
10871 * cvs.h, error.c, import.c: Rename fperror to avoid name clash
10872 on LynxOS. (Reported by Markus Braun <MarkusBraun@gmx.de>.)
10873
10874 1999-11-23 Larry Jones <larry.jones@sdrc.com>
10875
10876 * checkout.c (checkout_proc): Split declaration and initialization
10877 of rp to placate neurotic compilers that gripe about jumping past
10878 an initialization, even when the variable is not subsequently used.
10879
10880 1999-11-19 Larry Jones <larry.jones@sdrc.com>
10881
10882 * server.c (switch_to_user): Correct setgid error messages.
10883
10884 1999-11-19 Karl Fogel <kfogel@red-bean.com>
10885
10886 * edit.c (unedit_usage, unedit): new struct, use it. Now "cvs
10887 unedit" prints an accurate usage message (formerly it printed the
10888 message for "cvs edit", even though the two commands do not have
10889 identical usages).
10890
10891 1999-11-19 Larry Jones <larry.jones@sdrc.com>
10892
10893 * history.c: Move -e documentation from Flags to Reports.
10894 (history): Add -e to list of report types in error message.
10895
10896 * history.c (history): Process file arguments before client/server
10897 processing so they get sent to the server.
10898 * sanity.sh (history): New tests for above. (Also remove comments
10899 about variable spacing -- history output is in variable-width
10900 columns with exactly one space between.)
10901
10902 1999-11-19 Larry Jones <larry.jones@sdrc.com>
10903
10904 * sanity.sh: Reestablish check for running as root (using ``id -u''
10905 instead of ``whoami'').
10906
10907 * sanity.sh(dotest, dotest_lit, dotest_fail, dotest_status,
10908 dotest_sort): Eval the command so quoting and pipes work right.
10909 (spacefiles, dirs, rcslib, modules, unedit-without-baserev,
10910 ignore, rcs, rcs2, history, tagdate, pserver, server, server2)
10911 Simplify various tests based on above.
10912
10913 1999-11-19 Karl Fogel <kfogel@red-bean.com>
10914
10915 * mkmodules.c (init): make history file world-writeable after
10916 creating it, since it needs to be writeable for virtually any
10917 CVS operation.
10918
10919 1999-11-10 Jim Kingdon <http://developer.redhat.com/>
10920
10921 * admin.c: Revert change to add -H command option. The help
10922 invocation is "cvs -H admin" not "cvs admin -H" (see cvs.texinfo,
10923 basicb-21 in sanity.sh; fix to cvs.1)
10924
10925 1999-11-08 Jim Kingdon <http://developer.redhat.com/>
10926
10927 * log.c (cvslog): If client_active, send options to the server
10928 based on our parsed options rather than trying to send the exact
10929 strings specified (using canonical forms, like RFC822/1123
10930 dates, in the protocol is just cleaner).
10931 (send_one, send_arg_list): New functions, helpers for above.
10932 * sanity.sh (logopt-6a): New test, for this fix.
10933
10934 1999-11-09 K.J. Paradise <kj@sourcegear.com>
10935
10936 * admin.c: made the -H option do what it is documented to
10937 do. a
10938
10939 1999-11-08 Tom Tromey <tromey@cygnus.com>
10940
10941 * client.c (connect_to_gserver): Print more error text if gssapi
10942 initialization fails. From Assar Westerlund <assar@sics.se>.
10943
10944 1999-11-06 Larry Jones <larry.jones@sdrc.com>
10945
10946 *sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
10947 more general pattern to match the assertion failure.
10948
10949 1999-11-05 K.J. Paradise (kj@sourcegear.com)
10950
10951 * history.c: Added a trap to verify that if a
10952 read(file, buffer,blocksize) returns less than blocksize,
10953 that we really are at the end of the file. I can't easily
10954 come up with a test case where this code gets touched, so
10955 it may cause problems. All sanity tests still pass though.
10956
10957 1999-11-05 Jim Kingdon <http://developer.redhat.com/>
10958
10959 * sanity.sh (logopt): New test, for Larry's fix.
10960 * sanity.sh (log-18a, rcs-15 to rcs-19): New tests, to test -d
10961 and -r more thoroughly.
10962
10963 1999-11-05 Larry Jones <larry.jones@sdrc.com>
10964
10965 * log.c (cvslog): Fix -s and -d with spaces on client side.
10966 (log_usage): Revert Karl's change once again.
10967 sanity.sh(rcs3-5): No longer get different results from local
10968 and client/server.
10969
10970 1999-11-04 Karl Fogel <kfogel@red-bean.com>
10971
10972 * log.c (log_usage): Revert Jim Kingdon's reversion of my change
10973 of 1999-11-03. Allowing a space between option and argument
10974 results in lossage; here is a reproduction recipe: run this from
10975 the top of a remote copy of the cvs source tree
10976
10977 cvs log -d '>1999-03-01' > log-out.with-space
10978
10979 and then run this (note there's no space after -d now):
10980
10981 cvs log -d'>1999-03-01' > log-out.no-space
10982
10983 The resulting files differ; furthermore, a glance at the output of
10984 cvs shows that the first command failed to recurse into
10985 subdirectories. Until this misbehavior can be fixed in the source
10986 code, the documentation should reflect the true state of affairs:
10987 if one simply omits the space, everything works fine.
10988
10989 1999-11-04 Jim Kingdon <http://developer.redhat.com/>
10990
10991 * log.c (log_usage): Revert Karl's change regarding -d and
10992 -s. A space is allowed (see sanity.sh for example).
10993
10994 1999-11-03 K.J. Paradise (kj@sourcegear.com>
10995
10996 * history.c: cleaned up my prior change a bit, per Larry Jones'
10997 comments, and John O'Conner's additional comments about bits of
10998 non MS-Visual C++ compliancy of my code.
10999
11000 1999-11-04 Larry Jones <larry.jones@sdrc.com>
11001
11002 * sanity.sh: Check that tr that correctly handles NULs; if not, try
11003 to find a version that does; if none can be found, warn user.
11004 Also fix warnings for defective expr.
11005
11006 1999-11-04 Karl Fogel <kfogel@red-bean.com>
11007
11008 Changes for empty/random passwords in anon pserver access:
11009
11010 * server.c (check_repository_password): if password empty, grant
11011 access no matter what password is received; this is so anon CVS no
11012 longer requires a password but remains backwards-compatible with
11013 all those clients out there.
11014
11015 * client.c (connect_to_pserver): proceed with login even if
11016 password not found in .cvspass file -- just use empty string as
11017 password. And if such a login fails, print a descriptive error.
11018
11019 * login.c (get_cvs_password): don't complain if file or password
11020 not found. That condition is no longer a showstopper, now that
11021 empty passwords are permissible.
11022 Cleaned up conditional chaining a bit, too.
11023
11024 * sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
11025 pserver-13): new tests, about empty-password pserver access.
11026
11027 1999-11-03 K.J. Paradise (kj@sourcegear.com>
11028
11029 * history.c: modify parsing routines to parse the history
11030 file a block at a time, rather than all at once. This allows
11031 people with large history files and small amount of memory
11032 to still get some functionality out of the history file.
11033
11034 1999-11-03 Karl Fogel <kfogel@red-bean.com>
11035
11036 * log.c (log_usage): correct usage message for -d and -s options.
11037 Because the space between the option letter and its argument has
11038 been eliminated, I capitalized the argument portion to distinguish
11039 it from the option letter. This makes it slightly inconsistent
11040 with other such usage summaries, but at least it is now both
11041 correct and readable.
11042
11043 1999-10-22 Larry Jones <larry.jones@sdrc.com>
11044
11045 * sanity.sh (dotest_sort): Old versions of tr don't understand \t
11046 so use a literal tab instead.
11047
11048 1999-10-21 Larry Jones <larry.jones@sdrc.com>
11049
11050 * sanity.sh (dotest_sort): Convert any tabs in the output into spaces
11051 before sorting to avoid POSIX.2 sort weirdness.
11052 (import-106, importb-2): Change expected output per above.
11053
11054 1999-10-18 K.J. Paradise <kj@sourcegear.com>
11055
11056 Bug: users 'stan' and 'cartman' both have full read/write access
11057 to the cvs repository. 'cartman' does a 'cvs admin -l foo.c'.
11058 'stan' then does a 'cvs admin -u foo.c'. The lock wouldn't be
11059 removed, and no warning/error would be given. This is now fixed.
11060 * rcs.c:(c.6157) remove caller/user check on the multiple lock
11061 detection routines. Sanity.sh runs with no errors after this fix.
11062
11063 1999-10-14 Larry Jones <larry.jones@sdrc.com>
11064
11065 Make "cvs admin -e" (with no list of users) work:
11066 * admin.c (admin): Remove error message.
11067 (admin_fileproc): If no args for -e, call RCS_delaccess with NULL user.
11068 * rcs.c (RCS_delaccess): Interpret NULL user as request to delete
11069 entire access list.
11070 * sanity.sh (admin-19a-*): Test.
11071
11072 1999-09-29 Larry Jones <larry.jones@sdrc.com>
11073
11074 * entries.c (Subdirs_Known): Use entfilename when opening CVSADM_ENTLOG
11075 like everywhere else. Although this isn't strictly necessary (since
11076 we immediately close it again), it keeps the code consistent and fixes
11077 a bug where an open error reported the wrong file name.
11078
11079 1999-09-16 Larry Jones <larry.jones@sdrc.com>
11080
11081 * log.c (log_parse_revlist): Handle peculiar revision specs like
11082 "-r.", "-r:", and "-r," correctly. (Thanks to Pavel Roskin
11083 <pavel_roskin@geocities.com> for submitting a patch, this fix is
11084 somewhat different.)
11085 * sanity.sh (log): New tests for above.
11086
11087 1999-09-15 Larry Jones <larry.jones@sdrc.com>
11088
11089 * sanity.sh (basica-8b1): New test to check fix for bad diff options
11090 causing cvs to crash.
11091
11092 1999-09-02 Larry Jones <larry.jones@sdrc.com>
11093
11094 * modules.c (do_module): Handle case where module definition has
11095 options and special options but no directory; fix potential problems
11096 running off beginning of string while stripping trailing blanks.
11097 * sanity.sh (modules2): New tests for above.
11098
11099 1999-08-26 Larry Jones <larry.jones@sdrc.com>
11100
11101 * lock.c (lock_name): Remove side-effects from assert() expression
11102 since they won't occur if NDEBUG is defined (not that that's a good
11103 thing to do). (Reported by KOIE Hidetaka <hide@koie.org>.)
11104
11105 1999-08-25 Larry Jones <larry.jones@sdrc.com>
11106
11107 * sanity.sh: Use "${AWK}" instead of "awk" to make it easier for
11108 people to use nawk/gawk/etc.; use an explicit "-print" with find
11109 since some older version don't assume it; rename tests to avoid
11110 duplicate importc-8. (Changes along these lines suggested by
11111 Chris Cameron <chris.cameron@ot.co.nz>.)
11112
11113 1999-08-24 Larry Jones <larry.jones@sdrc.com>
11114
11115 * commit.c (check_fileproc): Don't crash when a file has no
11116 repository, just treat it as unknown. (Reported by Stefaan
11117 Diericx <stefaan.diericx@argenta.be>.)
11118 * sanity.sh (errmsg2): New tests, for this fix.
11119
11120 1999-08-18 Larry Jones <larry.jones@sdrc.com>
11121
11122 * update.c (special_file_mismatch): Initialize *_hardlinks to
11123 avoid trying to free garbage later on. (Reported by Jan
11124 Scheffczyk <herta@Xterminator.StudFB.UniBw-Muenchen.de>.)
11125
11126 1999-08-17 Larry Jones <larry.jones@sdrc.com>
11127
11128 * sanity.sh (basicc-11): Older versions of sh don't understand
11129 ``if ! test...''. (Patch submitted by David J N Begley
11130 <david@avarice.nepean.uws.edu.au>.)
11131
11132 1999-08-17 Larry Jones <larry.jones@sdrc.com>
11133
11134 * client.c, hardlink.c, hash.c, hash.h, main.c, recurse.c: Change
11135 enum constant UNKNOWN to avoid conflicts on HPUX 11.0. (Reported
11136 by Laurent Duperval <laurent.duperval@cgi.ca>.)
11137
11138 1999-08-16 Larry Jones <larry.jones@sdrc.com>
11139
11140 client.c: Eliminate redundant #if. (Patch submitted by Assar
11141 Westerlund <assar@sics.se>.)
11142
11143 1999-07-30 Larry Jones <larry.jones@sdrc.com>
11144
11145 * rcs.c (RCS_checkin): Terminate cleanly if RCS_addbranch fails
11146 rather than blithely continuing on and crashing.
11147 * sanity.sh (basica): New tests, for this fix.
11148
11149 1999-07-29 Larry Jones <larry.jones@sdrc.com>
11150
11151 * import.c (add_rcs_file): change "cannot lstat" message to include
11152 userfile (the actual file causing the problem) instead of user
11153 (which may or may not be the same).
11154
11155 1999-07-29 Eric Sink <eric@sourcegear.com>
11156
11157 * version.c: Push version number to 1.10.7.1.
11158
11159 * version.c: Version 1.10.7.
11160
11161 1999-07-28 Eric Sink <eric@sourcegear.com>
11162
11163 * sanity.sh: before running basicc-11, we need to see if
11164 the cwd has been deleted (by basicc-8). If so, we
11165 recreate it to allow basicc-11 to proceed. This may be
11166 something that only happens under the Linux 2.2 kernel.
11167
11168 1999-07-18 Karl Fogel <kfogel@floss.red-bean.com>
11169
11170 * edit.c (notify_do): chop newline, if any, from the value
11171 obtained from CVSROOT/users. Otherwise it just gets passed along
11172 in the argument to the notification program (usually mail), which
11173 will misinterpret it as signifying the end of the command.
11174
11175 1999-07-19 Larry Jones <larry.jones@sdrc.com>
11176
11177 * rcs.c (RCS_delete_revs): In the WIN32 kludge, be sure that the result
11178 of RCS_getexpand is not NULL before trying to use what it points to.
11179 (Patch submitted by Timothy L. Taylor <ttaylor@mitre.org>.)
11180
11181 1999-07-16 Tom Tromey <tromey@cygnus.com>
11182
11183 * admin.c (admin): Allow `-k' options to be used unrestricted.
11184
11185 1999-06-23 Jim Kingdon <http://www.cyclic.com>
11186
11187 * sanity.sh (symlinks2): New test, for symlinks in working
11188 directory without PreservePermissions. This test (modulo a few
11189 details not relevant to testing whether we are following symlinks)
11190 worked remote as of now, or either remote or local for CVS 1.9.
11191 * subr.c (get_file): Revert 1998-02-15 change to special-case
11192 symlinks. This makes the above test work local too.
11193 * rcs.c (RCS_checkin): Move the logic to handle special-case
11194 symlinks (and other files other than regular files) here, and make
11195 it only happen if PreservePermissions is on.
11196
11197 1999-06-18 Larry Jones <larry.jones@sdrc.com>
11198
11199 * sanity.sh (devcom3-9a): Be less specific about the expected
11200 error message (BSD/OS 4.0 has a bug that can cause exec* to fail
11201 with EACCES instead of ENOENT).
11202
11203 1999-06-08 Larry Jones <larry.jones@sdrc.com>
11204
11205 * sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
11206 Use ${PROG} instead of "cvs".
11207
11208 1999-06-05 Jim Kingdon <http://www.cyclic.com>
11209
11210 * recurse.c (do_recursion, do_dir_proc): Make the SERVER_ACTIVE
11211 #ifdef be only around the check for server_active. Modulo a few
11212 cosmetic tweaks, same as a patch submitted by Johannes Stezenbach
11213 of propack-data.de.
11214
11215 1999-06-01 Jim Kingdon <http://www.cyclic.com>
11216
11217 * sanity.sh: Add comment about rcs2-7 failures on certain days.
11218
11219 Make "cvs status -v" on a removed file work:
11220 * status.c (cvsstatus): Reindent the client code.
11221 (status_fileproc): Don't need a CVS/Entries listing to show the
11222 tags.
11223 * sanity.sh (rmadd2): New test rmadd2-16 tests the existing
11224 behavior with "cvs log"; new test rmadd2-17 tests the new behavior
11225 with "cvs status".
11226
11227 * sanity.sh (basicc): To match no output in dotest, put the empty
11228 regexp first. Remove tests which check that first-dir exists,
11229 since that isn't true in the case where the OS let us delete it.
11230 (dotest_internal): Fix so that things work with two regexps, with
11231 an empty one first.
11232
11233 1999-05-28 Larry Jones <larry.jones@sdrc.com>
11234
11235 * sanity.sh (server-4): Replace bogus directory with real one since
11236 the server now checks it.
11237
11238 1999-05-27 Jim Kingdon <http://www.cyclic.com>
11239
11240 * sanity.sh (spacefiles): Clean up -c, top, and -b at end.
11241 (spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
11242
11243 Fix two problems pointed out by Olaf Kirch of swb.de/caldera.de:
11244 * server.c (outside_root): New function, contains expanded version
11245 of code from serve_directory.
11246 (serve_directory): Call outside_root.
11247 (outside_dir): New function
11248 (serve_modified, serve_is_modified, serve_notify,
11249 serve_questionable, serve_unchanged): Call outside_dir.
11250 * sanity.sh (server2): New tests, for these fixes.
11251
11252 1999-05-26 Jim Kingdon <http://www.cyclic.com>
11253
11254 * cvs.h, subr.c (xmalloc): Return void* not char*, like xrealloc
11255 has done for some time.
11256 * modules.c (do_module): If we find the module as a directory/file
11257 (rather than in the modules file), skip a bunch of processing
11258 which was unnecessary and also broken in most of the cases
11259 now tested for by the spacefiles sanity.sh test.
11260 * sanity.sh (spacefiles): New test, for specifying filenames
11261 (containing spaces, or starting with '-', or starting with '/') to
11262 "cvs co".
11263
11264 1999-05-25 Jim Kingdon <http://www.cyclic.com>
11265
11266 * client.c (update_entries): Make the old DONT_USE_PATCH code the
11267 only code. This means that if people are still on CVS 1.9
11268 servers, then CVS will fall back to transferring entire files.
11269 This is better than looking for an external "patch" program which
11270 causes no end of troubles (especially on Windows, but someone just
11271 posted to info-cvs about a problem with the Solaris patch). (This
11272 change was run by devel-cvs and feedback was positive).
11273
11274 * subr.c (xmalloc, xrealloc): The new error.c does not support
11275 %lu; use sprintf instead.
11276
11277 1999-05-25 Derek Price
11278 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11279
11280 * sanity.sh (server): Escaped a few more newlines in
11281 another awk script. Solaris awk still don't like 'em.
11282
11283 1999-05-25 Derek Price
11284 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11285 and Jim Kingdon
11286
11287 * log.c: Remove comment which said "you can delete [this line]"
11288 and which stuck around for over 3 years.
11289 * sanity.sh (errmsg2 & tagdate): Added tests to prove the
11290 current functionality with respect to combining -r and -D.
11291
11292 1999-05-20 Larry Jones <larry.jones@sdrc.com>
11293
11294 * server.c (pserver_authenticate_connection): Previous changes
11295 broke verify_and_exit (reported by Robert Fitzsimons, thanks).
11296 * sanity.sh (pserver): New tests pserver-7 and pserver-8 for this.
11297
11298 1999-05-18 Derek Price
11299 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11300
11301 * sanity.sh (keyword2): Escaped a newline in an awk script.
11302 Apparently Solaris awk don't like 'em.
11303
11304 1999-05-18 Jim Kingdon <http://www.cyclic.com>
11305
11306 * sanity.sh (basicc): Allow the behavior whereby unlink(".")
11307 succeeds. Reported by Jeremy Buhler and Pavel Roskin.
11308
11309 1999-05-17 Steve Cameron of Compaq
11310
11311 * sanity.sh: Modified to no longer use "test -e" for existence
11312 test as it has turned out to be not portable enough. Instead use
11313 "test -f", "test -d", etc.
11314 [SCO Unixware 7 apparently doesn't always support it -kingdon]
11315
11316 1999-05-17 Jim Kingdon <http://www.cyclic.com>
11317
11318 * version.c: Push version number to 1.10.6.1.
11319
11320 * version.c: Version 1.10.6.
11321
11322 1999-05-16 Jim Kingdon <http://www.cyclic.com>
11323
11324 * update.c (patch_file): When we are passing vn_rcs to
11325 RCS_checkout, pass vn_tag as well.
11326 * sanity.sh (keyword): In test keyword-22, test for the fixed
11327 behavior rather than the buggy behavior. Adjust keyword-23. Add
11328 test keyword-24, to see whether keyword-23 really worked.
11329
11330 1999-05-12 Larry Jones <larry.jones@sdrc.com>
11331
11332 * sanity.sh (pserver-4, pserver-5): Bogus error messages from
11333 non-root initgroups on some 4.4BSD derived systems now show up
11334 in different places in the output.
11335
11336 1999-05-12 Jim Kingdon <http://www.cyclic.com>
11337
11338 * import.c (import): Don't allow the user to supply a repository
11339 directory which takes us out of the cvsroot.
11340 * sanity.sh (importc): New tests importc-10 to importc-12, for this.
11341
11342 1999-05-11 Larry Jones <larry.jones@sdrc.com>
11343
11344 * server.c (serve_notify): Allocate enough memory to hold the
11345 "misformed Notify request" message in pending_error_text.
11346
11347 1999-05-11 Jim Kingdon <http://www.cyclic.com>
11348
11349 * server.c (switch_to_user): Ignore EPERM from initgroups. Fixes
11350 pserver-4 in testsuite.
11351 (pserver_authenticate_connection): Only print "I LOVE YOU" after
11352 switch_to_user has come back successfully.
11353
11354 * server.c (pserver_authenticate_connection): Call error_exit
11355 rather than reinventing the wheel ourselves.
11356 (switch_to_user): Check for errors from setuid, setgid, and
11357 initgroups. Fix the #ifdef's (the previous code would skip the
11358 setuid call if SETXID_SUPPORT).
11359
11360 1999-05-10 Jim Kingdon <http://www.cyclic.com>
11361
11362 * server.c (serve_notify), edit.c (notify_do): Check for
11363 and reject characters which will get confused with delimiters.
11364 * sanity.sh (server): New tests server-7 through server-15 test
11365 for this and for other notify behaviors.
11366
11367 * rcs.c (RCS_tag2rev): Also look for a physical branch with
11368 RCS_getversion.
11369 * sanity.sh (tagf): Adjust tagf-12 and following tests to test for
11370 the fixed behavior rather than the broken behavior.
11371
11372 1999-05-07 Jim Kingdon <http://www.cyclic.com>
11373
11374 * server.c (server_notify): Also set last_node to NULL.
11375 * sanity.sh (server): New tests server-6 and server-7, for this.
11376
11377 1999-05-05 Jim Kingdon <http://www.cyclic.com>
11378
11379 * rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
11380
11381 * add.c (add): Look for directories with the same name in a
11382 different case where appropriate (analogous to fopen_case).
11383 In client code, add comment about how this doesn't do quite
11384 everything.
11385
11386 1999-05-03 Jim Meyering <meyering@ascend.com>
11387
11388 Remove rcs-style ,file, lock files upon signal.
11389 * rcs.c (rcs_lockfile): New file-scoped global.
11390 (rcs_cleanup): New function (similar to patch_cleanup).
11391 (rcs_internal_lockfile): Register rcs_cleanup the first time this
11392 function is called. Rename uses of local `lockfile' to refer to new
11393 global, `rcs_lockfile'. Don't free the lock file name string, now
11394 that it's global.
11395 (rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
11396 free and NULL-out the global, rcs_lockfile.
11397
11398 1999-04-30 Jim Kingdon <http://www.cyclic.com>
11399
11400 * rcs.c (annotate_fileproc): Don't cast NULL in passing it to
11401 RCS_deltas. Because there is a prototype in scope the cast is
11402 unnecessary (per HACKING's ANSI C or SunOS4 rule), and in fact it
11403 was causing failures on UNICOS because it cast to size_t instead
11404 of size_t*. (Thanks to Dean Kopesky for reporting this).
11405
11406 1999-04-29 Jim Kingdon <http://www.cyclic.com>
11407
11408 * sanity.sh: If invoked without any arguments, print a usage
11409 message (thanks to Pavel Roskin for a report/patch).
11410
11411 * run.c (piped_child): Make the error messages more verbose.
11412 (close_on_exec): Reindent.
11413 * sanity.sh (devcom3): Several errors are possible in devcom3-9a.
11414 Adjust for change to piped_child error message.
11415
11416 1999-04-28 Jim Kingdon <http://www.cyclic.com>
11417
11418 * sanity.sh (devcom3): Add some tests of the CVS/Notify file and
11419 disconnected "cvs edit".
11420
11421 * main.c (opt_usage): Remove -b.
11422
11423 1999-04-20 Derek Price
11424 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11425
11426 * rcs.c (RCS_delete_revs): RCS_delete_revs uses an
11427 RCS_checkout call to get a new copy of a revision to be
11428 used internally after old revisions were deleted and it was
11429 performing keyword substitutions. This munged all the
11430 the revisions of the file on the branch containing the
11431 deleted revisions and its sub-branches, as the original they
11432 were being patched from was incorrect. Corrected this by
11433 passing in "-ko" as an option to RCS_checkout.
11434 * sanity.sh (keywordlog): modified this test to verify the
11435 correct behavior of 'cvs admin -o'.
11436 [Fixed use of \$ in keywordlog test; added code in RCS_delete_revs
11437 to abort on binary file on Windows -kingdon]
11438
11439 1999-04-21 Derek Price
11440 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11441 and Jim Kingdon
11442
11443 * tag.c (tag_check_valid): A bug was causing CVS to spin
11444 indefinately when -j:<date> was specified. CVS now returns
11445 an error.
11446 * sanity.sh: Added a test (tagdate-12) to test this.
11447
11448 1999-04-19 Jim Kingdon <http://www.cyclic.com>
11449
11450 * sanity.sh (backuprecover): Clean up the repository at the end.
11451
11452 1999-04-18 Derek Price
11453 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11454
11455 * sanity.sh added a test (backuprecover) to test cvs behavior
11456 with a repository that is out of date relative to the
11457 developer's workspaces.
11458 [Fix --keep code; move test to "Repository Storage" section since
11459 it doesn't really exercise the diff/diff3 library. -kingdon]
11460
11461 1999-04-13 Derek Price
11462 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11463
11464 * sanity.sh (diff): Tests to verify correct operation of
11465 the --ifdef parameter to cvs diff.
11466 [indentation fixed -kingdon].
11467
11468 1999-04-13 Derek Price
11469 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11470 for Noah Friedman <friedman@splode.com>
11471
11472 * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
11473 latter is confused by pserver for a date spec.
11474
11475 1999-04-14 Jim Kingdon <http://www.cyclic.com>
11476
11477 * fileattr.h: Adjust comments to reflect the official version of
11478 the fileattr format now being in cvs.texinfo.
11479
11480 1999-04-05 Jim Kingdon
11481
11482 * sanity.sh (watch5): Remove nonstandard --keep code. Don't pass
11483 -f to rm when cleaning up (that tends to mask bugs). Add watch5
11484 to list of tests at start. Add comment explaining why we consider
11485 the behavior we test for the right one. Rename a few tests which
11486 had been erroneously named watch6* instead of watch5*.
11487 * client.c (update_entries): Add comment with brief discussion of
11488 whether there is a better way.
11489
11490 1999-04-05 Derek Price
11491 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11492
11493 * client.c (update_entries): Only call mark_up_to_date
11494 (which deletes the CVS/Base/<filename> file for watched
11495 and edited files) on commit.
11496 * sanity.sh: Make sure the CVS/Base/<filename> file for
11497 a watched and edited file is not removed on a status or
11498 update of a touched/unmodfied file.
11499
11500 1999-03-30 Larry Jones <larry.jones@sdrc.com>
11501
11502 * client.c (get_responses_and_close), commit.c (commit),
11503 update.c (do_update): If the sleep(1) call returns prematurely
11504 (due to the way wakeup is scheduled or receiving a signal), do
11505 it again.
11506
11507 1999-03-26 Jim Kingdon <http://www.cyclic.com>
11508
11509 * server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
11510
11511 * sanity.sh (modules3-11b): Adjust exact text of error message to
11512 reflect 1999-03-24 change to dirswitch.
11513
11514 1999-03-25 Jim Kingdon <http://www.cyclic.com>
11515
11516 * admin.c (admin): Make argument to -e optional, to match the
11517 documentation.
11518 * sanity.sh (admin-19a-2): Test for this.
11519
11520 * server.c (serve_root): Update comment about checking for missing
11521 Root request.
11522
11523 1999-03-24 Jim Kingdon <http://www.cyclic.com>
11524
11525 * server.c (dirswitch): Also check dir here, similar to
11526 what server_pathname_check does for other cases.
11527 * sanity.sh (files): Adjust files-14 to test for this.
11528
11529 1999-03-24 Derek Price
11530 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11531 and Jim Kingdon
11532
11533 * sanity.sh: added a test (files-13) to test .. indirection
11534 in a path and another (files-14) to make sure we still fail
11535 out when the '..' indirection takes us into the $CVSROOT
11536 directory or beyond.
11537
11538 1999-03-24 Larry Jones <larry.jones@sdrc.com>
11539
11540 * rcs.c: Change enum constants ADD and DELETE to something less
11541 likely to run into conflicts.
11542
11543 1999-03-21 Jim Kingdon <http://www.cyclic.com>
11544
11545 * sanity.sh (tagf): New test, tests for moving a branch tag to a
11546 non-branch tag and trying to recover.
11547
11548 1999-03-12 Jim Kingdon <http://www.cyclic.com>
11549
11550 * sanity.sh (branches): Tweak test branches-5 to test the case in
11551 which one modifies a file and then branches it.
11552
11553 1999-03-09 John Bley of duke.edu
11554
11555 * mkmodules.c (filelist): Missed a NULL in this struct (should
11556 have 3 members, only had 2).
11557
11558 1999-03-07 Jim Kingdon <http://www.cyclic.com>
11559
11560 * sanity.sh (Index): Rename new test from rm_CVS/Root to rmroot
11561 (we don't have a formal rule about funky punctuation in test names
11562 but both underscore and a slash is too funky for me :-)).
11563 Reindent a few tests which were off.
11564
11565 * root.c: Remove the sentence which had the improper English;
11566 there isn't really a need for that sentence and it isn't
11567 particularly accurate any more.
11568
11569 1999-02-27 Derek Price
11570 <http://www-personal.engin.umich.edu/~oberon/resume.html>
11571
11572 * sanity.sh: Added rm_CVS/Root test to test that CVS uses
11573 $CVSROOT rather than dumping core when running remotely and
11574 the admin file CVS/Root is deleted from the workspace.
11575
11576 Also, altered a few 'cvs commit' 's in regular expressions to
11577 fit the .${PROG} commit. portability syntax.
11578
11579 * recurse.c: Stopped CVS from dumping core in the case tested
11580 above.
11581
11582 * root.c: Fixed somebody's improper english.
11583
11584 1999-02-25 Larry Jones <larry.jones@sdrc.com>
11585
11586 * sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
11587 expected result.
11588
11589 1999-02-24 Jim Kingdon <http://www.cyclic.com>
11590
11591 * sanity.sh (keyword2): Restore the original \\\$ instead of $.
11592 The latter ends up working due to various kludgy semantics in the
11593 shell and regular expressions, but the former is cleaner.
11594
11595 * sanity.sh (keyword2): Protect keywords against accidental
11596 expansion in sanity.sh itself (most occurrences had this, but not
11597 all).
11598
11599 1999-02-23 Derek Price <http://www.cyclic.com>
11600 and Jim Kingdon.
11601
11602 * sanity.sh (keyword2): New test, tests for merging with -kk.
11603
11604 1999-02-22 Jim Kingdon <http://www.cyclic.com>
11605
11606 * version.c: Ease version number to 1.10.5.1.
11607
11608 * version.c: Version 1.10.5.
11609
11610 1999-02-18 Jim Kingdon <http://www.cyclic.com>
11611
11612 * sanity.sh (files): New test, for a relatively obscure spurious
11613 "Up-to-date check failed" in client/server.
11614
11615 * main.c (lookup_command_attribute): Don't check for "history"
11616 twice.
11617
11618 1999-02-17 Jim Kingdon <http://www.cyclic.com>
11619 and Hallvard B Furuseth
11620
11621 * root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
11622 warnings about statement not reached.
11623
11624 1999-02-16 Jim Kingdon <http://www.cyclic.com>
11625
11626 * recurse.c (start_recursion): If we are skipping the current
11627 directory (due to it being from the wrong repository), also adjust
11628 the arguments we send to the server accordingly (like we already
11629 do for the case in which there is no CVS directory).
11630 * sanity.sh (multiroot4): New test, for this. All these tests had
11631 passed locally, but remote multiroot4-12 tests for this fix.
11632 (multiroot): Adjust multiroot-diff-1, multiroot-update-2,
11633 multiroot-tag-1, multiroot-status-1, multiroot-update-3, and
11634 multiroot-log-1 to reflect the cosmetic change this produces (one
11635 less "Diffing ." message).
11636 (multiroot2): multiroot2-8 likewise.
11637
11638 1999-02-10 Jim Kingdon <http://www.cyclic.com>
11639
11640 * tag.c (cvstag): Don't pass SEND_NO_CONTENTS if -c specified.
11641 * sanity.sh (tagc): New test, for various tag -c behaviors.
11642 Test tagc-6 tests for this fix.
11643
11644 1999-02-09 Jim Kingdon <http://www.cyclic.com>
11645
11646 * error.c (error): Rewrite to no longer use vasprintf (see
11647 ../lib/ChangeLog for rationale). Note the slight change in
11648 interface - callers which want %8.8s or similar formats need to
11649 call sprintf.
11650 * lock.c (lock_wait, lock_obtained): Use sprintf.
11651
11652 1999-02-08 Jim Kingdon <http://www.cyclic.com>
11653
11654 * rcs.c (RCS_delete_revs): Pass -a to diff_exec.
11655 * sanity.sh (binfiles3): New tests binfiles3-9 through
11656 binfiles3-13 test for this fix.
11657 * sanity.sh (binfiles): New tests binfiles-o4 and binfiles-o5
11658 (which don't test this bug, just on general principles).
11659
11660 1999-02-04 Jim Kingdon <http://www.cyclic.com>
11661
11662 * lock.c (lock_name): Permissions of directories in LockDir
11663 shouldn't depend on the umask.
11664 * sanity.sh (lockfiles): Set umask and CVSUMASK, to test for this.
11665
11666 1999-02-01 Jim Kingdon <http://www.cyclic.com>
11667
11668 * sanity.sh (keywordlog): New tests keywordlog-22 and
11669 keywordlog-23 test keyword expansion and $Log. Adjust other tests
11670 so that revisions differ more from each other, so this is a
11671 better test.
11672
11673 1999-01-29 Jim Kingdon <http://www.cyclic.com>
11674
11675 * commit.c (checkaddfile): If options is "", treat it the same as
11676 NULL. Centralize this check, and the one for it starting with
11677 "-k", at the start of the function.
11678
11679 * rcs.c, rcs.h (RCS_setexpand): New function.
11680 * admin.c (admin_fileproc): Access keyword expansion field via
11681 RCS_getexpand and RCS_setexpand, rather than directly.
11682 * commit.c (checkaddfile): When resurrecting, set the keyword
11683 expansion mode.
11684 * sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
11685 for the new behavior.
11686
11687 1999-01-27 Jim Kingdon <http://www.cyclic.com>
11688
11689 * sanity.sh (multiroot3): Add new variant of multiroot3-10 test
11690 for RELATIVE_REPOS. Move multiroot3-11 test out of the
11691 conditionals; it works the same for remote or local,
11692 RELATIVE_REPOS or no.
11693
11694 * options.h.in: Make RELATIVE_REPOS the default, as has been
11695 announced as a future direction since 1997-10-11.
11696 * sanity.sh (multiroot): Tweak multiroot-update-1a and
11697 multiroot-update-1b tests to work with either RELATIVE_REPOS or
11698 non-RELATIVE_REPOS.
11699
11700 * sanity.sh (client-9): Don't assume the time zone.
11701
11702 1999-01-26 Jim Kingdon <http://www.cyclic.com>
11703
11704 Fix one facet of the "cvs add -kb" re-adding problem (the other
11705 known facet is tested for by binfiles3-8).
11706 * add.c (add): When re-adding a file, set the keyword expansion
11707 as we normally would.
11708 * sanity.sh (binfiles3): New test binfiles3-6a tests for this.
11709
11710 1999-01-22 Jim Kingdon <http://www.cyclic.com>
11711
11712 * sanity.sh (rmadd2): New tests, for undoing a commit.
11713
11714 1999-01-21 Eric Mumpower <nocturne@cygnus.com>
11715
11716 * sanity.sh (reposmv): Actually modify CVSROOT in current
11717 environment when calling functions, rather than trying to achieve
11718 the same effect with "CVSROOT=foo functionname". (Many common
11719 bourne shells, including those in SunOS and Solaris 2.4-2.7,
11720 do not properly handle "ENVVAR=foo command" when "command" is
11721 a user-defined shell function rather than an actual executable.)
11722
11723 1999-01-15 Jim Kingdon <http://www.cyclic.com>
11724
11725 * sanity.sh (rcs3): Redirect awk's stdin to /dev/null like all the
11726 other awk invocations. GNU awk seems not to read stdin in this
11727 case, but that behavior is hard to reconcile with the Single Unix
11728 Spec and some awks don't do it.
11729
11730 * sanity.sh (binfiles, binfiles2, binfiles3, server): Use the same
11731 tr trick as in rcs3. People don't seem to have been complaining,
11732 and this should fix server-4 for HPUX.
11733
11734 1999-01-14 Jim Kingdon <http://www.cyclic.com>
11735
11736 * client.c (recv_line): If the line we are reading contains a
11737 character which would sign-extend to EOF, don't treat it as end of
11738 file. recv() doesn't report end of file this way and this might
11739 fix bugs with 0xff characters.
11740
11741 1999-01-14 Larry Jones <larry.jones@sdrc.com>
11742
11743 * client.c (recv_line): Handle EOF from server.
11744
11745 * sanity.sh (importc-8, importc-9): Accept anything in the seconds
11746 fields of the timestamps since touch doesn't set it reliably.
11747 (This isn't great, but it's better than nothing.)
11748
11749 1999-01-14 Jim Kingdon <http://www.cyclic.com>
11750
11751 * run.c (run_exec): Adjust comment about vfork; this isn't the place
11752 to get into a treatise about fork performance vs. vfork
11753 performance but it isn't quite as simple as whether one has
11754 copy-on-write.
11755
11756 1999-01-13 Larry Jones <larry.jones@sdrc.com>
11757
11758 * sanity.sh (dotest_fail): Handle spurrious output from assert better.
11759
11760 * sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
11761 assertion failure message.
11762
11763 1999-01-12 Larry Jones <larry.jones@sdrc.com>
11764
11765 * sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
11766 just use echo instead.
11767
11768 1999-01-11 Jim Meyering <meyering@ascend.com>
11769
11770 * sanity.sh (mkmodules-temp-file-removal): New test, for this.
11771 * mkmodules.c (mkmodules): Remove each `CVSROOT/.#[0-9]*' temporary
11772 file that's used to check out files listed in CVSROOT/checkoutlist.
11773 Remove extra semicolon at end of line.
11774
11775 1999-01-11 Larry Jones <larry.jones@sdrc.com>
11776
11777 * sanity.sh (rcs3-5a): Allow for multiple lines of output before the
11778 assertion failure message.
11779
11780 * sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
11781 (doesn't allow anything to follow omitted permissions).
11782
11783 1999-01-09 Jim Kingdon <http://www.cyclic.com>
11784
11785 * client.c (set_sticky): Nonfatal error if we can't write it.
11786 * sanity.sh (dirs2-8 through dirs2-14): New tests, for this.
11787
11788 * sanity.sh (rcs3): Write NUL character with tr not awk, in
11789 accordance with Single Unix Specification. Hopefully will fix
11790 rcs3-7 for HPUX. Will not work on SunOS4, but then again neither
11791 did the old syntax.
11792
11793 1999-01-05 Jim Kingdon <http://www.cyclic.com>
11794
11795 * client.c, update.c: Rename MD5* functions to cvs_MD5* per
11796 corresponding change to ../lib/md5.h.
11797
11798 1999-01-03 Jim Kingdon <http://www.cyclic.com>
11799
11800 * sanity.sh (client): Give file1 a predictable mode so that the
11801 output in client-9 will not depend on the umask of the user
11802 running the tests.
11803
11804 1998-12-29 Jim Kingdon <http://www.cyclic.com>
11805
11806 * client.c (client_senddate): Use date_to_internet rather than
11807 using our own "5/26/1997 13:01:40 GMT" date format.
11808 * main.c (date_to_internet): Check for errors from sscanf. Always
11809 send a four digit year. Send hours, minutes, and seconds as two
11810 digits per RFC822.
11811 * sanity.sh (client): New tests client-8 and client-9 test for this.
11812
11813 * sanity.sh (rcs2): New tests rcs2-6 through rcs2-8 test for fix
11814 to lib/getdate.y (before the fix, "100 months" or "8 years" would
11815 tend to mean the year 1969, thus the tests would give "cvs update:
11816 file1 is no longer in the repository").
11817
11818 1998-12-28 Larry Jones <larry.jones@sdrc.com>
11819
11820 * entries.c (Register): Return if unable to open log file to avoid
11821 referencing the invalid file pointer.
11822 * sanity.sh (dirs2-7): With above change, no longer fails.
11823 * sanity.sh (rcs3-5a): Another assertion failure message.
11824 * sanity.sh (pserver-4, pserver-5): Some 4.4BSD derived systems spit
11825 out bogus error messages when initgroups is called as non-root.
11826
11827 1998-12-23 Larry Jones <larry.jones@sdrc.com>
11828
11829 * sanity.sh (rcs3, dotest_fail): The assertion failure message varies
11830 wildly between different systems and the resulting abort call can
11831 even result in spurrious output. Fix the regexp to accept nearly
11832 anything containing some kind of assertion failure and ensure that
11833 any spurrious output ends up in the output file instead of on the
11834 terminal.
11835
11836 1998-12-23 Jim Kingdon <http://www.cyclic.com>
11837
11838 * admin.c, checkout.c, commit.c, cvsrc.c, expand_path.c,
11839 history.c, ignore.c, import.c, log.c, mkmodules.c, modules.c,
11840 myndbm.c, parseinfo.c, rcs.c, remove.c, rtag.c, status.c, subr.c,
11841 tag.c, wrapper.c: Cast all char's to unsigned char before passing
11842 them to ctype.h functions (isalpha, isgraph, isalnum, isspace,
11843 isdigit, isprint, isupper). Whether using ctype.h is the right
11844 thing at all is unclear to me (having the server depend on locale
11845 seems wrong, as we don't necessarily have any good way to set the
11846 right locale, if there even is such a concept as 'right' locale in
11847 this context), but as long as we use ctype.h we might as use it
11848 according to the standards (this affects systems where plain char
11849 is signed but users supply characters with the 8th bit set).
11850 Thanks to Paul Eggert for suggesting this.
11851
11852 1998-12-22 Jim Kingdon <http://www.cyclic.com>
11853
11854 * sanity.sh (rcs3): Oops, the earlier fix for srcdir only fixed
11855 the non-remote case, not the remote case. Fix the other occurrence.
11856
11857 1998-12-22 Jim Kingdon
11858
11859 * sanity.sh (rcs3): The assertion failure message varies slightly
11860 depending on whether CVS was built with srcdir != ".". Fix regexp.
11861
11862 1998-12-21 Jim Kingdon
11863
11864 * rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
11865 unused variable x_vers.
11866
11867 * rcs.c: When printing an unexpected character we found in the RCS
11868 file, print it in hex rather than as a character (see comment for
11869 rationale).
11870 * sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
11871
11872 * sanity.sh (rcs3): New test, for some error handling cases
11873 involving parsing RCS files.
11874
11875 1998-12-16 Jim Meyering <meyering@ascend.com>
11876
11877 * rcs.c (RCS_getdate): Handle the case in which a file is first
11878 imported after its initial version has been created.
11879 * sanity.sh (import-after-initial): New test for that.
11880
11881 1998-12-17 Jim Kingdon
11882
11883 * server.c (serve_root): Pserver_Repos only exists if
11884 AUTH_SERVER_SUPPORT is defined.
11885
11886 1998-12-12 Jim Kingdon, and Derek R. Price of Stortek.
11887
11888 * sanity.sh (multiroot): Change + to ${PLUS}.
11889
11890 1998-12-12 Jim Kingdon, and Gary Young of Motorola
11891
11892 * sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
11893 allow 4 digit year in addition to 2 digit year.
11894
11895 1998-12-12 Jim Kingdon
11896
11897 * sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
11898 and for HEAD as (nonexistent) file name.
11899
11900 1998-12-02 Jim Kingdon
11901
11902 * version.c: Squish version number to 1.10.4.1.
11903
11904 * version.c: Version 1.10.4.
11905
11906 1998-11-24 Jim Kingdon
11907
11908 * recurse.c (do_file_proc): Check for errors from RCS_parse.
11909 * sanity.sh (rcslib-symlink-7 through rcslib-symlink-10): New
11910 tests, test for this.
11911
11912 * sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
11913
11914 * entries.c (Register): If we can't write Entries.Log, make it a
11915 nonfatal error.
11916 * sanity.sh (dirs2): Test for this fix.
11917
11918 * sanity.sh (dirs2): Clean up working directory at end of test.
11919
11920 1998-11-23 Jim Kingdon
11921
11922 * sanity.sh (dirs2): New test, for some more cases involving
11923 deleting directories and such.
11924
11925 * sanity.sh (dirs): Update for yesterday's change in Find_Names
11926 error handling. The error in dirs-4 is fairly different now; in
11927 dirs-3 and dirs-3a it is the obvious change.
11928
11929 1998-11-22 Jim Kingdon
11930
11931 * sanity.sh (release): Move the commments listing "cvs release"
11932 tests from modules2-6 to here.
11933 * release.c (release): Update comment to reflect "? foo" case.
11934
11935 * find_names.c (Find_Names): If we can't read the repository, make
11936 it a nonfatal error. Tell the caller whether this happened.
11937 (find_rcs): Add comment regarding this behavior.
11938 * recurse.c (do_recursion): If Find_Names gives an error, skip
11939 the directory and print a message saying so.
11940 * sanity.sh (modes3): New test, for this.
11941
11942 1998-11-18 Jim Kingdon
11943
11944 * rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
11945 consistently.
11946
11947 * sanity.sh (conflicts3): Tests conflicts3-24 through
11948 conflicts3-28 test for another case similar to conflicts3-22.
11949
11950 1998-11-14 Jim Kingdon
11951
11952 * sanity.sh (diff): New test, for now just tests for the "I know
11953 nothing" message.
11954
11955 * sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
11956 tests; resurrecting doesn't work from one level up.
11957
11958 * sanity.sh (mwrap-7): Remote prints the messages in a different
11959 order.
11960
11961 1998-11-13 Jim Kingdon
11962
11963 * tag.c (check_fileproc): Log tag deletions.
11964 * rtag.c (check_fileproc): Likewise.
11965 * sanity.sh (taginfo-14 through taginfo-18): New tests, for
11966 these behaviors.
11967
11968 1998-11-12 Jim Kingdon
11969
11970 * sanity.sh (mwrap-7): Update for the noexec fix.
11971
11972 * server.c (server_copy_file): Add comment about noexec.
11973
11974 * update.c (checkout_file): Handle noexec case involving revbuf
11975 and modes.
11976 (update_fileproc): In case T_NEEDS_MERGE, let merge_file take care
11977 of noexec, so it can tell the user if there would be conflicts.
11978 (merge_file): Print "conflicts found in FILE" message
11979 regardless of noexec. Add comment about checking for whether the
11980 file already contained the changes, and noexec.
11981 * sanity.sh (conflicts-192a): New test, for this.
11982
11983 1998-10-20 Jim Kingdon
11984
11985 Use the gzip library on the server. Probably doesn't speed things
11986 up as currently implemented, but does avoid hassles in terms of
11987 finding an external gzip program.
11988 * zlib.c, server.h (gunzip_and_write, read_and_gzip): Now returns
11989 whether a fatal error occurred, rather than expecting error (1,
11990 ...) to work.
11991 * client.c (update_entries, send_modified): Change callers.
11992 * server.c (receive_file): Rewrite gzip code to use
11993 gunzip_and_write rather than filter_through_gunzip.
11994 (server_updated): Likewise, use read_and_gzip rather than
11995 filter_through_gzip.
11996 * client.c, client.h (filter_through_gzip, filter_through_gunzip),
11997 run.c, cvs.h (filter_stream_through_program): Removed; no longer used.
11998 * sanity.sh (server): New tests server-4 and server-5 test
11999 this feature (note that CVS 1.10 also passes these tests; the
12000 behavior is supposed to be unchanged).
12001
12002 1998-10-19 Jim Kingdon
12003
12004 * sanity.sh (multiroot3): New test, tests for a few more
12005 multiroot cases.
12006
12007 * lock.c (lock_name): Set the permissions on each directory we
12008 create to that of the parent directory.
12009 * sanity.sh (lockfiles): New chmod and tests lockfiles-7a and
12010 lockfiles-7b test for this. Adjust lockfiles-5 for new text of
12011 error message.
12012
12013 1998-10-15 Jim Kingdon
12014
12015 * server.c (requests): Set RQ_ROOTLESS for "Set".
12016 * sanity.sh (info): Also clean up $HOME/.cvsrc.
12017 (server): Test that we can send Set before Root (had been tested
12018 by crerepos-6b, but only if you ran the info test first). Tests
12019 for this fix.
12020
12021 1998-10-14 Jim Kingdon
12022
12023 * subr.c (expand_string): Tweak the algorithm so that the size
12024 that it allocates is generally a power of two.
12025
12026 1998-10-14 Eivind Eklund and Jim Kingdon
12027
12028 * commit.c (commit): For the client, don't worry about whether we
12029 are root.
12030
12031 1998-10-13 Jim Kingdon
12032
12033 * server.h (struct request): Change status field to flags and add
12034 RQ_ROOTLESS.
12035 * client.c (handle_valid_requests, supported_request): Change
12036 status to flags.
12037 * server.c (requests): Change status to flags. Add RQ_ROOTLESS.
12038 * server.c (server): If not RQ_ROOTLESS, and we haven't gotten a
12039 Root request, give an error.
12040
12041 1998-10-12 Jim Kingdon
12042
12043 * version.c: Slide version number to 1.10.3.1.
12044
12045 * Version 1.10.3.
12046
12047 * sanity.sh (modules2-17): Update for 9 Oct 1998 change to
12048 update_dirent_proc.
12049
12050 1998-10-11 Jim Kingdon
12051
12052 * commit.c (checkaddfile, commit_fileproc): A numeric value for
12053 'tag' does not mean that we are adding on a branch.
12054 * sanity.sh (keywordlog): Adjust this test, to test for this
12055 (replaces comment saying we should be doing it).
12056 (rmadd): Likewise.
12057
12058 * sanity.sh (rmadd): New test, tests for various existing
12059 behaviors with "cvs ci -r".
12060
12061 1998-10-09 Jim Kingdon
12062
12063 * update.c (update_dirent_proc): For local CVS, if the directory
12064 does not exist in the working directory nor in the repository,
12065 just skip it.
12066 * sanity.sh (dirs): New tests dirs-3a, dirs-7 and dirs-8 test for
12067 this and related behaviors. Note that the new behavior was also
12068 the previous behavior for remote; we are only changing it for local.
12069
12070 * wrapper.c, cvsrc.c, ignore.c: Add comments about ignoring .cvsrc
12071 and friends if we can't find a home directory.
12072 * expand_path.c (expand_path): If we can't find the home
12073 directory, give an error rather than a coredump (or worse).
12074 * login.c (construct_cvspass_filename): Don't use errno in error
12075 message; get_homedir doesn't set it. Add comment about this
12076 message.
12077
12078 1998-10-07 Jim Kingdon <kingdon@harvey.cyclic.com>
12079
12080 * diff.c (diff): Set variables to NULL at the start, and free
12081 memory at the end.
12082 * sanity.sh (multiroot2): Add tests for this (before the fix,
12083 multiroot2-12 would abort with "no more than two revisions/dates
12084 can be specified").
12085
12086 1998-10-06 Jim Kingdon <kingdon@harvey.cyclic.com>
12087
12088 * Makefile.in (installcheck check): Remove references to RCSBIN;
12089 they don't do anything now that RCSBIN is ignored.
12090
12091 * client.c: Clean up horrible confusion about whether stored_mode
12092 or stored_mode_valid (or nothing :-)) indicates whether
12093 stored_mode is allocated. Should fix crashes (for example, on NT
12094 when the server has renamed multiple files from uppercase to
12095 lowercase).
12096
12097 * sanity.sh (dirs): New tests, tests for some cases involving
12098 admins who do surgery on the repository.
12099
12100 1998-10-03 Johannes Stezenbach <johannes.stezenbach@propack-data.de>
12101
12102 * vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
12103 necessary change the file to be writable temporarily to set its
12104 modification time.
12105
12106 1998-10-03 Jim Kingdon <kingdon@harvey.cyclic.com>
12107
12108 * client.c (handle_error): Add comment about indicating which
12109 errors are from the server.
12110
12111 1998-10-01 Jim Kingdon <kingdon@harvey.cyclic.com>
12112
12113 * sanity.sh (devcom-180): Allow one digit day.
12114
12115 1998-09-30 Jim Kingdon <kingdon@harvey.cyclic.com>
12116
12117 * main.c (main): Don't call Name_Root if -d specified.
12118 * recurse.c (do_recursion, do_dir_proc): Don't check CVS/Root
12119 if -d was specified.
12120 * import.c (import): Indentation fix.
12121 * sanity.sh (multiroot): Update for this change.
12122 (reposmv): New test, tests for this.
12123
12124 1998-09-28 Jim Kingdon <kingdon@harvey.cyclic.com>
12125
12126 * sanity.sh (multiroot2): New test, tests some nested directory
12127 cases.
12128
12129 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
12130
12131 * sanity.sh (multiroot): Change a few comments which said modules
12132 when they meant directories.
12133
12134 1998-09-25 Jim Meyering <meyering@ascend.com>
12135
12136 * sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
12137 in hostname regexp.
12138
12139 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
12140
12141 * sanity.sh (log2): New test log2-7a tests for one error handling
12142 case. Add a comment about another.
12143
12144 1998-09-24 Jim Kingdon <kingdon@harvey.cyclic.com>
12145
12146 * sanity.sh: Change crerepos test back to :ext: (for several
12147 reasons; see comments).
12148
12149 1998-09-24 Noel Cragg <noel@swish.red-bean.com>
12150
12151 * sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
12152 check the operation of "tag" when there are symlinks in the
12153 repository.
12154
12155 * rcs.c (RCS_checkin): remove old code that resolved the symlink
12156 and call resolve_symlink instead.
12157 (RCS_rewrite): call resolve_symlink before doing anything else to
12158 make sure we're operating on the file and not the symlink.
12159
12160 * subr.c (resolve_symlink): new routine -- resolves a symbolic
12161 link chain to its destination.
12162 * cvs.h: add prototype.
12163
12164 * sanity.sh (basica-6.2, basica-6.3): changed match expressions to
12165 reflect new diff output.
12166
12167 * rcs.c (make_file_label): generate labels for files that include
12168 the pathname so that output from "cvs diff" is useable by patch.
12169 Looks like I came up with the mods as Andy Piper
12170 <andyp@parallax.co.uk>; his patch was on the Cyclic unofficial
12171 patches page.
12172
12173 * sanity.sh: change remote access method from ext to fork. This
12174 results in a significant speed improvement when running the
12175 testsuite. The ext method on my machine (i586 120MHz Linux 2.0.35
12176 with TCP wrappers installed) runs in 450% of the time of the local
12177 method while the fork method runs in only 150% of the time of the
12178 local method! Yow! Am I SWAPPING yet?!
12179 (crerepos-6a, crerepos-6b): change to reflect different error
12180 messages for fork method.
12181 (modes-15): same.
12182
12183 * client.c (connect_to_forked_server): new routine.
12184 (start_server): call the above when method is fork_method.
12185
12186 * root.c: add a new method named "fork". This method uses the
12187 remote protocol, but does so by forking a "cvs server" process
12188 directly rather than doing "rsh host cvs server" (for example).
12189 This new method has few advantages for day-to-day use, but has
12190 three important benefits for debugging:
12191
12192 1) Most secure installations these days don't allow rsh access.
12193 With this new method, we can still test the remote protocol on
12194 these machines because we don't need to be able to make a local
12195 TCP connection.
12196
12197 2) Even if installations allow rsh access, they almost always
12198 have TCP wrappers to check permissions by IP/hostname. This
12199 causes a short delay for every connection. For invocations from
12200 the command line, this doesn't matter much, but it adds up to a
12201 significant amount of time when running the testsuite.
12202
12203 3) On machines that can't (or do not usually) provide rshd
12204 access (I'm thinking of WNT/W95 in particular), we can now run
12205 tests of the remote protocol using this method. Indeed, we can
12206 run remote protocol tests on any machine that has an
12207 implementation of piped_child().
12208
12209 (parse_cvsroot): handle new method.
12210 (error_exit, xstrdup, isabsolute): new stub functions to use when
12211 compiling root.c with the DEBUG option.
12212 (main): fix a few typos.
12213 * cvs.h (CVSmethod): add fork_method.
12214
12215 * server.c (create_adm_p): use Emptydir as the placeholder
12216 directory instead of "." to avoid problems with "cvs update -d" et
12217 al.
12218
12219 1998-09-22 Noel Cragg <noel@swish.red-bean.com>
12220
12221 * sanity.sh (devcom-180): fixed typo in regexp.
12222
12223 * main.c (main): remove need_to_create_root and related code
12224 (including CVS_IGNORE_REMOTE_ROOT environment variable). The
12225 current implementation (just removed) of rewriting the contents of
12226 the CVS/Root file isn't desirable for a number of reasons:
12227
12228 1) Only the top-level CVS/Root directory is updated. If we're
12229 really interested in pointing our WD at another CVSROOT, we
12230 should have a separate command.
12231
12232 2) With the new multiroot mods, we don't ever want to rewrite
12233 CVS/Root files in the way the removed code did. Consider:
12234
12235 cvs -d repository1 co a
12236 cd a
12237 cvs -d repository2 co b
12238 cvs -d repository2 update b
12239
12240 The update command would rewrite the contents of a/CVS/Root to
12241 the incorrect value. Bad. We then wouldn't be talking to the
12242 correct repository for files in a.
12243
12244 3) The removed code seems to be a quick hack to support working
12245 directories checked out from multiple repositories. With the
12246 CVS_IGNORE_REMOTE_ROOT variable set, one could perform commands
12247 as in example 2, above, without worring about updating CVS/Root
12248 files. While in pre-1.10.1 recursive commands wouldn't handle
12249 that working directory hierarchy, one could use commands like
12250 "cvs foo -l" instead. While not great, this allows you (with a
12251 lot of manual interaction) to have a multiroot WD. Since we now
12252 have multiroot mods checked in, we don't need this code.
12253
12254 (lookup_command_attribute): while we don't need the
12255 CVS_CMD_USES_WORK_DIR flag anymore (since it only was supporting
12256 the need_to_create_root code), I'm leaving it in. It may come in
12257 handy at some later date.
12258
12259 1998-09-18 Jim Kingdon <kingdon@pennington.cyclic.com>
12260
12261 * version.c: Advance version number to 1.10.2.1.
12262
12263 * Version 1.10.2.
12264
12265 1998-09-13 Jim Kingdon <kingdon@harvey.cyclic.com>
12266
12267 * client.c: Refuse to Copy-file to another directory
12268 * sanity.sh (client): New test, tests for this.
12269
12270 * edit.c (editors_fileproc), watch.c (watchers_fileproc): Use
12271 cvs_output rather than writing to stdout.
12272 * sanity.sh (devcom): Use dotest for tests 178, 180, and 183
12273 (tests that we preserve existing behavior on "cvs editors").
12274
12275 * commit.c (check_fileproc): Don't allow commits in Emptydir.
12276 * sanity.sh (emptydir-8): Test for this change in behavior.
12277
12278 * sanity.sh: Add some compatibility tests to TODO comments at end.
12279
12280 1998-09-10 Jim Kingdon <kingdon@harvey.cyclic.com>
12281
12282 * wrapper.c (wrap_add): Remove obsolete comment about -m.
12283
12284 * server.c (server_updated): Check for error from CVS_UNLINK.
12285
12286 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com>
12287
12288 * server.c (serve_root): Allocate with malloc, not xmalloc.
12289
12290 * root.c (set_local_cvsroot): Move memory allocation from here...
12291 * server.c (serve_root): ...to here. Fixes error handling.
12292
12293 * root.c (parse_cvsroot): Don't call check_root_consistent;
12294 parse_cvsroot is only used for local and client.
12295 * root.c (set_local_cvsroot): Move check_root_consistent
12296 functionality from here...
12297 * server.c (serve_root): ...to here. Fixes error handling. Also
12298 made the error more explicit, while I am at it.
12299 * server.c (Pserver_Repos): Now static.
12300 * cvs.h: Don't declare it.
12301 * root.c (check_root_consistent): Removed; no longer needed.
12302 * sanity.sh (pserver): New test, tests for this behavior and some
12303 other basic pserver stuff.
12304
12305 * update.c (merge_file): Use cvs_output for "already contains the
12306 differences" message. Found this one when I actually observed the
12307 out-of-order bug in Real Life(TM).
12308
12309 1998-09-09 Jim Kingdon
12310
12311 * find_names.c (find_dirs): Make sure to zero errno before
12312 going around the loop again.
12313 * find_names.c (find_rcs): Make sure to set save_errno.
12314 (thanks to Alexandre Parenteau for reporting both problems).
12315
12316 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com> and Michael Pakovic
12317
12318 * edit.c (notify_do): Only free line if it is not NULL.
12319
12320 1998-09-07 Jim Kingdon <kingdon@harvey.cyclic.com>
12321
12322 * cvs.h: dirs_sent_to_server should not be inside
12323 AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
12324 Bishop, thanks).
12325
12326 * lock.c, cvs.h: New variable lock_dir.
12327 * parseinfo.c (parse_config): New option LockDir.
12328 * lock.c (lock_name): New function, abstracts out lock file naming
12329 and also supports LockDir.
12330 * lock.c (lock_simple_remove, Reader_Lock, write_lock, set_lock):
12331 Call it (6 places, to create/remove read/write/master locks).
12332 (Lock_Cleanup): Refuse to reenter this function.
12333 * sanity.sh (lockfiles): New test, tests for this feature.
12334
12335 1998-09-03 Jim Kingdon <kingdon@harvey.cyclic.com>
12336
12337 * sanity.sh (multiroot): Expect ${TESTDIR} in output instead of
12338 assuming it is /tmp/cvs-sanity (thanks to Mark D. Baushke of Cisco).
12339 Clean up working directory when done (fixes apparent thinko).
12340
12341 * server.c (create_adm_p): Fix one "return" which didn't return a
12342 value.
12343 (dirswitch): Check for errors from create_adm_p.
12344
12345 * sanity.sh: Set LC_ALL rather than just LC_COLLATE.
12346
12347 Wed Sep 2 02:30:22 1998 Jim Kingdon <kingdon@pennington.cyclic.com>
12348
12349 * version.c: Bump version number to 1.10.1.1.
12350
12351 * Version 1.10.1.
12352
12353 1998-09-01 Jim Kingdon <kingdon@harvey.cyclic.com>
12354
12355 Administrative note regarding Noel's changes to allow one to
12356 switch from one CVS root to another in a single command: The
12357 ChangeLog entries for the changes which Noel just checked in
12358 appear for 1998-09-01, 1998-08-28, 1998-08-25, 1998-08-19, and
12359 1998-08-18, rather than being all together.
12360
12361 * main.c (set_root_directory): Fix whitespace.
12362 (main): Nuke new -m option and just have that message controlled
12363 by -t.
12364 * server.c (server): Revert the CVS_SERVER_SLEEP code back the way
12365 it was in CVS 1.10. Attaching to the parent process is relatively
12366 boring (you can just run "cvs server" under a debugger instead),
12367 but connecting to the child process is what the old code was for.
12368 * recurse.c, server.c: Remove DEBUG_NJC code.
12369
12370 1998-09-01 Noel Cragg <noel@swish.red-bean.com>
12371
12372 * server.c (do_cvs_command): add another environment variable,
12373 CVS_SERVER_SLEEP2, after forking to pause the program so one can
12374 attach a debugger.
12375
12376 * sanity.sh (crerepos): clean up crerepos-18 now that multiroot
12377 works in this case.
12378 (multiroot): finalize tests for local vs. remote operation.
12379
12380 * recurse.c (start_recursion): near the beginning, save the list
12381 of directories to spoof as command-line arguments, if necessary.
12382 Use that list near the end and call send_file_names to send those
12383 arguments to the server.
12384 (do_argument_proc): removed, since we call send_file_names now.
12385
12386 * main.c (main): re-initialize dirs_sent_to_server on each pass
12387 through the loop for each CVSROOT.
12388
12389 * cvs.h: add proto for global variable which keeps track of which
12390 directories have been sent to the server when in client mode.
12391
12392 * client.c (is_arg_a_parent_or_listed_dir): new function.
12393 (arg_should_not_be_sent_to_server): new function. Tries to decide
12394 whether the given argument should be sent to the server, based on
12395 the current CVSROOT and the list of directories sent to the
12396 server.
12397 (send_repository): add the directory name to the list of
12398 directories sent to the server.
12399 (send_file_names): call arg_should_not_be_sent_to_server.
12400
12401 * add.c (add): switch the order of send_files and send_file_names
12402 to make multiple repository support possible. send_files needs to
12403 create a list of directories being requested so that
12404 send_file_names can decide which command-line arguments to send to
12405 the server for the given current CVSROOT.
12406 * admin.c (admin): same.
12407 * commit.c (commit): same.
12408 * diff.c (diff): same.
12409 * edit.c (editors): same.
12410 * log.c (cvslog): same.
12411 * rcs.c (annotate): same.
12412 * remove.c (cvsremove): same.
12413 * status.c (cvsstatus): same.
12414 * tag.c (cvstag): same.
12415 * update.c (update): same.
12416 * watch.c (watch_addremove): same.
12417 (watchers): same.
12418
12419 1998-08-31 Jim Kingdon <kingdon@harvey.cyclic.com>
12420
12421 * sanity.sh: Remove "debug" function; it was apparently checked
12422 in accidentally by Norbert Kiesel's change.
12423
12424 1998-08-31 Norbert Kiesel <nk@iname.com>
12425
12426 * release.c (release): modify last patch to release so that
12427 save_cwd is called only once and restore_cwd is always called when
12428 neccessary. Also fixed a tiny memory leak.
12429
12430 * sanity.sh (release): added some more tests for "cvs release"
12431 including a test with two dirs and a "no" for the first one (which
12432 fails without the above patch).
12433
12434 1998-08-28 Noel Cragg <noel@swish.red-bean.com>
12435
12436 * sanity.sh (crerepos-18): add new comment and change test
12437 slightly to support multiroot.
12438 (multiroot): add more tests.
12439
12440 * server.c (create_adm_p): new function.
12441 (dirswitch): call create_adm_p. Modify the code to always write a
12442 new CVSADM_REP file, since create_adm_p might have put a
12443 placeholder there and our value is guaranteed to be correct.
12444 (server): move the CVS_SERVER_SLEEP check here so we can debug
12445 things at an earlier stage.
12446
12447 * recurse.c (start_recursion): add large comment about the ideal
12448 solution to the "Argument xxx" problem.
12449
12450 * main.c (main): move position of debugging comment for -m flag.
12451
12452 * diff.c (diff): clear a static variable.
12453
12454 * client.c (send_file_names): check to see if we should send this
12455 argument to the server based on the contents of the appropriate
12456 CVSADM directory. This avoids "nothing known about foo" messages
12457 and problems with duplicate modules names in multiple
12458 repositories.
12459 (send_a_repository): change method of calculating toplevel_repos
12460 to support multiple CVSROOTs.
12461 (start_server): clear some static variables.
12462
12463 1998-08-28 Jim Meyering <meyering@ascend.com>
12464
12465 * sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
12466 `Operation not permitted'. Solaris2.5.1 gets a different error:
12467 `Invalid argument'.
12468
12469 1998-08-26 Eric M. Hopper
12470
12471 * sanity.sh: Set LC_COLLATE to "C".
12472
12473 1998-08-25 Noel Cragg <noel@swish.red-bean.com>
12474
12475 * sanity.sh (multiroot): new set of tests to check the behavior of
12476 multiroot.
12477
12478 * diff.c (diff): set options value to NULL after freeing to reset
12479 the state for the next time around.
12480
12481 1998-08-25 Jim Kingdon <kingdon@harvey.cyclic.com>
12482
12483 Fix problems with trying to rename an open file:
12484 * rcs.c, rcs.h (RCS_setattic): New function.
12485 * commit.c (remove_file, checkaddfile): Call it.
12486
12487 1998-08-24 Jim Kingdon <kingdon@harvey.cyclic.com>
12488
12489 * release.c (release): Use save_cwd and restore_cwd to get back to
12490 where we started, rather than hoping that CVS_CHDIR ("..") will do
12491 something useful. This removes the need for most of
12492 release_delete, so remove that function and inline what is left.
12493 * sanity.sh (basicc): Adjust tests for this fix, also some tests
12494 with multiple arguments to "cvs release" (in the non-"-d"-case, it
12495 would seem like the old code would CVS_CHDIR into directories and not
12496 CVS_CHDIR back, but I'm not going to investigate this and it
12497 should be a moot point with this fix.).
12498
12499 * sanity.sh (basicc): Add tests for a serious bug in "cvs release
12500 -d .".
12501
12502 More error handling fixes:
12503 * ignore.c (ignore_files): Check for errors from opendir and
12504 readdir.
12505 * find_names.c (Find_Names): Check for errors from find_rcs.
12506 (find_rcs, find_dirs): Comment error handling better; also return
12507 an error if we got one from readdir.
12508 * filesubr.c (deep_remove_dir): Also check for errors from readdir.
12509 * import.c (import_descend): Print message on error from opendir
12510 or readdir.
12511 * commit.c (remove_file): Check for errors from CVS_MKDIR and
12512 CVS_RENAME.
12513 (remove_file): No need to remove the file in the temporary
12514 directory; server.c now informs time_stamp_server of what is going
12515 on via CVS/Entries rather than a file with a kludged up timestamp.
12516 * client.c, entries.c, login.c, logmsg.c, mkmodules.c, patch.c,
12517 remove.c, update.c: Check for errors from unlink_file.
12518 * mkmodules.c (write_dbmfile, rename_dbfile, rename_rcsfile):
12519 Check for errors from fclose, CVS_RENAME, and CVS_STAT.
12520 * mkmodules.c (checkout_file): Clarify error handling convention.
12521 * mkmodules.c (mkmodules): Call checkout_file accordingly.
12522 * entries.c (Entries_Open): Check for errors from fclose.
12523
12524 1998-08-21 Ian Lance Taylor <ian@cygnus.com>
12525
12526 * import.c (import): Output suggested merge command using
12527 cvs_output_tagged rather than just cvs_output. Don't put
12528 CVSroot_cmdline in the log file.
12529 * client.c (importmergecmd): New static struct.
12530 (handle_mt): Handle +importmergecmd tag.
12531 * sanity.sh (import): Use an explicit -d in importb-2, to test
12532 whether it is reported in the suggested merge command.
12533
12534 1998-08-20 Ian Lance Taylor <ian@cygnus.com>
12535
12536 * sanity.sh (import): Rewrite tests to use dotest.
12537
12538 1998-08-20 Jim Kingdon <kingdon@harvey.cyclic.com>
12539
12540 * sanity.sh: Add comments about binary files and cvs import.
12541
12542 1998-08-19 Jim Kingdon <kingdon@harvey.cyclic.com>
12543
12544 * sanity.sh (importc): Use ${username} in one place where I had
12545 missed it.
12546
12547 Make import -d work client/server:
12548 * client.c, client.h (client_process_import_file): Take new
12549 argument, for whether -d is specified, and send Checkin-time
12550 request if it is set.
12551 * import.c (import_descend): Pass it.
12552 * main.c, cvs.h (date_to_internet): New function.
12553 * server.c (server_modtime): Call date_to_internet.
12554 * server.c (serve_checkin_time): New function.
12555 (requests): Add "Checkin-time" request.
12556 (serve_modified): If it was sent, set the timestamp in the
12557 temporary directory.
12558 * import.c (import): If the client sends a -d option, complain.
12559 (import): For the server, always use the timestamps from the temp
12560 directory.
12561 (import): Don't send a -d option to the server.
12562 * sanity.sh (importc): Add tests for import -d.
12563
12564 Wed Aug 19 15:19:13 1998 Larry Jones <larry.jones@sdrc.com>
12565
12566 * sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
12567 of .* since we expect to match multiple lines.
12568
12569 1998-08-19 Ian Lance Taylor <ian@cygnus.com>
12570
12571 * cvs.h (CVSroot_cmdline): Declare.
12572 * root.c (CVSroot_cmdline): Define.
12573 * main.c (main): Set CVSroot_cmdline if the -d option is used.
12574 * import.c (import): If CVSroot_cmdline is not NULL, then mention
12575 an explicit -d option in the suggested merge command line.
12576
12577 Wed Aug 19 00:28:50 1998 Noel Cragg <noel@swish.red-bean.com>
12578
12579 * recurse.c (do_dir_proc): don't muck with CVS/Root directories
12580 when running in server mode.
12581 (do_recursion): same.
12582
12583 * main.c (main): add the command-line option `m' to help debug the
12584 multiroot environment; it prints out the value of CVSROOT for each
12585 iteration through the main loop. Also, changed the main loop so
12586 that it gets executed only once when running in server mode (the
12587 server will only deal with a single CVSROOT).
12588
12589 * recurse.c (do_recursion): change default for
12590 PROCESS_THIS_DIRECTORY to true; we should always process a
12591 directory's contents unless there's an existing CVS/Root file with
12592 a different root than the current root to tell us otherwise.
12593 (do_dir_proc): same.
12594
12595 Tue Aug 18 14:30:59 1998 Noel Cragg <noel@swish.red-bean.com>
12596
12597 * recurse.c (do_recursion): check the current value of CVS/Root
12598 and add it to our list of CVSROOTs if it doesn't exist. Decide
12599 whether or not to process files in this directory based based on
12600 the value of CURRENT_ROOT.
12601 (do_dir_proc): same.
12602
12603 * main.c: add two new globals -- root_directories and current_root
12604 -- which keep track of the values of CVSROOT we've seen and which
12605 value of CVSROOT we're currently processing.
12606 (main): put the main loop for stepping through cvsroot values
12607 here, since we might need to send command-specific arguments for
12608 every unique non-local cvsroot. Moved blocks of code around so
12609 that one-time initializations happen first (outside the loop) and
12610 the other stuff happens inside the loop.
12611 (set_root_directory): helper function.
12612
12613 * cvs.h: add prototypes for root_directories and current_root, two
12614 new globals for keeping track of multiple CVSROOT information.
12615
12616 1998-08-18 Jim Kingdon <kingdon@harvey.cyclic.com>
12617
12618 * sanity.sh: Don't assume that the shell leaves $^ unexpanded in
12619 an unquoted here-document (suggested by Bart Schaefer to help when
12620 zsh is the shell).
12621
12622 1998-08-17 Ian Lance Taylor <ian@cygnus.com>
12623
12624 * commit.c (checkaddfile): Don't call fix_rcs_modes.
12625 (fix_rcs_modes): Remove.
12626
12627 1998-08-16 Jim Kingdon <kingdon@harvey.cyclic.com>
12628
12629 * create_adm.c (Create_Admin): Don't condition traces on
12630 SERVER_SUPPORT; SERVER_SUPPORT shouldn't do (much of) anything
12631 independent of server_active.
12632
12633 * sanity.sh (binfiles3): New test, for yet another binary file
12634 bug (sigh). Thanks to Jason Aten for reporting this one.
12635
12636 1998-08-15 Jim Kingdon <kingdon@harvey.cyclic.com>
12637
12638 * rcscmds.c (call_diff_write_output): Update to reflect new
12639 calling convention for the write_output callback.
12640
12641 1998-08-15 Jim Meyering <meyering@ascend.com>
12642
12643 * update.c (merge_file): Warn about failed unlink when not due
12644 to ENOENT.
12645
12646 * server.h (CLIENT_SERVER_STR): New macro
12647 * create_adm.c (Create_Admin): Use it.
12648 * entries.c (Scratch_Entry, Register): Use it.
12649 * filesubr.c (copy_file, xchmod, rename_file, unlink_file): Use it.
12650 * history.c (history_write): Use it.
12651 * modules.c (do_module): Use it.
12652 * no_diff.c (No_Difference): Use it.
12653 * run.c (run_popen): Use it.
12654 * server.c (server_register): Use it.
12655
12656 1998-08-14 Jim Meyering <meyering@ascend.com>
12657
12658 * hardlink.c (lookup_file_by_inode): Use existence_error rather than
12659 comparing errno to ENOENT directly.
12660
12661 * client.c (copy_a_file): Unlink destination before doing copy.
12662 * sanity.sh (join-readonly-conflict): New test for this -- it would
12663 fail only in client/server mode.
12664
12665 * sanity.sh (rcsmerge-symlink-4): Don't use `test -L', it's not
12666 portable. Instead, match against the output of `ls -l'.
12667 (dotest tag8k-16): Simplify tag-construction code and at the same
12668 time, avoid using expr's `length' and `substr' operators. Not
12669 all versions of expr support those.
12670
12671 1998-08-14 Jim Kingdon <kingdon@harvey.cyclic.com>
12672
12673 * version.c: Bump version number to 1.10.0.1.
12674
12675 Thu Aug 13 11:15:24 1998 Noel Cragg <noel@swish.red-bean.com>
12676
12677 * version.c: Change version number to 1.10 and name to `Halibut'.
12678
12679 * sanity.sh (rcslib): new tests to check behavior of symlinks in
12680 the repository.
12681
12682 Wed Aug 12 15:39:38 1998 Noel Cragg <noel@swish.red-bean.com>
12683
12684 * main.c (lookup_command_attribute): the `annotate' command
12685 shouldn't require access to the repository. Add comment about
12686 commands that do not use the working directory.
12687
12688 Mon Aug 10 10:26:38 1998 Noel Cragg <noel@swish.red-bean.com>
12689
12690 * version.c: Change version number to 1.9.30.
12691
12692 Thu Aug 6 17:44:50 1998 Noel Cragg <noel@swish.red-bean.com>
12693
12694 * server.c (serve_rdiff): change the name of the command (for
12695 error reporting, etc.) from "patch" to "rdiff."
12696 (serve_remove): rename from "cvsremove" to "remove."
12697
12698 * main.c (lookup_command_attribute): the `rdiff' command shouldn't
12699 require write access to the repository.
12700
12701 1998-08-06 David Masterson of kla-tencor.com
12702 and Jim Kingdon
12703
12704 * commit.c (commit_filesdoneproc): Don't call strlen ("CVSROOT")
12705 from within the assert statement. Apparently HP's cc compiler on
12706 HPUX 10.20 has trouble with that.
12707
12708 1998-08-06 Jim Kingdon <kingdon@harvey.cyclic.com>
12709
12710 * rcs.c (RCS_checkin): When adding branch, if there is a lock on
12711 the branchpoint owned by someone else, leave it alone. This
12712 restores CVS 1.9 (RCS 5.7) behavior, fixing a core dump.
12713 * sanity.sh (reserved): New tests reserved-16 through reserved-19
12714 test for this fix.
12715
12716 1998-08-05 Jim Kingdon <kingdon@harvey.cyclic.com>
12717
12718 * sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
12719 This makes it work with GNU expr 1.12 as well as 1.16.
12720
12721 Sun Aug 2 20:27:44 1998 Noel Cragg <noel@swish.red-bean.com>
12722
12723 * mkmodules.c: add comment about TopLevelAdmin for the initial
12724 contents of CVSROOT/config.
12725
12726 1998-07-29 Jim Kingdon <kingdon@harvey.cyclic.com>
12727
12728 * rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
12729 is defined.
12730
12731 Tue Jul 28 19:33:08 1998 Noel Cragg <noel@swish.red-bean.com>
12732
12733 * version.c: Change version number to 1.9.29.
12734
12735 * rcs.c (RCS_checkin): add code to follow symbolic links in the
12736 repository.
12737
12738 Sun Jul 26 05:14:41 1998 Noel Cragg <noel@swish.red-bean.com>
12739
12740 * This set of changes reverts the code to pre-1.9.2 behavior and
12741 does not create CVS directories at top-level (except for the
12742 obvious "cvs co ."). Added a new configuration option to switch
12743 between 1.9 and 1.9.2 behavior.
12744
12745 * recurse.c (do_argument_proc): new function.
12746 (start_recursion): in the case that we've done a command from
12747 top-level but have no CVS directory there, the behavior should be
12748 the same as "cvs <cmd> dir1 dir2 dir3...". Make sure that the
12749 appropriate "Argument" commands are sent to the server by calling
12750 walklist with do_argument_proc.
12751
12752 * client.c (call_in_directory): only create the top-level CVS
12753 directory when we're checking out "." explicitly. The server will
12754 force creation of this directory in all other cases.
12755
12756 * checkout.c (checkout_proc): only generate the top-level
12757 directory when the TopLevelAdmin=yes. Also send a message to the
12758 client to do the same.
12759
12760 * parseinfo.c (parse_config): handle TopLevelAdmin option. Set
12761 top_level_admin.
12762
12763 * main.c: add new variable top_level_admin.
12764 * cvs.h: add extern definition for above.
12765
12766 * sanity.sh: since we're reverting to pre 1.9.2 behavior for
12767 top-level CVS directories, I needed to make changes to a bunch of
12768 tests that made assumptions about said directories.
12769 (preamble): make sure to add read and execute access to everything
12770 in TMPDIR before removing, since some tests make things read-only.
12771 (basicb-1a, basicb-1b, basicb-9a, basicb-9b): use dotest_fail
12772 because these tests check for the non-existant top-level CVS
12773 directory.
12774 (basicc-3, emptydir-6, emptydir-7, crerepos-6): use "rm -rf" so it
12775 won't complain when trying to remove the non-existant top-level
12776 CVS directory.
12777 (106.5): remove imported-f2-orig.tmp.
12778 (modules2-10, emptydir-4, abspath-1ba, abspath-1bb): cd into the
12779 directory where files exist before using the "add" command so cvs
12780 can find CVSROOT in CVS/Root.
12781 (cvsadm-2): look at a different CVS/Repository file, since the
12782 top-level one doesn't exist.
12783 (taginfo-3): create the directory in the repository directly
12784 rather than relying on the fact that the top-level CVS directory
12785 was created in a previous test.
12786 (serverpatch-6): update first-dir explicity, rather than relying
12787 on the non-existant top-level CVS/Entries file.
12788 (crerepos-18): look at CVS/Repository in a subdirectory rather
12789 than in the non-existant top-level CVS directory.
12790 (toplevel): add code to set TopLevelAdmin=yes.
12791 (toplevel2): new tests -- same as toplevel, but TopLevelAdmin=no.
12792
12793 1998-07-21 Jim Meyering <meyering@ascend.com>
12794
12795 * rcs.c (RCS_checkout): Hoist frees of rev and value.
12796 Warn and return 1 in several cases rather than exiting via
12797 `error (1, ...'. The latter could abort a multi-file commit
12798 in mid-stream, leaving stale locks in the repository.
12799
12800 1998-07-16 Jim Kingdon <kingdon@harvey.cyclic.com>
12801
12802 * build_src.com (rcscmds.c): Also look for include files in
12803 [-.diff], just like Ian's 1998-06-18 change to Makefile.in
12804
12805 1998-07-14 Jim Kingdon <kingdon@harvey.cyclic.com>
12806
12807 * tag.c (pretag_proc), rtag.c (pretag_proc): Don't pass RUN_REALLY
12808 to run_exec. This means that taginfo does not get executed if the
12809 global -n option is specified. Which makes it like loginfo, -i,
12810 -e, -o, -t, -u in modules, editinfo, and verifymsg and unlike
12811 commitinfo. The old behavior was pretty bad in the sense that it
12812 doesn't provide any way to log only the tags which actually
12813 happen.
12814 * sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
12815
12816 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
12817
12818 * sanity.sh (ann-id): Write the test so that it tests for the
12819 current (buggy) behavior.
12820
12821 * sanity.sh (taginfo): Also clean up cvsroot/first-dir.
12822
12823 1998-07-12 Jim Meyering <meyering@ascend.com>
12824
12825 * sanity.sh (ann-id): New (currently failing) test for bug in how
12826 rcs keywords are expanded in the output of `cvs annotate'.
12827
12828 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
12829
12830 * sanity.sh (taginfo): Write the TESTDIR into the script rather
12831 than having the script look at the environment. This means that
12832 it will work if TESTDIR is set by sanity.sh as well as if
12833 sanity.sh finds TESTDIR in the environment.
12834
12835 1998-07-11 Jim Kingdon <kingdon@harvey.cyclic.com>
12836
12837 * tag.c (check_fileproc): Calculate the revision to be tagged the
12838 same way that tag_fileproc does.
12839 * sanity.sh (taginfo): New tests, test for this (before this fix,
12840 brtag had said 1.1 not 1.1.2.1).
12841
12842 1998-07-10 Jim Kingdon <kingdon@harvey.cyclic.com>
12843
12844 * sanity.sh (unedit-without-baserev): Also clean up "2" directory.
12845
12846 1998-07-08 Jim Kingdon <kingdon@harvey.cyclic.com>
12847
12848 * edit.c (unedit_fileproc): If the Baserev file is missing, don't
12849 get the working file from CVS/Base. The previous code could get
12850 you version 1.1 of the working file and put 1.2 in CVS/Entries.
12851 * sanity.sh (unedit-without-baserev): New tests test for this.
12852
12853 1998-07-02 Jim Kingdon <kingdon@harvey.cyclic.com>
12854
12855 * sanity.sh (unedit-without-baserev): Move the test itself to be
12856 in the same order as in the "tests" variable.
12857
12858 1998-07-02 Ian Lance Taylor <ian@cygnus.com>
12859
12860 * rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>. Don't
12861 declare vasprintf.
12862 (call_diff_printf_output): Remove.
12863 (call_diff_stdout_callbacks): Don't initialize printf_output
12864 field--it has been removed from the interface.
12865 (call_diff_file_callbacks): Likewise.
12866
12867 1998-07-01 Jim Meyering <meyering@ascend.com>
12868
12869 * edit.c (unedit_fileproc): Handle the case in which base_get
12870 returns a NULL baserev. That happens when a file being `unedit'ed
12871 exists in the CVS/Base directory, but isn't listed in the CVS/Baserev
12872 file. The one case I've seen had no Baserev file at all. The symptom
12873 (if you're lucky) is a segmentation fault upon unedit. If you use
12874 SunOS4.1.4 for which printf prints NULL pointers as `(null)', your
12875 unedit command will complete normally, but it will have corrupted
12876 your CVS/Entries file and a subsequent update may result in an
12877 assertion failure, a core dump, and a stale lock in the repository.
12878 * sanity.sh (unedit-without-baserev): New test for this.
12879
12880 1998-07-01 Andy Mortimer of aeat.co.uk
12881 and Jim Kingdon <kingdon@harvey.cyclic.com>
12882
12883 * server.c (server_updated): Use a prototype if we are using them
12884 for declarations.
12885
12886 1998-06-29 Jim Kingdon <kingdon@harvey.cyclic.com>
12887
12888 * sanity.sh (commit-readonly): Protect keyword against expansion
12889 in sanity.sh itself. Keep the keyword in the file which we check
12890 in (or else this fails to test for the RCS_checkout change).
12891
12892 1998-06-27 Jim Meyering <meyering@ascend.com>
12893
12894 * rcs.c (RCS_checkout): If opening the local workfile fails due to
12895 lack of write access, try to chmod the file and retry the open.
12896 Before, a commit could fail part way through merely because the
12897 open to rewrite with newly expanded rcs keywords would fail. It's
12898 easy to make this happen if you use `cvs -r' or CVSREAD and you
12899 apply a patch to one of your read-only source files -- patch
12900 preserves the read-only setting for the file and your next commit
12901 will fail after committing that file, but before rewriting
12902 (checking out) your working copy.
12903 * sanity.sh (commit-readonly): New test for this.
12904
12905 1998-06-25 Jim Kingdon <kingdon@harvey.cyclic.com>
12906
12907 * update.c (patch_file): Update comments regarding context diffs
12908 to reflect diff library.
12909
12910 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
12911
12912 * sanity.sh (modules4): Add tests for reversing the order of the
12913 "!first-dir/sdir" and "first-dir".
12914
12915 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
12916 and Dave Wolfe@Motorola.
12917
12918 * sanity.sh (modes2): Touch the file before chmod'ing it.
12919
12920 1998-06-21 Ian Lance Taylor <ian@cygnus.com>
12921
12922 * update.c (merge_files): Revert changes of 1998-06-19. Instead,
12923 register a merged file with a dummy time stamp. Only set
12924 last_register_time if we need to.
12925 (join_file): Likewise. Always register a merged file, not just
12926 when the merge fails.
12927
12928 1998-06-21 Jim Kingdon <kingdon@harvey.cyclic.com>
12929
12930 * call_diff_write_output, call_diff_printf_output,
12931 call_diff_flush_output, call_diff_write_stdout, call_diff_error,
12932 call_diff_stdout_callbacks, call_diff_file_callbacks): Re-indent.
12933
12934 1998-06-19 Ian Lance Taylor <ian@cygnus.com>
12935
12936 * update.c (merge_file): Make sure the time stamp of the file is
12937 different from the time stamp we register in the Entries file.
12938 (join_file): Likewise.
12939
12940 1998-06-18 Ian Lance Taylor <ian@cygnus.com>
12941
12942 * rcscmds.c: Include <stdio.h>. Include either <stdarg.h> or
12943 <varargs.h>. Declare vasprintf.
12944 (call_diff_write_output): New static function.
12945 (call_diff_printf_output): New static function.
12946 (call_diff_flush_output): New static function.
12947 (call_diff_write_stdout): New static function.
12948 (call_diff_error): New static function.
12949 (call_diff_stdout_callbacks): New static variable.
12950 (call_diff_file_callbacks): New static variable.
12951 (call_diff): Don't sleep. Use a callback structure when calling
12952 the diff library.
12953 (call_diff3): Likewise.
12954
12955 * rcscmds.c: Include diffrun.h.
12956 (call_diff, call_diff3): Pass NULL callback parameter.
12957 (diff_run, diff3_run): Don't declare.
12958 * Makefile.in (rcscmds.o): New target, to use -I for diff
12959 directory.
12960 (zlib.o): Depend upon zlib.h.
12961
12962 1998-06-09 Mike Sutton@SAIC
12963
12964 Make it compile with Sun's bundled K&R C compiler:
12965 * rcs.c (count_delta_actions): Change to static to match
12966 declaration.
12967 * client.c (handle_wrapper_rcs_option): Rename error label to
12968 handle_error to avoid clash with function name.
12969
12970 1998-06-09 Jim Kingdon <kingdon@harvey.cyclic.com>
12971
12972 * rcs.c (RCS_delete_revs): If we are trying to delete all
12973 revisions, give an error rather than assertion failed.
12974 * sanity.sh (basicb): New tests basicb-o* test for this.
12975
12976 1998-06-04 Jim Kingdon <kingdon@harvey.cyclic.com>
12977
12978 * add.c (add): Only send "Directory" requests if we need to.
12979
12980 1998-06-02 Assar Westerlund <assar@sics.se>
12981
12982 * client.c: Check for HAVE_GSS_C_NT_HOSTBASED_SERVICE rather than
12983 assuming that GSS_C_NT_HOSTBASED_SERVICE is a macro.
12984 * server.c: Likewise.
12985
12986 1998-06-02 Jim Kingdon <kingdon@harvey.cyclic.com>
12987
12988 * fileattr.c (fileattr_read): Check for NULL return from strchr.
12989 * sanity.sh (devcom3): New test devcom3-10 checks for this.
12990
12991 1998-06-01 Assar Westerlund <assar@sics.se>
12992 and Ian Lance Taylor <ian@cygnus.com>
12993
12994 * client.c: If HAVE_GSSAPI_H, include <gssapi.h>. Only include
12995 <gssapi/gssapi.h> if HAVE_GSSAPI_GSSAPI_H. Only include
12996 <gssapi/gssapi_generic.h> if HAVE_GSSAPI_GSSAPI_GENERIC_H.
12997 (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
12998 (connect_to_gserver): Use GSS_C_NT_HOSTBASED_SERVICE instead of
12999 gss_nt_service_name.
13000 * server.c: Same header file changes.
13001 (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
13002 (gserver_authenticate_connection): Use GSS_C_NT_HOSTBASED_SERVICE
13003 instead of gss_nt_service_name.
13004
13005 1998-06-01 Jim Meyering <meyering@ascend.com>
13006
13007 * sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
13008
13009 1998-05-26 Jim Kingdon <kingdon@harvey.cyclic.com>
13010
13011 * rcs.c (annotate): Call tag_check_valid like the other functions
13012 which have a -r option.
13013 * sanity.sh (ann): New test ann-14 tests for this.
13014
13015 1998-05-24 Jim Kingdon <kingdon@harvey.cyclic.com>
13016
13017 * sanity.sh (importc): New tests importc-5 through importc-8 test
13018 for a (fairly obscure) regression from CVS 1.9.
13019
13020 1998-05-23 Jim Kingdon <kingdon@harvey.cyclic.com>
13021
13022 * sanity.sh (modules2): Add comment listing cvs release tests.
13023 (info): New test info-cleanup-0 tests "cvs -n release".
13024
13025 * rcs.c (rcsbuf_getid): Remove semicolon at end of #undef. I'm
13026 kind of surprised that compilers accepted this at all, but
13027 removing it squelches a warning for some compilers.
13028
13029 * version.c: Change version number to 1.9.28.1.
13030
13031 * Version 1.9.28.
13032
13033 1998-05-22 Jim Kingdon <kingdon@harvey.cyclic.com>
13034
13035 * rcs.c (RCS_cmp_file): Check for errors from CVS_FOPEN. This
13036 restores the CVS 1.9 behavior (fatal error if we can't open the
13037 file), and corrects an apparent oversight in Ian's 13 Apr 1997
13038 change.
13039 * sanity.sh (modes2): New test, tests for this.
13040
13041 1998-05-22 Ian Lance Taylor <ian@cygnus.com>
13042
13043 * server.c (server_updated): Correct test for whether to unlink
13044 the file.
13045
13046 1998-05-20 Jim Kingdon <kingdon@harvey.cyclic.com>
13047
13048 * wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
13049 serious bug can be fixed.
13050
13051 1998-05-15 Jim Kingdon <kingdon@harvey.cyclic.com>
13052
13053 * checkout.c (checkout): Call server_pathname_check on the
13054 argument to "cvs co -d".
13055 * server.c (server_pathname_check): Add comment about how we could
13056 be handling absolute pathnames.
13057 * sanity.sh (abspath): Rewrite the tests which run "cvs co -d /foo"
13058 for remote, to reflect this.
13059
13060 * sanity.sh (abspath): Also do the "cannot rename" work-around for
13061 abspath-7d.
13062
13063 1998-05-13 Jim Kingdon <kingdon@harvey.cyclic.com>
13064
13065 * commit.c (commit_filesdoneproc): Free admin_dir when done with it.
13066
13067 1998-05-13 Jim Meyering <meyering@ascend.com>
13068
13069 * sanity.sh (editor): Change bogus sed command, `s/^/x&/g', to `s/^/x/'.
13070 The former exercised a bug in GNU sed-3.01-beta3.
13071 (emptydir-8): Add `Rebuilding administrative file database' message,
13072 since now it does that.
13073 * commit.c (commit_filesdoneproc): Pass only the admin directory
13074 pathname to mkmodules.
13075 Remove #if 0, now that it's fixed.
13076
13077 * status.c (cvsstatus): Rename from `status' to avoid shadowing
13078 lots of locals and parameters by the same name.
13079 * server.c (serve_status): Update caller.
13080 * main.c (cmds[]): Update table entry.
13081 * cvs.h: Update prototype.
13082
13083 * commit.c (commit_filesdoneproc): Remove trailing blanks.
13084 (commit) [CLIENT_SUPPORT]: Remove unnecessary (and local-shadowing)
13085 declaration of `err'.
13086 Rename global `tag' to `saved_tag' to avoid overshadowing `tag'
13087 parameters of three functions.
13088 Rename global `message' to `saved_message' to avoid overshadowing
13089 `message' parameter of a function.
13090 Rename global `ulist' to `saved_ulist' and move dcl up with others.
13091
13092 1998-05-12 Jim Kingdon <kingdon@harvey.cyclic.com>
13093
13094 * commit.c (commit_filesdoneproc): #if 0 the new code until it can
13095 be fixed.
13096
13097 * commit.c (commit_filesdoneproc): Add comment explaining last
13098 change.
13099
13100 1998-05-12 Jim Meyering <meyering@ascend.com>
13101
13102 * commit.c (commit_filesdoneproc): Call mkmodules not just when
13103 committing a file directly under CVSROOT, but also when committing
13104 files in subdirectories of CVSROOT.
13105
13106 1998-05-08 Jim Meyering <meyering@ascend.com>
13107
13108 * filesubr.c (xreadlink): NUL-terminate the symbolic link name.
13109 Use a much smaller initial buffer length.
13110 Test errno only if readlink fails.
13111 Use xstrdup then free the original link name so we don't waste space.
13112
13113 1998-05-02 Jim Meyering <meyering@ascend.com>
13114
13115 * rcs.c (rcsbuf_getword): Fix off-by-one error that would result in
13116 an abort (the first one in rcsbuf_getkey) when operating on on some
13117 ,v files with over 8192 bytes of tag and branch info.
13118
13119 1998-05-04 Jim Kingdon <kingdon@harvey.cyclic.com>
13120
13121 * sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
13122 a numeric branch.
13123
13124 1998-05-02 Jim Kingdon <kingdon@harvey.cyclic.com>
13125
13126 * rcs.c: Add comments about getting rid of rcsbuf_getid,
13127 rcsbuf_getword, and rcsbuf_getstring.
13128
13129 * sanity.sh (abspath): Revise the workarounds to deal with exit
13130 status.
13131
13132 1998-04-30 Jim Kingdon <kingdon@harvey.cyclic.com>
13133
13134 * sanity.sh (abspath): Work around the "cannot rename" bug.
13135
13136 1998-04-27 Jim Kingdon <kingdon@harvey.cyclic.com>
13137
13138 * classify.c (Classify_File): Add comments about checking whether
13139 command name is "update".
13140
13141 1998-04-22 Jim Kingdon <kingdon@harvey.cyclic.com>
13142
13143 * version.c: Change version number to 1.9.27.1.
13144
13145 * Version 1.9.27.
13146
13147 1998-04-20 Jim Kingdon <kingdon@harvey.cyclic.com>
13148
13149 (This diff was run by devel-cvs and everyone seemed to like it).
13150 * diff.c (diff_file_nodiff): Make HEAD mean the head of the branch
13151 which contains the sticky tag, not the sticky tag itself.
13152 * rcs.c, rcs.h (RCS_branch_head): New function.
13153 * sanity.sh (head): Update for this changed behavior.
13154
13155 1998-04-19 Jim Kingdon <kingdon@harvey.cyclic.com>
13156
13157 * sanity.sh: Move emptydir tests from basicb to new test emptydir.
13158 This is because we now need a module definition to create Emptydir;
13159 "co -d" doesn't cut it anymore.
13160
13161 1998-04-17 Petri Virkkula
13162
13163 * server.c (mkdir_p): Ignore EROFS error (like for EACCES).
13164
13165 1998-04-16 Jim Kingdon <kingdon@harvey.cyclic.com>
13166
13167 * checkout.c (checkout_proc): Don't create directories above the
13168 last one specified in "co -d".
13169 (build_dirs_and_chdir): Revert Noel's change of 17 Feb 1998.
13170 (struct dir_to_build): New field just_chdir.
13171 (build_dirs_and_chdir): Test it.
13172 * sanity.sh (abspath): New tests abspath-7* test for a bug which
13173 we fix, in which CVS would create bogus "D/////" entries in
13174 CVS/Entries.
13175 (abspath): Revise abspath-3* tests to test for the fact that we no
13176 longer create directories above the last one specified in "co -d".
13177 I checked that CVS 1.9 gives an error on this, so changing this
13178 behavior back should be OK.
13179 (cvsadm-2d3): Likewise (also checked CVS 1.9 for this case).
13180 (cvsadm-2d3d): Likewise (also checked CVS 1.9 for this case).
13181 (cvsadm-2d{4,5,6,7,8}, cvsadm-N2d{3,4,5,6,7,8}): Adjust for new
13182 behavior (same case as cvsadm-2d3).
13183 (cvsadm-2d{4,5,6,7,8}d, cvsadm-N2d{3,4,5,6,7,8}d): Remove test
13184 (same case as cvsadm-2d3d).
13185 (cvsadm): For remote, skip most these tests.
13186 (abspath): When cleaning up, delete mod1 and mod2 rather than mod1
13187 twice (longstanding bug, apparently only becomes visible if you
13188 run the tests in a certain order).
13189
13190 1998-04-14 Wilfredo Sanchez <wsanchez@apple.com>
13191
13192 * rcs.c: variable "lockfile" was being referenced after being
13193 free'd. Bad. Moved the free() call down.
13194
13195 1998-04-12 Jim Kingdon <kingdon@harvey.cyclic.com>
13196
13197 * sanity.sh (rcs): Add test for annotate and the year 2000.
13198
13199 * server.c (do_cvs_command): If there are partial lines left when
13200 the child process is done, send them along.
13201 * sanity.sh (rcs, rcs2): Enable all tests for remote; tests for
13202 this fix.
13203
13204 1998-04-11 Jim Kingdon <kingdon@harvey.cyclic.com>
13205
13206 * client.c (client_senddate): Pass SDATEFORM not DATEFORM to
13207 sscanf. This fixes a Y2K bug.
13208
13209 * history.c (history, select_hrec): Change since_date from time_t
13210 to RCS format. Use the usual machinery (in particular, Make_Date
13211 and client_senddate) so that it will work on VMS too.
13212 * main.c, cvs.h (date_from_time_t): New function.
13213 * sanity.sh (history): New test, to test that this didn't break
13214 anything (also tests client_senddate fix).
13215
13216 1998-04-11 Norbert Kiesel <nk@iname.com>
13217
13218 * server.c (cvs_output_binary): Shut up "gcc -Wall" by removing
13219 unnecessary else if test.
13220 * server.c (check_password): Fix uninitialized memory read if
13221 shadow passwords are used. Also added some comments.
13222 * rcs.c (RCS_checkout): Make sure to call chown with -1 for uid or
13223 gid if they should not be changed
13224
13225 1998-04-10 Jim Kingdon <kingdon@harvey.cyclic.com>
13226
13227 * sanity.sh (rcs2): New test, tests for various Y2K cases.
13228 * rcs.c (getdelta): Value for "state" keyword is optional (bug
13229 discovered incidentally in writing rcs2 test).
13230
13231 1998-04-09 Jim Kingdon <kingdon@harvey.cyclic.com>
13232
13233 * filesubr.c, cvs.h (link_file): Remove; no longer used.
13234
13235 1998-04-08 Jim Kingdon <kingdon@harvey.cyclic.com>
13236
13237 * recurse.c (do_dir_proc): Restore update_dir rather than a
13238 computation which appears to, but does not necessarily, restore it
13239 (reported by various people; this fix is from Greg Hudson).
13240 * sanity.sh (importc): New test, tests for this fix.
13241
13242 1998-03-27 Jim Kingdon <kingdon@harvey.cyclic.com>
13243
13244 * rcs.c (RCS_lock): If the revision is already locked, give an
13245 error rather than dumping core.
13246 * sanity.sh (reserved): New test reserved-13c tests for this.
13247
13248 1998-03-25 Loren J. Rittle
13249
13250 * import.c (add_rev): Rewrite to use RCS_FLAGS_KEEPFILE option
13251 of RCS_checkin() to avoid damage to imported files instead of
13252 externally undoing damage after the fact. The side effect is
13253 that callers of add_rev() may now incrementally walk the
13254 entries of the current directory without seeing gratuitous
13255 changes to the directory structure (under at least one file
13256 system under at least one OS).
13257
13258 1998-03-18 Jim Kingdon <kingdon@harvey.cyclic.com>
13259
13260 * error.c (error): Save and restore errno. Should fix test case
13261 conflicts3-23 on SCO 5.0.2. Reported by Steve Cameron.
13262
13263 * sanity.sh (admin): Rename admin-26-o* to admin-26-*; the "o"
13264 stands for "cvs admin -o". Add comment about length of tests.
13265 Use ${PLUS}.
13266
13267 1998-03-05 Dan Wilder <dan@gasboy.com>
13268
13269 * Fix problem with cvs admin in which -ntag:branch
13270 option associated tag with the branch's head revision.
13271 Should have used branch number. Entailed in this fix,
13272 the following.
13273
13274 * Add new functions "RCS_exist_rev", "RCS_exist_tag",
13275 "RCS_tag2rev", and "RCS_valid_rev" to rcs.c. RCS_tag2rev
13276 is similar to RCS_gettag, but does less interpretation.
13277
13278 * Plug a small memory leak.
13279
13280 * Add tests admin-26 through admin-29 to sanity.sh,
13281 to test "cvs admin -n".
13282
13283 1998-03-17 Samuel Tardieu <sam@inf.enst.fr>
13284
13285 * server.c (server_register): protect dereferencing timestamp in
13286 the trace message when it is null, to avoid a segmentation fault.
13287
13288 1998-03-16 Jim Kingdon <kingdon@harvey.cyclic.com>
13289
13290 * options.h.in (MY_NDBM): Rewrite the comment explaining this
13291 option. It was not clear to everyone who "my" referred to, for
13292 example.
13293
13294 * hardlink.c (list_linked_files_on_disk): Remove unused variables
13295 err and p.
13296 (list_linked_files_on_disk): Add comment about memory allocation
13297 of return value.
13298 * rcs.c (rcsbuf_getword): Shut up gcc -Wall with a "return 0".
13299 (RCS_checkin): Remove unused variable fullpath.
13300 * sanity.sh (hardlinks): Remove comment about spurious warnings;
13301 the warnings are gone.
13302
13303 1998-03-12 Tim Pierce <twp@skepsis.com>
13304
13305 New functions for parsing and writing hardlink fields.
13306 * rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
13307 function.
13308 (putdelta) [PRESERVE_PERMISSIONS_SUPPORT]: Use it.
13309 (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): New functions.
13310 (getdelta): Call them, storing `hardlinks' field in vnode->hardlinks.
13311 (RCS_reparsercsfile): When setting rdata->desc, xstrdup value
13312 rather than rcsbuf_valcopying it (due to changes in how getdelta
13313 handles keys and values in newphrases).
13314
13315 * sanity.sh (hardlinks): Use uglier filenames. Checking out
13316 hardlinked files no longer produces the same spurious diagnostics,
13317 so fix that test.
13318 (hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
13319
13320 New infrastructure for managing hardlink lists internally...
13321 * hardlink.c, hardlink.h (list_linked_files_on_disk,
13322 compare_linkage_lists, find_checkedout_proc): New functions.
13323 * rcs.h (struct rcsversnode) [PRESERVE_PERMISSIONS_SUPPORT]: New
13324 member `hardlinks'.
13325 * update.c (special_file_mismatch): Get hardlinks from
13326 vp->hardlinks instead of from vp->other_delta.
13327 * rcs.c (free_rcsvers_contents): Comment about freeing hardlinks
13328 member.
13329 (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
13330 vers->hardlinks list instead of vers->other_delta.
13331
13332 ... and removed obsolete code from earlier revs.
13333 * hardlink.c, hardlink.h (list_files_linked_to,
13334 cache_hardlinks_proc, list_files_proc, set_hardlink_field_proc):
13335 Removed.
13336 * hardlink.h: Removed `links' member from hardlink_info struct.
13337 * commit.c (commit): Remove the call to cache_hardlinks_proc.
13338 (check_fileproc) [PRESERVE_PERMISSIONS_SUPPORT]: Removed reference
13339 to hlinfo->links.
13340 * hardlink.c (update_hardlink_info): Same.
13341 * update.c (get_linkinfo_proc): Same.
13342
13343 * rcs.c (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Use
13344 vp->hardlinks and find_checkedout_proc to find recently-updated
13345 files that may be hardlinked.
13346 * update.c (special_file_mismatch): Use List * structures and
13347 compare_linkage_lists for rev1_hardlinks and rev2_hardlinks.
13348
13349 1998-03-16 Larry Jones <larry.jones@sdrc.com>
13350
13351 * server.c (check_password): If shadow passwords are supported but no
13352 entry is found in the shadow file, check the regular password file.
13353
13354 1998-03-07 Jim Kingdon <kingdon@harvey.cyclic.com>
13355
13356 * sanity.sh: Rename permissions test to perms since that is what
13357 each of its individual tests are named.
13358 * sanity.sh (perms symlinks hardlinks): Change CVSROOT to
13359 CVSROOT_DIRNAME where appropriate.
13360 (perms symlinks hardlinks): Disable/adjust the meat of the tests for
13361 remote.
13362 (symlinks): Link to ${TESTDIR}/fumble rather than
13363 /fumble/mumble/grumble. We shouldn't be making assumptions about
13364 what might exist in random directories outside ${TESTDIR}.
13365 * hardlink.c (cache_hardlinks_proc): Add comment about trimming
13366 whitespace.
13367
13368 1998-03-07 Tim Pierce <twp@skepsis.com>
13369
13370 * rcs.c (RCS_checkout): Negation bug when checking out symlinks:
13371 existence_error should be !existence_error.
13372 * sanity.sh (permissions symlinks hardlinks): New tests, for
13373 PreservePermissions.
13374
13375 1998-03-04 Jim Kingdon <kingdon@harvey.cyclic.com>
13376
13377 * version.c: Change version number to 1.9.26.1.
13378
13379 * Version 1.9.26.
13380
13381 * entries.c, cvs.h (Entries_Open): New argument update_dir; use it
13382 in error message.
13383 * add.c, checkout.c, client.c, find_names.c, import.c, recurse.c,
13384 update.c: Pass it (as NULL except in call_in_directory).
13385 * entries.c (Subdirs_Known): Just return if there is no CVSADM
13386 directory (as in subdir_record).
13387 * sanity.sh (conflicts3): New tests conflicts3-20a and
13388 conflicts3-23 test for these fixes.
13389
13390 * commit.c (commit): Only set up hardlist if preserve_perms.
13391
13392 * commit.c, import.c, no_diff.c, parseinfo.c, rcs.c, rcscmds.c,
13393 update.c: Omit the preserve_perms code if
13394 PRESERVE_PERMISSIONS_SUPPORT is not defined. Much of that code
13395 won't even compile on non-unix systems.
13396
13397 * hardlink.c, hardlink.h: Use the 'standard' copyright (as found
13398 in server.c).
13399 * commit.c, rcs.c: Minor whitespace changes to Tim's submission.
13400 * commit.c (check_fileproc), update.c (get_linkinfo_proc): Remove
13401 unused variable delta.
13402 * hardlink.c (set_hardlink_field_proc), update.c
13403 (get_linkinfo_proc): Return a value rather than falling off the
13404 end of the function.
13405
13406 1998-03-02 Tim Pierce <twp@skepsis.com>
13407
13408 * update.c (special_file_mismatch): Compare the hard links of the
13409 two revisions.
13410
13411 * rcs.c (RCS_checkout):
13412
13413 * hardlink.c, hardlink.h: New files.
13414 (hardlink_info): New struct.
13415 (hardlist, working_dir): New variables.
13416 (list_files_proc, cache_hardlinks_proc, set_hardlink_field_proc,
13417 lookup_file_by_inode, update_hardlink_info, list_files_linked_to):
13418 New functions.
13419
13420 * Makefile.in (SOURCES): Add hardlink.c.
13421 (OBJECTS): Add hardlink.o.
13422 (HEADERS): Add hardlink.h.
13423 * commit.c: Include hardlink.h.
13424 (commit): Save the working directory before recursing. Walk the
13425 hardlink list, calling set_hardlink_field_proc on each node.
13426 (check_fileproc): Add each file's link information to hardlist.
13427 * rcs.c: Include hardlink.h.
13428 (RCS_checkin): Save list of hardlinks in delta node.
13429 (RCS_checkout): Look up the file's `hardlinks' delta field, and
13430 see if any of the files linked to it have been checked out
13431 already. Link to one of those files if so.
13432 * update.c: Include hardlink.h.
13433 (get_linkinfo_proc): New function.
13434 (do_update): Extra recursion to collect hardlink info.
13435 (special_file_mismatch): Reparse the RCS file if necessary.
13436
13437 fsortcmp is now used by several files, so let's make it extern.
13438 * hash.c, hash.h (fsortcmp): New function.
13439 * find_names.c (fsortcmp): Removed.
13440 * lock.c (fsortcmp): Removed.
13441
13442 1998-03-03 Jim Kingdon <kingdon@harvey.cyclic.com>
13443
13444 * sanity.sh (conflicts3): New tests conflicts3-14a,
13445 conflicts3-14b, and conflicts3-21, conflicts3-22 test that we can
13446 skip over a working directory with a CVSADM directory missing.
13447
13448 1998-02-26 Jim Kingdon <kingdon@harvey.cyclic.com>
13449
13450 * sanity.sh (conflicts3): Tests conflicts3-16 and conflicts3-20
13451 test that we include update_dir in messages. Rename test
13452 conflicts3-14 to fix typo.
13453
13454 Sun Feb 22 23:14:25 1998 Steve Cameron <steve.cameron@compaq.com>
13455 and Ian Lance Taylor <ian@cygnus.com>
13456
13457 * update.c (tag_update_dir): New static variable.
13458 (update_dirent_proc): If no tag or date were specified when
13459 creating a subdirectory, use the tag and/or date of the parent
13460 directory.
13461 (update_dirleave_proc): If we set the tag and/or date in
13462 update_dirent_proc, reset them when we leave the directory.
13463 * sanity.sh (branches2): New set of tests for above patch, and
13464 related behaviour.
13465
13466 Sun Feb 22 13:31:51 1998 Ian Lance Taylor <ian@cygnus.com>
13467
13468 * commit.c (lock_RCS): Don't call RCS_rewrite.
13469
13470 * update.c (patch_file): If the revision is dead, let
13471 checkout_file handle it.
13472 * sanity.sh (death2): Add test for above patch: add
13473 death2-10a, death2-10b, death2-13a, and adjust
13474 death2-{2,4,5,11,14,diff-11,diff-12,19}.
13475
13476 * cvs.h (RCS_FLAGS_KEEPFILE): Define.
13477 * rcs.c (RCS_checkin): If RCS_FLAGS_KEEPFILE is set in the flags
13478 parameter, don't unlink the working file.
13479 * checkin.c (Checkin): Don't copy the file. Instead pass
13480 RCS_FLAGS_KEEPFILE to RCS_checkin, and only check the file out
13481 again if it has changed.
13482
13483 1998-02-21 Jim Kingdon <kingdon@harvey.cyclic.com>
13484
13485 * rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
13486 means anything just because ferror is set.
13487
13488 Sat Feb 21 20:02:24 1998 Ian Lance Taylor <ian@cygnus.com>
13489
13490 * Makefile.in (clean): Change "/bin/rm" to "rm".
13491
13492 * buffer.c (buf_append_buffer): Correct typo in comment.
13493 * rcs.c (RCS_putadmin): Likewise.
13494
13495 Fri Feb 20 17:53:06 1998 Ian Lance Taylor <ian@cygnus.com>
13496
13497 * rcs.c (rcs_internal_unlockfile): Pass errno when calling error
13498 because ferror is true.
13499
13500 1998-02-20 Jim Kingdon <kingdon@harvey.cyclic.com>
13501
13502 * sanity.sh (abspath): Don't assume that we can't write to /; this
13503 is the kind of thing that is sure to break sooner or later
13504 (especially on Windows).
13505
13506 * sanity.sh: Add summary of which modules tests are which (at
13507 "modules"). Move cvsadm, abspath, and toplevel next to modules.
13508 Add comments to clarify the structure (such as it is).
13509
13510 Fri Feb 20 12:47:14 1998 Larry Jones <larry.jones@sdrc.com>
13511
13512 * admin.c (admin_fileproc): Better fix for -b.
13513
13514 * rcs.c (RCS_whatbranch): Back out previous change.
13515 (RCS_getversion): Ditto.
13516 (RCS_setbranch): Treat an empty revision string like a null pointer.
13517
13518 1998-02-18 Jim Kingdon <kingdon@harvey.cyclic.com>
13519
13520 * rcs.c (RCS_whatbranch): Fix indentation.
13521
13522 * patch.c (patch_fileproc): Check for errors from fclose; check
13523 for errors from fopen properly.
13524
13525 Wed Feb 18 16:03:37 1998 Larry Jones <larry.jones@sdrc.com>
13526
13527 * admin.c (admin_fileproc): Convert -b argument from symbolic name
13528 to revision number before storing in the RCS file.
13529 * rcs.c (RCS_whatbranch): Allow numeric as well as symbolic revision.
13530 (RCS_getversion): Take advantage of above.
13531 * sanity.sh (admin): Add/revise/renumber admin-10c, admin-11a,
13532 admin-12, and admin-12a to check above.
13533
13534 * commmit.c (lock_RCS): Minor clean-up.
13535
13536 * sanity.sh (abspath-6a): Don't depend on the sepcific contents of
13537 CVSROOT, it depends on which other tests have been run.
13538
13539 Wed Feb 18 01:56:04 1998 Ian Lance Taylor <ian@cygnus.com>
13540
13541 * rcs.c (putsymbol_proc): Use putc and fputs rather than fprintf.
13542 (RCS_putadmin): Don't call RCS_symbols if the symbols have not yet
13543 been converted to a list.
13544
13545 * rcs.c (rcsbuf_cache, rcsbuf_cache_open, rcsbuf_cache_close): New
13546 static functions to avoid closing and reopening the RCS file.
13547 (cached_rcs, cached_rcsbuf): New static variables.
13548 (RCS_parse): Call rcsbuf_cache_close. Don't call fclose.
13549 (RCS_parsercsfile): Likewise.
13550 (RCS_parsercsfile_i): Call rcsbuf_cache rather than
13551 rcsbuf_close. Call fclose on error. Remove comment about
13552 inefficiency of opening file twice.
13553 (RCS_reparsercsfile): Call rcsbuf_cache_open rather than fopen and
13554 rcsbuf_open. Call rcsbuf_cache rather than rcsbuf_close and
13555 fclose.
13556 (RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
13557 (RCS_rewrite): Likewise.
13558 (RCS_checkin): Call rcsbuf_cache_close.
13559
13560 * rcs.c (RCS_copydeltas): Fix code which checks for an extra
13561 newline in buffered data.
13562
13563 * rcs.c (rcsbuf_getkey): Save an indirection by using start rather
13564 than *valp when trimming trailing whitespace from value.
13565
13566 * rcs.c (rcsbuf_get_buffered): New static function.
13567 (RCS_copydeltas): After we have done all the required special
13568 actions, and inserted any new revision, just copy the file bytes
13569 directly, rather than interpreting all the data.
13570 (count_delta_actions): New static function.
13571 * sanity.sh (rcs): Add rcs-6a and rcs-6b to commit a new branch
13572 revision, to force CVS to interpret all the data, rather than just
13573 copying it. Adjust rcs-5 to add a branch tag. Adjust rcs-8a and
13574 rcs-14 for the changes created by rcs-6b.
13575
13576 Tue Feb 17 18:34:01 1998 Ian Lance Taylor <ian@cygnus.com>
13577
13578 * sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
13579 the test.
13580
13581 * import.c (expand_at_signs): Rewrite to use memchr and fwrite
13582 rather than putc.
13583
13584 Rewrite RCS file reading routines for speed:
13585 * rcs.c (struct rcsbuffer): Define.
13586 (rcsbuf_open, rcsbuf_close, rcsbuf_getkey, rcsbuf_getrevnum,
13587 rcsbuf_fill, rcsbuf_valcopy, rcsbuf_valpolish,
13588 rcsbuf_valpolish_internal, rcsbuf_ftell): New static functions.
13589 (getrcskey, getrcsrev, getrevnum): Remove.
13590 (many functions): Change to use new rcsbuf functions instead of
13591 old getrcskey/getrcsrev/getrevnum functions.
13592 (RCS_reparsercsfile): Add rcsbufp parameter. Change all callers.
13593 (RCS_deltas): Add rcsbuf parameter. Change all callers.
13594 (getdelta): Change fp parameter to rcsbuf parameter. Change all
13595 callers.
13596 (RCS_getdeltatext): Add rcsbuf parameter. Change all callers.
13597 (RCS_copydeltas): Add rcsbufin parameter. Change all callers.
13598 * rcs.h (RCS_reparsercsfile): Update declaration.
13599 * admin.c (admin_fileproc): Update calls to RCS_reparsercsfile for
13600 new parameters.
13601
13602 1998-02-17 Jim Kingdon <kingdon@harvey.cyclic.com>
13603
13604 * sanity.sh (toplevel): Also clean up second-dir (not a new
13605 bug, but triggered by running tests as "toplevel abspath").
13606
13607 * create_adm.c (Create_Admin): Just print update_dir to tell the
13608 user where we are; not the whole xgetwd. Cleaner than
13609 Noel's change (which also had problems in errno handling).
13610 * sanity.sh (toplevel-12): Update accordingly.
13611
13612 Tue Feb 17 02:32:21 1998 Noel Cragg <noel@swish.red-bean.com>
13613
13614 [These mods make "checkout" work with "-d /absolute/pathname"
13615 once again.]
13616
13617 * checkout.c (checkout_proc): the -d flag on the command line
13618 should override the -d flag in the modules file if the latter is
13619 an absolute path. The loop that assembles the list of directories
13620 to build has been reorganized slightly to prepare for rewriting
13621 with last_component rather than assuming '/' as a path separator.
13622 Also added to that loop was some code to handle absolute
13623 pathnames.
13624 (build_dirs_and_chdir): add a new argument that tells this routine
13625 whether or not to check before it creates and populates
13626 directories or not.
13627
13628 * filesubr.c (last_component): return the top-level directory when
13629 asked about the top-level directory.
13630
13631 * sanity.sh (toplevel-12): change test to reflect the new style of
13632 this error message.
13633
13634 * create_adm.c (Create_Admin): include the directory in the error
13635 message.
13636
13637 1998-02-16 Jim Kingdon <kingdon@harvey.cyclic.com>
13638
13639 * diff.c (diff_fileproc), import.c (import, add_rcs_file), rcs.c
13640 (RCS_cmp_file): Don't ignore errors from CVS_UNLINK and fclose.
13641
13642 * patch.c (patch_fileproc): Check for errors from fclose; if we
13643 get -1 from getline check for end of file vs. error.
13644
13645 * rcs.c (RCS_checkout): Comment return value (0/1, not -1).
13646 * commit.c, diff.c, mkmodules.c, patch.c, rcs.c, update.c: Update
13647 to match this convention. Don't suppress errors based on
13648 quiet or really_quiet variables.
13649
13650 Fix a longstanding bug which also makes stamps-8kw in make
13651 remotecheck work again (it stopped working with Ian's 8 Feb 98
13652 checkin):
13653 * client.c, client.h (change_mode): If new argument respect_umask
13654 is set, then honor the umask.
13655 * client.c, server.c: Update callers.
13656
13657 Cleanups to Tim's checkin:
13658 * rcs.c (RCS_checkout): Use existence_error not ENOENT.
13659 * commit.c (checkaddfile): Remove comment about whether we want to
13660 check for errors from fclose; there is no reason not to.
13661 * rcs.c (RCS_checkout), update.c (special_file_mismatch): sscanf
13662 on %ld requires an unsigned long, not a dev_t.
13663 * update.c (special_file_mismatch): Remove unused variable
13664 check_devnums.
13665 * mkmodules.c (config_contents): Between two settings, use a blank
13666 line not a "#" line.
13667
13668 1998-02-15 Tim Pierce <twp@skepsis.com>
13669
13670 [This is the code as submitted. I'll be checking in my cleanups
13671 shortly. This work sponsored by Abbott Labs. -kingdon]
13672
13673 Support for device special files, symbolic links, user and group
13674 ownerships, and file permissions.
13675
13676 * parseinfo.c: (parse_config): Handle new config variable
13677 `PreservePermissions'.
13678 * mkmodules.c (config_contents): Add new PreservePermissions var.
13679
13680 * rcs.c, rcs.h (preserve_perms): New variable.
13681 (RCS_checkout, RCS_checkin): Support for newphrases `owner',
13682 `group', `permissions', `special', `symlink'.
13683 (RCS_checkout): If `workfile' and `sout' are symlinks, remove them
13684 before attempting to open them for writing.
13685 * import.c (add_rcs_file): Support for newphrases. Do not attempt
13686 to read data from special files or symlinks. Error message
13687 `cannot fstat' is now `cannot lstat'.
13688
13689 New metrics for deciding when two files are different:
13690
13691 * update.c, cvs.h (special_file_mismatch): New function.
13692 (merge_file, join_file): Call it.
13693 * no_diff.c (No_Difference): Call it.
13694
13695 * filesubr.c (xcmp): Consider files to be different if they are of
13696 different types; if they are symlinks which link to different
13697 pathnames; or if they are devices with different device numbers.
13698 Error message is now `cannot lstat'.
13699 * rcs.c (RCS_cmp_file): Use `xcmp' to compare files, simplifying
13700 the special handling for nonregular files.
13701
13702 * rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
13703 special files, report no differences.
13704
13705 Miscellaneous changes to make special file support possible:
13706
13707 * commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
13708 a symlink.
13709
13710 * import.c (add_rcs_file): Don't try to close fpuser if it was
13711 never opened (e.g. when operating on a symlink).
13712
13713 * filesubr.c, cvs.h (isdevice, xreadlink): New functions.
13714 * filesubr.c (copy_file): Handle special files and symlinks.
13715 (xchmod): Do nothing if `preserve_perms' is set.
13716
13717 * commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
13718 fopen/fclose calls. Copy_file no longer attempts to read data
13719 from device files.
13720
13721 * filesubr.c (islink): Use CVS_LSTAT, not lstat.
13722 * vers_ts.c (time_stamp, time_stamp_server): Use CVS_LSTAT, not stat,
13723 to get symlinks right.
13724 * subr.c (get_file): Same. Don't attempt to read from special
13725 files or symlinks.
13726
13727 * classify.c (Classify_File): Doc fix.
13728
13729 Fri Feb 13 17:07:32 1998 Eric Mumpower <nocturne@cygnus.com>
13730 and Ian Lance Taylor <ian@cygnus.com>
13731
13732 Fix some file system ordering problems found on Irix 6.4:
13733 * sanity.sh (basic2): Use dotest_sort for test 56.
13734 (importb): Use dotest_sort for tests importb-1 and importb-2.
13735 (head): Use dotest_sort for test head-1.
13736
13737 Thu Feb 12 15:15:33 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13738
13739 * import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
13740
13741 11 Feb 1998 Andy Piper
13742
13743 * server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
13744
13745 Mon Feb 9 18:34:39 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13746
13747 Tweaks to Ian's checkin:
13748 * update.c (merge_file): Remove comment about sending file to
13749 client before the message. It doesn't apply to this code any more
13750 (it does apply to checkout_file, but I'm not sure it is important
13751 to have such a comment anyway).
13752 * buffer.c (buf_default_memory_error, buf_length): Reindent.
13753 * server.h: Declare struct buffer before use.
13754
13755 Mon Feb 9 21:05:28 1998 Ian Lance Taylor <ian@cygnus.com>
13756
13757 * rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
13758 Don't bother with ungetc.
13759
13760 * rcs.c (getrcsrev): Rewrite to simply call getrevnum.
13761
13762 Sun Feb 8 15:49:39 1998 Ian Lance Taylor <ian@cygnus.com>
13763
13764 Don't have the server check out a revision into a file and then
13765 immediately read the file; just read into a buffer instead.
13766 * update.c: Include buffer.h.
13767 (update_fileproc): Let checkout_file call server_updated.
13768 (checkout_file): Add merging and update_server parameters. Change
13769 all callers. If server_active, don't mess with backup files. If
13770 server_active, copy the revision into a buffer rather than a file
13771 when possible. If update_server, call server_updated. Fix
13772 handling of error status.
13773 (checkout_to_buffer): New static function used by checkout_file.
13774 (merge_file): Let checkout_file call server_updated.
13775 (join_file): Likewise.
13776 * server.c (server_updated): Change file_info parameter to mode
13777 parameter. Add filebuf parameter. Change all callers. If
13778 filebuf is not NULL, don't read the file.
13779 * server.h (server_updated): Update declaration.
13780 * buffer.c (buf_free): New function.
13781 (buf_append_buffer): New function.
13782 (buf_length): New function.
13783 * buffer.h (buf_free, buf_append_buffer, buf_length): Declare.
13784
13785 * buffer.c: (buf_initialize): If the memory parameter is NULL, use
13786 buf_default_memory_error.
13787 (buf_default_memory_error): New static function.
13788 * buffer.h (BUFMEMERRPROC): Define typedef.
13789 * client.c (buf_memory_error): Remove.
13790 (start_server): Pass NULL rather than buf_memory_error as buffer
13791 memory error function.
13792
13793 Sat Feb 7 16:27:30 1998 Ian Lance Taylor <ian@cygnus.com>
13794
13795 * rcs.c (RCS_parsercsfile_i): Read the expand keyword from the RCS
13796 file. We do this because Version_TS calls RCS_getexpand in many
13797 common cases, and we don't want to reopen the file just for that.
13798 (RCS_reparsercsfile): Skip the expand keyword.
13799 (RCS_getexpand): Don't call RCS_reparsercsfile.
13800
13801 * rcs.c (STREQ): New macro. In all string equality tests in the
13802 file, replace strcmp with STREQ.
13803
13804 Fri Feb 6 16:14:49 1998 Ian Lance Taylor <ian@cygnus.com>
13805
13806 * update.c (checkout_file): If we've already removed the backup
13807 file once, don't try to remove it again.
13808
13809 * filesubr.c (unlink_file_dir): Call stat rather than isdir, and
13810 don't call unlink if the file does not exist.
13811
13812 * myndbm.c (mydbm_load_file): Rename line_len to line_size. Call
13813 getstr rather than getline, to avoid any confusion between \n and
13814 \012. Use the line length returned by getstr rather than calling
13815 strlen. Remove local variable len.
13816
13817 Fri Feb 6 13:23:46 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13818
13819 * rcs.c (RCS_parsercsfile_i): Don't suppress errors on
13820 really_quiet.
13821 (RCS_parsercsfile_i, RCS_reparsercsfile, RCS_fully_parse,
13822 RCS_deltas, getdelta, getrcskey, RCS_getdeltatext):
13823 Check for errors. Include errno in error messages. Include
13824 filename in error messages. Pass new argument to getrcskey.
13825 (getrcskey): New argument NAME, so we can report errors ourself.
13826
13827 Fri Feb 6 12:10:18 1998 Ian Lance Taylor <ian@cygnus.com>
13828
13829 * rcs.c (RCS_reparsercsfile): Don't use ftell/fseek; just keep
13830 track of whether we've already read a key/value pair. Use sizeof
13831 rather than strlen for a constant string. Pass the current key
13832 and value to getdelta, and get them back as well.
13833 (getdelta): Add keyp and valp parameters. Don't use ftell/fseek;
13834 just return the key/value pair to the caller. Don't allocate
13835 vnode before we know we need it. Check one getrcskey return
13836 value. Use sizeof rather than strlen for a constant string.
13837
13838 * rcs.c (getrcskey): Correct comment describing return value.
13839
13840 Thu Feb 5 22:51:13 1998 Ian Lance Taylor <ian@cygnus.com>
13841
13842 * subr.c (getcaller): Cache the result, so that we don't keep
13843 searching the password file.
13844
13845 Wed Feb 4 23:31:08 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13846
13847 * rcs.c (max_rev): Don't prototype. Interesting that noone
13848 complained about this until now.
13849
13850 4 Feb 1998 Jim Kingdon
13851
13852 * rcs.c (RCS_checkin): When adding a new file, read it
13853 with "rb" if binary.
13854
13855 Fri Jan 30 11:32:41 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13856
13857 * sanity.sh: Also test "first-dir" as the regexp in loginfo in
13858 addition to ALL.
13859
13860 * main.c (main): Update year in copyright notice to 1998.
13861
13862 Thu Jan 29 00:01:05 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13863
13864 * version.c: Change version number to 1.9.25.
13865
13866 * Version 1.9.24.
13867
13868 * sanity.sh (multibranch2): File file2 and tests multibranch2-13
13869 through multibranch2-15 test a slightly different case than the
13870 rest of multibranch2.
13871
13872 * mkmodules.c (cvswrappers_contents): Rewrite. The text didn't
13873 describe -k and had various other problems.
13874
13875 28 Jan 1998 Karl Fogel and Jim Kingdon
13876
13877 New feature to let server tell client about wrappers.
13878 * client.h (struct response): Add comment about args being
13879 '\0' terminated when passed to handle_* functions.
13880 * client.c (start_server): send "wrapper-sendme-rcsOptions" to
13881 server iff supported.
13882 (responses): new response "Wrapper-rcsOption"; allows the server
13883 to send certain lines from its cvswrappers file.
13884 (handle_wrapper_rcs_option): new func, handles "Wrapper-rcsOption"
13885 response from server.
13886 * server.c (serve_wrapper_sendme_rcs_options): new func, sends
13887 server side CVSROOT/cvswrappers rcs option lines to client.
13888 (requests): new request "wrapper-sendme-rcsOptions"; if received,
13889 we know we can send "Wrapper-rcsOption..." to the client.
13890 * wrapper.c (wrap_unparse_rcs_options): new func; repeated calls
13891 step down the wrapper list returning rcs option entries, but
13892 repackaged as cvswrappers lines.
13893 (wrap_setup): new guard variable `wrap_setup_already_done'; if
13894 this function has run already, just return having done nothing.
13895 Add comment concerning environment variable.
13896 * cvs.h: declare wrap_unparse_rcs_options().
13897
13898 Tue Jan 27 18:27:19 1998 Ian Lance Taylor <ian@cygnus.com>
13899
13900 * rtag.c (rtag_dirproc): Call ignore_directory, and skip the
13901 directory if it returns true.
13902 * sanity.sh (modules4): New set of tests to test some aspects of
13903 excluding directories in the modules file, including the above
13904 patch.
13905
13906 Thu Jan 22 10:05:55 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13907
13908 * server.c (serve_kopt): Check for length of arg. Based on
13909 inspection of the code, plugs a buffer overrun security hole which
13910 was introduced Monday.
13911
13912 * server.c (serve_is_modified): Don't call xmalloc; we aren't
13913 allowed to call error() here. Remove duplicate (and potentially
13914 confusing) variable 'p'.
13915
13916 * log.c (log_fileproc): Look for first character of version
13917 '0' AND second character '\0', rather than OR. I didn't try to
13918 come up with a test case but this looks like a simple thinko
13919 (albeit one which would show up in obscure cases if at all).
13920
13921 Tue Jan 20 19:37:53 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13922
13923 * client.c (send_dirent_proc): Don't send nonexistent directories
13924 unless noexec.
13925 * sanity.sh (modules2): New tests modules2-13 through modules2-18
13926 test for this fix.
13927
13928 Mon Jan 19 11:17:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13929
13930 * server.c (serve_kopt): New function.
13931 (requests): Add "Kopt" request.
13932 (kopt): New variable.
13933 (serve_is_modified): Write kopts from there into entries.
13934 (serve_modified): Call serve_is_modified so we do the same.
13935 Declare serve_modified and serve_is_modified.
13936 * vers_ts.c (Version_TS): Set ->options even for a dummy ("D"
13937 timestamp) entry.
13938 * import.c (process_import_file): Check for -k options.
13939 * client.c (client_process_import_file): Send Kopt request.
13940 (send_fileproc): Likewise, for "cvs add".
13941 * sanity.sh: Enable test binwrap3-sub2-add1 for remote.
13942 Add -I .cvswrappers to binwrap3-2a; adjust binwrap3-2d
13943 accordingly. Tests for this fix.
13944
13945 Mon Jan 19 08:48:59 1998 Larry Jones <larry.jones@sdrc.com>
13946
13947 * sanity.sh (errmsg1): Append test 168 output to log file.
13948
13949 Sat Jan 17 08:01:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13950
13951 * sanity.sh (ann-10, ann-11): Don't make assumptions about the
13952 number of characters in the username.
13953
13954 Fri Jan 16 15:34:02 1998 Larry Jones <larry.jones@sdrc.com>
13955
13956 * diff.c (diff_fileproc): Free label1 and label2 when finished.
13957
13958 * edit.c (editor_set): Don't free edlist until after we're
13959 done using it.
13960
13961 * rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
13962
13963 * subr.c (make_message_rcslegal): Don't access uninitialized or
13964 unallocated memory; only strip trailing blank lines.
13965 * sanity.sh (log-3): Enhance to test this fix.
13966
13967 Fri Jan 16 12:41:03 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13968
13969 * sanity.sh: Add keywordlog to list of tests run by default.
13970
13971 * rcs.c (RCS_deltas): Don't call cvs_output if length is zero;
13972 passing zero length to cvs_output does not mean output zero
13973 bytes. The 27 Dec 1997 change to no longer '\0'-terminate the
13974 ->text field turned this from a time bomb to a user-visible bug.
13975 * sanity.sh (ann): New tests, test for this fix and other annotate
13976 behaviors.
13977
13978 Thu Jan 15 23:52:00 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
13979
13980 * root.c (root_allow_ok): If inetd.conf didn't specify an
13981 --allow-root options at all, we know we are in trouble. Give a
13982 specific error message.
13983
13984 Thu Jan 15 21:24:59 1998 Ian Lance Taylor <ian@cygnus.com>
13985
13986 * sanity.sh (dotest_sort): New variant of dotest which sorts the
13987 output, for use when the output depends upon details of the file
13988 system, typically when doing an import.
13989 (rdiff): Use dotest_sort for rdiff-1.
13990 (ignore): Use dotest_sort for 188a, 188b, 189d, 190, and 191.
13991
13992 * sanity.sh: (TESTSHELL): New variable.
13993 (editor, info, reserved): Use TESTSHELL in temporary script.
13994
13995 * sanity.sh (ignore): Do all tests in subdirectory, to avoid
13996 conflict between cvsroot and CVSROOT on Windows.
13997 (binwrap3, mwrap, info, config): Likewise.
13998
13999 * sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
14000 binfiles2-7-brmod.
14001
14002 * release.c (release_delete): If __CYGWIN32__ is defined, don't
14003 worry about mismatched inodes. This is a hack, but then I think
14004 the test is rather peculiar anyhow.
14005
14006 Thu Jan 15 16:07:36 1998 Larry Jones <larry.jones@sdrc.com>
14007
14008 * sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
14009
14010 Wed Jan 14 15:43:13 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14011
14012 * Split ChangeLog into ChangeLog-97 and ChangeLog.
14013 * Makefile.in (DISTFILES): Add ChangeLog-97.
14014
14015 13 Jan 1998 Jim Kingdon
14016
14017 * client.c: Declare handle_mt.
14018
14019 Tue Jan 13 22:21:30 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14020
14021 * sanity.sh: Add comment about how pwd and /bin/pwd often differ
14022 in behavior (but are not guaranteed to).
14023
14024 Tue Jan 13 13:49:53 1998 Ian Lance Taylor <ian@cygnus.com>
14025
14026 * sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
14027
14028 * update.c (checkout_file): Don't pass set_time as true to
14029 Version_TS if the file is dead.
14030 * sanity.sh (modules): Add tests modules-155c6 through
14031 modules-155c8 to test for above patch (without the above patch,
14032 modules-155c8 will fail when remote).
14033
14034 Tue Jan 13 10:37:02 1998 Larry Jones <larry.jones@sdrc.com>
14035
14036 * client.c (send_modified): Change bufsize and newsize from int
14037 to size_t to avoid type clashes in call to read_and_gzip.
14038
14039 Tue Jan 13 10:33:02 1998 Larry Jones <larry.jones@sdrc.com>
14040
14041 * zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
14042
14043 Tue Jan 13 10:26:43 1998 Larry Jones <larry.jones@sdrc.com>
14044
14045 * add.c, rcs.c: Plug memory leaks.
14046
14047 Mon Jan 12 10:45:27 1998 Larry Jones <larry.jones@sdrc.com>
14048
14049 * server.c (mkdir_p): Don't try to create nameless directories
14050 (i.e., given "/foo//bar", don't try to create "/foo/",
14051 just "/foo" and "/foo//bar") since it isn't necessary and
14052 it fails on some systems in unexpected ways.
14053
14054 1998-01-11 enami tsugutomo <enami@but-b.or.jp>
14055
14056 * rcs.c (linevector_copy): Delete lines before overwriting them.
14057
14058 Sat Jan 10 11:05:40 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14059
14060 * cvsrc.c, entries.c, login.c, logmsg.c, myndbm.c, patch.c,
14061 release.c, server.c: Check for errors from getline, CVS_FOPEN,
14062 fprintf, CVS_UNLINK and fclose. Note that the new errors are
14063 nonfatal. This is because of conservatism more than because
14064 it is always the best thing.
14065 * login.c (get_cvs_password): Close the file when done with it.
14066 * client.c (notified_a_file): If -1 return from getline, check
14067 feof rather than assuming errno is set.
14068
14069 Fri Jan 9 14:38:54 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14070
14071 * server.c (expand_proc): Also output server_dir in
14072 "Module-expansion", not just in output_dir ("Created", &c).
14073 * sanity.sh (modules2): New tests modules2-9 through modules2-12
14074 test for this.
14075
14076 Thu Jan 8 12:56:55 1998 Yasutoshi Hiroe <hiroe@rgk.ricoh.co.jp>
14077
14078 * import.c (import): Don't strcat on uninitialized memory. Fixes
14079 possible SIGSEGV with zero-length message.
14080
14081 Tue Jan 6 22:56:29 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14082
14083 * sanity.sh (crerepos): Fix mistaken variable name which caused us
14084 not to clean up at the end of the test.
14085
14086 Mon Dec 22 01:40:57 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
14087
14088 * add.c (add): Also look for .cvswrappers files.
14089 * sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
14090 test for this.
14091
14092 Tue Jan 6 11:50:38 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14093
14094 * sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
14095 test behaviors when mixing repositories.
14096
14097 Sun Jan 4 17:40:22 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
14098
14099 * version.c: Change version number to 1.9.23.
14100
14101 * Version 1.9.22.
14102
14103
14104 For older changes see ChangeLog-97.

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26