Lines Matching defs:cus
44 custr_reset(custr_t *cus)
46 if (cus->cus_data == NULL)
49 cus->cus_strlen = 0;
50 cus->cus_data[0] = '\0';
54 custr_len(custr_t *cus)
56 return (cus->cus_strlen);
60 custr_cstr(custr_t *cus)
62 if (cus->cus_data == NULL) {
63 VERIFY(cus->cus_strlen == 0);
64 VERIFY(cus->cus_datalen == 0);
72 return (cus->cus_data);
76 custr_append_vprintf(custr_t *cus, const char *fmt, va_list ap)
89 if (len + cus->cus_strlen + 1 >= cus->cus_datalen) {
91 size_t new_datalen = cus->cus_datalen + chunksz;
93 if (cus->cus_flags & CUSTR_FIXEDBUF) {
109 if (cus->cus_data != NULL) {
110 (void) memcpy(new_data, cus->cus_data,
111 cus->cus_strlen + 1);
112 free(cus->cus_data);
118 cus->cus_data = new_data;
119 cus->cus_datalen = new_datalen;
124 if ((len = vsnprintf(cus->cus_data + cus->cus_strlen,
125 cus->cus_datalen - cus->cus_strlen, fmt, ap)) < 0) {
128 cus->cus_strlen += len;
134 custr_appendc(custr_t *cus, char newc)
136 return (custr_append_printf(cus, "%c", newc));
140 custr_append_printf(custr_t *cus, const char *fmt, ...)
146 ret = custr_append_vprintf(cus, fmt, ap);
153 custr_append(custr_t *cus, const char *name)
155 return (custr_append_printf(cus, "%s", name));
159 custr_alloc(custr_t **cus)
164 *cus = NULL;
168 *cus = t;
173 custr_alloc_buf(custr_t **cus, void *buf, size_t buflen)
182 if ((ret = custr_alloc(cus)) != 0)
185 (*cus)->cus_data = buf;
186 (*cus)->cus_datalen = buflen;
187 (*cus)->cus_strlen = 0;
188 (*cus)->cus_flags = CUSTR_FIXEDBUF;
189 (*cus)->cus_data[0] = '\0';
195 custr_free(custr_t *cus)
197 if (cus == NULL)
200 if ((cus->cus_flags & CUSTR_FIXEDBUF) == 0)
201 free(cus->cus_data);
202 free(cus);