- 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 (f->parameters) {
+ rc = snprintf(buf, n, "(");
+ ret += cdecl__advance_(&buf, &n, rc);
+
+ for (struct cdecl *p = f->parameters; p; p = p->next) {
+ rc = explain_decl(buf, n, p);
+ ret += cdecl__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);
+ }