This only affects internal doxygen, which we don't actually produce, hence Wishlist priority.
Suppose we take the `patchset_display.c:xml_patchset_default()` function, make it non-static, and remove the `\internal` tag from its doxygen:
```
/*!
* \brief Output a user-friendly form of an XML patchset
*
* This function parses an XML patchset (an \p XML_ATTR_DIFF element and its
* children) into a user-friendly combined diff output.
*
* \param[in,out] out Output object
* \param[in] args Message-specific arguments
*
* \return Standard Pacemaker return code
*
* \note \p args should contain only the XML patchset
*/
PCMK__OUTPUT_ARGS("xml-patchset", "const xmlNode *")
int
xml_patchset_default(pcmk__output_t *out, va_list args)
```
Then we get the expected documentation in the generated API docs. I would attach screenshots, but Phorge doesn't seem to provide an attachment mechanism.
However, if we split the `PCMK__OUTPUT_ARGS` over multiple lines, then the generated API docs attach the doxygen to `PCMK__OUTPUT_ARGS` instead of to `xml_patchset_default()`.
```
/*!
* \brief Output a user-friendly form of an XML patchset
* ...
*/
PCMK__OUTPUT_ARGS("xml-patchset",
"const xmlNode *")
int
xml_patchset_default(pcmk__output_t *out, va_list args)
```
This is problematic when `PCMK__OUTPUT_ARGS` is very long. Even if we didn't adhere to an 80-character max, some of the line lengths would be outrageous.
As mentioned above, this won't really matter unless we start using `PCMK__OUTPUT_ARGS` with public functions in the future, but it is annoying to know that it's broken.