summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/AbuseFilter/includes/TableDiffFormatterFullContext.php
blob: f88b953f52a5ebf6d4b249963ebd0deb1487d227 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

/**
 * Like TableDiffFormatter, but will always render the full context
 * (even for empty diffs).
 *
 * @private
 */
class TableDiffFormatterFullContext extends TableDiffFormatter {
	/**
	 * Format a diff.
	 *
	 * @param Diff $diff
	 * @return string The formatted output.
	 */
	function format( $diff ) {
		$xlen = $ylen = 0;

		// Calculate the length of the left and the right side
		foreach ( $diff->edits as $edit ) {
			if ( $edit->orig ) {
				$xlen += count( $edit->orig );
			}
			if ( $edit->closing ) {
				$ylen += count( $edit->closing );
			}
		}

		// Just render the diff with no preprocessing
		$this->startDiff();
		$this->block( 1, $xlen, 1, $ylen, $diff->edits );
		$end = $this->endDiff();

		return $end;
	}
}