X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/ad973d63e038f293f2b158f19b04c1582e616af0..2713226fe5e2987e7c9ce2d8307379fa92f634a4:/src/cdecl-internal.h diff --git a/src/cdecl-internal.h b/src/cdecl-internal.h index 11903bc..74c2654 100644 --- a/src/cdecl-internal.h +++ b/src/cdecl-internal.h @@ -1,6 +1,6 @@ /* * Internal declarations for libcdecl. - * Copyright © 2021 Nick Bowler + * Copyright © 2021, 2023 Nick Bowler * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,19 +27,30 @@ struct cdecl_error; struct cdecl_declspec; +#if ENABLE_NLS void cdecl__init_i18n(void); +#else +static inline void cdecl__init_i18n(void) +{ +} +#endif -const char *cdecl__strerror(unsigned code); -void cdecl__err(unsigned code, ...); +void cdecl__err(unsigned code, const char *fmt, const char *arg); +void cdecl__errmsg(unsigned msg); -unsigned long cdecl__build_typemap(struct cdecl_declspec *s); 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__advance(char **buf, size_t *n, size_t amount); -size_t cdecl__explain_specs(char *buf, size_t n, struct cdecl_declspec *s, - unsigned mask); -size_t cdecl__explain_pre_specs(char *buf, size_t n, struct cdecl_declspec *s); -size_t cdecl__explain_post_specs(char *buf, size_t n, struct cdecl_declspec *s); +struct output_state { + char *dst; + size_t dstlen; + size_t accum; +}; + +size_t cdecl__advance(struct output_state *dst, size_t amount); +size_t cdecl__emit(struct output_state *dst, const char *src); + +const char *cdecl__emit_specs(struct output_state *dst, + struct cdecl_declspec *s, + unsigned mask); #endif