Browse Source

gitweb: Make git_print_log generic; git_print_simplified_log uses it

Collapse git_print_log and git_print_simplified_log into one
subroutine git_print_log.  git_print_simplified_log now simply calls
git_print_log with proper options.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Jakub Narebski 19 years ago committed by Junio C Hamano
parent
commit
b7f9253df9
  1. 63
      gitweb/gitweb.perl

63
gitweb/gitweb.perl

@ -1377,9 +1377,15 @@ sub git_print_page_path { @@ -1377,9 +1377,15 @@ sub git_print_page_path {
}
}

sub git_print_log {
# sub git_print_log (\@;%) {
sub git_print_log ($;%) {
my $log = shift;
my %opts = @_;

if ($opts{'-remove_title'}) {
# remove title, i.e. first line of log
shift @$log;
}
# remove leading empty lines
while (defined $log->[0] && $log->[0] eq "") {
shift @$log;
@ -1389,6 +1395,19 @@ sub git_print_log { @@ -1389,6 +1395,19 @@ sub git_print_log {
my $signoff = 0;
my $empty = 0;
foreach my $line (@$log) {
if ($line =~ m/^ *(signed[ \-]off[ \-]by[ :]|acked[ \-]by[ :]|cc[ :])/i) {
$signoff = 1;
if (! $opts{'-remove_signoff'}) {
print "<span class=\"signoff\">" . esc_html($line) . "</span><br/>\n";
next;
} else {
# remove signoff lines
next;
}
} else {
$signoff = 0;
}

# print only one empty line
# do not print empty line after signoff
if ($line eq "") {
@ -1397,13 +1416,13 @@ sub git_print_log { @@ -1397,13 +1416,13 @@ sub git_print_log {
} else {
$empty = 0;
}
if ($line =~ m/^ *(signed[ \-]off[ \-]by[ :]|acked[ \-]by[ :]|cc[ :])/i) {
$signoff = 1;
print "<span class=\"signoff\">" . esc_html($line) . "</span><br/>\n";
} else {
$signoff = 0;
print format_log_line_html($line) . "<br/>\n";
}

print format_log_line_html($line) . "<br/>\n";
}

if ($opts{'-final_empty_line'}) {
# end with single empty line
print "<br/>\n" unless $empty;
}
}

@ -1411,30 +1430,10 @@ sub git_print_simplified_log { @@ -1411,30 +1430,10 @@ sub git_print_simplified_log {
my $log = shift;
my $remove_title = shift;

shift @$log if $remove_title;
# remove leading empty lines
while (defined $log->[0] && $log->[0] eq "") {
shift @$log;
}

# simplify and print log
my $empty = 0;
foreach my $line (@$log) {
# remove signoff lines
if ($line =~ m/^ *(signed[ \-]off[ \-]by[ :]|acked[ \-]by[ :]|cc[ :])/i) {
next;
}
# print only one empty line
if ($line eq "") {
next if $empty;
$empty = 1;
} else {
$empty = 0;
}
print format_log_line_html($line) . "<br/>\n";
}
# end with single empty line
print "<br/>\n" unless $empty;
git_print_log($log,
-final_empty_line=> 1,
-remove_signoff => 1,
-remove_title => $remove_title);
}

## ......................................................................

Loading…
Cancel
Save