32#define str _private_str_
34#define n_alloc _private_n_alloc_
44#define ASTRING_INIT { nullptr, 0, 0 }
119 return astr->n_alloc;
127 return (0 ==
astr->n ||
'\0' ==
astr->str[0]);
void astr_reserve(struct astring *astr, size_t size) fc__attribute((nonnull(1)))
char * astr_to_str(struct astring *astr) fc__attribute((nonnull(1)))
void astr_vadd(struct astring *astr, const char *format, va_list ap) fc__attribute((nonnull(1
const char * astr_build_or_list(struct astring *astr, const char *const *items, size_t number)
static size_t astr_size(const struct astring *astr) fc__attribute((nonnull(1)))
const char * astr_build_and_list(struct astring *astr, const char *const *items, size_t number)
static size_t astr_capacity(const struct astring *astr) fc__attribute((nonnull(1)))
static size_t astr_len(const struct astring *astr) fc__attribute((nonnull(1)))
static const char * astr_str(const struct astring *astr) fc__attribute((nonnull(1)))
void astr_clear(struct astring *astr) fc__attribute((nonnull(1)))
void void fc_astr_init(void)
void astr_copy(struct astring *dest, const struct astring *src) fc__attribute((nonnull(1
void astr_init(struct astring *astr) fc__attribute((nonnull(1)))
void astr_set(struct astring *astr, const char *format,...) fc__attribute((__format__(__printf__
void astr_add_line(struct astring *astr, const char *format,...) fc__attribute((__format__(__printf__
void astr_free(struct astring *astr) fc__attribute((nonnull(1)))
static bool astr_empty(const struct astring *astr) fc__attribute((nonnull(1)))
void astr_break_lines(struct astring *astr, size_t desired_len) fc__attribute((nonnull(1)))
void void astr_add(struct astring *astr, const char *format,...) fc__attribute((__format__(__printf__