validator.w3.org fails if id attribute contains brackets
[squirrelmail.git] / functions / strings.php
index f4e765541117f9e015ab568316dda9ad67f61faf..5f99b3858ae5c01653d317c51e4d3ffe0c8de2ad 100644 (file)
@@ -6,35 +6,12 @@
  * This code provides various string manipulation functions that are
  * used by the rest of the SquirrelMail code.
  *
- * @copyright © 1999-2005 The SquirrelMail Project Team
+ * @copyright © 1999-2006 The SquirrelMail Project Team
  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
  */
 
-/** @ignore */
-if (!defined('SM_PATH')) define('SM_PATH','../');
-
-/**
- * SquirrelMail version number -- DO NOT CHANGE
- */
-global $version;
-$version = '1.5.1 [CVS]';
-
-/**
- * SquirrelMail internal version number -- DO NOT CHANGE
- * $sm_internal_version = array (release, major, minor)
- */
-global $SQM_INTERNAL_VERSION;
-$SQM_INTERNAL_VERSION = array(1,5,1);
-
-/**
- * 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.
- */
-include_once(SM_PATH . 'functions/global.php');
-
 /**
  * Appends citation markers to the string.
  * Also appends a trailing space.
@@ -477,28 +454,6 @@ function readShortMailboxName($haystack, $needle) {
     return( $elem );
 }
 
-/**
- * Find out where SquirrelMail lives and try to be smart about it.
- * The only problem would be when SquirrelMail lives in directories
- * called "src", "functions", or "plugins", but people who do that need
- * to be beaten with a steel pipe anyway.
- *
- * @return string the base uri of SquirrelMail installation.
- * @since 1.2.6
- */
-function sqm_baseuri(){
-    global $base_uri, $PHP_SELF;
-    /**
-     * If it is in the session, just return it.
-     */
-    if (isset($base_uri)){
-        return $base_uri;
-    }
-    $dirs = array('|src/.*|', '|plugins/.*|', '|functions/.*|');
-    $repl = array('', '', '');
-    $base_uri = preg_replace($dirs, $repl, $PHP_SELF);
-    return $base_uri;
-}
 
 /**
  * get_location
@@ -870,7 +825,7 @@ function makeComposeLink($url, $text = null, $target='') {
     // if javascript is on, use onclick event to handle it
     if($javascript_on) {
         sqgetGlobalVar('base_uri', $base_uri, SQ_SESSION);
-        $compuri = $base_uri.$url;
+        $compuri = SM_BASE_URI.$url;
         return "<a href=\"javascript:void(0)\" onclick=\"comp_in_new('$compuri','$compose_width','$compose_height')\">$text</a>";
     }
 
@@ -1168,9 +1123,10 @@ function sq_strlen($str, $charset=null){
 
     // use automatic charset detection, if function call asks for it
     if ($charset=='auto') {
-        global $default_charset;
+        global $default_charset, $squirrelmail_language;
         set_my_charset();
         $charset=$default_charset;
+        if ($squirrelmail_language=='ja_JP') $charset='euc-jp';
     }
 
     // Use mbstring only with listed charsets
@@ -1235,9 +1191,10 @@ function sq_str_pad($string, $width, $pad, $padtype, $charset='') {
 function sq_substr($string,$start,$length,$charset='auto') {
     // use automatic charset detection, if function call asks for it
     if ($charset=='auto') {
-        global $default_charset;
+        global $default_charset, $squirrelmail_language;
         set_my_charset();
         $charset=$default_charset;
+        if ($squirrelmail_language=='ja_JP') $charset='euc-jp';
     }
     $charset = strtolower($charset);
     if (function_exists('mb_internal_encoding') &&
@@ -1265,9 +1222,10 @@ function sq_substr($string,$start,$length,$charset='auto') {
 function sq_strpos($haystack,$needle,$offset,$charset='auto') {
     // use automatic charset detection, if function call asks for it
     if ($charset=='auto') {
-        global $default_charset;
+        global $default_charset, $squirrelmail_language;
         set_my_charset();
         $charset=$default_charset;
+        if ($squirrelmail_language=='ja_JP') $charset='euc-jp';
     }
     $charset = strtolower($charset);
     if (function_exists('mb_internal_encoding') &&
@@ -1293,9 +1251,10 @@ function sq_strpos($haystack,$needle,$offset,$charset='auto') {
 function sq_strtoupper($string,$charset='auto') {
     // use automatic charset detection, if function call asks for it
     if ($charset=='auto') {
-        global $default_charset;
+        global $default_charset,$squirrelmail_language;
         set_my_charset();
         $charset=$default_charset;
+        if ($squirrelmail_language=='ja_JP') $charset='euc-jp';
     }
     $charset = strtolower($charset);
     if (function_exists('mb_strtoupper') &&
@@ -1321,4 +1280,13 @@ function sq_count8bit($string) {
     return $count;
 }
 
+/**
+ * Callback function to trim whitespace from a value, to be used in array_walk
+ * @param string $value value to trim
+ * @since 1.5.2 and 1.4.7
+ */
+function sq_trim_value ( &$value ) {
+    $value = trim($value);
+}
+
 ?>