[net.bugs.4bsd] Bugs in ex/vi

ber@enea.UUCP (06/23/83)

I'm quite convinced that these two bugs in vi (version 3.6) has been
discussed before somewhere, but just in case ...

1. An error in the address evaluation for the command "^B" dispositions
   the line on the screen and it can even make the first line modified.
   Do a ":se number" and then 3^F followed by 3^B. You don't end up at
   the beginning of the file again.

   The fix:
   In ex_vmain.c for the ^B-case it says

	case CTRL(b):
		...
			addr = dot - vcline - 2 + (cnt-1)*basWLINES;
  
   which should be
			...                 + 2 - .......

2. The other one I say is a bug even if someone would say it's a feature.
   If you create a new file with "vi foo" and then do a ":r otherfoo", then
   exit with "ZZ". The file "foo" is gone!! Even if you insert new lines in
   "foo" and then do a ":r", the new file will disappear. I'm not sure where
   to fix this, not introducing a new bug. It's the handling of all these
   "chng"-flags that's a bit of a mess. In ex_io.c the routine "rop3" ends
   with a sync(), which resets the chng-flag. If one make the end of "rop"
   to look like

	rop3(c);
	if (c == 'r')
		change();

   it seems to fix it. Would appreciate any comments.

Is there anyone compiling, in some organized form, all bug reports while
waiting for the next release from Bell/Berkeley ("All about bugs in vi",
"... in csh", "... in nroff")? Anything for USENIX, EUUG?

	Bjorn Eriksen	(...!decvax!mcvax!enea!ber)
	ENEA DATA Sweden