[patch] <C-Y> in virtual replace when line above is shorter

0 views
Skip to first unread message

Lech Lorens

unread,
Dec 17, 2009, 6:24:46 PM12/17/09
to vim_dev
Vim erroneously re-indents the current line if in virtual replace mode
<C-Y> or <C-E> is pressed while the line above or below respectively is
not long enough.

To reproduce the problem execute:

$ vim -u NONE -U NONE -i NONE -c 'set nocp noet ts=8 inde=0 indk=<:>' \
-c 'call feedkeys("2G$gR\<C-Y>\<C-Y>")' \
file.txt

where file.txt is:
#v+
abcdefghijklmnopqrstuvwxyz
1 2 3 4 5
#v-

The result should be:
#v+
abcdefghijklmnopqrstuvwxyz
1 2 3 4 z
#v-

but it is:
#v+
abcdefghijklmnopqrstuvwxyz
1 2 3 4 z 1 2 3 4 5
#v-


The problem is caused by 0 passed to in_cinkeys() as the typed key.
Function in_cinkeys() is then unable to recognise the "not found" return
value from get_special_key_code().

The attached patch fixes the problem.

--
Cheers,
Lech

virtual-replace.patch

Bram Moolenaar

unread,
Dec 18, 2009, 1:38:18 PM12/18/09
to Lech Lorens, vim_dev

Lech Lorens wrote:

Thanks!

--
You have the right to remain silent. Anything you say will be
misquoted, then used against you.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///

Reply all
Reply to author
Forward
0 new messages