Fix this awfully ugly error message, finally.
[squirrelmail.git] / functions / strings.php
index d4adfaa715b8b11ccdb4394cc4a93c52ef925bc6..db5ff7c2e61b480d0f9d4e81e6de945d887d1b7d 100644 (file)
  * $Id$
  */
 
-require_once(SM_PATH . 'functions/global.php');
 
 /**
  * SquirrelMail version number -- DO NOT CHANGE
  */
 global $version;
-$version = '1.4.0 [CVS-DEVEL]';
+$version = '1.5.0 [CVS]';
 
 /** 
  * SquirrelMail internal version number -- DO NOT CHANGE
  * $sm_internal_version = array (release, major, minor)
  */
 global $SQM_INTERNAL_VERSION;
-$SQM_INTERNAL_VERSION = array(1,4,0);
+$SQM_INTERNAL_VERSION = array(1,5,0);
+
 
+/**
+ * There can be a circular issue with includes, where the $version string is
+ * referenced by the include of global.php, etc. before it's defined.
+ * For that reason, bring in global.php AFTER we define the version strings.
+ */
+require_once(SM_PATH . 'functions/global.php');
 
 /**
  * Wraps text at $wrap characters
@@ -38,6 +44,16 @@ $SQM_INTERNAL_VERSION = array(1,4,0);
  * This should not add newlines to the end of lines.
  */
 function sqWordWrap(&$line, $wrap) {
+    global $languages, $squirrelmail_language;
+
+    if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
+        function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
+        if (mb_detect_encoding($line) != 'ASCII') {
+            $line = $languages[$squirrelmail_language]['XTRA_CODE']('wordwrap', $line, $wrap);
+            return;
+        }
+    }
+
     ereg("^([\t >]*)([^\t >].*)?$", $line, $regs);
     $beginning_spaces = $regs[1];
     if (isset($regs[2])) {
@@ -83,6 +99,12 @@ function sqWordWrap(&$line, $wrap) {
  * Does the opposite of sqWordWrap()
  */
 function sqUnWordWrap(&$body) {
+    global $squirrelmail_language;
+    
+    if ($squirrelmail_language == 'ja_JP') {
+        return;
+    }
+
     $lines = explode("\n", $body);
     $body = '';
     $PreviousSpaces = '';
@@ -129,42 +151,6 @@ function readShortMailboxName($haystack, $needle) {
     return( $elem );
 }
 
-/**
- * Returns an array of email addresses.
- * Be cautious of "user@host.com"
- */
-function parseAddrs($text) {
-    if (trim($text) == '')
-        return array();
-    $text = str_replace(' ', '', $text);
-    $text = ereg_replace('"[^"]*"', '', $text);
-    $text = ereg_replace('\\([^\\)]*\\)', '', $text);
-    $text = str_replace(',', ';', $text);
-    $array = explode(';', $text);
-    for ($i = 0; $i < count ($array); $i++) {
-        $array[$i] = eregi_replace ('^.*[<]', '', $array[$i]);
-        $array[$i] = eregi_replace ('[>].*$', '', $array[$i]);
-    }
-    return $array;
-}
-
-/**
- * Returns a line of comma separated email addresses from an array.
- */
-function getLineOfAddrs($array) {
-    if (is_array($array)) {
-        $to_line = implode(', ', $array);
-        $to_line = ereg_replace(', (, )+', ', ', $to_line);
-        $to_line = trim(ereg_replace('^, ', '', $to_line));
-        if( substr( $to_line, -1 ) == ',' )
-            $to_line = substr( $to_line, 0, -1 );
-    } else {
-        $to_line = '';
-    }
-    
-    return( $to_line );
-}
-
 function php_self () {
     if ( sqgetGlobalVar('REQUEST_URI', $req_uri, SQ_SERVER) && !empty($req_uri) ) {
       return $req_uri;
@@ -190,10 +176,14 @@ function php_self () {
 function get_location () {
     
     global $imap_server_type;
-    
+
     /* Get the path, handle virtual directories */
     $path = substr(php_self(), 0, strrpos(php_self(), '/'));
-    
+
+    if ( sqgetGlobalVar('sq_base_url', $full_url, SQ_SESSION) ) {
+      return $full_url . $path;
+    }
+
     /* Check if this is a HTTPS or regular HTTP request. */
     $proto = 'http://';
     
@@ -234,9 +224,11 @@ function get_location () {
         $port = '';
    }
    
-    /* Fallback is to omit the server name and use a relative */
-    /* URI, although this is not RFC 2616 compliant.          */
-    return ($host ? $proto . $host . $port . $path : $path);
+   /* Fallback is to omit the server name and use a relative */
+   /* URI, although this is not RFC 2616 compliant.          */
+   $full_url = ($host ? $proto . $host . $port : '');
+   sqsession_register($full_url, 'sq_base_url');
+   return $full_url . $path;
 }
 
 
@@ -400,7 +392,7 @@ function GenerateRandomString($size, $chars, $flags = 0) {
     return $String;
 }
 
-function quoteIMAP($str) {
+function quoteimap($str) {
     return ereg_replace('(["\\])', '\\\\1', $str);
 }
 
@@ -423,26 +415,6 @@ function TrimArray(&$array) {
     }
 }   
 
-/**
- * Removes slashes from every element in the array
- */
-function RemoveSlashes(&$array) {
-    foreach ($array as $k => $v) {
-        global $$k;
-        if (is_array($$k)) {
-            foreach ($$k as $k2 => $v2) {
-                $newArray[stripslashes($k2)] = stripslashes($v2);
-            }
-            $$k = $newArray;
-        } else {
-            $$k = stripslashes($v);
-        }
-        
-        /* Re-assign back to the array. */
-        $array[$k] = $$k;
-    }
-}
-
 $PHP_SELF = php_self();
 
 ?>