Per discussion on wikitech-l, add an (undo) link for on-top revisions as well. Also...
authorAndrew Garrett <werdna@users.mediawiki.org>
Mon, 11 Dec 2006 09:39:39 +0000 (09:39 +0000)
committerAndrew Garrett <werdna@users.mediawiki.org>
Mon, 11 Dec 2006 09:39:39 +0000 (09:39 +0000)
includes/DifferenceEngine.php
includes/EditPage.php

index 77fef48..a72f015 100644 (file)
@@ -523,9 +523,11 @@ CONTROL;
                        $newLink = $this->mNewPage->escapeLocalUrl();
                        $this->mPagetitle = htmlspecialchars( wfMsg( 'currentrev' ) );
                        $newEdit = $this->mNewPage->escapeLocalUrl( 'action=edit' );
+                       $newUndo = $this->mNewPage->escapeLocalUrl( 'action=edit&undo=' . $this->mNewid );
 
                        $this->mNewtitle = "<a href='$newLink'>{$this->mPagetitle}</a> ($timestamp)"
-                               . " (<a href='$newEdit'>" . htmlspecialchars( wfMsg( 'editold' ) ) . "</a>)";
+                               . " (<a href='$newEdit'>" . htmlspecialchars( wfMsg( 'editold' ) ) . "</a>)"
+                               . " (<a href='$newUndo'>" . htmlspecialchars( wfMsg( 'editundo' ) ) . "</a>)";
 
                } else {
                        $newLink = $this->mNewPage->escapeLocalUrl( 'oldid=' . $this->mNewid );
index 0d6f34b..9082fd2 100644 (file)
@@ -109,8 +109,13 @@ class EditPage {
                                        $undorev_text = $undorev->getText();
                                        $oldrev_text = $oldrev->getText();
                                        $currev_text = $text;
-       
-                                       $result = wfMerge($undorev_text, $oldrev_text, $currev_text, $text);
+
+                                       #No use doing a merge if it's just a straight revert.
+                                       if ($currev_text != $undorev_text) {
+                                               $result = wfMerge($undorev_text, $oldrev_text, $currev_text, $text);
+                                       } else {
+                                               $result = true;
+                                       }
        
                                        if (!$result) {
                                                #Undoing failed. Bailing out with regular revision text.