32#define str _private_str_
34#define n_alloc _private_n_alloc_
44#define ASTRING_INIT { NULL, 0, 0 }
80 const
char *const *items,
size_t number);
82 const
char *const *items,
size_t number);
103 return (NULL != astr->
str ? strlen(astr->
str) : 0);
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__