Thread: setlocale() and gettext on Windows revisited

setlocale() and gettext on Windows revisited

From
Heikki Linnakangas
Date:
Back in January/February, a patch was committed to avoid using libintl's 
version of setlocale:

http://archives.postgresql.org/pgsql-hackers/2011-01/msg02628.php

The comment says it was about a problem with printf() and friends, so I 
wonder, why was that "#undef setlocale" line put inside the larger 
"#ifdef USE_REPL_SNPRINTF" block? If I understand the problem correctly, 
it has nothing to do with our replacement snprintf() function.

Fortunately, we always use the replacement snprintf() code on Windows, 
so there's no user-visible bug here, but if you imagine that we didn't 
USE_REPL_SNPRINTF on Windows, we would still want the "#undef setlocale" 
to take effect, right? I think that block is misplaced.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


Re: setlocale() and gettext on Windows revisited

From
"Inoue, Hiroshi"
Date:
HI all,

(2011/09/01 4:30), Heikki Linnakangas wrote:
> Back in January/February, a patch was committed to avoid using libintl's
> version of setlocale:
>
> http://archives.postgresql.org/pgsql-hackers/2011-01/msg02628.php
>
> The comment says it was about a problem with printf() and friends, so I
> wonder, why was that "#undef setlocale" line put inside the larger
> "#ifdef USE_REPL_SNPRINTF" block? If I understand the problem correctly,
> it has nothing to do with our replacement snprintf() function.
>
> Fortunately, we always use the replacement snprintf() code on Windows,
> so there's no user-visible bug here, but if you imagine that we didn't
> USE_REPL_SNPRINTF on Windows, we would still want the "#undef setlocale"
> to take effect, right? I think that block is misplaced.

Yes you are right.
I didn't notice "#ifdef USE_REPL_SNPRINTF" unfortunately.
The "#undef setlocale" line should be placed outside the "ifdef 
USE_REPL_SNPRINTF" block.

regards,
Hiroshi Inoue