]> granicus.if.org Git - postgresql/commit
Require a C99-compliant snprintf(), and remove related workarounds.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 16 Aug 2018 17:01:09 +0000 (13:01 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 16 Aug 2018 17:01:09 +0000 (13:01 -0400)
commite1d19c902e59ad739cb4b6267ee2073a61e86cd3
treee6090aad9384ba77d324694e2553d02e1d0b7566
parent1eb9221585c25cad1a563bc3414f697dae3fbc8b
Require a C99-compliant snprintf(), and remove related workarounds.

Since our substitute snprintf now returns a C99-compliant result,
there's no need anymore to have complicated code to cope with pre-C99
behavior.  We can just make configure substitute snprintf.c if it finds
that the system snprintf() is pre-C99.  (Note: I do not believe that
there are any platforms where this test will trigger that weren't
already being rejected due to our other C99-ish feature requirements for
snprintf.  But let's add the check for paranoia's sake.)  Then, simplify
the call sites that had logic to cope with the pre-C99 definition.

I also dropped some stuff that was being paranoid about the possibility
of snprintf overrunning the given buffer.  The only reports we've ever
heard of that being a problem were for Solaris 7, which is long dead,
and we've sure not heard any reports of these assertions triggering in
a long time.  So let's drop that complexity too.

Likewise, drop some code that wasn't trusting snprintf to set errno
when it returns -1.  That would be not-per-spec, and again there's
no real reason to believe it is a live issue, especially not for
snprintfs that pass all of configure's feature checks.

Discussion: https://postgr.es/m/17245.1534289329@sss.pgh.pa.us
config/c-library.m4
configure
configure.in
src/backend/utils/misc/guc.c
src/common/psprintf.c
src/interfaces/libpq/pqexpbuffer.c