]> granicus.if.org Git - php/commitdiff
- MFH: Fixed bug #44260 (African timezones missing).
authorDerick Rethans <derick@php.net>
Wed, 27 Feb 2008 09:47:35 +0000 (09:47 +0000)
committerDerick Rethans <derick@php.net>
Wed, 27 Feb 2008 09:47:35 +0000 (09:47 +0000)
ext/date/php_date.c

index cc446e8e0a14987e18fc24249a22dbbd23e7c22a..436bd38cc1bac97943dc1de20364f15d613c0b50 100644 (file)
@@ -1500,18 +1500,19 @@ PHP_FUNCTION(getdate)
 }
 /* }}} */
 
-#define PHP_DATE_TIMEZONE_GROUP_AMERICA    0x0001
-#define PHP_DATE_TIMEZONE_GROUP_ANTARCTICA 0x0002
-#define PHP_DATE_TIMEZONE_GROUP_ARCTIC     0x0004
-#define PHP_DATE_TIMEZONE_GROUP_ASIA       0x0008
-#define PHP_DATE_TIMEZONE_GROUP_ATLANTIC   0x0010
-#define PHP_DATE_TIMEZONE_GROUP_AUSTRALIA  0x0020
-#define PHP_DATE_TIMEZONE_GROUP_EUROPE     0x0040
-#define PHP_DATE_TIMEZONE_GROUP_INDIAN     0x0080
-#define PHP_DATE_TIMEZONE_GROUP_PACIFIC    0x0100
-#define PHP_DATE_TIMEZONE_GROUP_UTC        0x0200
-#define PHP_DATE_TIMEZONE_GROUP_ALL        0x03FF
-#define PHP_DATE_TIMEZONE_GROUP_ALL_W_BC   0x07FF
+#define PHP_DATE_TIMEZONE_GROUP_AFRICA     0x0001
+#define PHP_DATE_TIMEZONE_GROUP_AMERICA    0x0002
+#define PHP_DATE_TIMEZONE_GROUP_ANTARCTICA 0x0004
+#define PHP_DATE_TIMEZONE_GROUP_ARCTIC     0x0008
+#define PHP_DATE_TIMEZONE_GROUP_ASIA       0x0010
+#define PHP_DATE_TIMEZONE_GROUP_ATLANTIC   0x0020
+#define PHP_DATE_TIMEZONE_GROUP_AUSTRALIA  0x0040
+#define PHP_DATE_TIMEZONE_GROUP_EUROPE     0x0080
+#define PHP_DATE_TIMEZONE_GROUP_INDIAN     0x0100
+#define PHP_DATE_TIMEZONE_GROUP_PACIFIC    0x0200
+#define PHP_DATE_TIMEZONE_GROUP_UTC        0x0400
+#define PHP_DATE_TIMEZONE_GROUP_ALL        0x07FF
+#define PHP_DATE_TIMEZONE_GROUP_ALL_W_BC   0x0FFF
 
 static void date_register_classes(TSRMLS_D)
 {
@@ -1549,6 +1550,7 @@ static void date_register_classes(TSRMLS_D)
 #define REGISTER_TIMEZONE_CLASS_CONST_STRING(const_name, value) \
        zend_declare_class_constant_long(date_ce_timezone, const_name, sizeof(const_name)-1, value TSRMLS_CC);
 
+       REGISTER_TIMEZONE_CLASS_CONST_STRING("AFRICA",      PHP_DATE_TIMEZONE_GROUP_AFRICA);
        REGISTER_TIMEZONE_CLASS_CONST_STRING("AMERICA",     PHP_DATE_TIMEZONE_GROUP_AMERICA);
        REGISTER_TIMEZONE_CLASS_CONST_STRING("ANTARCTICA",  PHP_DATE_TIMEZONE_GROUP_ANTARCTICA);
        REGISTER_TIMEZONE_CLASS_CONST_STRING("ARCTIC",      PHP_DATE_TIMEZONE_GROUP_ARCTIC);
@@ -2507,6 +2509,7 @@ PHP_FUNCTION(timezone_transitions_get)
 
 static int check_id_allowed(char *id, long what)
 {
+       if (what & PHP_DATE_TIMEZONE_GROUP_AFRICA     && strncasecmp(id, "Africa/",      7) == 0) return 1;
        if (what & PHP_DATE_TIMEZONE_GROUP_AMERICA    && strncasecmp(id, "America/",     8) == 0) return 1;
        if (what & PHP_DATE_TIMEZONE_GROUP_ANTARCTICA && strncasecmp(id, "Antarctica/", 11) == 0) return 1;
        if (what & PHP_DATE_TIMEZONE_GROUP_ARCTIC     && strncasecmp(id, "Arctic/",      7) == 0) return 1;