core: add format with va_list function to stringstream

This commit is contained in:
2025-07-28 22:14:34 +01:00
parent 5bac4db7ed
commit 3f96be28ed
2 changed files with 12 additions and 1 deletions

View File

@@ -28,6 +28,8 @@ BLUE_API void b_stringstream_pop_indent(b_stringstream *strv);
BLUE_API b_status b_stringstream_add(b_stringstream *strv, const char *str); BLUE_API b_status b_stringstream_add(b_stringstream *strv, const char *str);
BLUE_API b_status b_stringstream_addf(b_stringstream *strv, const char *format, ...); BLUE_API b_status b_stringstream_addf(b_stringstream *strv, const char *format, ...);
BLUE_API b_status b_stringstream_addv(b_stringstream *strv, const char **strs); BLUE_API b_status b_stringstream_addv(b_stringstream *strv, const char **strs);
BLUE_API b_status b_stringstream_addvf(
b_stringstream *strv, const char *format, va_list arg);
BLUE_API b_status b_stringstream_addvl( BLUE_API b_status b_stringstream_addvl(
b_stringstream *strv, const char **strs, size_t count); b_stringstream *strv, const char **strs, size_t count);
BLUE_API b_status b_stringstream_add_many(b_stringstream *strv, ...); BLUE_API b_status b_stringstream_add_many(b_stringstream *strv, ...);

View File

@@ -150,9 +150,18 @@ b_status b_stringstream_addf(struct b_stringstream *ss, const char *format, ...)
char str[1024]; char str[1024];
va_list arg; va_list arg;
va_start(arg, format); va_start(arg, format);
size_t len = vsnprintf(str, sizeof str, format, arg); enum b_status status = b_stringstream_addvf(ss, format, arg);
va_end(arg); va_end(arg);
return status;
}
b_status b_stringstream_addvf(
struct b_stringstream *ss, const char *format, va_list arg)
{
char str[1024];
size_t len = vsnprintf(str, sizeof str, format, arg);
return ss_builder_push_string(ss, str, len); return ss_builder_push_string(ss, str, len);
} }