diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-08-25 21:05:07 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-25 19:41:12 -0700 |
commit | ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e (patch) | |
tree | 143b95ba3833cdb3242300e9ab5e6160401cdf72 | |
parent | e4e4f825455f2903e4d015e51c09ec0527a0be86 (diff) | |
download | git-ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e.tar.gz |
gitweb: Add invisible hyperlink to from-file/to-file diff header
Change replacing hashes as from-file/to-file with filenames from
difftree to adding invisible (except underlining on hover/mouseover)
hyperlink to from-file/to-file blob. /dev/null as from-file or
to-file is not changed (is not hyperlinked).
This makes two-file from-file/to-file unified diff header parsing in
git_patchset_body more generic, and not only for legacy blobdiffs.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | gitweb/gitweb.css | 10 | ||||
-rwxr-xr-x | gitweb/gitweb.perl | 14 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 0912361ac8..afd9e8a565 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -273,11 +273,21 @@ td.mode { font-family: monospace; } +div.diff a.list { + text-decoration: none; +} + +div.diff a.list:hover { + text-decoration: underline; +} + +div.diff.to_file a.list, div.diff.to_file, div.diff.add { color: #008800; } +div.diff.from_file a.list, div.diff.from_file, div.diff.rem { color: #cc0000; diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index b2159bb820..29953429ee 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1711,8 +1711,11 @@ sub git_patchset_body { 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"; + $file = $cgi->a({-href => href(action=>"blob", hash_base=>$hash_parent, + hash=>$diffinfo->{'from_id'}, file_name=>$file), + -class => "list"}, esc_html($file)); + $patch_line =~ s|a/.*$|a/$file|g; + print "<div class=\"diff from_file\">$patch_line</div>\n"; $patch_line = <$fd>; chomp $patch_line; @@ -1720,8 +1723,11 @@ sub git_patchset_body { #$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"; + $file = $cgi->a({-href => href(action=>"blob", hash_base=>$hash, + hash=>$diffinfo->{'to_id'}, file_name=>$file), + -class => "list"}, esc_html($file)); + $patch_line =~ s|b/.*|b/$file|g; + print "<div class=\"diff to_file\">$patch_line</div>\n"; next LINE; } |