[PATCH 1/3] oleaut32: Correctly get the Currency seperator in VarFormatCurrency
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Sun Feb 24 01:00:32 CST 2019
LOCALE_SCURRENCY allows for 13 chracters including the NULL.
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=46442
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
dlls/oleaut32/varformat.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c
index 470ea4e01b7..d6ce4a9f74a 100644
--- a/dlls/oleaut32/varformat.c
+++ b/dlls/oleaut32/varformat.c
@@ -2443,7 +2443,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading,
if (SUCCEEDED(hRet))
{
- WCHAR buff[256], decimal[8], thousands[8], currency[8];
+ WCHAR buff[256], decimal[8], thousands[8], currency[13];
CURRENCYFMTW numfmt;
if (nDigits < 0)
@@ -2484,7 +2484,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading,
numfmt.lpThousandSep = thousands;
GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, thousands, ARRAY_SIZE(thousands));
numfmt.lpCurrencySymbol = currency;
- GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, currency, ARRAY_SIZE(currency));
+ GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency, ARRAY_SIZE(currency));
/* use NLS as per VarFormatNumber() */
if (GetCurrencyFormatW(LOCALE_USER_DEFAULT, 0, V_BSTR(&vStr), &numfmt, buff, ARRAY_SIZE(buff)))
--
2.20.1
More information about the wine-devel
mailing list