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 2006-08-28 14:48:10 +02:00 committed by Junio C Hamano
parent 25691fbe6d
commit b7f9253df9
1 changed files with 31 additions and 32 deletions

View File

@ -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 $log = shift;
my %opts = @_;


if ($opts{'-remove_title'}) {
# remove title, i.e. first line of log
shift @$log;
}
# remove leading empty lines # remove leading empty lines
while (defined $log->[0] && $log->[0] eq "") { while (defined $log->[0] && $log->[0] eq "") {
shift @$log; shift @$log;
@ -1389,6 +1395,19 @@ sub git_print_log {
my $signoff = 0; my $signoff = 0;
my $empty = 0; my $empty = 0;
foreach my $line (@$log) { 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 # print only one empty line
# do not print empty line after signoff # do not print empty line after signoff
if ($line eq "") { if ($line eq "") {
@ -1397,13 +1416,13 @@ sub git_print_log {
} else { } else {
$empty = 0; $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 {
my $log = shift; my $log = shift;
my $remove_title = shift; my $remove_title = shift;


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

# 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;
} }


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