struct cdecl_declspec *cdecl__normalize_specs(struct cdecl_declspec *specs);
-size_t cdecl__advance(char **buf, size_t *n, size_t amount);
-
-size_t cdecl__emit(char **dst, size_t *dstlen, const char *src);
-size_t cdecl__emit_specs(char **dst, size_t *dstlen,
+struct output_state {
+ char *dst;
+ size_t dstlen;
+};
+
+size_t cdecl__advance(struct output_state *dst, size_t amount);
+size_t cdecl__emit(struct output_state *dst, const char *src);
+size_t cdecl__emit_specs(struct output_state *dst,
struct cdecl_declspec *s,
unsigned mask);