-static size_t
-explain_array(char *buf, size_t n, struct cdecl_array *a)
-{
- size_t ret = 0, rc = 0;
-
- if (a->vla)
- rc = snprintf(buf, n, "variable-length array");
- else
- rc = snprintf(buf, n, "array");
- ret += advance(&buf, &n, rc);
-
- if (a->vla) {
- rc = snprintf(buf, n, "%s", a->vla);
- ret += advance(&buf, &n, rc);
- } else if (a->length) {
- rc = snprintf(buf, n, "%ju", a->length);
- ret += advance(&buf, &n, rc);
+ if (p->next)
+ rc = snprintf(buf, n, ",");
+ else if (f->variadic)
+ rc = snprintf(buf, n, ", ...)");
+ else
+ rc = snprintf(buf, n, ")");
+ ret += cdecl__advance(&buf, &n, rc);
+ }