Implement vim_str(n)save using xstrdup and strncpy/xmalloc

This commit is contained in:
Felipe Oliveira Carvalho 2014-05-08 21:32:40 -03:00
parent 32d018b57e
commit b63d2626ed
2 changed files with 7 additions and 16 deletions

View File

@ -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);
}
/*

View File

@ -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,