2 class Pman_MTrack_Diff extends Pman {
6 die("nothing here yet");
10 function toHTML($input)
17 if (is_resource($input)) {
19 while (($line = fgets($input)) !== false) {
20 $lines[] = rtrim($line, "\r\n");
26 if (is_string($input)) {
28 $input = preg_split("/\r?\n/", $input);
30 $abase = md5(join("\n", $input));
33 $html = "<table class='code diff'>";
34 //$html = "<pre class='code diff'>";
40 $line = array_shift($input);
42 if (!strncmp($line, '@@ ', 3)) {
43 /* done with preamble */
46 $html .= "<tr class='meta'><td class='lineno'></td>".
47 "<td class='lineno'></td><td class='lineno'></td><td width='100%'>".
48 htmlspecialchars($line, ENT_QUOTES, 'utf-8') .
57 if (preg_match("/^@@\s+-(\pN+)(?:,\pN+)?\s+\+(\pN+)(?:,\pN+)?\s*@@/",
59 $lines[0] = (int)$M[1] - 1;
60 $lines[1] = (int)$M[2] - 1;
63 } elseif (strlen($line)) {
64 if ($line[0] == '-') {
67 } elseif ($line[0] == '+') {
80 $row = "<tr class='$class";
84 if ($class != 'meta' && $first) {
92 $row .= "<td class='lineno'></td><td class='lineno'></td>";
96 $row .= "<td class='lineno'></td><td class='lineno'>" .
101 $row .= "<td class='lineno'>" . $lines[0] .
102 "</td><td class='lineno'></td>";
106 $row .= "<td class='lineno'>" . $lines[0] .
107 "</td><td class='lineno'>" . $lines[1] . "</td>";
110 $anchor = $abase . '.' . $nlines;
111 $row .= "<td class='linelink'><a name='$anchor'></a>".
112 "<a href='#$anchor' title='link to this line'>#</a></td>";
114 $line = htmlspecialchars($line, ENT_QUOTES, 'utf-8');
115 $row .= "<td class='line' width='100%'>$line</td></tr>\n";
118 if (!count($input)) {
121 $line = array_shift($input);