[PATCH 2/3] oleaut32: Correctly get the thousands seperator in VarFormatCurrency

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Sun Feb 24 01:00:34 CST 2019


LOCALE_STHOUSAND allows for 4 chracters including the NULL.

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 d6ce4a9f74a..91b3c167dd8 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[13];
+    WCHAR buff[256], decimal[8], thousands[4], currency[13];
     CURRENCYFMTW numfmt;
 
     if (nDigits < 0)
@@ -2482,7 +2482,7 @@ HRESULT WINAPI VarFormatCurrency(LPVARIANT pVarIn, INT nDigits, INT nLeading,
     numfmt.lpDecimalSep = decimal;
     GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, decimal, ARRAY_SIZE(decimal));
     numfmt.lpThousandSep = thousands;
-    GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, thousands, ARRAY_SIZE(thousands));
+    GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_STHOUSAND, thousands, ARRAY_SIZE(thousands));
     numfmt.lpCurrencySymbol = currency;
     GetLocaleInfoW(LOCALE_USER_DEFAULT, LOCALE_SCURRENCY, currency, ARRAY_SIZE(currency));
 
-- 
2.20.1




More information about the wine-devel mailing list