fixed horrible sidebar breakage under windows due to \\r\\n line endings in Language.php
[lhc/web/wiklou.git] / includes / GlobalFunctions.php
index aa3f6d3..04738d6 100644 (file)
@@ -421,6 +421,10 @@ function wfMsgReal( $key, $args, $useDB, $forContent=false ) {
                        $message = $wgParser->transformMsg($message, $wgMsgParserOptions);
                }
        }
+       
+       # Fix windows line-endings
+       # Some messages are split with explode("\n", $msg)
+       $message = str_replace( "\r", '', $message );
 
        # Replace arguments
        if( count( $args ) ) {
@@ -885,8 +889,14 @@ function wfHttpError( $code, $label, $desc ) {
        header( "Status: $code $label" );
        $wgOut->sendCacheControl();
 
-       header( 'Content-type: text/plain' );
-       print $desc."\n";
+       header( 'Content-type: text/html' );
+       print "<html><head><title>" .
+               htmlspecialchars( $label ) . 
+               "</title></head><body><h1>" . 
+               htmlspecialchars( $label ) .
+               "</h1><p>" .
+               htmlspecialchars( $desc ) .
+               "</p></body></html>\n";
 }
 
 /**
@@ -1229,6 +1239,37 @@ function wfElementClean( $element, $attribs = array(), $contents = '') {
        return wfElement( $element, $attribs, UtfNormal::cleanUp( $contents ) );
 }
 
+/** Global singleton instance of MimeMagic. This is initialized on demand,
+* please always use the wfGetMimeMagic() function to get the instance.
+* 
+* @private
+*/
+$wgMimeMagic= NULL;
+
+/** Factory functions for the global MimeMagic object.
+* This function always returns the same singleton instance of MimeMagic.
+* That objects will be instantiated on the first call to this function.
+* If needed, the MimeMagic.php file is automatically included by this function.
+* @return MimeMagic the global MimeMagic objects.
+*/
+function &wfGetMimeMagic() {
+       global $wgMimeMagic;
+       
+       if (!is_null($wgMimeMagic)) {
+               return $wgMimeMagic;
+       }
+
+       if (!class_exists("MimeMagic")) {
+               #include on demand
+               require_once("MimeMagic.php");
+       }
+       
+       $wgMimeMagic= new MimeMagic();
+       
+       return $wgMimeMagic;
+}
+
+
 /**
  * Tries to get the system directory for temporary files.
  * The TMPDIR, TMP, and TEMP environment variables are checked in sequence,
@@ -1250,4 +1291,22 @@ function wfTempDir() {
        return '/tmp';
 }
 
+/**
+ * Make directory, and make all parent directories if they don't exist
+ */
+function wfMkdirParents( $fullDir, $mode ) {
+       $parts = explode( '/', $fullDir );
+       $path = '';
+       $success = false;
+       foreach ( $parts as $dir ) {
+               $path .= $dir . '/';
+               if ( !is_dir( $path ) ) {
+                       if ( !mkdir( $path, $mode ) ) {
+                               return false;
+                       }
+               }
+       }
+       return true;
+}
+
 ?>