git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/5] gitweb: Make git_print_log generic; git_print_simplified_log uses it

From
Jakub Narebski <jnareb@gmail.com>
Date
Aug 28, 2006, 12:48 UTC
Message-ID
<11567692952496-git-send-email-jnareb@gmail.com>
In-Reply-To
<11567692943154-git-send-email-jnareb@gmail.com>

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>
---
 gitweb/gitweb.perl |   63 ++++++++++++++++++++++++++--------------------------
 1 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 59f1a87..e318f50 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1364,9 +1364,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;
@@ -1376,6 +1382,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 "") {
@@ -1384,13 +1403,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;
 	}
 }
 
@@ -1398,30 +1417,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);
 }
 
 ## ......................................................................
-- 
1.4.1.1
Previous: Jakub NarebskiNext: Jakub Narebski
Message 2 of 16 in “gitweb: Additions to commitdiff view”
  1. 0/5 gitweb: Additions to commitdiff viewJakub Narebski, Aug 28, 2006
  2. 1/5 gitweb: Make git_print_log generic; git_print_simplified_log uses itJakub Narebski, Aug 28, 2006
  3. 2/5 gitweb: Do not remove signoff lines in git_print_simplified_logJakub Narebski, Aug 28, 2006
  4. 3/5 gitweb: Add author information to commitdiff viewJakub Narebski, Aug 28, 2006
  5. 4/5 gitweb: git_print_log: signoff line is non-empty lineJakub Narebski, Aug 28, 2006
  6. 5/5 gitweb: Add diff tree, with links to patches, to commitdiff viewJakub Narebski, Aug 28, 2006
  7. Linus TorvaldsAug 28, 2006
  8. gitweb: Add local time and timezone to git_print_authorshipJakub Narebski, Aug 28, 2006
  9. Junio C HamanoAug 29, 2006
  10. Jakub NarebskiAug 29, 2006
  11. Junio C HamanoAug 29, 2006
  12. Jakub NarebskiAug 29, 2006
  13. Junio C HamanoAug 30, 2006
  14. Jakub NarebskiAug 30, 2006
  15. gitweb: split output routine of blame2Junio C Hamano, Aug 29, 2006
  16. gitweb: show rev only on the first line of each group in blameJunio C Hamano, Aug 29, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.