]> git.lizzy.rs Git - shadowclad.git/blob - src/engine/string.c
04ad0dbe1edee1418c66fc031739d9db5cd3c16d
[shadowclad.git] / src / engine / string.c
1 #include "string.h"
2
3 #include <stdlib.h>
4
5 String newString(const char* s) {
6         size_t len = 0u;
7         char* cstr;
8         if (s) {
9                 len = strlen(s);
10                 cstr = memcpy(malloc((len + 1) * sizeof(char)),
11                               s,
12                               len * sizeof(char));
13         }
14         else {
15                 cstr = malloc(1 * sizeof(char));
16         }
17         cstr[len] = '\0';
18         return (String) { .length = len, .cstr = cstr };
19 }
20
21 String stringFromAiString(const struct aiString aistr) {
22         char* cstr = memcpy(malloc((aistr.length + 1) * sizeof(char)),
23                                 aistr.data,
24                                 aistr.length * sizeof(char));
25         cstr[aistr.length] = '\0';
26         return (String) { .length = aistr.length, .cstr = cstr };
27 }
28
29 void dropString(String str) {
30         free(str.cstr);
31         str.length = 0u;
32         str.cstr = NULL;
33 }