mirror of
https://github.com/postgres/postgres.git
synced 2026-05-16 11:29:49 -04:00
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
This commit is contained in:
parent
7ca8c94296
commit
a3e6beba60
1 changed files with 2 additions and 1 deletions
|
|
@ -363,7 +363,8 @@ lexi(struct parser_state *state)
|
|||
bsearch(s_token, typenames, typename_top + 1,
|
||||
sizeof(typenames[0]), strcmp_type))) {
|
||||
state->keyword = 4; /* a type name */
|
||||
state->last_u_d = true;
|
||||
if (state->last_token != period && state->last_token != unary_op)
|
||||
state->last_u_d = true;
|
||||
goto found_typename;
|
||||
}
|
||||
} else { /* we have a keyword */
|
||||
|
|
|
|||
Loading…
Reference in a new issue