]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/Wiki.php
MediaWiki 1.15.0
[autoinstallsdev/mediawiki.git] / includes / Wiki.php
index ce4ce67ec289c23ea02859d6902ab0f9a1c8dd1b..38f19c96f3a762723df06a336ad8c87110f936be 100644 (file)
@@ -115,12 +115,15 @@ class MediaWiki {
                        if( count( $wgContLang->getVariants() ) > 1 && !is_null( $ret ) && $ret->getArticleID() == 0 )
                                $wgContLang->findVariantLink( $title, $ret );
                }
-               if( ( $oldid = $wgRequest->getInt( 'oldid' ) )
-                       && ( is_null( $ret ) || $ret->getNamespace() != NS_SPECIAL ) ) {
-                       // Allow oldid to override a changed or missing title.
-                       $rev = Revision::newFromId( $oldid );
-                       if( $rev ) {
-                               $ret = $rev->getTitle();
+               # For non-special titles, check for implicit titles
+               if( is_null( $ret ) || $ret->getNamespace() != NS_SPECIAL ) {
+                       // We can have urls with just ?diff=,?oldid= or even just ?diff=
+                       $oldid = $wgRequest->getInt( 'oldid' );
+                       $oldid = $oldid ? $oldid : $wgRequest->getInt( 'diff' );
+                       // Allow oldid to override a changed or missing title
+                       if( $oldid ) {
+                               $rev = Revision::newFromId( $oldid );
+                               $ret = $rev ? $rev->getTitle() : $ret;
                        }
                }
                return $ret;
@@ -447,8 +450,10 @@ class MediaWiki {
                                $article->view();
                                break;
                        case 'raw': // includes JS/CSS
+                               wfProfileIn( __METHOD__.'-raw' );
                                $raw = new RawPage( $article );
                                $raw->view();
+                               wfProfileOut( __METHOD__.'-raw' );
                                break;
                        case 'watch':
                        case 'unwatch':