Aleksander Machniak
2015-07-29 9d78c68cbf5ce86f02e8fa16814293cdfd204432
program/lib/Roundcube/bootstrap.php
@@ -104,19 +104,29 @@
/**
 * Similar function as in_array() but case-insensitive
 * Similar function as in_array() but case-insensitive with multibyte support.
 *
 * @param string $needle    Needle value
 * @param array  $heystack  Array to search in
 * @param string $needle   Needle value
 * @param array  $heystack Array to search in
 *
 * @return boolean True if found, False if not
 */
function in_array_nocase($needle, $haystack)
{
    $needle = mb_strtolower($needle);
    foreach ((array)$haystack as $value) {
        if ($needle === mb_strtolower($value)) {
            return true;
    // use much faster method for ascii
    if (is_ascii($needle)) {
        foreach ((array) $haystack as $value) {
            if (strcasecmp($value, $needle) === 0) {
                return true;
            }
        }
    }
    else {
        $needle = mb_strtolower($needle);
        foreach ((array) $haystack as $value) {
            if ($needle === mb_strtolower($value)) {
                return true;
            }
        }
    }
@@ -353,42 +363,6 @@
        array('-stable', '-git'),
        array('.0', '.99'),
        $version);
}
/**
 * mbstring replacement functions
 */
if (!extension_loaded('mbstring'))
{
    function mb_strlen($str)
    {
        return strlen($str);
    }
    function mb_strtolower($str)
    {
        return strtolower($str);
    }
    function mb_strtoupper($str)
    {
        return strtoupper($str);
    }
    function mb_substr($str, $start, $len=null)
    {
        return substr($str, $start, $len);
    }
    function mb_strpos($haystack, $needle, $offset=0)
    {
        return strpos($haystack, $needle, $offset);
    }
    function mb_strrpos($haystack, $needle, $offset=0)
    {
        return strrpos($haystack, $needle, $offset);
    }
}
/**