diff options
author | Bram Moolenaar <bram@zimbu.org> | 2010-01-27 16:31:13 +0100 |
---|---|---|
committer | Bram Moolenaar <bram@zimbu.org> | 2010-01-27 16:31:13 +0100 |
commit | 17e4b813781367decc47e6a7833c9c28ebca2656 (patch) | |
tree | ef5e3577d0d0593f24fea246c784b46abdbef7b4 | |
parent | 2fdc772e3c05c11ce2fcbf7b663c1763eddc17ee (diff) | |
download | vim-7-2-346.tar.gz |
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.c | 15 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 13 insertions, 4 deletions
@@ -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, |