Merge "Less wild whitespace"
[lhc/web/wiklou.git] / includes / Fallback.php
index 2cca1e8..4b138c1 100644 (file)
@@ -1,6 +1,7 @@
 <?php
-
 /**
+ * Fallback functions for PHP installed without mbstring support.
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
+ * @file
  */
 
 /**
  * Fallback functions for PHP installed without mbstring support
  */
 class Fallback {
-       
+
+       /**
+        * @param $from
+        * @param $to
+        * @param $string
+        * @return string
+        */
        public static function iconv( $from, $to, $string ) {
                if ( substr( $to, -8 ) == '//IGNORE' ) {
                        $to = substr( $to, 0, strlen( $to ) - 8 );
@@ -48,7 +56,7 @@ class Fallback {
         * Larger offsets are still fairly efficient for Latin text, but
         * can be up to 100x slower than native if the text is heavily
         * multibyte and we have to slog through a few hundred kb.
-        * 
+        *
         * @param $str
         * @param $start
         * @param $count string
@@ -60,22 +68,27 @@ class Fallback {
                        $split = self::mb_substr_split_unicode( $str, intval( $start ) );
                        $str = substr( $str, $split );
                }
-       
+
                if( $count !== 'end' ) {
                        $split = self::mb_substr_split_unicode( $str, intval( $count ) );
                        $str = substr( $str, 0, $split );
                }
-       
+
                return $str;
        }
-       
+
+       /**
+        * @param $str
+        * @param $splitPos
+        * @return int
+        */
        public static function mb_substr_split_unicode( $str, $splitPos ) {
                if( $splitPos == 0 ) {
                        return 0;
                }
-       
+
                $byteLen = strlen( $str );
-       
+
                if( $splitPos > 0 ) {
                        if( $splitPos > 256 ) {
                                // Optimize large string offsets by skipping ahead N bytes.
@@ -90,7 +103,7 @@ class Fallback {
                                $charPos = 0;
                                $bytePos = 0;
                        }
-       
+
                        while( $charPos++ < $splitPos ) {
                                ++$bytePos;
                                // Move past any tail bytes
@@ -110,10 +123,10 @@ class Fallback {
                                }
                        }
                }
-       
+
                return $bytePos;
        }
-       
+
        /**
         * Fallback implementation of mb_strlen, hardcoded to UTF-8.
         * @param string $str
@@ -123,20 +136,20 @@ class Fallback {
        public static function mb_strlen( $str, $enc = '' ) {
                $counts = count_chars( $str );
                $total = 0;
-       
+
                // Count ASCII bytes
                for( $i = 0; $i < 0x80; $i++ ) {
                        $total += $counts[$i];
                }
-       
+
                // Count multibyte sequence heads
                for( $i = 0xc0; $i < 0xff; $i++ ) {
                        $total += $counts[$i];
                }
                return $total;
        }
-       
-       
+
+
        /**
         * Fallback implementation of mb_strpos, hardcoded to UTF-8.
         * @param $haystack String
@@ -147,17 +160,17 @@ class Fallback {
         */
        public static function mb_strpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
                $needle = preg_quote( $needle, '/' );
-       
+
                $ar = array();
                preg_match( '/' . $needle . '/u', $haystack, $ar, PREG_OFFSET_CAPTURE, $offset );
-       
+
                if( isset( $ar[0][1] ) ) {
                        return $ar[0][1];
                } else {
                        return false;
                }
-       }       
-       
+       }
+
        /**
         * Fallback implementation of mb_strrpos, hardcoded to UTF-8.
         * @param $haystack String
@@ -168,10 +181,10 @@ class Fallback {
         */
        public static function mb_strrpos( $haystack, $needle, $offset = 0, $encoding = '' ) {
                $needle = preg_quote( $needle, '/' );
-       
+
                $ar = array();
                preg_match_all( '/' . $needle . '/u', $haystack, $ar, PREG_OFFSET_CAPTURE, $offset );
-       
+
                if( isset( $ar[0] ) && count( $ar[0] ) > 0 &&
                        isset( $ar[0][count( $ar[0] ) - 1][1] ) ) {
                        return $ar[0][count( $ar[0] ) - 1][1];
@@ -196,5 +209,5 @@ class Fallback {
                }
                return false;
        }
-               
+
 }