* Fix rvdiffformat=array
authorVictor Vasiliev <vasilievvv@users.mediawiki.org>
Sat, 1 Dec 2007 09:08:02 +0000 (09:08 +0000)
committerVictor Vasiliev <vasilievvv@users.mediawiki.org>
Sat, 1 Dec 2007 09:08:02 +0000 (09:08 +0000)
* Fix notice about undefined index in ArrayDiffFormatter

includes/DifferenceEngine.php
includes/api/ApiQueryRevisions.php

index 2730c98..b3bf19a 100644 (file)
@@ -1742,7 +1742,7 @@ class ArrayDiffFormatter extends DiffFormatter
                                                $retval[] = array(
                                                        'action' => 'change',
                                                        'old' => $l,
-                                                       'new' => $edit->closing[$i],
+                                                       'new' => @$edit->closing[$i],
                                                        'oldline' => $oldline++,
                                                        'newline' => $newline++,
                                                );
index 82f7d7e..640fec7 100644 (file)
@@ -346,7 +346,14 @@ class ApiQueryRevisions extends ApiQueryBase {
                        $newText = explode("\n", $wgContLang->segmentForDiff($text));
                        $diff = new Diff($this->diffOldText, $newText);
                        $vals['diffto']['from'] = $this->diffto;
-                       ApiResult::setContent($vals['diffto'], $wgContLang->unsegmentForDiff($this->formatter->format($diff)));
+                       $arraydiff = $this->formatter instanceof ArrayDiffFormatter;
+                       if( $arraydiff ) {
+                               $changes = $wgContLang->unsegmentForDiff($this->formatter->format($diff));
+                               $this->getResult()->setIndexedTagName( $changes, 'change' );
+                               $vals['diffto'] = $changes;
+                       } else {
+                               ApiResult::setContent($vals['diffto'], $wgContLang->unsegmentForDiff($this->formatter->format($diff)));
+                       }
                }
                if($this->difftoprev)
                        // Cache the revision's content for later use