Commit 3dc8b28d authored by Viliam Lejcik's avatar Viliam Lejcik Committed by Alexandre Julliard

kernel32: Fix GetCurrencyFormat grouping.

parent 937fd398
......@@ -1521,7 +1521,7 @@ GetCurrencyFormatW_Error:
dwState |= NF_DIGITS_OUT;
dwCurrentGroupCount++;
if (szSrc >= lpszValue && dwCurrentGroupCount == dwGroupCount)
if (szSrc >= lpszValue && dwCurrentGroupCount == dwGroupCount && *szSrc != '-')
{
LPWSTR lpszGrp = lpFormat->lpThousandSep + strlenW(lpFormat->lpThousandSep) - 1;
......
......@@ -743,6 +743,18 @@ static void test_GetCurrencyFormatA(void)
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
STRINGSA("235","$235.0"); /* Grouping of a positive number */
format.Grouping = 3;
ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
STRINGSA("-235","$-235.0"); /* Grouping of a negative number */
format.NegativeOrder = 2;
ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
format.LeadingZero = 1; /* Always provide leading zero */
STRINGSA(".5","$0.5");
ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
......@@ -990,6 +1002,18 @@ static void test_GetNumberFormatA(void)
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
STRINGSA("235","235.0"); /* Grouping of a positive number */
format.Grouping = 3;
ret = GetNumberFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
STRINGSA("-235","-235.0"); /* Grouping of a negative number */
format.NegativeOrder = NEG_LEFT;
ret = GetNumberFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError());
EXPECT_LENA; EXPECT_EQA;
format.LeadingZero = 1; /* Always provide leading zero */
STRINGSA(".5","0.5");
ret = GetNumberFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment