$action: $file},
" ($rev1 => $rev2)
\n";
print $out qq{
\n};
$in_div = 1;
print $out encode_entities($_, '<>&"'), "\n" for ($before, $after);
print $out "";
$in_span = '';
} elsif ($line =~ /^Property changes on: (.*)/ && !$seen{$1}) {
# It's just property changes.
my $file = encode_entities($1, '<>&"');
(my $id = $file) =~ s/[^\w_]//g;
# Dump line.
<$diff>;
# Output the headers.
print $out "$in_span>" if $in_span;
print $out "
\n" if $in_div;
print $out qq{},
qq{
Property changes: $file
\n
\n};
$in_div = 1;
$in_span = '';
} elsif ($line =~ /^\@\@/) {
print $out "$in_span>" if $in_span;
print $out (
qq{},
encode_entities($line, '<>&"'),
"\n",
);
$in_span = '';
} elsif ($line =~ /^([-+])/) {
my $type = $1 eq '+' ? 'ins' : 'del';
if ($in_span eq $type) {
print $out encode_entities($line, '<>&"'), "\n";
} else {
print $out "$in_span>" if $in_span;
print $out (
qq{<$type>},
encode_entities($line, '<>&"'),
"\n",
);
$in_span = $type;
}
} else {
if ($in_span eq 'cx') {
print $out encode_entities($line, '<>&"'), "\n";
} else {
print $out "$in_span>" if $in_span;
print $out (
qq{},
encode_entities($line, '<>&"'),
"\n",
);
$in_span = 'span';
}
}
}
}
print $out "$in_span>" if $in_span;
print $out "
\n
\n" if $in_div;
print $out "\n";
close $diff or warn "Child process exited: $?\n";
return $self;
}
##############################################################################
sub _css {
my $css = shift->SUPER::_css;
push @$css,
qq(#patch h4 {font-family: verdana,arial,helvetica,sans-serif;),
qq(font-size:10pt;padding:8px;background:#369;color:#fff;),
qq(margin:0;}\n),
qq(#patch .propset h4, #patch .binary h4 {margin:0;}\n),
qq(#patch pre {padding:0;line-height:1.2em;margin:0;}\n),
qq(#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;),
qq(overflow:auto;}\n),
qq(#patch .propset .diff, #patch .binary .diff {padding:10px 0;}\n),
qq(#patch span {display:block;padding:0 10px;}\n),
qq(#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, ),
qq(#patch .binary, #patch .copfile {border:1px solid #ccc;),
qq(margin:10px 0;}\n),
qq(#patch ins {background:#dfd;text-decoration:none;display:block;),
qq(padding:0 10px;}\n),
qq(#patch del {background:#fdd;text-decoration:none;display:block;),
qq(padding:0 10px;}\n),
qq(#patch .lines, .info {color:#888;background:#fff;}\n);
return $css;
}
1;
__END__
=head1 See Also
=over
=item L