Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!killer!ames!ll-xn!mit-eddie!uw-beaver!cornell!batcomputer!davidra
From: davidra@batcomputer.tn.cornell.edu (David A. Rabson)
Newsgroups: comp.editors
Subject: VI BUG -- 4.2 and 4.3 at least
Keywords: vi ex bug
Message-ID: <5276@batcomputer.tn.cornell.edu>
Date: 23 Jun 88 21:38:19 GMT
Distribution: comp
Organization: Theory Center, Cornell U., Ithaca NY
Lines: 44

I was asked to make some vi macros to help some new users become adjusted
to UNIX (they wanted to emulate parts of their old editor) and found the
following bug:

The y (yank) command does not always do what is advertised.  The following
will demonstrate the problem.  In each case, begin with the cursor at the
beginning of the word "three" as shown below.

        one two three four
                ^

command			expected effect			actual effect
-------			---------------			-------------
"ay2fe			puts `three' in buffer a;	works as expected
			does not move cursor

"aye			should be exactly the same	puts `thre' in buffer
			as the first

emab"ay`a		should be exactly the same	puts `thre' in buffer
			as the first two (note
			that ` is accent-grave)


So it appears that when yanking with the `e' or ` command, one character fewer
than expected is actually grabbed.  It turns out that exactly the same
problem afflicts the E,w, and W commands, but not the f command.  I repeated
the problem on three different machines running 4.2 and 4.3.

It is a relief (and confirmation of my bug report) that if y (yank) is
replaced by d (delete) or c (change), there is no problem; everything
works as expected.

Now it would seem that adding a space (or l) after the e in the third
example would be a somewhat kludgy patch, but it still fails at the end
of a line.

Has this bug been reported previously?

				David Rabson
				davidra@helios.tn.cornell.edu
				Laboratory of Atomic and Solid State Physics
				Clark Hall, Cornell University
				Ithaca, NY 14853-2501