aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-05-03 07:30:12 +0800
committerGitHub <noreply@github.com>2022-05-03 07:30:12 +0800
commitcf474021ed44f197da3c67214fcb95a20886799c (patch)
treebff933e965afcb939aaacdad6b44f00eae9a25cf /src/nvim/eval.c
parentddf7bb24f98b468d2bc6c16c6f300570fc6530f5 (diff)
parent15602a7ce49a2f39666aa6a4f3289683835e83dd (diff)
downloadrneovim-cf474021ed44f197da3c67214fcb95a20886799c.tar.gz
rneovim-cf474021ed44f197da3c67214fcb95a20886799c.tar.bz2
rneovim-cf474021ed44f197da3c67214fcb95a20886799c.zip
Merge pull request #18381 from zeertzjq/vim-8.2.4858
vim-patch:8.2.4858: K_SPECIAL may be escaped twice
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index da869df5cc..3023b1e774 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -4869,11 +4869,10 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
if (*p == '\\' && p[1] != NUL) {
p++;
// A "\<x>" form occupies at least 4 characters, and produces up
- // to 21 characters (3 * 6 for the char and 3 for a modifier):
- // reserve space for 18 extra.
- // Each byte in the char could be encoded as K_SPECIAL K_EXTRA x.
+ // to 9 characters (6 for the char and 3 for a modifier):
+ // reserve space for 5 extra.
if (*p == '<') {
- extra += 18;
+ extra += 5;
}
}
}
@@ -4971,7 +4970,7 @@ static int get_string_tv(char_u **arg, typval_T *rettv, int evaluate)
if (p[1] != '*') {
flags |= FSK_SIMPLIFY;
}
- extra = trans_special((const char_u **)&p, STRLEN(p), name, flags, NULL);
+ extra = trans_special((const char_u **)&p, STRLEN(p), name, flags, false, NULL);
if (extra != 0) {
name += extra;
if (name >= rettv->vval.v_string + len) {