]> git.ipfire.org Git - thirdparty/postgresql.git/commit
pgindent: Fix spacing after != when member name matches typedef.
authorNathan Bossart <nathan@postgresql.org>
Wed, 13 May 2026 14:10:50 +0000 (09:10 -0500)
committerNathan Bossart <nathan@postgresql.org>
Wed, 13 May 2026 14:10:50 +0000 (09:10 -0500)
commita3e6beba60ec4e6804e91200e407d046414f18de
treeab85cd8c64ca59a81e1eb144cfdb927d5e0ee70e
parent7ca8c9429675b34600e679525da6b5280c1cafa5
pgindent: Fix spacing after != when member name matches typedef.

When a struct member name matches a registered typedef, pgindent
removes the space after "!=" (and some other operators), like so:

    entry->dsh.dsa_handle !=DSA_HANDLE_INVALID

The problem is that the related code in lexi.c sets last_u_d to
true before jumping to found_typename, causing the next operator to
be classified as unary and suppressing the following space.  This
is correct for type names, but not for struct members.  For
example, "Datum *x" needs "*" to be unary to suppress the space
before "x".  To fix, only set last_u_d before jumping to
found_typename if the typedef name doesn't appear after "." or
"->".

Note that this does not bump INDENT_VERSION.  We'll do that just
once after some other changes to pg_bsd_indent are committed.

Reviewed-by: Chao Li <li.evan.chao@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/aS9hkwnkWf3dZIA_%40nathan
src/tools/pg_bsd_indent/lexi.c