diff options
Diffstat (limited to 'src/text.c')
| -rw-r--r-- | src/text.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/text.c b/src/text.c new file mode 100644 index 0000000..26c2eab --- /dev/null +++ b/src/text.c @@ -0,0 +1,64 @@ +#include "text.h" +#include "utils.h" + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> + +size txt_length(const char *text) +{ + size length = 0; + + if(text != NULL){ + while (*text++) length++; + } + + return length; +} + +s8 create_s8(const size sz) +{ + return (s8){(u8*)RL_MALLOC(sz), sz}; +} + +void free_s8(s8* str) +{ + RL_FREE(str->buf); +} + +s8 cstr_to_s8(const char* str) +{ + size sz = txt_length(str) + 1; + s8 final = (s8){(u8*)RL_MALLOC(sz), sz - 1}; + memcpy(final.buf, str, sz); + return final; +} + +b32 equal_s8(const s8 one, const s8 other) +{ + // Get OUTTA here + if(one.len != other.len) + return false; + + for(i32 i = 0; i < one.len; ++i){ + if(one.buf[i] != other.buf[i]) + return false; + } + + return true; +} + +void add_s8(s8 dst, const s8 src, size* pos) +{ + memcpy(dst.buf + *pos, src.buf, src.len); + *pos += src.len; +} + +s8 load_file_text(const s8 path) +{ + char* shr = LoadFileText((const char*)path.buf); + s8 file = cstr_to_s8(shr); + UnloadFileText(shr); + + return file; +}
\ No newline at end of file |
