From dfa817cb9a791eb29646853796b4fd6c25302021 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Mon, 18 Nov 2024 09:55:46 +0000 Subject: [PATCH] object: string: add b_string_replace_all() --- object/include/blue/object/string.h | 1 + object/string.c | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/object/include/blue/object/string.h b/object/include/blue/object/string.h index 1e5aa62..16a7af4 100644 --- a/object/include/blue/object/string.h +++ b/object/include/blue/object/string.h @@ -39,6 +39,7 @@ static inline void b_string_release(b_string *str) } BLUE_API char *b_string_steal(b_string *str); BLUE_API b_status b_string_reserve(b_string *str, size_t capacity); +BLUE_API b_status b_string_replace_all(b_string *str, const char *new_data); BLUE_API void b_string_append_s(b_string *dest, const b_string *src); BLUE_API void b_string_append_cstr(b_string *dest, const char *src); diff --git a/object/string.c b/object/string.c index 8474cb6..4270978 100644 --- a/object/string.c +++ b/object/string.c @@ -197,6 +197,18 @@ b_status b_string_reserve(struct b_string *str, size_t capacity) return err == 0 ? B_SUCCESS : B_ERR_NO_MEMORY; } +b_status b_string_replace_all(b_string *str, const char *new_data) +{ + size_t new_len = strlen(new_data); + b_string_reserve(str, new_len); + char *dest = (char *)b_string_ptr(str); + memcpy(dest, new_data, new_len); + dest[new_len] = '\0'; + str->s_len = new_len; + + return B_SUCCESS; +} + static void string_insert( struct b_string *dest, const char *src, size_t len, size_t at) {