2 class Pman_MTrack_Diff extends Pman {
6 die("nothing here yet");
10 static function toHTML($input)
15 if (is_resource($input)) {
17 while (($line = fgets($input)) !== false) {
18 $lines[] = rtrim($line, "\r\n");
24 if (is_string($input)) {
26 $input = preg_split("/\r?\n/", $input);
28 $abase = md5(join("\n", $input));
30 //echo '<pre>' . implode("\n", $input);exit;
31 $html = "<code><table class='code diff'>";
32 //$html = "<pre class='code diff'>";
38 $line = array_shift($input);
40 if (!strncmp($line, '@@ ', 3)) {
41 /* done with preamble */
44 $html .= "<tr class='meta'><td class='lineno'></td>".
45 "<td class='lineno'></td><td class='lineno'></td><td width='100%'>".
46 htmlspecialchars($line, ENT_QUOTES, 'utf-8') .
59 if (preg_match("/^@@\s+-(\pN+)(?:,\pN+)?\s+\+(\pN+)(?:,\pN+)?\s*@@/",
61 $lines[0] = (int)$M[1] - 1;
62 $lines[1] = (int)$M[2] - 1;
66 } else if (preg_match("/^diff /", $line)) {
70 } elseif (strlen($line)) {
71 if ($line[0] == '-') {
74 } elseif ($line[0] == '+') {
87 $row = "<tr class='$class";
91 if ($class != 'meta' && $first) {
96 $anchor = $abase . '.' . $nlines;
97 $anchor_row = "<td class='linelink'><a name='$anchor'></a>".
98 "<a href='#$anchor' title='link to this line'>#</a></td>";
100 $txt_data = '<td class="line" width="100%">'.
101 htmlspecialchars($line, ENT_QUOTES, 'utf-8') .
107 $row .= '<td colspan="4" class="line" width="100%">' .
108 htmlspecialchars($line, ENT_QUOTES, 'utf-8') . "</td></tr>\n";
115 $row .= '<td colspan="4" class="line" width="100%">' .
116 htmlspecialchars($line, ENT_QUOTES, 'utf-8') . "</td></tr>\n";
121 $row .= "<td class='lineno'></td><td class='lineno'>" .
122 $lines[1] . "</td>" .
123 $anchor_row . $txt_data ;
129 $row .= "<td class='lineno'>" . $lines[0] .
130 "</td><td class='lineno'></td>" .
131 $anchor_row . $txt_data ;
137 $row .= "<td class='lineno'>" . $lines[0] .
138 "</td><td class='lineno'>" . $lines[1] . "</td>" .
139 $anchor_row . $txt_data ;
145 if (!count($input)) {
148 $line = array_shift($input);