From fc3bec296c676d1bf5a618b62b18f96580d1235b Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Tue, 13 Oct 2015 16:38:23 -0300 Subject: Make sure timezones listed on first level directory is also grabbed by system_get_timezone_list(). It fixes #5303 --- src/etc/inc/system.inc | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'src/etc/inc/system.inc') diff --git a/src/etc/inc/system.inc b/src/etc/inc/system.inc index 1a8f9dd..4218262 100644 --- a/src/etc/inc/system.inc +++ b/src/etc/inc/system.inc @@ -1501,13 +1501,26 @@ EOD; function system_get_timezone_list() { global $g; - $file_list = glob("/usr/share/zoneinfo/*/*"); + $file_list = array_merge( + glob("/usr/share/zoneinfo/[A-Z]*"), + glob("/usr/share/zoneinfo/*/*") + ); if (empty($file_list)) { $file_list[] = $g['default_timezone']; + } else { + /* Remove directories from list */ + $file_list = array_filter($file_list, function($v) { + return !is_dir($v); + }); } - return str_replace('/usr/share/zoneinfo/', '', $file_list); + /* Remove directory prefix */ + $file_list = str_replace('/usr/share/zoneinfo/', '', $file_list); + + sort($file_list); + + return $file_list; } function system_timezone_configure() { -- cgit v1.1