From f63c49d4e93ef064836d6b96609f78813d72871c Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 3 Mar 2011 15:54:50 +0100 Subject: [PATCH] updated for version 7.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) --- src/ex_docmd.c | 8 +++++--- 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 @@ -714,6 +714,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 138, /**/ 137, /**/ -- 2.40.0