kernel32: Implement CAL_RETURN_GENITIVE_NAMES flag.

David Keijser keijser at gmail.com
Tue Aug 30 04:17:18 CDT 2016


Forward CAL_RETURN_GENITIVE_NAMES flag to GetLocaleInfoW for month
names.

Signed-off-by: David Keijser <keijser at gmail.com>

woop
---
 dlls/kernel32/time.c | 60 ++++++++++++++++++++++++++++------------------------
 include/winnls.h     |  7 +++---
 2 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c
index b7a7918..b202804 100644
--- a/dlls/kernel32/time.c
+++ b/dlls/kernel32/time.c
@@ -860,6 +860,8 @@ int WINAPI GetCalendarInfoW(LCID Locale, CALID Calendar, CALTYPE CalType,
 	FIXME("flag CAL_NOUSEROVERRIDE used, not fully implemented\n");
     if (CalType & CAL_USE_CP_ACP)
 	FIXME("flag CAL_USE_CP_ACP used, not fully implemented\n");
+    if (CalType & CAL_RETURN_GENITIVE_NAMES)
+        FIXME("flag CAL_RETURN_GENITIVE_NAMES used, not fully implemented\n");
 
     if (CalType & CAL_RETURN_NUMBER) {
         if (!lpValue)
@@ -876,9 +878,11 @@ int WINAPI GetCalendarInfoW(LCID Locale, CALID Calendar, CALTYPE CalType,
 	    WARN("lpValue not NULL (%p) when it should!\n", lpValue);
     }
 
+    int localeFlags = (CalType & CAL_RETURN_GENITIVE_NAMES);
+
     /* FIXME: No verification is made yet wrt Locale
      * for the CALTYPES not requiring GetLocaleInfoA */
-    switch (CalType & ~(CAL_NOUSEROVERRIDE|CAL_RETURN_NUMBER|CAL_USE_CP_ACP)) {
+    switch (CalType & ~(CAL_NOUSEROVERRIDE|CAL_RETURN_NUMBER|CAL_USE_CP_ACP|CAL_RETURN_GENITIVE_NAMES)) {
 	case CAL_ICALINTVALUE:
             if (CalType & CAL_RETURN_NUMBER)
                 return GetLocaleInfoW(Locale, LOCALE_RETURN_NUMBER | LOCALE_ICALENDARTYPE,
@@ -927,59 +931,59 @@ int WINAPI GetCalendarInfoW(LCID Locale, CALID Calendar, CALTYPE CalType,
 	case CAL_SABBREVDAYNAME7:
 	    return GetLocaleInfoW(Locale, LOCALE_SABBREVDAYNAME7, lpCalData, cchData);
 	case CAL_SMONTHNAME1:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME1, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME1 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME2:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME2, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME2 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME3:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME3, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME3 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME4:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME4, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME4 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME5:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME5, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME5 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME6:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME6, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME6 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME7:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME7, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME7 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME8:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME8, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME8 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME9:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME9, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME9 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME10:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME10, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME10 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME11:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME11, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME11 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME12:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME12, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME12 | localeFlags, lpCalData, cchData);
 	case CAL_SMONTHNAME13:
-	    return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME13, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SMONTHNAME13 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME1:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME1, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME1 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME2:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME2, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME2 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME3:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME3, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME3 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME4:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME4, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME4 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME5:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME5, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME5 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME6:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME6, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME6 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME7:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME7, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME7 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME8:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME8, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME8 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME9:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME9, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME9 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME10:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME10, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME10 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME11:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME11, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME11 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME12:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME12, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME12 | localeFlags, lpCalData, cchData);
 	case CAL_SABBREVMONTHNAME13:
-	    return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME13, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SABBREVMONTHNAME13 | localeFlags, lpCalData, cchData);
 	case CAL_SYEARMONTH:
-	    return GetLocaleInfoW(Locale, LOCALE_SYEARMONTH, lpCalData, cchData);
+        return GetLocaleInfoW(Locale, LOCALE_SYEARMONTH, lpCalData, cchData);
 	case CAL_ITWODIGITYEARMAX:
             if (CalType & CAL_RETURN_NUMBER)
             {
diff --git a/include/winnls.h b/include/winnls.h
index 1a7baaf..3d950f6 100644
--- a/include/winnls.h
+++ b/include/winnls.h
@@ -471,9 +471,10 @@ static const WCHAR LOCALE_NAME_SYSTEM_DEFAULT[] = {'!','s','y','s','-','d','e','
 #define MAX_DEFAULTCHAR   2
 
 /* Defines for calendar handling */
-#define CAL_NOUSEROVERRIDE     LOCALE_NOUSEROVERRIDE
-#define CAL_USE_CP_ACP         LOCALE_USE_CP_ACP
-#define CAL_RETURN_NUMBER      LOCALE_RETURN_NUMBER
+#define CAL_NOUSEROVERRIDE        LOCALE_NOUSEROVERRIDE
+#define CAL_USE_CP_ACP            LOCALE_USE_CP_ACP
+#define CAL_RETURN_NUMBER         LOCALE_RETURN_NUMBER
+#define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
 
 #define CAL_ICALINTVALUE       0x01
 #define CAL_SCALNAME           0x02
-- 
2.7.4




More information about the wine-patches mailing list