glob exists only in 4.3.0+
authortokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 3 Aug 2005 11:54:27 +0000 (11:54 +0000)
committertokul <tokul@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Wed, 3 Aug 2005 11:54:27 +0000 (11:54 +0000)
git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@9890 7612ce4b-ef26-0410-bec9-ea0150e637f0

functions/i18n.php

index 8ff0dae4b6e266f7e32bd7ce7cf69e6d5b37c24e..5b33204d07591edfe91aeacebcd1c23f4b327db4 100644 (file)
@@ -682,16 +682,21 @@ $languages['en']['ALIAS'] = 'en_US';
  * Solution for bug. 1240889.
  * setup.php file can contain $languages array entries and XTRA_CODE functions.
  */
-foreach(glob(SM_PATH.'locale/*') as $lang_dir) {
-    // remove trailing slash, if present
-    if (substr($lang_dir,-1)=='/') {
-        $lang_dir = substr($lang_dir,0,-1);
-    }
-    // load language setup
-    if (is_dir(SM_PATH.'locale/'.$lang_dir) && 
-        file_exists(SM_PATH.'locale/'.$lang_dir.'/setup.php')) {
-        include_once(SM_PATH.'locale/'.$lang_dir.'/setup.php');
+if (is_dir(SM_PATH . 'locale') &&
+    is_readable(SM_PATH . 'locale')) {
+    $localedir = dir(SM_PATH . 'locale');
+    while($lang_dir=$localedir->read()) {
+        // remove trailing slash, if present
+        if (substr($lang_dir,-1)=='/') {
+            $lang_dir = substr($lang_dir,0,-1);
+        }
+        if ($lang_dir != '..' && $lang_dir != '.' && $lang_dir != 'CVS' &&
+            is_dir(SM_PATH.'locale/'.$lang_dir) && 
+            file_exists(SM_PATH.'locale/'.$lang_dir.'/setup.php')) {
+            include_once(SM_PATH.'locale/'.$lang_dir.'/setup.php');
+        }
     }
+    $localedir->close();
 }
 
 /* Detect whether gettext is installed. */