summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@zimbu.org>2010-01-27 16:31:13 +0100
committerBram Moolenaar <bram@zimbu.org>2010-01-27 16:31:13 +0100
commit17e4b813781367decc47e6a7833c9c28ebca2656 (patch)
treeef5e3577d0d0593f24fea246c784b46abdbef7b4
parent2fdc772e3c05c11ce2fcbf7b663c1763eddc17ee (diff)
downloadvim-7-2-346.tar.gz
updated for version 7.2.346v7.2.346v7-2-346
Problem: Repeating a command with @: causes a mapping to be applied twice. Solution: Do not remap characters inserted in the typeahead buffer. (Kana Natsuno)
-rw-r--r--src/ops.c15
-rw-r--r--src/version.c2
2 files changed, 13 insertions, 4 deletions
diff --git a/src/ops.c b/src/ops.c
index 4b32b573..606ce071 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1301,10 +1301,16 @@ put_reedit_in_typebuf(silent)
}
}
+/*
+ * Insert register contents "s" into the typeahead buffer, so that it will be
+ * executed again.
+ * When "esc" is TRUE it is to be taken literally: Escape CSI characters and
+ * no remapping.
+ */
static int
put_in_typebuf(s, esc, colon, silent)
char_u *s;
- int esc; /* Escape CSI characters */
+ int esc;
int colon; /* add ':' before the line */
int silent;
{
@@ -1312,7 +1318,7 @@ put_in_typebuf(s, esc, colon, silent)
put_reedit_in_typebuf(silent);
if (colon)
- retval = ins_typebuf((char_u *)"\n", REMAP_YES, 0, TRUE, silent);
+ retval = ins_typebuf((char_u *)"\n", REMAP_NONE, 0, TRUE, silent);
if (retval == OK)
{
char_u *p;
@@ -1324,12 +1330,13 @@ put_in_typebuf(s, esc, colon, silent)
if (p == NULL)
retval = FAIL;
else
- retval = ins_typebuf(p, REMAP_YES, 0, TRUE, silent);
+ retval = ins_typebuf(p, esc ? REMAP_NONE : REMAP_YES,
+ 0, TRUE, silent);
if (esc)
vim_free(p);
}
if (colon && retval == OK)
- retval = ins_typebuf((char_u *)":", REMAP_YES, 0, TRUE, silent);
+ retval = ins_typebuf((char_u *)":", REMAP_NONE, 0, TRUE, silent);
return retval;
}
diff --git a/src/version.c b/src/version.c
index 1fea40f1..f79e92e2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -682,6 +682,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 346,
+/**/
345,
/**/
344,