Actually check sourceFile for failure, showing the error message in the install.
[lhc/web/wiklou.git] / includes / db / Database.php
index 5964774..bed6724 100644 (file)
@@ -2193,9 +2193,23 @@ abstract class DatabaseBase {
        function sourceFile( $filename, $lineCallback = false, $resultCallback = false ) {
                $fp = fopen( $filename, 'r' );
                if ( false === $fp ) {
-                       throw new MWException( "Could not open \"{$filename}\".\n" );
+                       if (!defined("MEDIAWIKI_INSTALL"))
+                               throw new MWException( "Could not open \"{$filename}\".\n" );
+                       else
+                               return "Could not open \"{$filename}\".\n";
+               }
+               try {
+                       $error = $this->sourceStream( $fp, $lineCallback, $resultCallback );
+               }
+               catch( MWException $e ) {
+                       if ( defined("MEDIAWIKI_INSTALL") ) {
+                               $error = $e->getMessage();
+                       } else {
+                               fclose( $fp );
+                               throw $e;
+                       }
                }
-               $error = $this->sourceStream( $fp, $lineCallback, $resultCallback );
+               
                fclose( $fp );
                return $error;
        }