0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.3.1200

Problem:    When calling setline() from Insert mode, using CTRL-R =, undo does
            not work properly. (Israel Chauca)
Solution:   Sync undo after evaluating the expression. (Christian Brabandt)
This commit is contained in:
Bram Moolenaar 2013-06-15 17:54:43 +02:00
parent dab38d516e
commit df9259abce
4 changed files with 20 additions and 4 deletions

View File

@ -8126,10 +8126,8 @@ ins_reg()
--no_mapping;
#ifdef FEAT_EVAL
/*
* Don't call u_sync() while getting the expression,
* evaluating it or giving an error message for it!
*/
/* Don't call u_sync() while typing the expression or giving an error
* message for it. Only call it explicitly. */
++no_u_sync;
if (regname == '=')
{
@ -8142,6 +8140,9 @@ ins_reg()
if (im_on)
im_set_active(TRUE);
# endif
if (regname == '=')
/* sync undo, so the effect of e.g., setline() can be undone */
u_sync(TRUE);
}
if (regname == NUL || !valid_yank_reg(regname, FALSE))
{

View File

@ -84,6 +84,16 @@ ggO---:0put c
ggO---:0put b
ggO---:0put a
ggO---:w >>test.out
:so small.vim
:set nocp
:enew!
oa
:set ul=100
ob
:set ul=100
o1a2=setline('.','1234')
uu:%w >>test.out
:qa!
ENDTEST

View File

@ -41,3 +41,6 @@ one one one
two
two
three
a
b

View File

@ -728,6 +728,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1200,
/**/
1199,
/**/