Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Magnus Hagander
On Tue, Feb 1, 2011 at 12:08, Dave Page  wrote:
> On Tue, Feb 1, 2011 at 10:45 AM, Andrew Dunstan  wrote:
>>
>> Why are we only disabling the macro for WIN32 and not for the other
>> platforms that the macro is defined for? Do we know it's not also a problem
>> on Apple or Cygwin?
>
> No, not as far as I know.

I've applied the patch with an update to the comment that explains why
it happens more clearly, which should also make it obvious why it
won't happen on apple or cygwin (because they don't link to different
versions of the microsoft runtime..)

-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Dave Page
On Tue, Feb 1, 2011 at 10:45 AM, Andrew Dunstan  wrote:
>
> Why are we only disabling the macro for WIN32 and not for the other
> platforms that the macro is defined for? Do we know it's not also a problem
> on Apple or Cygwin?

No, not as far as I know.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Andrew Dunstan



On 02/01/2011 03:47 AM, Dave Page wrote:

On Tue, Feb 1, 2011 at 8:29 AM, Magnus Hagander  wrote:

On Tue, Feb 1, 2011 at 09:08, Dave Page  wrote:

On Tue, Feb 1, 2011 at 5:36 AM, Itagaki Takahiro
  wrote:

2011/1/27 Hiroshi Inoue:

I see now the following lines in libintl.h of version
0.18.1.1 which didn't exist in 0.17 version.

The macro may cause a trouble especially on Windows.
Attached is a patch to disable the macro on Windows.

Can anyone test the fix?

I added the patch to the current commitfest for reminder.
https://commitfest.postgresql.org/action/patch_view?id=528

The QA team in EDB have tested the patch for me. It works as designed
and allows us to upgrade gettext to fix Japanese localisation on
Win64. Upgrading gettext without the patch will fix Japanese, but
break other translations (eg. French).

Do we need to backpatch this?

We've only seen the problem on 64 bit builds - but I guess it may
occur on 32 bit too, given the right version of gettext (they come
form different places for win32 vs. win64, so it's not entirely
straightforward to figure out).

So, it certainly needs to go to 9.0, and probably wouldn't hurt to put
it in 8.3/8.4 too.



Why are we only disabling the macro for WIN32 and not for the other 
platforms that the macro is defined for? Do we know it's not also a 
problem on Apple or Cygwin?


cheers

andrew

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Dave Page
On Tue, Feb 1, 2011 at 8:29 AM, Magnus Hagander  wrote:
> On Tue, Feb 1, 2011 at 09:08, Dave Page  wrote:
>> On Tue, Feb 1, 2011 at 5:36 AM, Itagaki Takahiro
>>  wrote:
>>> 2011/1/27 Hiroshi Inoue :
 I see now the following lines in libintl.h of version
 0.18.1.1 which didn't exist in 0.17 version.

 The macro may cause a trouble especially on Windows.
 Attached is a patch to disable the macro on Windows.
>>>
>>> Can anyone test the fix?
>>>
>>> I added the patch to the current commitfest for reminder.
>>> https://commitfest.postgresql.org/action/patch_view?id=528
>>
>> The QA team in EDB have tested the patch for me. It works as designed
>> and allows us to upgrade gettext to fix Japanese localisation on
>> Win64. Upgrading gettext without the patch will fix Japanese, but
>> break other translations (eg. French).
>
> Do we need to backpatch this?

We've only seen the problem on 64 bit builds - but I guess it may
occur on 32 bit too, given the right version of gettext (they come
form different places for win32 vs. win64, so it's not entirely
straightforward to figure out).

So, it certainly needs to go to 9.0, and probably wouldn't hurt to put
it in 8.3/8.4 too.

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Magnus Hagander
On Tue, Feb 1, 2011 at 09:08, Dave Page  wrote:
> On Tue, Feb 1, 2011 at 5:36 AM, Itagaki Takahiro
>  wrote:
>> 2011/1/27 Hiroshi Inoue :
>>> I see now the following lines in libintl.h of version
>>> 0.18.1.1 which didn't exist in 0.17 version.
>>>
>>> The macro may cause a trouble especially on Windows.
>>> Attached is a patch to disable the macro on Windows.
>>
>> Can anyone test the fix?
>>
>> I added the patch to the current commitfest for reminder.
>> https://commitfest.postgresql.org/action/patch_view?id=528
>
> The QA team in EDB have tested the patch for me. It works as designed
> and allows us to upgrade gettext to fix Japanese localisation on
> Win64. Upgrading gettext without the patch will fix Japanese, but
> break other translations (eg. French).

Do we need to backpatch this?


-- 
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-02-01 Thread Dave Page
On Tue, Feb 1, 2011 at 5:36 AM, Itagaki Takahiro
 wrote:
> 2011/1/27 Hiroshi Inoue :
>> I see now the following lines in libintl.h of version
>> 0.18.1.1 which didn't exist in 0.17 version.
>>
>> The macro may cause a trouble especially on Windows.
>> Attached is a patch to disable the macro on Windows.
>
> Can anyone test the fix?
>
> I added the patch to the current commitfest for reminder.
> https://commitfest.postgresql.org/action/patch_view?id=528

The QA team in EDB have tested the patch for me. It works as designed
and allows us to upgrade gettext to fix Japanese localisation on
Win64. Upgrading gettext without the patch will fix Japanese, but
break other translations (eg. French).

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] setlocale and gettext in Postgres

2011-01-31 Thread Itagaki Takahiro
2011/1/27 Hiroshi Inoue :
> I see now the following lines in libintl.h of version
> 0.18.1.1 which didn't exist in 0.17 version.
>
> The macro may cause a trouble especially on Windows.
> Attached is a patch to disable the macro on Windows.

Can anyone test the fix?

I added the patch to the current commitfest for reminder.
https://commitfest.postgresql.org/action/patch_view?id=528

-- 
Itagaki Takahiro

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] setlocale and gettext in Postgres

2011-01-27 Thread Hiroshi Inoue
Hi all,

I see now the following lines in libintl.h of version
0.18.1.1 which didn't exist in 0.17 version.

/* Support for the locale chosen by the user.  */
#if (defined __APPLE__ && defined __MACH__) || defined _WIN32 || defined
__WIN32__ || defined __CYGWIN__

#undef setlocale
#define setlocale libintl_setlocale
extern char *setlocale (int, const char *);
.
.

The macro may cause a trouble especially on Windows.

Though libintl_setlocale() calls setlocale() internally,
what the Mingw version of libintl library calls is the one
in msvcrt.dll not in the libraries which main programs link.
Unfortunately locale-aware functions like printf() calls
in main programs would see "C" locales not the locales set
by libintl_setlocale().

Attached is a patch to disable the macro on Windows.

regards,
Hiroshi Inoue





*** port.h.orig 2011-01-15 05:29:13.43600 +0900
--- port.h  2011-01-23 21:56:19.55400 +0900
***
*** 176,181 
--- 176,188 
  #ifdef printf
  #undef printf
  #endif
+ /*
+  * Versions of libintl >= 0.18? try to replace setlocale() with a macro
+  * to their own versions.  Disable the macro, if it exists.
+  */
+ #if defined(setlocale) && defined(WIN32)
+ #undef setlocale
+ #endif
  
  extern intpg_vsnprintf(char *str, size_t count, const char *fmt, va_list 
args);
  extern int

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers