diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-03-03 15:54:50 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-03-03 15:54:50 +0100 |
commit | f63c49d4e93ef064836d6b96609f78813d72871c (patch) | |
tree | 63c43f039c1d92768ddd8163bc987aa4de57f058 /src | |
parent | 6eb634ef1f40623192f331dda7b13e34fffba9e2 (diff) | |
download | vim-git-f63c49d4e93ef064836d6b96609f78813d72871c.tar.gz |
updated for version 7.3.138v7.3.138
Problem: ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
Diffstat (limited to 'src')
-rw-r--r-- | src/ex_docmd.c | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c index 733d62ee7..27048773e 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -6054,15 +6054,17 @@ do_ucmd(eap) end = vim_strchr(start + 1, '>'); if (buf != NULL) { - ksp = vim_strchr(p, K_SPECIAL); - if (ksp != NULL && (start == NULL || ksp < start || end == NULL) + for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp) + ; + if (*ksp == K_SPECIAL + && (start == NULL || ksp < start || end == NULL) && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER) # ifdef FEAT_GUI || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI) # endif )) { - /* K_SPECIAL han been put in the buffer as K_SPECIAL + /* K_SPECIAL has been put in the buffer as K_SPECIAL * KS_SPECIAL KE_FILLER, like for mappings, but * do_cmdline() doesn't handle that, so convert it back. * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */ diff --git a/src/version.c b/src/version.c index e7902972b..4aba532b2 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 138, +/**/ 137, /**/ 136, |