Browse Source

Cleanup

master
cancel 5 years ago
parent
commit
525464c632
  1. 18
      thirdparty/gbstring.c
  2. 19
      thirdparty/gbstring.h

18
thirdparty/gbstring.c

@ -89,7 +89,19 @@ gbs gbs_new(char const *str) {
size_t len = str ? strlen(str) : 0; size_t len = str ? strlen(str) : 0;
return gbs_newlen(str, len); return gbs_newlen(str, len);
} }
gbs gbs_newvprintf(const char *fmt, va_list ap) {
gbs s;
s = gbs_catvprintf(NULL, fmt, ap);
return s;
}
gbs gbs_newprintf(char const *fmt, ...) {
gbs s;
va_list ap;
va_start(ap, fmt);
s = gbs_catvprintf(NULL, fmt, ap);
va_end(ap);
return s;
}
void gbs_free(gbs str) { void gbs_free(gbs str) {
if (str == NULL) if (str == NULL)
return; return;
@ -227,9 +239,7 @@ gbs gbs_catvprintf(gbs s, const char *fmt, va_list ap) {
} }
if (s == NULL) if (s == NULL)
return NULL; return NULL;
va_copy(cpy, ap); vsnprintf(s + old_len, (size_t)required + 1, fmt, ap);
vsnprintf(s + old_len, (size_t)required + 1, fmt, cpy);
va_end(cpy);
return s; return s;
} }

19
thirdparty/gbstring.h

@ -8,6 +8,12 @@ typedef char *gbs;
gbs gbs_newcap(size_t cap); gbs gbs_newcap(size_t cap);
gbs gbs_newlen(void const *str, size_t len); gbs gbs_newlen(void const *str, size_t len);
gbs gbs_new(char const *str); gbs gbs_new(char const *str);
gbs gbs_newvprintf(const char *fmt, va_list ap);
gbs gbs_newprintf(char const *fmt, ...)
#ifdef __GNUC__
__attribute__((format(printf, 1, 2)))
#endif
;
void gbs_free(gbs str); void gbs_free(gbs str);
gbs gbs_dup(gbs const str); gbs gbs_dup(gbs const str);
@ -21,6 +27,12 @@ void gbs_clear(gbs str);
gbs gbs_catlen(gbs str, void const *other, size_t len); gbs gbs_catlen(gbs str, void const *other, size_t len);
gbs gbs_cat(gbs str, char const *other); gbs gbs_cat(gbs str, char const *other);
gbs gbs_catgbs(gbs str, gbs const other); gbs gbs_catgbs(gbs str, gbs const other);
gbs gbs_catvprintf(gbs str, const char *fmt, va_list ap);
gbs gbs_catprintf(gbs str, char const *fmt, ...)
#ifdef __GNUC__
__attribute__((format(printf, 2, 3)))
#endif
;
gbs gbs_cpylen(gbs str, char const *cstr, size_t len); gbs gbs_cpylen(gbs str, char const *cstr, size_t len);
gbs gbs_cpy(gbs str, char const *cstr); gbs gbs_cpy(gbs str, char const *cstr);
@ -31,11 +43,4 @@ bool gbs_equal(gbs const lhs, gbs const rhs);
gbs gbs_trim(gbs str, char const *cut_set); gbs gbs_trim(gbs str, char const *cut_set);
gbs gbs_catvprintf(gbs str, const char *fmt, va_list ap);
gbs gbs_catprintf(gbs str, char const *fmt, ...)
#ifdef __GNUC__
__attribute__((format(printf, 2, 3)))
#endif
;
size_t gbs_totalmemused(gbs const str); size_t gbs_totalmemused(gbs const str);

Loading…
Cancel
Save