Re: Re: [COMMITTERS] pgsql: setlocale() on Windows doesn't work correctly if the locale name

Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>

From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Hiroshi Inoue <inoue@tpf.co.jp>
Cc: Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@postgresql.org
Date: 2011-04-20T06:30:24Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. setlocale() on Windows doesn't work correctly if the locale name contains

On 20.04.2011 06:48, Hiroshi Inoue wrote:
> I can find no concrete reference to problems about locale
>   names containing dots. Is the following an example?

Yes.

> In my environment (Windows Vista using VC8)
> 
>    setlocale(LC_XXXX, "Chinese (Traditional)_MCO.950");
> works and
>    setlocale(LC_XXXX, NULL);
> returns
>    Chinese (Traditional)_Macao S.A.R..950

Interesting. According to Microsoft's documentation, the codes are
three-letter country codes specified by ISO-3166
(http://msdn.microsoft.com/en-us/library/cdax410z%28v=VS.100%29.aspx).
However, according to Wikipedia, MCO stands for Monaco, not Macau
(https://secure.wikimedia.org/wikipedia/en/wiki/ISO_3166-1_alpha-3).

So according to bug #5818, the problem with "People's Republic of China"
was different from "Hong Kong S.A.R.", "Macau S.A.R.", and "U.A.E.".
setlocale() handles apostrophe fine, but it's not escaped correctly in
the BKI file. I'll remove the "People's Republic of China" -> "China"
mapping I committed, and fix the escaping instead.

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