oleaut32: Fix VarDateFromStr for the case of a trailing meridiem indicator.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2841a05025
commit
b4a73f74af
|
@ -3528,6 +3528,9 @@ static void test_VarDateFromStr(void)
|
|||
DFS("1-2-1970"); EXPECT_DBL(25570.0);
|
||||
DFS("13-1-1970"); EXPECT_DBL(25581.0);
|
||||
DFS("1970-1-13"); EXPECT_DBL(25581.0);
|
||||
DFS("6/30/2011 01:20:34"); EXPECT_DBL(40724.05594907407);
|
||||
DFS("6/30/2011 01:20:34 AM"); EXPECT_DBL(40724.05594907407);
|
||||
DFS("6/30/2011 01:20:34 PM"); EXPECT_DBL(40724.55594907407);
|
||||
/* Native fails "1999 January 3, 9AM". I consider that a bug in native */
|
||||
|
||||
/* test a non-english data string */
|
||||
|
|
|
@ -7668,11 +7668,13 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
|
|||
/* Parse the string into our structure */
|
||||
while (*strIn)
|
||||
{
|
||||
if (dp.dwCount >= 6)
|
||||
break;
|
||||
|
||||
if (isdigitW(*strIn))
|
||||
{
|
||||
if (dp.dwCount >= 6)
|
||||
{
|
||||
hRet = DISP_E_TYPEMISMATCH;
|
||||
break;
|
||||
}
|
||||
dp.dwValues[dp.dwCount] = strtoulW(strIn, &strIn, 10);
|
||||
dp.dwCount++;
|
||||
strIn--;
|
||||
|
@ -7688,9 +7690,14 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
|
|||
{
|
||||
if (i <= 25)
|
||||
{
|
||||
dp.dwValues[dp.dwCount] = ParseDateMonths[i];
|
||||
dp.dwFlags[dp.dwCount] |= (DP_MONTH|DP_DATESEP);
|
||||
dp.dwCount++;
|
||||
if (dp.dwCount >= 6)
|
||||
hRet = DISP_E_TYPEMISMATCH;
|
||||
else
|
||||
{
|
||||
dp.dwValues[dp.dwCount] = ParseDateMonths[i];
|
||||
dp.dwFlags[dp.dwCount] |= (DP_MONTH|DP_DATESEP);
|
||||
dp.dwCount++;
|
||||
}
|
||||
}
|
||||
else if (i > 39 && i < 42)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue