Aleksander Machniak
2014-10-18 ced34cb15e095836767971aa4d27b141fb1d7ec9
program/lib/Roundcube/rcube_charset.php
@@ -273,17 +273,8 @@
            else if ($from == 'ISO-8859-1' && function_exists('utf8_encode')) {
                return utf8_encode($str);
            }
            else if (class_exists('utf8')) {
                if (!$conv) {
                    $conv = new utf8($from);
                }
                else {
                    $conv->loadCharset($from);
                }
                if ($_str = $conv->strToUtf8($str)) {
                    return $_str;
                }
            else  {
                user_error("No suitable function found for UTF-8 encoding", E_USER_WARNING);
            }
        }
@@ -298,17 +289,8 @@
            else if ($to == 'ISO-8859-1' && function_exists('utf8_decode')) {
                return utf8_decode($str);
            }
            else if (class_exists('utf8')) {
                if (!$conv) {
                    $conv = new utf8($to);
                }
                else {
                    $conv->loadCharset($from);
                }
                if ($_str = $conv->strToUtf8($str)) {
                    return $_str;
                }
            else {
                user_error("No suitable function found for UTF-8 decoding", E_USER_WARNING);
            }
        }
@@ -759,7 +741,12 @@
        // iconv/mbstring are much faster (especially with long strings)
        if (function_exists('mb_convert_encoding')) {
            if (($res = mb_convert_encoding($input, 'UTF-8', 'UTF-8')) !== false) {
            $msch = mb_substitute_character('none');
            mb_substitute_character('none');
            $res = mb_convert_encoding($input, 'UTF-8', 'UTF-8');
            mb_substitute_character($msch);
            if ($res !== false) {
                return $res;
            }
        }
@@ -795,8 +782,8 @@
                }
                $seq = '';
                $out .= $chr;
            // first (or second) byte of multibyte sequence
            }
            // first (or second) byte of multibyte sequence
            else if ($ord >= 0xC0) {
                if (strlen($seq) > 1) {
                    $out .= preg_match($regexp, $seq) ? $seq : '';
@@ -806,8 +793,8 @@
                    $seq = '';
                }
                $seq .= $chr;
            // next byte of multibyte sequence
            }
            // next byte of multibyte sequence
            else if ($seq) {
                $seq .= $chr;
            }