From 7c278014730dc15bf03b8640b1d406c657447092 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Tue, 22 Aug 2006 12:02:48 +0200 Subject: gitweb: bugfix: a.list formatting regression Fix regression introduced by commit 17d07443188909ef5f8b8c24043cb6d9fef51bca. "a.list" being "bold", makes a myriad of things shown by gitweb in bold font-weight, which is a regression from pre-17d07443188909ef5f8b8c24043cb6d9fef51bca behavior. The fix is to add "subject" class and use this class to replace pre-format_subject_html formatting of subject (comment) via using (or not) ... element. This should go back to the pre-17d0744318... style. Regression noticed by Luben Tuikov. Signed-off-by: Jakub Narebski Signed-off-by: Luben Tuikov Signed-off-by: Junio C Hamano --- gitweb/gitweb.css | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gitweb/gitweb.css') diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 9013895857..6c13d9ed10 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -117,11 +117,14 @@ div.list_head { a.list { text-decoration: none; - font-weight: bold; color: #000000; } -table.tags a.list { +a.subject { + font-weight: bold; +} + +table.tags a.subject { font-weight: normal; } -- cgit From 63e4220b75d4fd7c8820209193641f3207d24238 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Tue, 22 Aug 2006 12:38:59 +0200 Subject: gitweb: Replace some presentational HTML by CSS Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- gitweb/gitweb.css | 3 ++- gitweb/gitweb.perl | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) (limited to 'gitweb/gitweb.css') diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 6c13d9ed10..4821022535 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -42,6 +42,7 @@ div.page_nav a:visited { div.page_path { padding: 8px; + font-weight: bold; border: solid #d9d8d1; border-width: 0px 0px 1px; } @@ -120,7 +121,7 @@ a.list { color: #000000; } -a.subject { +a.subject, a.name { font-weight: bold; } diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 0e4697731d..39f719ca55 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1267,17 +1267,17 @@ sub git_print_page_path { my $hb = shift; if (!defined $name) { - print "
/
\n"; + print "
/
\n"; } elsif (defined $type && $type eq 'blob') { - print "
"; + print "
"; if (defined $hb) { print $cgi->a({-href => href(action=>"blob_plain", hash_base=>$hb, file_name=>$file_name)}, esc_html($name)); } else { print $cgi->a({-href => href(action=>"blob_plain", file_name=>$file_name)}, esc_html($name)); } - print "
\n"; + print "
\n"; } else { - print "
" . esc_html($name) . "
\n"; + print "
" . esc_html($name) . "
\n"; } } @@ -1626,7 +1626,7 @@ sub git_tags_body { print "$tag{'age'}\n" . "" . $cgi->a({-href => href(action=>$tag{'reftype'}, hash=>$tag{'refid'}), - -class => "list"}, "" . esc_html($tag{'name'}) . "") . + -class => "list name"}, esc_html($tag{'name'})) . "\n" . ""; if (defined $comment) { @@ -1680,7 +1680,7 @@ sub git_heads_body { print "$tag{'age'}\n" . ($tag{'id'} eq $head ? "" : "") . $cgi->a({-href => href(action=>"shortlog", hash=>$tag{'name'}), - -class => "list"}, "" . esc_html($tag{'name'}) . "") . + -class => "list name"},esc_html($tag{'name'})) . "\n" . "" . $cgi->a({-href => href(action=>"shortlog", hash=>$tag{'name'})}, "shortlog") . " | " . @@ -2729,7 +2729,8 @@ sub git_search { print "$co{'age_string_date'}\n" . "" . esc_html(chop_str($co{'author_name'}, 15, 5)) . "\n" . "" . - $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}) -class => "list"}, "" . esc_html(chop_str($co{'title'}, 50)) . "
"); + $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), -class => "list subject"}, + esc_html(chop_str($co{'title'}, 50)) . "
"); my $comment = $co{'comment'}; foreach my $line (@$comment) { if ($line =~ m/^(.*)($searchtext)(.*)$/i) { @@ -2782,8 +2783,8 @@ sub git_search { print "$co{'age_string_date'}\n" . "" . esc_html(chop_str($co{'author_name'}, 15, 5)) . "\n" . "" . - $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), -class => "list"}, "" . - esc_html(chop_str($co{'title'}, 50)) . "
"); + $cgi->a({-href => href(action=>"commit", hash=>$co{'id'}), -class => "list subject"}, + esc_html(chop_str($co{'title'}, 50)) . "
"); while (my $setref = shift @files) { my %set = %$setref; print $cgi->a({-href => href(action=>"blob", hash=>$set{'id'}, hash_base=>$co{'id'}, file_name=>$set{'file'}), class => "list"}, -- cgit From af33ef21bfb0171973393e21deac7621efd2ec7a Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Thu, 24 Aug 2006 01:58:49 +0200 Subject: gitweb: Show information about incomplete lines in commitdiff In format_diff_line, instead of skipping errors/incomplete lines, for example "\ No newline at end of file" in HTML pretty-printing of diff, use "incomplete" class for div. Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- gitweb/gitweb.css | 4 ++++ gitweb/gitweb.perl | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'gitweb/gitweb.css') diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 4821022535..5eaa24fd24 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -285,6 +285,10 @@ div.diff.chunk_header { color: #990099; } +div.diff.incomplete { + color: #cccccc; +} + div.diff_info { font-family: monospace; color: #000099; diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 9367685734..fe9b9ee87a 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -539,7 +539,7 @@ sub format_diff_line { $diff_class = " chunk_header"; } elsif ($char eq "\\") { # skip errors (incomplete lines) - return ""; + $diff_class = " incomplete"; } $line = untabify($line); return "
" . esc_html($line) . "
\n"; -- cgit From e4e4f825455f2903e4d015e51c09ec0527a0be86 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Fri, 25 Aug 2006 21:04:13 +0200 Subject: 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 Signed-off-by: Junio C Hamano --- gitweb/gitweb.css | 2 ++ gitweb/gitweb.perl | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'gitweb/gitweb.css') diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 5eaa24fd24..0912361ac8 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 56a47ab633..b2159bb820 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1706,8 +1706,24 @@ sub git_patchset_body { if ($in_header && $patch_line =~ m/^---/) { - #print "\n" + #print "\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 "
" . esc_html($patch_line) . "
\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 "
" . esc_html($patch_line) . "
\n"; + + next LINE; } next LINE if $in_header; -- cgit From ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Fri, 25 Aug 2006 21:05:07 +0200 Subject: 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 Signed-off-by: Junio C Hamano --- gitweb/gitweb.css | 10 ++++++++++ gitweb/gitweb.perl | 14 ++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) (limited to 'gitweb/gitweb.css') 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 "
" . esc_html($patch_line) . "
\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 "
$patch_line
\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 "
" . esc_html($patch_line) . "
\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 "
$patch_line
\n"; next LINE; } -- cgit