oleaut32: VarParseNumFromStr() does not allow leading thousands separators.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c50dff867d
commit
de70f7289e
|
@ -1606,7 +1606,7 @@ static void test_VarParseNumFromStrEn(void)
|
||||||
|
|
||||||
/* With flag, but leading thousands separators are not allowed */
|
/* With flag, but leading thousands separators are not allowed */
|
||||||
CONVERT(",1,000", NUMPRS_THOUSANDS);
|
CONVERT(",1,000", NUMPRS_THOUSANDS);
|
||||||
todo_wine EXPECTFAIL;
|
EXPECTFAIL;
|
||||||
|
|
||||||
/* With flag, thousands separator not needed but still reported */
|
/* With flag, thousands separator not needed but still reported */
|
||||||
CONVERT("1,", NUMPRS_THOUSANDS);
|
CONVERT("1,", NUMPRS_THOUSANDS);
|
||||||
|
@ -1983,7 +1983,7 @@ static void test_VarParseNumFromStrFr(void)
|
||||||
|
|
||||||
/* With flag, but leading thousands separators are not allowed */
|
/* With flag, but leading thousands separators are not allowed */
|
||||||
CONVERT(" 1 000", NUMPRS_THOUSANDS);
|
CONVERT(" 1 000", NUMPRS_THOUSANDS);
|
||||||
todo_wine EXPECTFAIL;
|
EXPECTFAIL;
|
||||||
|
|
||||||
/* With flag, thousands separator not needed but still reported */
|
/* With flag, thousands separator not needed but still reported */
|
||||||
CONVERT("1 ", NUMPRS_THOUSANDS|NUMPRS_USE_ALL);
|
CONVERT("1 ", NUMPRS_THOUSANDS|NUMPRS_USE_ALL);
|
||||||
|
|
|
@ -1652,6 +1652,12 @@ HRESULT WINAPI VarParseNumFromStr(const OLECHAR *lpszStr, LCID lcid, ULONG dwFla
|
||||||
lpszStr++;
|
lpszStr++;
|
||||||
} while (iswspace(*lpszStr));
|
} while (iswspace(*lpszStr));
|
||||||
}
|
}
|
||||||
|
else if (pNumprs->dwInFlags & NUMPRS_THOUSANDS &&
|
||||||
|
((chars.cDigitSeparator && *lpszStr == chars.cDigitSeparator) ||
|
||||||
|
(cDigitSeparator2 && *lpszStr == cDigitSeparator2)))
|
||||||
|
{
|
||||||
|
return DISP_E_TYPEMISMATCH; /* Not allowed before the first digit */
|
||||||
|
}
|
||||||
else if (pNumprs->dwInFlags & NUMPRS_LEADING_PLUS &&
|
else if (pNumprs->dwInFlags & NUMPRS_LEADING_PLUS &&
|
||||||
*lpszStr == chars.cPositiveSymbol &&
|
*lpszStr == chars.cPositiveSymbol &&
|
||||||
!(pNumprs->dwOutFlags & NUMPRS_LEADING_PLUS))
|
!(pNumprs->dwOutFlags & NUMPRS_LEADING_PLUS))
|
||||||
|
|
Loading…
Reference in New Issue