diff options
Diffstat (limited to 'prb_string.c')
-rw-r--r-- | prb_string.c | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/prb_string.c b/prb_string.c deleted file mode 100644 index 06f4ed8..0000000 --- a/prb_string.c +++ /dev/null @@ -1,170 +0,0 @@ -/* NOTE(pryazha): Null-terminated strings */ - -/* TODO(pryazha): Move to another file specific to OS you're in */ -void sys_vprintf(const char *fmt, va_list args) -{ - vprintf(fmt, args); -} - -void sys_printf(const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - sys_vprintf(fmt, args); - va_end(args); -} - -/* NOTE(pryazha): Fixed-length strings */ - -FLS fls(U8 *p, U64 len) -{ - FLS r; - r.p = p; - r.len = len; - return r; -} - -FLS flsfromcstr(const char *cstr) -{ - U8 *p; - FLS r; - - p = (U8 *)cstr; - for (; *p; ++p); - r = flsrange((U8 *)cstr, p); - - return r; -} - -char *flstocstr(Arena *a, FLS s) -{ - U64 len; - char *cstr; - - len = s.len+1; - cstr = push_arena(a, len*sizeof(U8)); - MEMCPY(cstr, s.p, len*sizeof(U8)); - *(cstr+s.len) = 0; - - return cstr; -} - -FLS flsrange(U8 *st_arenat, U8 *end) -{ - FLS r; - r.p = st_arenat; - r.len = end-st_arenat; - return r; -} - -FLS flschopend(FLS s, U64 cnt) -{ - U64 len; - FLS r; - - len = s.len-CLAMPTOP(cnt, s.len); - r = fls(s.p, len); - - return r; -} - -FLS flschopstart(FLS s, U64 cnt) -{ - U64 clamped, len; - FLS r; - - clamped = CLAMPTOP(cnt, s.len); - len = s.len-CLAMPTOP(cnt, s.len); - r = fls(s.p+clamped, len); - - return r; -} - -FLS flspushfv(Arena *a, const char *fmt, va_list args) -{ - ASSERT(a); - - char tmp[1024]; - S32 n; - FLS r; - - n = vsnprintf(tmp, 1024, fmt, args); - - MEM0(&r, sizeof(FLS)); - - if (n > 0) { - r.p = push_arena(a, n); - MEMCPY(r.p, tmp, n); - r.len = n; - } - - return r; -} - -FLS flspushf(Arena *a, const char *fmt, ...) -{ - va_list args; - FLS r; - - va_start(args, fmt); - r = flspushfv(a, fmt, args); - va_end(args); - - return r; -} - -void flsprint(FLS s) -{ - ASSERT(s.p); - ASSERT(s.len); - - fwrite(s.p, sizeof(U8), s.len, stdout); -} - - -FLSList *flslist(Arena *a) -{ - FLSList *l; - - l = push_arena(a, sizeof(FLSList)); - MEM0(l, sizeof(FLSList)); - - return l; -} - -void flslistpush(Arena *a, FLSList *l, FLS s, B32 front) -{ - ASSERT(a); - ASSERT(l); - - FLSNode *n; - - n = push_arena(a, sizeof(FLSNode)); - n->str = s; - - if (front) - DLLPUSHFRONT(l->first, l->last, n); - else - DLLPUSHBACK(l->first, l->last, n); - l->len += s.len; - l->ncnt++; -} - -void flslistpushf(Arena *a, FLSList *l, B32 front, const char *fmt, ...) -{ - va_list args; - FLS str; - - va_start(args, fmt); - str = flspushfv(a, fmt, args); - va_end(args); - - flslistpush(a, l, str, front); -} - -void flslistprint(FLSList *l) -{ - FLSNode *n; - for (n = l->first; n; n = n->next) - flsprint(n->str); -} |