Parse two-line from-file/to-file unified diff header in
git_patchset_body directly, instead of leaving pretty-printing to
format_diff_line function. Hashes as from-file/to-file are replaced
by proper from-file and to-file names (from $diffinfo); in the future
we can put hyperlinks there. This makes possible to do blobdiff with
only blobs hashes.
The lines in two-line unified diff header have now class "from_file"
and "to_file"; the style is chosen to match previous output (classes
"rem" and "add" because of '-' and '+' as first character of patch
line).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
font-family: monospace;
}
+div.diff.to_file,
div.diff.add {
color: #008800;
}
+div.diff.from_file,
div.diff.rem {
color: #cc0000;
}
if ($in_header && $patch_line =~ m/^---/) {
- #print "</div>\n"
+ #print "</div>\n"; # class="diff extended_header"
$in_header = 0;
+
+ my $file = $diffinfo->{'from_file'};
+ $file ||= $diffinfo->{'file'};
+ $patch_line =~ s|a/[0-9a-fA-F]{40}|a/$file|g;
+ print "<div class=\"diff from_file\">" . esc_html($patch_line) . "</div>\n";
+
+ $patch_line = <$fd>;
+ chomp $patch_line;
+
+ #$patch_line =~ m/^+++/;
+ $file = $diffinfo->{'to_file'};
+ $file ||= $diffinfo->{'file'};
+ $patch_line =~ s|b/[0-9a-fA-F]{40}|b/$file|g;
+ print "<div class=\"diff to_file\">" . esc_html($patch_line) . "</div>\n";
+
+ next LINE;
}
next LINE if $in_header;