add String_new_size()

This commit is contained in:
Josh Holtrop 2018-04-18 19:59:32 -04:00
parent 3508deecc5
commit 74031d18d7
2 changed files with 7 additions and 1 deletions

View File

@ -3,8 +3,13 @@
String * String_new(const char * s)
{
String * new_st = (String *)malloc(sizeof(String));
size_t size = strlen(s);
return String_new_size(s, size);
}
String * String_new_size(const char * s, size_t size)
{
String * new_st = (String *)malloc(sizeof(String));
char * smem = (char *)malloc(size + 1u);
memcpy(smem, s, size);
smem[size] = '\0';

View File

@ -10,6 +10,7 @@ typedef struct
} String;
String * String_new(const char * s);
String * String_new_size(const char * s, size_t size);
String * String_plus(const String * st, const char * s);
String * String_concat(String * st, const char * s);
static inline char * String_cstr(const String * st) { return st->value; }