Are you using the Pike/7.2 repository under /pike/data/cvsroot?
Yes. I have investigated a little further, and the disparancy is indeed caused by version 1.244, since co and cvs produce the same result for version 1.245 and up. The original delta looks like this:
@d8 1 a8 1 RCSID("$Id: las.c,v 1.243 2002/11/19 14:00:14 mast Exp $"); d3086 2 d3098 3 a3098 1 s = pop_type(); @
However, if I check out 1.245 and 1.244 with CVS and compare them, I get this diff:
@@ -5,7 +5,7 @@ */ /**/ #include "global.h" -RCSID("$Id: las.c,v 1.245 2005/06/09 17:57:50 mast Exp $"); +RCSID("$Id: las.c,v 1.244 2005/05/15 13:16:56 grubba Exp $");
#include "language.h" #include "interpret.h" @@ -3084,8 +3084,6 @@ char *name; INT32 max_args,args;
- type_stack_mark(); - push_type(T_MIXED); /* match any return type */ push_type(T_VOID); /* even void */ push_type(T_OR); @@ -3095,8 +3093,6 @@ function_type_max=0; low_build_function_type(CDR(n)); push_type(T_FUNCTION); - - s = pop_unfinished_type();
f = CAR(n)->type?CAR(n)->type:mixed_type_string; n->type = check_call(s, f,
So CVS in fact interprets
d3098 3 a3098 1 s = pop_type();
as deleting two lines and not adding anything. It seems like it adds the line _first_, and then deletes the line it just added plus two more, for a total of three lines. RCS behaves in the more expected way of deleting three old lines, and adding the new one.
If I change the delta (in a local copy of the ,v file) to read
@d8 1 a8 1 RCSID("$Id: las.c,v 1.243 2002/11/19 14:00:14 mast Exp $"); d3086 2 d3098 2 @
instead, CVS and RCS produce the same result, and I get a correct version of 1.119...