- size_t ret = 0, rc;
-
- rc = snprintf(buf, n, "[");
- ret += cdecl__advance_(&buf, &n, rc);
-
- if (a->vla)
- rc = snprintf(buf, n, "%s", a->vla[0] ? a->vla : "*");
- else
- rc = snprintf(buf, n, "%.0ju", a->length);
- ret += cdecl__advance_(&buf, &n, rc);
+ cdecl__emit(dst, "[");
+
+ if (a->vla) {
+ const char *s = a->vla[0] ? a->vla : "*";
+ cdecl__emit(dst, s);
+ } else {
+ size_t rc = snprintf(dst->dst, dst->dstlen, "%.0" PRIuMAX, a->length);
+ cdecl__advance(dst, rc);
+ }