Re: [pgsql-hackers-win32] snprintf causes regression tests - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [pgsql-hackers-win32] snprintf causes regression tests
Date
Msg-id 200503111618.j2BGI7503258@candle.pha.pa.us
Whole thread Raw
In response to Re: [pgsql-hackers-win32] snprintf causes regression tests  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [pgsql-hackers-win32] snprintf causes regression  (pgsql@mohawksoft.com)
List pgsql-hackers
Tom Lane wrote:
> pgsql@mohawksoft.com writes:
> >>> Please see my posting about using a macro for snprintf.
>
> > Wasn't the issue about odd behavior of the Win32 linker choosing the wrong
> > vnsprintf?
>
> You're right, the point about the macro was to avoid linker weirdness on
> Windows.  We need to do that part in any case.  I think Bruce confused
> that issue with the one about whether our version supported %n$
> adequately ... which it doesn't just yet ...

Perhaps I am reading old email in this reply but I thought I should
clarify:

Once we do:

    #define vsnprintf(...)        pg_vsnprintf(__VA_ARGS__)
    #define snprintf(...)         pg_snprintf(__VA_ARGS__)
    #define printf(...)           pg_printf(__VA_ARGS__)

we also rename the functions in snprintf.c to pg_* names so there is no
longer a conflict with the system libc versions.

The macro is to prevent our snprintf from leaking out of libraries like
libpq, not to fix the win32 linker problem, which we already had fixed
by reordering the entries in the C file.

Perhaps the macro idea originally came as a fix for Win32 but it is much
larger that that now.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: postgreSQL-8.0.1 configure --enable-thread-safety with
Next
From: Bruce Momjian
Date:
Subject: Re: [pgsql-hackers-win32] snprintf causes regression tests