<?php
/**
- * imap_general.php
+ * imap_utf7_local.php
*
- * Copyright (c) 1999-2002 The SquirrelMail Project Team
+ * Copyright (c) 1999-2003 The SquirrelMail Project Team
* Licensed under the GNU GPL. For full terms see the file COPYING.
*
- * This implements all functions that do general imap functions.
+ * This implements all functions that do imap UTF7 conversions.
*
* $Id $
*/
+function sqimap_mb_convert_encoding($str, $to_encoding, $from_encoding, $default_charset)
+{
+ // 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 ( stristr('iso-8859-',$default_charset) ||
+ stristr('utf-8',$default_charset) ||
+ stristr('iso-2022-jp',$default_charset) ) {
+ if (function_exists('mb_convert_encoding')) {
+ return mb_convert_encoding($str, $to_encoding, $from_encoding);
+ }
+ }
+ return '';
+}
+
function imap_utf7_encode_local($s) {
+ global $languages, $squirrelmail_language;
+
+ if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
+ function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
+ return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_encode', $s);
+ }
+
+ if ($s == '') //If empty, don't bother
+ return '';
+
+ global $default_charset;
+ set_my_charset();
+ if (strtolower($default_charset) != 'iso-8859-1') {
+ $utf7_s = sqimap_mb_convert_encoding($s, 'UTF7-IMAP', $default_charset, $default_charset);
+ if ($utf7_s != '')
+ return $utf7_s;
+ }
+
+ // Later code works only for ISO-8859-1
+
$b64_s = ''; // buffer for substring to be base64-encoded
$utf7_s = ''; // imap-utf7-encoded string
for ($i = 0; $i < strlen($s); $i++) {
}
function imap_utf7_decode_local($s) {
+ global $languages, $squirrelmail_language;
+
+ if (isset($languages[$squirrelmail_language]['XTRA_CODE']) &&
+ function_exists($languages[$squirrelmail_language]['XTRA_CODE'])) {
+ return $languages[$squirrelmail_language]['XTRA_CODE']('utf7-imap_decode', $s);
+ }
+
+ if ($s == '') //If empty, don't bother
+ return '';
+
+ global $default_charset;
+ set_my_charset();
+ if (strtolower($default_charset) != 'iso-8859-1') {
+ $utf7_s = sqimap_mb_convert_encoding($s, $default_charset, 'UTF7-IMAP', $default_charset);
+ if ($utf7_s != '')
+ return $utf7_s;
+ }
+
+ // Later code works only for ISO-8859-1
+
$b64_s = '';
$iso_8859_1_s = '';
for ($i = 0, $len = strlen($s); $i < $len; $i++) {
return $d;
}
-?>
+?>
\ No newline at end of file