From a360c98187856039b0c5365997d6994f95eb4d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Wed, 3 Mar 2010 19:59:16 +0100 Subject: [PATCH] oleaut32: Fix localized date and time parsing. --- dlls/oleaut32/tests/vartype.c | 2 +- dlls/oleaut32/vartype.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c index 6742fce2168..79b6b9312fe 100644 --- a/dlls/oleaut32/tests/vartype.c +++ b/dlls/oleaut32/tests/vartype.c @@ -3439,7 +3439,7 @@ static void test_VarDateFromStr(void) DFS("02.01.1970 00:00:00"); EXPECT_MISMATCH; lcid = MAKELCID(MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN),SORT_DEFAULT); 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"); EXPECT_DBL(25570.0); } static void test_VarDateCopy(void) diff --git a/dlls/oleaut32/vartype.c b/dlls/oleaut32/vartype.c index 580209b7539..da1288d4a7c 100644 --- a/dlls/oleaut32/vartype.c +++ b/dlls/oleaut32/vartype.c @@ -7707,6 +7707,13 @@ HRESULT WINAPI VarDateFromStr(OLECHAR* strIn, LCID lcid, ULONG dwFlags, DATE* pd dp.dwCount -= 3; break; + case 0x1B: /* localized DDDTTT */ + if (!iDate) + { + hRet = DISP_E_TYPEMISMATCH; + break; + } + /* .. fall through .. */ case 0x18: /* DDDTTT */ if ((dp.dwFlags[0] & (DP_AM|DP_PM)) || (dp.dwFlags[1] & (DP_AM|DP_PM)) || (dp.dwFlags[2] & (DP_AM|DP_PM)))