pgindent: Fix indentation of alignas() in struct members

pg_bsd_indent doesn't know about alignas(), so a struct member
declared with it is misindented unless it's the first member.

Disguise each alignas(...) call as a plain identifier while
indenting, restoring it afterward.  Stash the call's original text
by index rather than embedding it in the placeholder: embedding only
works for a single-token argument, and fails to match at all against
nested parens (e.g. alignas(sizeof(x))) or a line break, silently
skipping the disguise.

This is backpatched to PostgreSQL 19 because it is by coincidence
needed for a bug fix.

Co-authored-by: Peter Eisentraut <[email protected]>
Co-authored-by: Andrew Dunstan <[email protected]>
Discussion: 
https://postgr.es/m/[email protected]

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c81972f36593bc1ef20f8d899c916493c689ffa4

Modified Files
--------------
src/tools/pgindent/pgindent | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Reply via email to