From c1e259c8d773b8dc04e1ea46995d4f7ec5f7a271 Mon Sep 17 00:00:00 2001 From: Victor Vasiliev Date: Sat, 1 Dec 2007 09:08:02 +0000 Subject: [PATCH] * Fix rvdiffformat=array * Fix notice about undefined index in ArrayDiffFormatter --- includes/DifferenceEngine.php | 2 +- includes/api/ApiQueryRevisions.php | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/includes/DifferenceEngine.php b/includes/DifferenceEngine.php index 2730c98cff..b3bf19a663 100644 --- a/includes/DifferenceEngine.php +++ b/includes/DifferenceEngine.php @@ -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++, ); diff --git a/includes/api/ApiQueryRevisions.php b/includes/api/ApiQueryRevisions.php index 82f7d7ef73..640fec77b2 100644 --- a/includes/api/ApiQueryRevisions.php +++ b/includes/api/ApiQueryRevisions.php @@ -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 -- 2.20.1