When working directorys consist of multiple repository, if cvs commit across multiple repository, cvs says `cvs [commit aborted]: cannot specify both a message and a log file'. Example session: % cvs -f ci -F /tmp/1 -f 00changes OS2/00readme Checking in 00changes; /var/tmp/repo/mew/00changes,v <-- 00changes new revision: 10.10; previous revision: 10.9 done cvs [commit aborted]: cannot specify both a message and a log file % This is very quick hack. Index: commit.c =================================================================== RCS file: /home2/cvsroot/ccvs/src/commit.c,v retrieving revision 1.159 diff -p -u -b -B -r1.159 commit.c --- commit.c 2000/02/28 20:33:53 1.159 +++ commit.c 2000/04/10 16:04:29 @@ -369,6 +369,11 @@ commit (argc, argv) #else use_editor = 0; #endif +#if 1 + if (logfile) + error (1, 0, "cannot specify both a message and a log file"); +#endif + if (saved_message) { free (saved_message); @@ -423,8 +428,10 @@ commit (argc, argv) { size_t size = 0, len; +#if 0 if (saved_message) error (1, 0, "cannot specify both a message and a log file"); +#endif get_file (logfile, logfile, "r", &saved_message, &size, &len); } I concern that cvs frequently use static initializer to fill zero. Many functions returns a malloc'ed object, but cvs sometimes fogets to free. e.g date = Make_Date (optarg) at src/update.c. It is too late to refactor, cvs has much entropy... (I'm sorry, I have no enough skill to refine.) -- KOIE Hidetaka <[EMAIL PROTECTED]> in Japan.