program/include/rcmail.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_imap.php | ●●●●● patch | view | raw | blame | history | |
program/include/rcube_shared.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/compose.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/show.inc | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/spell_pspell.inc | ●●●●● patch | view | raw | blame | history |
program/include/rcmail.php
@@ -481,7 +481,7 @@ // lowercase username if it's an e-mail address (#1484473) if (strpos($username, '@')) $username = rc_strtolower($username); $username = mb_strtolower($username); // user already registered -> overwrite username if ($user = rcube_user::query($username, $host)) program/include/rcube_imap.php
@@ -2397,10 +2397,10 @@ $key, $index, $headers->uid, (string)rc_substr($this->db->encode($this->decode_header($headers->subject, TRUE)), 0, 128), (string)rc_substr($this->db->encode($this->decode_header($headers->from, TRUE)), 0, 128), (string)rc_substr($this->db->encode($this->decode_header($headers->to, TRUE)), 0, 128), (string)rc_substr($this->db->encode($this->decode_header($headers->cc, TRUE)), 0, 128), (string)mb_substr($this->db->encode($this->decode_header($headers->subject, TRUE)), 0, 128), (string)mb_substr($this->db->encode($this->decode_header($headers->from, TRUE)), 0, 128), (string)mb_substr($this->db->encode($this->decode_header($headers->to, TRUE)), 0, 128), (string)mb_substr($this->db->encode($this->decode_header($headers->cc, TRUE)), 0, 128), (int)$headers->size, serialize($this->db->encode(clone $headers)), is_object($struct) ? serialize($this->db->encode(clone $struct)) : NULL @@ -2788,7 +2788,7 @@ if (($p = array_search(strtolower($folder), $this->default_folders_lc)) !== false && !$a_defaults[$p]) $a_defaults[$p] = $folder; else $folders[$folder] = rc_strtolower(rcube_charset_convert($folder, 'UTF7-IMAP')); $folders[$folder] = mb_strtolower(rcube_charset_convert($folder, 'UTF7-IMAP')); } // sort folders and place defaults on the top program/include/rcube_shared.inc
@@ -185,7 +185,6 @@ return $var ? '1' : '0'; else return "'".JQ($var)."'"; } @@ -209,9 +208,9 @@ */ function in_array_nocase($needle, $haystack) { $needle = rc_strtolower($needle); $needle = mb_strtolower($needle); foreach ($haystack as $value) if ($needle===rc_strtolower($value)) if ($needle===mb_strtolower($value)) return true; return false; @@ -338,81 +337,11 @@ return $abs_path; } /** * Wrapper function for strlen */ function rc_strlen($str) { if (function_exists('mb_strlen')) return mb_strlen($str); else return strlen($str); } /** * Wrapper function for strtolower */ function rc_strtolower($str) { if (function_exists('mb_strtolower')) return mb_strtolower($str); else return strtolower($str); } /** * Wrapper function for strtoupper */ function rc_strtoupper($str) { if (function_exists('mb_strtoupper')) return mb_strtoupper($str); else return strtoupper($str); } /** * Wrapper function for substr */ function rc_substr($str, $start, $len=null) { if (function_exists('mb_substr')) return mb_substr($str, $start, $len); else return substr($str, $start, $len); } /** * Wrapper function for strpos */ function rc_strpos($haystack, $needle, $offset=0) { if (function_exists('mb_strpos')) return mb_strpos($haystack, $needle, $offset); else return strpos($haystack, $needle, $offset); } /** * Wrapper function for strrpos */ function rc_strrpos($haystack, $needle, $offset=0) { if (function_exists('mb_strrpos')) return mb_strrpos($haystack, $needle, $offset); else return strrpos($haystack, $needle, $offset); } /** * Wrapper function for wordwrap */ function rc_wordwrap($string, $width=75, $break="\n", $cut=false) { if (!function_exists('mb_substr') || !function_exists('mb_strlen')) return wordwrap($string, $width, $break, $cut); $para = explode($break, $string); $string = ''; while (count($para)) { @@ -475,30 +404,6 @@ } return $hdrs[$key]; } /** * Replace the middle part of a string with ... * if it is longer than the allowed length * * @param string Input string * @param int Max. length * @param string Replace removed chars with this * @return string Abbreviated string */ function abbreviate_string($str, $maxlength, $place_holder='...') { $length = rc_strlen($str); $first_part_length = floor($maxlength/2) - rc_strlen($place_holder); if ($length > $maxlength) { $second_starting_location = $length - $maxlength + $first_part_length + 1; $str = rc_substr($str, 0, $first_part_length) . $place_holder . rc_substr($str, $second_starting_location, $length); } return $str; } @@ -578,6 +483,29 @@ return $ts; } /** * Replace the middle part of a string with ... * if it is longer than the allowed length * * @param string Input string * @param int Max. length * @param string Replace removed chars with this * @return string Abbreviated string */ function abbreviate_string($str, $maxlength, $place_holder='...') { $length = mb_strlen($str); $first_part_length = floor($maxlength/2) - mb_strlen($place_holder); if ($length > $maxlength) { $second_starting_location = $length - $maxlength + $first_part_length + 1; $str = mb_substr($str, 0, $first_part_length) . $place_holder . mb_substr($str, $second_starting_location, $length); } return $str; } /** * A method to guess the mime_type of an attachment. @@ -683,4 +611,51 @@ return $result; } /** * mbstring replacement functions */ if (!function_exists('mb_strlen')) { function mb_strlen($str) { return strlen($str); } } if (!function_exists('mb_strtolower')) { function mb_strtolower($str) { return strtolower($str); } } if (!function_exists('mb_strtoupper')) { function mb_strtoupper($str) { return strtoupper($str); } } if (!function_exists('mb_substr')) { function mb_substr($str, $start, $len=null) { return substr($str, $start, $len); } } if (!function_exists('mb_strpos')) { function mb_strpos($haystack, $needle, $offset=0) { return strpos($haystack, $needle, $offset); } } if (!function_exists('mb_strrpos')) { function mb_strrpos($haystack, $needle, $offset=0) { return strrpos($haystack, $needle, $offset); } } ?> program/steps/mail/compose.inc
@@ -267,7 +267,7 @@ foreach ($a_to as $addr) { if (!empty($addr['mailto'])) $a_recipients[] = rc_strtolower($addr['mailto']); $a_recipients[] = mb_strtolower($addr['mailto']); } if (!empty($MESSAGE->headers->cc)) @@ -276,7 +276,7 @@ foreach ($a_cc as $addr) { if (!empty($addr['mailto'])) $a_recipients[] = rc_strtolower($addr['mailto']); $a_recipients[] = mb_strtolower($addr['mailto']); } } } @@ -318,7 +318,7 @@ if ($compose_mode == RCUBE_COMPOSE_DRAFT && strstr($MESSAGE->headers->from, $sql_arr['email'])) $from_id = $sql_arr['identity_id']; // set identity if it's one of the reply-message recipients (with prio for default identity) else if (in_array(rc_strtolower($sql_arr['email']), $a_recipients) && (empty($from_id) || $sql_arr['standard'])) else if (in_array(mb_strtolower($sql_arr['email']), $a_recipients) && (empty($from_id) || $sql_arr['standard'])) $from_id = $sql_arr['identity_id']; } } program/steps/mail/show.inc
@@ -162,7 +162,7 @@ $ol .= html::tag('li', null, sprintf("%s (%s)", Q($attach_prop->filename), Q(show_bytes($attach_prop->size)))); } else { if (rc_strlen($attach_prop->filename) > 50) { if (mb_strlen($attach_prop->filename) > 50) { $filename = abbreviate_string($attach_prop->filename, 50); $title = $attach_prop->filename; } program/steps/mail/spell_pspell.inc
@@ -49,13 +49,13 @@ $plink = pspell_new(get_input_value('lang', RCUBE_INPUT_GET), null, null, RCMAIL_CHARSET, PSPELL_FAST); // send output $out = '<?xml version="1.0" encoding="'.RCMAIL_CHARSET.'"?><spellresult charschecked="'.rc_strlen($text).'">'; $out = '<?xml version="1.0" encoding="'.RCMAIL_CHARSET.'"?><spellresult charschecked="'.mb_strlen($text).'">'; $diff = 0; foreach ($words as $w) { $word = trim($w[0]); $pos = $w[1] - $diff; $len = rc_strlen($word); $len = mb_strlen($word); if ($word && $plink && !pspell_check($plink, $word)) { $suggestions = pspell_suggest($plink, $word); if (sizeof($suggestions)>10)