Drop support for MSVCRT's %I64 format strings.
authorThomas Munro <tmunro@postgresql.org>
Wed, 19 Nov 2025 21:04:11 +0000 (10:04 +1300)
committerThomas Munro <tmunro@postgresql.org>
Wed, 19 Nov 2025 21:07:27 +0000 (10:07 +1300)
commit7ab9b34614c2d6f69070a667787e0b091ecb72b1
treea91b4803b0b11a36045e95bd450400a0c9373634
parent057012b205a082ec930cd7bb7f6663516be011e2
Drop support for MSVCRT's %I64 format strings.

MSVCRT predated C99 and invented non-standard placeholders for 64-bit
numbers, and then later used them in standard macros when C99
<inttypes.h> arrived.  The macros just use %lld etc when building with
UCRT, so there should be no way for our interposed sprintf.c code to
receive the pre-standard kind these days.  Time to drop the code that
parses them.

That code was in fact already dead when commit 962da900 landed, as we'd
disclaimed MSVCRT support a couple of weeks earlier in commit 1758d424,
but patch development overlapped and the history of these macros hadn't
been investigated.

Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/4d8b1a67-aab2-4429-b44b-f03988095939%40eisentraut.org
src/port/snprintf.c