Re: pgindent weirdness

Bruce Momjian <bruce@momjian.us>

From: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Andrew Dunstan <andrew@dunslane.net>, Robert Haas <robertmhaas@gmail.com>, pgsql-hackers@postgresql.org
Date: 2011-04-20T15:50:59Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Latest consolidated typedef list from buildfarm.

Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
> > On 04/20/2011 05:48 AM, Bruce Momjian wrote:
> >> BulkInsertStateData is not listed in the typedef list supplied by
> >> Andrew; see src/tools/pgindent/typedefs.list.  CC'ing him.  This might
> >> be because the typdef is listed in two files:
> 
> > It's tagged as a structure type by objdump, but not as a typedef:
> 
> Hmm.  hio.h clearly declares it as both, but many object files probably
> include only heapam.h, which exposes only the struct name.  I'm guessing
> that you are merging the results from objdump'ing different files in a
> way that fails to consider the possibility of some files knowing more
> versions of a symbol than others.
> 
> Now having said that, there seems to be a pgindent bug here too, in that
> it's throwing a space into
> 
> Buffer
> RelationGetBufferForTuple(Relation relation, Size len,
>                           Buffer otherBuffer, int options,
>                           struct BulkInsertStateData * bistate)
> 
> Whether BulkInsertStateData is flagged as a typedef or not, surely it
> ought to understand that "struct BulkInsertStateData" is a type name.

Uh, I think we have this listed as a known bug at the top of the
pgindent script:

	# Known bugs:
	#
	# Blank line is added after parentheses; seen as a function definition, no space
	# after *:
	#       y = (int) x *y;
	#
	# Structure/union pointers in function prototypes and definitions have an extra
	# space after the asterisk:
	#
	#       void x(struct xxc * a);

-- 
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +