Re: PRI?64 vs Visual Studio (2022)

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@lists.postgresql.org
Date: 2025-04-01T13:04:37Z
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. Test PRI* macros even when we can't test NLS translation.

  2. Avoid requiring Spanish locale to test NLS infrastructure.

  3. Drop support for MSVCRT's float formatting quirk.

  4. Drop support for MSVCRT's %I64 format strings.

  5. Use PRI?64 instead of "ll?" in format strings (continued).

  6. Use <stdint.h> and <inttypes.h> for c.h integers.

  7. Make float exponent output on Windows look the same as elsewhere.

On 31.03.25 08:28, Kyotaro Horiguchi wrote:
> If you're already aware of this and have taken it into account, please
> feel free to ignore this.
> 
> As described in the recent commit a0ed19e0a9e, many %ll? format
> specifiers are being replaced with %<PRI?64>.
> 
> I hadn’t paid much attention to this before, but I happened to check
> how this behaves on Windows, and it seems that with VS2022, PRId64
> expands to "%lld". As a result, I suspect the gettext message catalog
> won't match these messages correctly.

I think this is working correctly.  Gettext has a built-in mechanism to 
translate the %<PRI...> back to the appropriate  %lld or %ld.  See also 
<https://www.gnu.org/software/gettext/manual/html_node/c_002dformat.html>.