- if (keyword[0] && s->ident)
- return snprintf(buf, n, "%s %s", keyword, s->ident);
- else if (s->ident)
- return snprintf(buf, n, "%s", s->ident);
- return snprintf(buf, n, "%s", keyword);
+ *(--p) = 0;
+ while (val > 0) {
+ *(--p) = '0' + val % 10;
+ val /= 10;
+ }
+
+ return cdecl__emit(dst, p);
+}
+
+static void explain_spec(struct output_state *dst, struct cdecl_declspec *s)
+{
+ size_t rc;
+
+ rc = cdecl__emit(dst, spec_string(s->type));
+ if (s->ident) {
+ cdecl__emit(dst, " " + !rc);
+ cdecl__emit(dst, s->ident);
+ }