André Hentschel : oleaut32: Fix localized date parsing .

Alexandre Julliard julliard at winehq.org
Thu Mar 4 11:21:40 CST 2010


Module: wine
Branch: master
Commit: 71f24431b987d70053063a9f206913e7fff53edc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=71f24431b987d70053063a9f206913e7fff53edc

Author: André Hentschel <nerv at dawncrow.de>
Date:   Wed Mar  3 19:57:27 2010 +0100

oleaut32: Fix localized date parsing.

---

 dlls/oleaut32/tests/vartype.c |    4 ++--
 dlls/oleaut32/vartype.c       |    8 ++++++++
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/oleaut32/tests/vartype.c b/dlls/oleaut32/tests/vartype.c
index 0c23a11..6742fce 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 6d604f3..580209b 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))))




More information about the wine-cvs mailing list