+ print "</b>\n<i>";
+ print " committed by ";
+ print HTML_encode("$2");
+ print "</i>\n</font>\n"
+ }
+ elsif($line =~ /(\S+) (\(\S+\))([,:])/ || $line =~ /(\S+) (\(\S+,\s+\S+\))([,:])/) {
+ my ($file, $rest, $ext) = ($1, $2, $3);
+ print "<code>";
+ print "<a href=\"http://cvs.i-scream.org/$file\" style=\"text-decoration: none;\">";
+ print HTML_encode($file);
+ print "</a> ";
+ if($rest =~ /\((\S+)\.(\d+)(.*)\)/) {
+ my $start = $1;
+ my $end = $2;
+ my $other = $3;
+ my $newrev = "$start.$end";
+ my $oldrev;
+ if($end != 1) {
+ my $oldminver = $end-1;
+ $oldrev = "$start.$oldminver";
+ }
+ elsif($start =~ /^((\d+\.)+)(\d+)$/) {
+ $oldrev = $1;
+ # take trailing . off old revision
+ chop $oldrev;
+ }
+ if(defined $oldrev) {
+ my $diff = ".diff?r1=$oldrev&r2=$newrev";
+ print "(<a href=\"http://cvs.i-scream.org/$file$diff\" style=\"text-decoration: none;\">";
+ print HTML_encode("$start.$end");
+ print "</a>";
+ print HTML_encode("$other)");
+ }
+ else {
+ print HTML_encode($rest);
+ }
+ }
+ else {
+ print HTML_encode($rest);
+ }
+ print HTML_encode($ext);
+ print "</code><br>\n"