]> granicus.if.org Git - php/commitdiff
MFH
authorNuno Lopes <nlopess@php.net>
Fri, 1 Sep 2006 23:33:13 +0000 (23:33 +0000)
committerNuno Lopes <nlopess@php.net>
Fri, 1 Sep 2006 23:33:13 +0000 (23:33 +0000)
ext/date/lib/parse_tz.c
ext/date/tests/timezones.phpt [new file with mode: 0644]

index c5a8ed7099c9491d4233361e903c0d3d16dd686d..bf7cd808612e806b580073e722209b328fdc9c0d 100644 (file)
@@ -196,7 +196,7 @@ static int tz_search(char *timezone, int left, int right, const timelib_tzdb *tz
 {
        int mid, cmp;
 
-       if (left >= right) {
+       if (left > right) {
                return -1; /* not found */
        }
  
@@ -217,7 +217,7 @@ static int seek_to_tz_position(const unsigned char **tzf, char *timezone, const
 {
        int     pos;
        
-       pos = tz_search(timezone, 0, tzdb->index_size, tzdb);
+       pos = tz_search(timezone, 0, tzdb->index_size - 1, tzdb);
 
        if (pos == -1) {
                return 0;
diff --git a/ext/date/tests/timezones.phpt b/ext/date/tests/timezones.phpt
new file mode 100644 (file)
index 0000000..c7e470a
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+setting bogus timezones
+--FILE--
+<?php
+
+//bogus
+var_dump(date_default_timezone_set('AAA'));
+var_dump(date_default_timezone_set('ZZZ'));
+
+
+//now the first and the last one
+var_dump(date_default_timezone_set("Africa/Abidjan"));
+var_dump(date_default_timezone_set("Zulu"));
+
+echo "done\n";
+
+?>
+--EXPECTF--
+Notice: date_default_timezone_set(): Timezone ID 'AAA' is invalid in %stimezones.php on line 4
+bool(false)
+
+Notice: date_default_timezone_set(): Timezone ID 'ZZZ' is invalid in %stimezones.php on line 5
+bool(false)
+bool(true)
+bool(true)
+done