aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-09-18 21:38:51 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-09-19 10:57:57 -0400
commitd3e0d299192b7db07445db2fcdcbe089e1cf08f1 (patch)
tree3ee6609a7b96415ff2758278dc7d699464c30571 /src/nvim/eval.c
parentccfb69ab3676bca927744bae2f7462a6464fe4ce (diff)
downloadrneovim-d3e0d299192b7db07445db2fcdcbe089e1cf08f1.tar.gz
rneovim-d3e0d299192b7db07445db2fcdcbe089e1cf08f1.tar.bz2
rneovim-d3e0d299192b7db07445db2fcdcbe089e1cf08f1.zip
vim-patch:8.2.0824: still not enough memory allocated when converting string
Problem: Still not enough memory allocated when converting string with special character. Solution: Reserve space for expanding K_SPECIAL. (closes vim/vim#6130) https://github.com/vim/vim/commit/1919371b2b9ddb1a645f40b59adbd89317530882
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index f3b6818464..00542e3766 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -4527,10 +4527,11 @@ 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 9 characters (6 for the char and 3 for a modifier): reserve
- // space for 5 extra.
+ // 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.
if (*p == '<') {
- extra += 5;
+ extra += 18;
}
}
}