From: André Hentschel Date: Wed, 3 Mar 2010 18:57:27 +0000 (+0100) Subject: oleaut32: Fix localized date parsing. X-Git-Tag: wine-1.1.40~63 X-Git-Url: http://git.etersoft.ru/projects/?a=commitdiff_plain;h=71f24431b987d70053063a9f206913e7fff53edc;p=wine%2Feterwine.git oleaut32: Fix localized date parsing. --- diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c index 0c23a1143d..6742fce216 100644 --- a/dlls/oleaut32/tests/vartype.c +++ b/dlls/oleaut32/tests/vartype.c @@ -3435,10 +3435,10 @@ static void test_VarDateFromStr(void) DFS("1-2-1970"); EXPECT_DBL(25570.0); /* 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; 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); } diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c index 6d604f3d0c..580209b753 100644 --- a/dlls/oleaut32/vartype.c +++ b/dlls/oleaut32/vartype.c @@ -7607,6 +7607,14 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd break; 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 && ((dp.dwFlags[3] & (DP_AM|DP_PM)) || (dp.dwFlags[4] & (DP_AM|DP_PM)) || (dp.dwFlags[5] & (DP_AM|DP_PM))))