Revert r19877; no reason is given for it but it breaks things such as parameter subst...
[lhc/web/wiklou.git] / includes / DifferenceEngine.php
index d218917..e6218b6 100644 (file)
@@ -201,6 +201,10 @@ CONTROL;
                wfProfileIn( $fname );
 
                $wgOut->addHTML( "<hr /><h2>{$this->mPagetitle}</h2>\n" );
+               #add deleted rev tag if needed
+               if ( !$this->mNewRev->userCan(Revision::DELETED_TEXT) ) {
+                       $wgOut->addWikiText( wfMsg( 'rev-deleted-text-permission' ) );
+               }
 
                if( !$this->mNewRev->isCurrent() ) {
                        $oldEditSectionSetting = $wgOut->parserOptions()->setEditSection( false );
@@ -328,9 +332,14 @@ CONTROL;
                        }
                }
 
+               #loadtext is permission safe, this just clears out the diff
                if ( !$this->loadText() ) {
                        wfProfileOut( $fname );
                        return false;
+               } else if ( $this->mOldRev && !$this->mOldRev->userCan(Revision::DELETED_TEXT) ) {
+                 return '';
+               } else if ( $this->mNewRev && !$this->mNewRev->userCan(Revision::DELETED_TEXT) ) {
+                 return '';
                }
 
                $difftext = $this->generateDiffBody( $this->mOldtext, $this->mNewtext );
@@ -469,6 +478,14 @@ CONTROL;
         * Add the header to a diff body
         */
        function addHeader( $diff, $otitle, $ntitle, $multi = '' ) {
+               global $wgOut;
+       
+               if ( $this->mOldRev && $this->mOldRev->isDeleted(Revision::DELETED_TEXT) ) {
+                  $otitle = '<span class="history-deleted">'.$otitle.'</span>';
+               }
+               if ( $this->mNewRev && $this->mNewRev->isDeleted(Revision::DELETED_TEXT) ) {
+                  $ntitle = '<span class="history-deleted">'.$ntitle.'</span>';
+               }
                $header = "
                        <table border='0' width='98%' cellpadding='0' cellspacing='4' class='diff'>
                        <tr>
@@ -595,13 +612,13 @@ CONTROL;
                }
                if ( $this->mOldRev ) {
                        // FIXME: permission tests
-                       $this->mOldtext = $this->mOldRev->getText();
+                       $this->mOldtext = $this->mOldRev->revText();
                        if ( $this->mOldtext === false ) {
                                return false;
                        }
                }
                if ( $this->mNewRev ) {
-                       $this->mNewtext = $this->mNewRev->getText();
+                       $this->mNewtext = $this->mNewRev->revText();
                        if ( $this->mNewtext === false ) {
                                return false;
                        }