Style: group-open/close consistency (matching multi-line vs triple-slash)
Round 2 of the Doxygen group-marker pass (post b0dd0b0).
The previous round converted 60 /// @} -> /** @} */ but had a state-
machine bug: it converted closings whose openings were still triple-slash
(/// @name X + /// @{), leaving them mismatched. It also missed the
inverse case: /// @} closings whose openings were multi-line
(/** @name X + * @{\n */).
This pass fixes both directions using a stack-based state machine that
walks the source top-to-bottom:
- Push a frame on each @{ opening, tagged with the opening comment
style (triple-slash or multi-line) and a 'force triple-slash' flag
(true for @addtogroup / @defgroup openings).
- On each @} close, pop the top frame and rewrite the close to match
the expected style. @addtogroup / @defgroup closings are always
triple-slash, per the project rule.
Changes:
- 60 /// @} reverted to /** @} */ (round-1 over-conversions)
- 43 /// @} converted to /** @} */ (missed multi-line openings)
---
103 conversions across 29 files; idempotent on second run.
Scope: src/**/*.{h,cpp,hpp} minus brands/generated/, strings_gen*,
index_html_gz.h, and tools/. No function body, signature, include, or
Doxygen block content was touched. doxygen Doxyfile still exits 0.