From 3f8701ba14174b56728ea9c567758e4bbe371b2e Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Sun, 22 May 2005 09:15:52 +0000 Subject: [PATCH] Fixed handling of zones with no pre 1970 entries. Strange bug identified and fixed by Jon. --- lib/olson.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/olson.php b/lib/olson.php index 0cd507dab5b..4c2ac6ae157 100644 --- a/lib/olson.php +++ b/lib/olson.php @@ -47,14 +47,14 @@ function olson_to_timezones ($filename) { // // Find the pre 1970 zone rule entries // - for ($y = 1970 ; $y > 0 ; $y--) { + for ($y = 1970 ; $y >= 0 ; $y--) { if (array_key_exists((string)$y, $zbyyear )) { // we have a zone entry for the year $zone = $zbyyear[$y]; //print_object("Zone $zname pre1970 is in $y\n"); break; // Perl's last -- get outta here } } - if (!empty($zone['rule'])) { + if (!empty($zone['rule']) && array_key_exists($zone['rule'], $rules)) { $rule = NULL; for ($y = 1970 ; $y > 0 ; $y--) { if (array_key_exists((string)$y, $rules[$zone['rule']] )) { // we have a rule entry for the year @@ -76,7 +76,7 @@ function olson_to_timezones ($filename) { } // Prepare to insert the base 1970 zone+rule - if (!empty($rule)) { + if (!empty($rule) && array_key_exists($zone['rule'], $rules)) { // merge the two arrays into the moodle rule unset($rule['name']); // warning: $rule must NOT be a reference! unset($rule['year']); @@ -116,7 +116,7 @@ function olson_to_timezones ($filename) { $changed = true; $zone = $zbyyear[(string)$y]; } - if (!empty($zone['rule'])){ + if (!empty($zone['rule']) && array_key_exists($zone['rule'], $rules)) { if (array_key_exists((string)$y, $rules[$zone['rule']])) { $changed = true; $rule = $rules[$zone['rule']][(string)$y];