There is a bug in vi that comes up in this fashion:
%vi foo.c
:0r bar.c /* The 'read' command can be given a line number. */
/* This will work fine, but... */
u /* the 'undo' command will not do the expected! */
(This bug does not occur when using ex)
The fix is to change one line in the routine rop() in the file ex_io.c:
undap1 = undap2 = dot + 1;
becomes:
undap1 = undap2 = addr2 + 1;
Write me if you use this fix. I just want to see who cares...
Joe Weinstein at Dual Systems Corp.
2530 San Pablo Ave.
Berkeley, Ca. 94702 415-549-3854