65 int cstrlen = strlen(cstr);
68 memcpy(dse->
str, cstr, cstrlen + 1);
72 ds->last = ds->elems = dse;
75 ds->last = ds->last->
next = dse;
78 ds->curlen += cstrlen;
87 memcpy(dse->
str, cstr, cstrlen);
88 dse->
str[cstrlen] =
'\0';
92 ds->last = ds->elems = dse;
95 ds->last = ds->last->
next = dse;
98 ds->curlen += cstrlen;
103 char *
str, fixed_buf[256];
107 if (
str != fixed_buf) {
115 char *
str, fixed_buf[256];
122 if (
str != fixed_buf) {
138 for (s = rets, dse = ds->elems; dse; dse = dse->
next) {
139 int slen = strlen(dse->
str);
141 memcpy(s, dse->
str, slen);
146 rets[ds->curlen] =
'\0';
163 dse_next = dse->
next;
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...)
DynStr * BLI_dynstr_new_memarena(void)
char * BLI_dynstr_get_cstring(const DynStr *ds)
BLI_INLINE void * dynstr_alloc(DynStr *__restrict ds, size_t size)
void BLI_dynstr_free(DynStr *ds)
void BLI_dynstr_nappend(DynStr *__restrict ds, const char *cstr, int len)
void BLI_dynstr_get_cstring_ex(const DynStr *__restrict ds, char *__restrict rets)
void BLI_dynstr_clear(DynStr *ds)
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr)
void BLI_dynstr_vappendf(DynStr *__restrict ds, const char *__restrict format, va_list args)
DynStr * BLI_dynstr_new(void)
int BLI_dynstr_get_len(const DynStr *ds)
A dynamically sized string ADT.
void BLI_kdtree_nd_ free(KDTree *tree)
void * BLI_memarena_alloc(struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
void BLI_memarena_free(struct MemArena *ma) ATTR_NONNULL(1)
struct MemArena * BLI_memarena_new(size_t bufsize, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(2) ATTR_MALLOC
#define BLI_MEMARENA_STD_BUFSIZE
void void BLI_memarena_clear(MemArena *ma) ATTR_NONNULL(1)
char * BLI_vsprintfN_with_buffer(char *fixed_buf, size_t fixed_buf_size, size_t *result_len, const char *__restrict format, va_list args) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
int char char int int int int size_t BLI_strnlen(const char *str, size_t maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
Read Guarded memory(de)allocation.
void *(* MEM_mallocN)(size_t len, const char *str)
void MEM_freeN(void *vmemh)