aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/garray.c
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2016-01-30 22:25:21 +0300
committerZyX <kp-pav@yandex.ru>2016-04-18 02:44:03 +0300
commit68e58444b48fc34c9a7c262883750778fbd935d7 (patch)
treee70c3cbc8ae375c34498c30620571b1deb5e3099 /src/nvim/garray.c
parentc3efad5398da01fcdb0fd40822bedff4957c7797 (diff)
downloadrneovim-68e58444b48fc34c9a7c262883750778fbd935d7.tar.gz
rneovim-68e58444b48fc34c9a7c262883750778fbd935d7.tar.bz2
rneovim-68e58444b48fc34c9a7c262883750778fbd935d7.zip
eval: Add jsonencode() function
Ref #3471
Diffstat (limited to 'src/nvim/garray.c')
-rw-r--r--src/nvim/garray.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/nvim/garray.c b/src/nvim/garray.c
index e6cbd9332b..47a370b18c 100644
--- a/src/nvim/garray.c
+++ b/src/nvim/garray.c
@@ -188,11 +188,22 @@ void ga_concat(garray_T *gap, const char_u *restrict s)
return;
}
- int len = (int)strlen((char *) s);
+ ga_concat_len(gap, (const char *restrict) s, strlen((char *) s));
+}
+
+/// Concatenate a string to a growarray which contains characters
+///
+/// @param[out] gap Growarray to modify.
+/// @param[in] s String to concatenate.
+/// @param[in] len String length.
+void ga_concat_len(garray_T *const gap, const char *restrict s,
+ const size_t len)
+ FUNC_ATTR_NONNULL_ALL
+{
if (len) {
- ga_grow(gap, len);
+ ga_grow(gap, (int) len);
char *data = gap->ga_data;
- memcpy(data + gap->ga_len, s, (size_t)len);
+ memcpy(data + gap->ga_len, s, len);
gap->ga_len += len;
}
}