From f1a0e7233d439af2686a113c5b0d7643fde83d6d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Fri, 18 Oct 2024 22:56:55 -0700 Subject: [PATCH] cstring helper for wide chars --- src/base/base_strings.c | 19 +++++++++++++++---- src/base/base_strings.h | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/base/base_strings.c b/src/base/base_strings.c index b00d9f4f..3f436b08 100644 --- a/src/base/base_strings.c +++ b/src/base/base_strings.c @@ -215,12 +215,23 @@ str32_cstring(U32 *c){ internal String8 str8_cstring_capped(void *cstr, void *cap) { - char *ptr = (char*)cstr; - char *opl = (char*)cap; + char *ptr = cstr; + char *opl = cap; for (;ptr < opl && *ptr != 0; ptr += 1); U64 size = (U64)(ptr - (char *)cstr); - String8 result = {(U8*)cstr, size}; - return(result); + String8 result = str8((U8*)cstr, size); + return result; +} + +internal String16 +str16_cstring_capped(void *cstr, void *cap) +{ + U16 *ptr = cstr; + U16 *opl = cap; + for (;ptr < opl && *ptr != 0; ptr += 1); + U64 size = (U64)(ptr - (U16 *)cstr); + String16 result = str16(cstr, size); + return result; } //////////////////////////////// diff --git a/src/base/base_strings.h b/src/base/base_strings.h index dbd50e1d..9e12835f 100644 --- a/src/base/base_strings.h +++ b/src/base/base_strings.h @@ -193,6 +193,7 @@ internal String8 str8_cstring(char *c); internal String16 str16_cstring(U16 *c); internal String32 str32_cstring(U32 *c); internal String8 str8_cstring_capped(void *cstr, void *cap); +internal String16 str16_cstring_capped(void *cstr, void *cap); //////////////////////////////// //~ rjf: String Stylization