summaryrefslogtreecommitdiff
path: root/gitweb
diff options
context:
space:
mode:
authorJakub Narebski <jnareb@gmail.com>2006-08-25 19:04:13 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-08-26 02:41:09 (GMT)
commite4e4f825455f2903e4d015e51c09ec0527a0be86 (patch)
tree10c012413187dcdc111fe703346015432fe42ce7 /gitweb
parentfe87585e53860f1c89a088e91c08dd89b6702a74 (diff)
downloadgit-e4e4f825455f2903e4d015e51c09ec0527a0be86.zip
git-e4e4f825455f2903e4d015e51c09ec0527a0be86.tar.gz
git-e4e4f825455f2903e4d015e51c09ec0527a0be86.tar.bz2
gitweb: Parse two-line from-file/to-file diff header in git_patchset_body
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>
Diffstat (limited to 'gitweb')
-rw-r--r--gitweb/gitweb.css2
-rwxr-xr-xgitweb/gitweb.perl18
2 files changed, 19 insertions, 1 deletions
diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css
index 5eaa24f..0912361 100644
--- a/gitweb/gitweb.css
+++ b/gitweb/gitweb.css
@@ -273,10 +273,12 @@ td.mode {
font-family: monospace;
}
+div.diff.to_file,
div.diff.add {
color: #008800;
}
+div.diff.from_file,
div.diff.rem {
color: #cc0000;
}
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 56a47ab..b2159bb 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1706,8 +1706,24 @@ sub git_patchset_body {
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;