Re: VS 2015 support in src/tools/msvc
От | Noah Misch |
---|---|
Тема | Re: VS 2015 support in src/tools/msvc |
Дата | |
Msg-id | 20160309043137.GA933917@tornado.leadboat.com обсуждение исходный текст |
Ответ на | Re: VS 2015 support in src/tools/msvc (Michael Paquier <michael.paquier@gmail.com>) |
Ответы |
Re: VS 2015 support in src/tools/msvc
|
Список | pgsql-hackers |
On Tue, Mar 08, 2016 at 10:32:28PM +0900, Michael Paquier wrote: > Subject: [PATCH 3/4] Fix use of locales for VS 2015 > > lc_codepage is a flag missing from locale.h, causing this code path > introduced in VS 2012 to fail. Perhaps there is a reason for this field > to have been clobbered, but let's fall back to the pre-VS-2012 code > parsing directly LC_TYPE to get the codepage wanted. > --- > src/port/chklocale.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/src/port/chklocale.c b/src/port/chklocale.c > index a551fdc..a7d88fb 100644 > --- a/src/port/chklocale.c > +++ b/src/port/chklocale.c > @@ -203,7 +203,16 @@ win32_langinfo(const char *ctype) > { > char *r = NULL; > > -#if (_MSC_VER >= 1700) > + /* > + * lc_codepage is correctly declared in Visual Studio 2012 and 2013. > + * However in VS 2015 this flag is missing from locale.h, visibly this > + * is an error of refactoring from Microsoft that is at the origin of > + * this missing field, causing a compilation failure in this code path. > + * Hence, it is more reliable to fall back to other code path grabbing No, the other path can't handle a "locale name" like "initdb --locale=th-TH". That makes the other code path inadequate for VS2012 and later. See the IsoLocaleName() header comment. > + * the codepage from the ctype name itself. If VS gets back this field > + * in the future, we may want to relax the use of _create_locale here. > + */ > +#if (_MSC_VER >= 1700) && (_MSC_VER <= 1800) > _locale_t loct = NULL; > > loct = _create_locale(LC_CTYPE, ctype);
В списке pgsql-hackers по дате отправления: