GetLocalInfo needs the number of WCHARs and not the size of the buffer.
CORE-10651 #resolve #comment Thanks a lot!

svn path=/trunk/; revision=70278
This commit is contained in:
Eric Kohl 2015-12-05 19:34:40 +00:00
parent eeec778bb2
commit 9c7538820a

View file

@ -581,67 +581,67 @@ SetNewLocale(
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SDECIMAL | LOCALE_NOUSEROVERRIDE, LOCALE_SDECIMAL | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumDecimalSep, pGlobalData->szNumDecimalSep,
MAX_NUMDECIMALSEP * sizeof(WCHAR)); MAX_NUMDECIMALSEP);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_STHOUSAND | LOCALE_NOUSEROVERRIDE, LOCALE_STHOUSAND | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumThousandSep, pGlobalData->szNumThousandSep,
MAX_NUMTHOUSANDSEP * sizeof(WCHAR)); MAX_NUMTHOUSANDSEP);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SNEGATIVESIGN | LOCALE_NOUSEROVERRIDE, LOCALE_SNEGATIVESIGN | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumNegativeSign, pGlobalData->szNumNegativeSign,
MAX_NUMNEGATIVESIGN * sizeof(WCHAR)); MAX_NUMNEGATIVESIGN);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SPOSITIVESIGN | LOCALE_NOUSEROVERRIDE, LOCALE_SPOSITIVESIGN | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumPositiveSign, pGlobalData->szNumPositiveSign,
MAX_NUMPOSITIVESIGN * sizeof(WCHAR)); MAX_NUMPOSITIVESIGN);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SLIST | LOCALE_NOUSEROVERRIDE, LOCALE_SLIST | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumListSep, pGlobalData->szNumListSep,
MAX_NUMLISTSEP * sizeof(WCHAR)); MAX_NUMLISTSEP);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SNATIVEDIGITS | LOCALE_NOUSEROVERRIDE, LOCALE_SNATIVEDIGITS | LOCALE_NOUSEROVERRIDE,
pGlobalData->szNumNativeDigits, pGlobalData->szNumNativeDigits,
MAX_NUMNATIVEDIGITS * sizeof(WCHAR)); MAX_NUMNATIVEDIGITS);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_INEGNUMBER | LOCALE_NOUSEROVERRIDE, LOCALE_INEGNUMBER | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumNegFormat = _wtoi(szBuffer); pGlobalData->nNumNegFormat = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IDIGITS | LOCALE_NOUSEROVERRIDE, LOCALE_IDIGITS | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumDigits = _wtoi(szBuffer); pGlobalData->nNumDigits = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ILZERO | LOCALE_NOUSEROVERRIDE, LOCALE_ILZERO | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumLeadingZero = _wtoi(szBuffer); pGlobalData->nNumLeadingZero = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IMEASURE | LOCALE_NOUSEROVERRIDE, LOCALE_IMEASURE | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumMeasure = _wtoi(szBuffer); pGlobalData->nNumMeasure = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IDIGITSUBSTITUTION | LOCALE_NOUSEROVERRIDE, LOCALE_IDIGITSUBSTITUTION | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumShape = _wtoi(szBuffer); pGlobalData->nNumShape = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SGROUPING | LOCALE_NOUSEROVERRIDE, LOCALE_SGROUPING | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nNumGrouping = 0; pGlobalData->nNumGrouping = 0;
if (szBuffer[0] == L'3') if (szBuffer[0] == L'3')
{ {
@ -656,22 +656,22 @@ SetNewLocale(
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SCURRENCY | LOCALE_NOUSEROVERRIDE, LOCALE_SCURRENCY | LOCALE_NOUSEROVERRIDE,
pGlobalData->szCurrSymbol, pGlobalData->szCurrSymbol,
MAX_CURRSYMBOL * sizeof(WCHAR)); MAX_CURRSYMBOL);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SMONDECIMALSEP | LOCALE_NOUSEROVERRIDE, LOCALE_SMONDECIMALSEP | LOCALE_NOUSEROVERRIDE,
pGlobalData->szCurrDecimalSep, pGlobalData->szCurrDecimalSep,
MAX_CURRDECIMALSEP * sizeof(WCHAR)); MAX_CURRDECIMALSEP);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SMONTHOUSANDSEP | LOCALE_NOUSEROVERRIDE, LOCALE_SMONTHOUSANDSEP | LOCALE_NOUSEROVERRIDE,
pGlobalData->szCurrThousandSep, pGlobalData->szCurrThousandSep,
MAX_CURRTHOUSANDSEP * sizeof(WCHAR)); MAX_CURRTHOUSANDSEP);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SMONGROUPING | LOCALE_NOUSEROVERRIDE, LOCALE_SMONGROUPING | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nCurrGrouping = 0; pGlobalData->nCurrGrouping = 0;
if (szBuffer[0] == L'3') if (szBuffer[0] == L'3')
{ {
@ -685,115 +685,115 @@ SetNewLocale(
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ICURRENCY | LOCALE_NOUSEROVERRIDE, LOCALE_ICURRENCY | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nCurrPosFormat = _wtoi(szBuffer); pGlobalData->nCurrPosFormat = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_INEGCURR | LOCALE_NOUSEROVERRIDE, LOCALE_INEGCURR | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nCurrNegFormat = _wtoi(szBuffer); pGlobalData->nCurrNegFormat = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ICURRDIGITS | LOCALE_NOUSEROVERRIDE, LOCALE_ICURRDIGITS | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nCurrDigits = _wtoi(szBuffer); pGlobalData->nCurrDigits = _wtoi(szBuffer);
/* Time */ /* Time */
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_STIMEFORMAT | LOCALE_NOUSEROVERRIDE, LOCALE_STIMEFORMAT | LOCALE_NOUSEROVERRIDE,
pGlobalData->szTimeFormat, pGlobalData->szTimeFormat,
MAX_TIMEFORMAT * sizeof(WCHAR)); MAX_TIMEFORMAT);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_STIME | LOCALE_NOUSEROVERRIDE, LOCALE_STIME | LOCALE_NOUSEROVERRIDE,
pGlobalData->szTimeSep, pGlobalData->szTimeSep,
MAX_TIMESEPARATOR * sizeof(WCHAR)); MAX_TIMESEPARATOR);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_S1159 | LOCALE_NOUSEROVERRIDE, LOCALE_S1159 | LOCALE_NOUSEROVERRIDE,
pGlobalData->szTimeAM, pGlobalData->szTimeAM,
MAX_TIMEAMSYMBOL * sizeof(WCHAR)); MAX_TIMEAMSYMBOL);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_S2359 | LOCALE_NOUSEROVERRIDE, LOCALE_S2359 | LOCALE_NOUSEROVERRIDE,
pGlobalData->szTimePM, pGlobalData->szTimePM,
MAX_TIMEPMSYMBOL * sizeof(WCHAR)); MAX_TIMEPMSYMBOL);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ITIME | LOCALE_NOUSEROVERRIDE, LOCALE_ITIME | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nTime = _wtoi(szBuffer); pGlobalData->nTime = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ITIMEMARKPOSN | LOCALE_NOUSEROVERRIDE, LOCALE_ITIMEMARKPOSN | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nTimePrefix = _wtoi(szBuffer); pGlobalData->nTimePrefix = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ITLZERO | LOCALE_NOUSEROVERRIDE, LOCALE_ITLZERO | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nTimeLeadingZero = _wtoi(szBuffer); pGlobalData->nTimeLeadingZero = _wtoi(szBuffer);
/* Date */ /* Date */
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SLONGDATE | LOCALE_NOUSEROVERRIDE, LOCALE_SLONGDATE | LOCALE_NOUSEROVERRIDE,
pGlobalData->szLongDateFormat, pGlobalData->szLongDateFormat,
MAX_LONGDATEFORMAT * sizeof(WCHAR)); MAX_LONGDATEFORMAT);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SSHORTDATE | LOCALE_NOUSEROVERRIDE, LOCALE_SSHORTDATE | LOCALE_NOUSEROVERRIDE,
pGlobalData->szShortDateFormat, pGlobalData->szShortDateFormat,
MAX_SHORTDATEFORMAT * sizeof(WCHAR)); MAX_SHORTDATEFORMAT);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SDATE | LOCALE_NOUSEROVERRIDE, LOCALE_SDATE | LOCALE_NOUSEROVERRIDE,
pGlobalData->szDateSep, pGlobalData->szDateSep,
MAX_DATESEPARATOR * sizeof(WCHAR)); MAX_DATESEPARATOR);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IFIRSTDAYOFWEEK | LOCALE_NOUSEROVERRIDE, LOCALE_IFIRSTDAYOFWEEK | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nFirstDayOfWeek = _wtoi(szBuffer); pGlobalData->nFirstDayOfWeek = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IFIRSTWEEKOFYEAR | LOCALE_NOUSEROVERRIDE, LOCALE_IFIRSTWEEKOFYEAR | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nFirstWeekOfYear = _wtoi(szBuffer); pGlobalData->nFirstWeekOfYear = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_IDATE | LOCALE_NOUSEROVERRIDE, LOCALE_IDATE | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nDate = _wtoi(szBuffer); pGlobalData->nDate = _wtoi(szBuffer);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ICALENDARTYPE | LOCALE_NOUSEROVERRIDE, LOCALE_ICALENDARTYPE | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nCalendarType = _wtoi(szBuffer); pGlobalData->nCalendarType = _wtoi(szBuffer);
/* Misc */ /* Misc */
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SCOUNTRY | LOCALE_NOUSEROVERRIDE, LOCALE_SCOUNTRY | LOCALE_NOUSEROVERRIDE,
pGlobalData->szMiscCountry, pGlobalData->szMiscCountry,
MAX_MISCCOUNTRY * sizeof(WCHAR)); MAX_MISCCOUNTRY);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_SLANGUAGE | LOCALE_NOUSEROVERRIDE, LOCALE_SLANGUAGE | LOCALE_NOUSEROVERRIDE,
pGlobalData->szMiscLanguage, pGlobalData->szMiscLanguage,
MAX_MISCLANGUAGE * sizeof(WCHAR)); MAX_MISCLANGUAGE);
GetLocaleInfo(lcid, GetLocaleInfo(lcid,
LOCALE_ICOUNTRY | LOCALE_NOUSEROVERRIDE, LOCALE_ICOUNTRY | LOCALE_NOUSEROVERRIDE,
szBuffer, szBuffer,
16 * sizeof(WCHAR)); sizeof(szBuffer) / sizeof(WCHAR));
pGlobalData->nMiscCountry = _wtoi(szBuffer); pGlobalData->nMiscCountry = _wtoi(szBuffer);
} }