| ";
if (defined $rev1) {
$result .= "version $rev1";
} else {
$result .= $file1;
}
$result .= ", $date1" if (defined($date1));
# print " Tag: $sym1\n" if ($sym1); $result .= " | \n";
$result .= "";
if (defined $rev2) {
$result .= "version $rev2";
} else {
$result .= $file2;
}
$result .= ", $date2" if (defined($date2));
# print " Tag: $sym2\n" if ($sym1); $result .= " | \n";
my $fs = "";
my $fe = "";
my $leftRow = 0;
my $rightRow = 0;
my ($oldline, $newline, $funname, $diffcode, $rest);
# Process diff text
# The diffrows are could make excellent use of
# cascading style sheets because we've to set the
# font and color for each row. anyone ...?
####
foreach (@$fh) {
$difftxt = $_;
if ($difftxt =~ /^@@/) {
($oldline,$newline,$funname) = $difftxt =~ /@@ \-([0-9]+).*\+([0-9]+).*@@(.*)/;
$result .= "||
|---|---|---|---|
";
$result .= "
| ";
$result .= "
| \n";
$state = "dump";
$leftRow = 0;
$rightRow = 0;
}
else {
($diffcode,$rest) = $difftxt =~ /^([-+ ])(.*)/;
$_ = ($escapeHTML) ? spacedHtmlText ($rest) : $rest;
# Add fontface, size
$_ = "$fs $_$fe";
#########
# little state machine to parse unified-diff output (Hen, zeller@think.de)
# in order to get some nice 'ediff'-mode output
# states:
# "dump" - just dump the value
# "PreChangeRemove" - we began with '-' .. so this could be the start of a 'change' area or just remove
# "PreChange" - okey, we got several '-' lines and moved to '+' lines -> this is a change block
##########
if ($diffcode eq '+') {
if ($state eq "dump") { # 'change' never begins with '+': just dump out value
$result .= "||
| $_ | |||
| $_ | $_ | ||
| - No viewable Change - | |||
";
# print legend
$result .= "
| "; # Print format selector # print "\n"; # print " | "; $result .= "|||||||||||