Merge "Add option to chose what language to fetch file description in."
[lhc/web/wiklou.git] / includes / GlobalFunctions.php
index 9a7f62b..414c822 100644 (file)
@@ -93,6 +93,18 @@ if ( !function_exists( 'mb_strrpos' ) ) {
                return Fallback::mb_strrpos( $haystack, $needle, $offset, $encoding );
        }
 }
+
+// gzdecode function only exists in PHP >= 5.4.0
+// http://php.net/gzdecode
+if ( !function_exists( 'gzdecode' ) ) {
+       /**
+        * @codeCoverageIgnore
+        * @return string
+        */
+       function gzdecode( $data ) {
+               return gzinflate( substr( $data, 10, -8 ) );
+       }
+}
 /// @endcond
 
 /**
@@ -2015,12 +2027,15 @@ function wfEscapeWikiText( $text ) {
                $repl = array(
                        '"' => '&#34;', '&' => '&#38;', "'" => '&#39;', '<' => '&#60;',
                        '=' => '&#61;', '>' => '&#62;', '[' => '&#91;', ']' => '&#93;',
-                       '{' => '&#123;', '|' => '&#124;', '}' => '&#125;',
+                       '{' => '&#123;', '|' => '&#124;', '}' => '&#125;', ';' => '&#59;',
                        "\n#" => "\n&#35;", "\r#" => "\r&#35;",
                        "\n*" => "\n&#42;", "\r*" => "\r&#42;",
                        "\n:" => "\n&#58;", "\r:" => "\r&#58;",
-                       "\n;" => "\n&#59;", "\r;" => "\r&#59;",
                        "\n " => "\n&#32;", "\r " => "\r&#32;",
+                       "\n\n" => "\n&#10;", "\r\n" => "&#13;\n",
+                       "\n\r" => "\n&#13;", "\r\r" => "\r&#13;",
+                       "\n\t" => "\n&#9;", "\r\t" => "\r&#9;", // "\n\t\n" is treated like "\n\n"
+                       "\n----" => "\n&#45;---", "\r----" => "\r&#45;---",
                        '__' => '_&#95;', '://' => '&#58;//',
                );
 
@@ -2522,7 +2537,7 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
                wfDebug( "$caller: called wfMkdirParents($dir)\n" );
        }
 
-       if ( strval( $dir ) === '' || file_exists( $dir ) ) {
+       if ( strval( $dir ) === '' || ( file_exists( $dir ) && is_dir( $dir ) ) ) {
                return true;
        }
 
@@ -2538,6 +2553,11 @@ function wfMkdirParents( $dir, $mode = null, $caller = null ) {
        wfRestoreWarnings();
 
        if ( !$ok ) {
+               //directory may have been created on another request since we last checked
+               if ( is_dir( $dir ) ) {
+                       return true;
+               }
+
                // PHP doesn't report the path in its warning message, so add our own to aid in diagnosis.
                wfLogWarning( sprintf( "failed to mkdir \"%s\" mode 0%o", $dir, $mode ) );
        }
@@ -3183,9 +3203,9 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1, $lowercase = t
                $sourceBase > 36 ||
                $destBase < 2 ||
                $destBase > 36 ||
-               $sourceBase != (int) $sourceBase ||
-               $destBase != (int) $destBase ||
-               $pad != (int) $pad ||
+               $sourceBase != (int)$sourceBase ||
+               $destBase != (int)$destBase ||
+               $pad != (int)$pad ||
                !preg_match( "/^[" . substr( '0123456789abcdefghijklmnopqrstuvwxyz', 0, $sourceBase ) . "]+$/i", $input )
        ) {
                return false;
@@ -3239,7 +3259,7 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1, $lowercase = t
                                $work += $digit;
 
                                if ( $workDigits || $work >= $destBase ) {
-                                       $workDigits[] = (int) ( $work / $destBase );
+                                       $workDigits[] = (int)( $work / $destBase );
                                }
                                $work %= $destBase;
                        }