Bug 5136: corner cases with relative oldids are wrong
authorLupin <lupin-wp@users.mediawiki.org>
Wed, 1 Mar 2006 03:28:48 +0000 (03:28 +0000)
committerLupin <lupin-wp@users.mediawiki.org>
Wed, 1 Mar 2006 03:28:48 +0000 (03:28 +0000)
includes/RawPage.php

index b622fec..0e46df5 100644 (file)
@@ -44,10 +44,21 @@ class RawPage {
                $oldid = $this->mRequest->getInt( 'oldid' );
                switch ( $wgRequest->getText( 'direction' ) ) {
                        case 'next': 
-                               $oldid = $this->mTitle->getNextRevisionId( $oldid );
+                               # output next revision, or nothing if there isn't one
+                               if ( $oldid ) {
+                                       $oldid = $this->mTitle->getNextRevisionId( $oldid );
+                               }
+                               $oldid = $oldid ? $oldid : -1;
                                break;
                        case 'prev': 
-                               $oldid = $this->mTitle->getPreviousRevisionId( $oldid );
+                               # output previous revision, or nothing if there isn't one
+                               if ( ! $oldid ) {
+                                       # get the current revision so we can get the penultimate one
+                                       $this->mArticle->getTouched();
+                                       $oldid = $this->mArticle->mLatest;
+                               }
+                               $prev = $this->mTitle->getPreviousRevisionId( $oldid );
+                               $oldid = $prev ? $prev : -1 ;
                                break;
                        case 'cur':
                                $oldid = 0;