- if (d->type == CDECL_DECL_POINTER) {
- rc = snprintf(buf, n, "(");
- ret += cdecl__advance_(&buf, &n, rc);
- }
-
- rc = declare_declarator(buf, n, d);
- ret += cdecl__advance_(&buf, &n, rc);
-
- if (d->type == CDECL_DECL_POINTER) {
- rc = snprintf(buf, n, ")");
- ret += cdecl__advance_(&buf, &n, rc);
- }
-
- return ret;
+ if (need_parens) cdecl__emit(dst, "(");
+ declare_declarator(dst, d);
+ if (need_parens) cdecl__emit(dst, ")");