use content-based diff
authorDaniel Kinzler <daniel.kinzler@wikimedia.de>
Fri, 23 Mar 2012 15:18:44 +0000 (15:18 +0000)
committerDaniel Kinzler <daniel.kinzler@wikimedia.de>
Wed, 4 Apr 2012 17:58:47 +0000 (19:58 +0200)
includes/api/ApiQueryRevisions.php

index fa58bdf..82e15ee 100644 (file)
@@ -503,11 +503,13 @@ class ApiQueryRevisions extends ApiQueryBase {
                                $vals['diff'] = array();
                                $context = new DerivativeContext( $this->getContext() );
                                $context->setTitle( $title );
+                $handler = ContentHandler::getForTitle( $title );
+
                                if ( !is_null( $this->difftotext ) ) {
-                                       $engine = new DifferenceEngine( $context );
-                                       $engine->setText( $text, $this->difftotext );
+                                       $engine = $handler->getDifferenceEngine( $context );
+                                       $engine->setText( $text, $this->difftotext ); #FIXME: use content object!
                                } else {
-                                       $engine = new DifferenceEngine( $context, $revision->getID(), $this->diffto );
+                                       $engine = $handler->getDifferenceEngine( $context, $revision->getID(), $this->diffto );
                                        $vals['diff']['from'] = $engine->getOldid();
                                        $vals['diff']['to'] = $engine->getNewid();
                                }