From 8b35c78ed36903fb4a3e9cfeea7198d58061f38b Mon Sep 17 00:00:00 2001 From: tokul Date: Sun, 20 Jul 2003 16:17:08 +0000 Subject: [PATCH] Added optional mbstring functions to deal with i18n folder names git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@5355 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- functions/imap_utf7_local.php | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/functions/imap_utf7_local.php b/functions/imap_utf7_local.php index c2c9ae53..78457927 100644 --- a/functions/imap_utf7_local.php +++ b/functions/imap_utf7_local.php @@ -18,6 +18,24 @@ function imap_utf7_encode_local($s) { function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) { return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_encode', $s); } + + global $default_charset; + set_my_charset(); + + if ( ! $default_charset == "iso-8859-1" ) { + // Allows mbstring functions only with iso-8859-*, utf-8 and + // iso-2022-jp (Japanese) + // koi8-r and gb2312 can be added only in php 4.3+ + if ( preg_match("/iso-8859-/i",$default_charset) || + preg_match("/utf-8/i",$default_charset) || + preg_match("/iso-2022-jp/i",$default_charset) ) { + if(function_exists("mb_convert_encoding")) { + return mb_convert_encoding($s, "UTF7-IMAP", $default_charset); + } + } + } + + // Later code works only for ISO-8859-1 $b64_s = ''; // buffer for substring to be base64-encoded $utf7_s = ''; // imap-utf7-encoded string @@ -58,6 +76,24 @@ function imap_utf7_decode_local($s) { function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) { return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_decode', $s); } + + global $default_charset; + set_my_charset(); + + if ( ! $default_charset == "iso-8859-1" ) { + // Allows mbstring functions only with iso-8859-*, utf-8 and + // iso-2022-jp (Japanese) + // koi8-r and gb2312 can be added only in php 4.3+ + if ( preg_match("/iso-8859-/i",$default_charset) || + preg_match("/utf-8/i",$default_charset) || + preg_match("/iso-2022-jp/i",$default_charset) ) { + if(function_exists("mb_convert_encoding")) { + return mb_convert_encoding($s, $default_charset, "UTF7-IMAP"); + } + } + } + + // Later code works only for ISO-8859-1 $b64_s = ''; $iso_8859_1_s = ''; -- 2.25.1