* 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
* SquirrelMail version number -- DO NOT CHANGE
*/
global $version;
-$version = '1.5.1 [CVS]';
+$version = '1.5.2 [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);
+$SQM_INTERNAL_VERSION = array(1,5,2);
/**
* There can be a circular issue with includes, where the $version string is
*/
include_once(SM_PATH . 'functions/global.php');
+/**
+ * Include Compatibility plugin if available.
+ */
+if (file_exists(SM_PATH . 'plugins/compatibility/functions.php'))
+ include_once(SM_PATH . 'plugins/compatibility/functions.php');
+
/**
* Appends citation markers to the string.
* Also appends a trailing space.
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
*
* If you want to test all mbstring encodings - fill $list_of_encodings
* array.
* @return array list of encodings supported by php mbstring extension
- * @since 1.5.1
+ * @since 1.5.1 and 1.4.6
*/
function sq_mb_list_encodings() {
if (! function_exists('mb_internal_encoding'))
'windows-1256',
'tis-620',
'iso-2022-jp',
+ 'euc-cn',
'euc-kr',
+ 'euc-tw',
+ 'uhc',
'utf7-imap');
$supported_encodings=array();
* Callback function used to lowercase array values.
* @param string $val array value
* @param mixed $key array key
- * @since 1.5.1
+ * @since 1.5.1 and 1.4.6
*/
function sq_lowercase_array_vals(&$val,$key) {
$val = strtolower($val);
* vanilla string length function is used.
* @param string $str string
* @param string $charset charset
- * @since 1.5.1
+ * @since 1.5.1 and 1.4.6
* @return integer number of characters in string
*/
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
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') &&
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') &&
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') &&
return $count;
}
-?>
\ No newline at end of file
+?>