Commit 71f24431 authored by André Hentschel's avatar André Hentschel Committed by Alexandre Julliard

oleaut32: Fix localized date parsing.

parent 9079109a
...@@ -3435,10 +3435,10 @@ static void test_VarDateFromStr(void) ...@@ -3435,10 +3435,10 @@ static void test_VarDateFromStr(void)
DFS("1-2-1970"); EXPECT_DBL(25570.0); DFS("1-2-1970"); EXPECT_DBL(25570.0);
/* Native fails "1999 January 3, 9AM". I consider that a bug in native */ /* Native fails "1999 January 3, 9AM". I consider that a bug in native */
/* test a none english data string */ /* test a non-english data string */
DFS("02.01.1970 00:00:00"); EXPECT_MISMATCH; DFS("02.01.1970 00:00:00"); EXPECT_MISMATCH;
lcid = MAKELCID(MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN),SORT_DEFAULT); lcid = MAKELCID(MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN),SORT_DEFAULT);
DFS("02.01.1970"); todo_wine EXPECT_DBL(25570.0); DFS("02.01.1970"); EXPECT_DBL(25570.0);
DFS("02.01.1970 00:00:00"); todo_wine EXPECT_DBL(25570.0); DFS("02.01.1970 00:00:00"); todo_wine EXPECT_DBL(25570.0);
} }
......
...@@ -7607,6 +7607,14 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd ...@@ -7607,6 +7607,14 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd
break; break;
case 0x3: /* TTT TTTDD TTTDDD */ case 0x3: /* TTT TTTDD TTTDDD */
if (iDate && dp.dwCount == 3)
{
/* DDD */
if ((dp.dwFlags[0] & (DP_AM|DP_PM)) || (dp.dwFlags[1] & (DP_AM|DP_PM)) ||
(dp.dwFlags[2] & (DP_AM|DP_PM)))
hRet = DISP_E_TYPEMISMATCH;
break;
}
if (dp.dwCount > 4 && if (dp.dwCount > 4 &&
((dp.dwFlags[3] & (DP_AM|DP_PM)) || (dp.dwFlags[4] & (DP_AM|DP_PM)) || ((dp.dwFlags[3] & (DP_AM|DP_PM)) || (dp.dwFlags[4] & (DP_AM|DP_PM)) ||
(dp.dwFlags[5] & (DP_AM|DP_PM)))) (dp.dwFlags[5] & (DP_AM|DP_PM))))
......
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