/*
* Helper functions for outputting text.
- * Copyright © 2011, 2021 Nick Bowler
+ * Copyright © 2011, 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
{
size_t ret = 0, rc = 0;
- for (struct cdecl_declspec *c = s; c; c = c->next) {
- switch (cdecl_spec_kind(c) & mask) {
- case CDECL_SPEC_FUNC:
- case CDECL_SPEC_STOR:
- case CDECL_SPEC_QUAL:
- case CDECL_SPEC_TYPE:
- ret += cdecl__advance(&buf, &n, rc);
- rc = explain_spec(buf, n, c);
- }
+ for (; s; s = s->next) {
+ if (!(s->type & mask))
+ continue;
+
+ ret += cdecl__advance(&buf, &n, rc);
+ rc = explain_spec(buf, n, s);
}
return ret + rc;
}
-
-/* Renders the storage-class and function specifiers in canonical form. */
-size_t cdecl__explain_pre_specs(char *buf, size_t n, struct cdecl_declspec *s)
-{
- return cdecl__explain_specs(buf, n, s, CDECL_SPEC_FUNC|CDECL_SPEC_STOR);
-}
-
-/* Renders the type qualifiers and type specifiers in canonical form. */
-size_t cdecl__explain_post_specs(char *buf, size_t n, struct cdecl_declspec *s)
-{
- return cdecl__explain_specs(buf, n, s, CDECL_SPEC_QUAL|CDECL_SPEC_TYPE);
-}