[PATCH] Fix day string representation format output

Nikolay Sivov nsivov at codeweavers.com
Sun Dec 19 10:25:50 CST 2010


---
 dlls/oleaut32/tests/varformat.c |    4 +++-
 dlls/oleaut32/varformat.c       |    4 ++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/oleaut32/tests/varformat.c b/dlls/oleaut32/tests/varformat.c
index 2d4ef62..d83f218 100644
--- a/dlls/oleaut32/tests/varformat.c
+++ b/dlls/oleaut32/tests/varformat.c
@@ -212,7 +212,9 @@ static const FMTDATERES VarFormat_date_results[] =
   { 2.525, "hh :mm:mm", "12 :36:01" },
   { 2.525, "dd :mm:mm", "01 :01:01" },
   { 2.525, "dd :mm:nn", "01 :01:36" },
-  { 2.725, "hh:nn:ss A/P", "05:24:00 P" }
+  { 2.725, "hh:nn:ss A/P", "05:24:00 P" },
+  { 40531.0, "dddd", "Sunday" },
+  { 40531.0, "ddd", "Sun" }
 };
 
 #define VNUMFMT(vt,v) \
diff --git a/dlls/oleaut32/varformat.c b/dlls/oleaut32/varformat.c
index f297641..529528b 100644
--- a/dlls/oleaut32/varformat.c
+++ b/dlls/oleaut32/varformat.c
@@ -1725,14 +1725,14 @@ static HRESULT VARIANT_FormatDate(LPVARIANT pVarIn, LPOLESTR lpszFormat,
     case FMT_DATE_DAY_SHORT:
       /* FIXME: VARIANT_CALENDAR HIJRI should cause Hijri output */
       TRACE("short day\n");
-      localeValue = LOCALE_SABBREVDAYNAME1 + udate.st.wMonth - 1;
+      localeValue = LOCALE_SABBREVDAYNAME1 + (udate.st.wDayOfWeek + 6)%7;
       defaultChar = '?';
       break;
 
     case FMT_DATE_DAY_LONG:
       /* FIXME: VARIANT_CALENDAR HIJRI should cause Hijri output */
       TRACE("long day\n");
-      localeValue = LOCALE_SDAYNAME1 + udate.st.wMonth - 1;
+      localeValue = LOCALE_SDAYNAME1 + (udate.st.wDayOfWeek + 6)%7;
       defaultChar = '?';
       break;
 
-- 
1.5.6.5


--------------080903020103030400020903--



More information about the wine-patches mailing list