aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval/encode.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/nvim/eval/encode.c b/src/nvim/eval/encode.c
index 0096d9172b..e3d0bf69b2 100644
--- a/src/nvim/eval/encode.c
+++ b/src/nvim/eval/encode.c
@@ -15,6 +15,7 @@
#include "nvim/garray.h"
#include "nvim/mbyte.h"
#include "nvim/message.h"
+#include "nvim/memory.h"
#include "nvim/charset.h" // vim_isprintc()
#include "nvim/macros.h"
#include "nvim/ascii.h"
@@ -636,17 +637,10 @@ encode_vim_to_##name##_error_ret: \
ga_concat(gap, "''"); \
} else { \
const size_t len_ = (len); \
- size_t num_quotes = 0; \
- for (size_t i = 0; i < len_; i++) { \
- if (buf_[i] == '\'') { \
- num_quotes++; \
- } \
- } \
- ga_grow(gap, (int) (2 + len_ + num_quotes)); \
+ ga_grow(gap, (int) (2 + len_ + memcnt(buf_, '\'', len_))); \
ga_append(gap, '\''); \
for (size_t i = 0; i < len_; i++) { \
if (buf_[i] == '\'') { \
- num_quotes++; \
ga_append(gap, '\''); \
} \
ga_append(gap, buf_[i]); \