impl strdup and strndup by myself

This commit is contained in:
Yuichi Nishiwaki 2014-02-01 19:31:59 +09:00
parent 1e89fbaef1
commit d48ae9227a
2 changed files with 19 additions and 0 deletions

View File

@ -154,6 +154,8 @@ const char *pic_symbol_name(pic_state *, pic_sym);
pic_sym pic_gensym(pic_state *, pic_sym);
bool pic_interned_p(pic_state *, pic_sym);
char *pic_strdup(pic_state *pic, const char *s);
char *pic_strndup(pic_state *pic, const char *s, size_t n);
struct pic_string *pic_str_new(pic_state *, const char *, size_t);
struct pic_string *pic_str_new_cstr(pic_state *, const char *);

View File

@ -7,6 +7,23 @@
#include "picrin.h"
#include "picrin/blob.h"
char *
pic_strndup(pic_state *pic, const char *s, size_t n)
{
char *r;
r = pic_alloc(pic, n + 1);
memcpy(r, s, n);
r[n] = '\0';
return r;
}
char *
pic_strdup(pic_state *pic, const char *s)
{
return pic_strndup(pic, s, strlen(s));
}
struct pic_blob *
pic_blob_new(pic_state *pic, char *dat, size_t len)
{