Hi
Recent patch 7.3.100 introduced a regression when appending text in diff mode.
Steps to reproduce:
============================================================================
$ cat .vimrc-bug
set nocompatible
set laststatus=2
fun! ShowUtf8Sequence()
try
let p = getpos('.')
redir => utfseq
sil normal! g8
redir End
call setpos('.', p)
return substitute(matchstr(utfseq, '\x\+ .*\x'), '\<\x', '0x&', 'g')
catch
return '?'
endtry
endfunction
set statusline=%{ShowUtf8Sequence()}
$ cat foo.xml
<foo
</foo>
$ cat bar.xml
<foo>
</foo>
$ vim -d --noplugin -u .vimrc-bug foo.xml bar.xml
Now in normal mode, append some text at the end of a line with A:
A1234
Instead of appending 1234 at the end of the line, it appends: 1432o
============================================================================
I can reproduce the bug with latest Vim-7.3.107.
Doing a bisection, I found that Vim-7.3.99 and older worked fine
and bug started to happen in Vim-7.3.100 which was a one-line
patch:
changeset: 2682:35edf814f223
user: Bram Moolenaar <[email protected]>
date: Mon Jan 17 19:50:06 2011 +0100
files: src/ex_docmd.c src/version.c
description:
updated for version 7.3.100
Problem: When using :normal v:count isn't set.
Solution: Call normal_cmd() with toplevel set to TRUE.
$ diff -r 85c5a72551e2 -r 35edf814f223 src/ex_docmd.c
--- a/src/ex_docmd.c Sat Jan 08 16:06:37 2011 +0100
+++ b/src/ex_docmd.c Mon Jan 17 19:50:06 2011 +0100
@@ -9310,7 +9310,7 @@
&& !got_int)
{
update_topline_cursor();
- normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
+ normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */
}
}
#endif
Reverting patch 7.3.100 fixes the problem.
Regards
-- Dominique
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php