aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Oliveira Carvalho <felipekde@gmail.com>2014-05-08 21:32:40 -0300
committerFelipe Oliveira Carvalho <felipekde@gmail.com>2014-05-19 14:50:22 -0300
commitb63d2626ed9e3e38a485b9990a8e65ba59d6906a (patch)
treeb27def240b199a2a85021ec939dbee8d17943e34
parent32d018b57edbc75d6a70c5cd3e8012d7f924f460 (diff)
downloadrneovim-b63d2626ed9e3e38a485b9990a8e65ba59d6906a.tar.gz
rneovim-b63d2626ed9e3e38a485b9990a8e65ba59d6906a.tar.bz2
rneovim-b63d2626ed9e3e38a485b9990a8e65ba59d6906a.zip
Implement vim_str(n)save using xstrdup and strncpy/xmalloc
-rw-r--r--src/nvim/strings.c16
-rw-r--r--src/nvim/strings.h7
2 files changed, 7 insertions, 16 deletions
diff --git a/src/nvim/strings.c b/src/nvim/strings.c
index fbad71e3c6..731afa4452 100644
--- a/src/nvim/strings.c
+++ b/src/nvim/strings.c
@@ -46,14 +46,7 @@
*/
char_u *vim_strsave(char_u *string)
{
- char_u *p;
- unsigned len;
-
- len = (unsigned)STRLEN(string) + 1;
- p = alloc(len);
- if (p != NULL)
- memmove(p, string, (size_t)len);
- return p;
+ return (char_u *)xstrdup((char *)string);
}
/*
@@ -64,12 +57,7 @@ char_u *vim_strsave(char_u *string)
*/
char_u *vim_strnsave(char_u *string, int len)
{
- char_u *p;
-
- p = alloc((unsigned)(len + 1));
- STRNCPY(p, string, len);
- p[len] = NUL;
- return p;
+ return (char_u *)strncpy(xmallocz(len), (char *)string, len);
}
/*
diff --git a/src/nvim/strings.h b/src/nvim/strings.h
index 831191b517..aec9e4d06d 100644
--- a/src/nvim/strings.h
+++ b/src/nvim/strings.h
@@ -1,7 +1,10 @@
#ifndef NVIM_STRINGS_H
#define NVIM_STRINGS_H
-char_u *vim_strsave(char_u *string);
-char_u *vim_strnsave(char_u *string, int len);
+
+#include "func_attr.h"
+
+char_u *vim_strsave(char_u *string) FUNC_ATTR_NONNULL_RET;
+char_u *vim_strnsave(char_u *string, int len) FUNC_ATTR_NONNULL_RET;
char_u *vim_strsave_escaped(char_u *string, char_u *esc_chars);
char_u *vim_strsave_escaped_ext(char_u *string, char_u *esc_chars,
int cc,