On 18/04/2024 23:29, Thomas Munro wrote:
On Thu, Apr 18, 2024 at 8:47 PM Peter Eisentraut <pe...@eisentraut.org> wrote:
I'm not sure I understand the problem here. Do you mean that in theory
a platform's PRId64 could be something other than "l" or "ll"?
Yes. I don't know why anyone would do that, and the systems I checked
all have the obvious definitions, eg "ld", "lld" etc. Perhaps it's an
acceptable risk? It certainly gives us a tidier result.
Could we have a configure check or static assertion for that?
For discussion, here is a variant that fully embraces <inttypes.h> and
the PRI*64 macros.
Looks good to me.
Personally, I find "PRId64" pretty unreadable. "INT64_MODIFIER" wasn't
nice either, though, and following standards is good, so I'm sure I'll
get used to it.
They're both less readable than INT64_FORMAT and "%lld", which we use in
most places, though. Perhaps "%lld" and casting the arguments to "long
long" would be more readable in the places where this patch replaces
INT64_MODIFIER with PRI*64, too.
--
Heikki Linnakangas
Neon (https://neon.tech)