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

[PATCH 5/5] gitweb: Move generating page title to separate subroutine

From
Jakub Narebski <jnareb@gmail.com>
Date
Apr 24, 2010, 14:01 UTC
Message-ID
<20100424140019.30511.55366.stgit@localhost.localdomain>
In-Reply-To
<20100424132255.30511.98829.stgit@localhost.localdomain>

get_page_title subroutine is currently used only in git_header_html. Nevertheless refactoring title generation allowed to reduce indent level.

[It would be used in more than one callsite in the patch adding caching activity indicator to gitweb.]

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Refactoring.
 gitweb/gitweb.perl |   32 +++++++++++++++++++-------------
 1 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index e579c14..7d75dc4 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -3179,24 +3179,30 @@ sub blob_contenttype {
 ## ======================================================================
 ## functions printing HTML: header, footer, error page
 
+sub get_page_title {
+	my $title = to_utf8($site_name);
+
+	return $title unless (defined $project);
+	$title .= " - " . to_utf8($project);
+
+	return $title unless (defined $action);
+	$title .= "/$action"; # $action is US-ASCII (7bit ASCII)
+
+	return $title unless (defined $file_name);
+	$title .= " - " . esc_path($file_name);
+	if ($action eq "tree" && $file_name !~ m|/$|) {
+		$title .= "/";
+	}
+
+	return $title;
+}
+
 sub git_header_html {
 	my $status = shift || "200 OK";
 	my $expires = shift;
 	my %opts = @_;
 
-	my $title = "$site_name";
-	if (defined $project) {
-		$title .= " - " . to_utf8($project);
-		if (defined $action) {
-			$title .= "/$action";
-			if (defined $file_name) {
-				$title .= " - " . esc_path($file_name);
-				if ($action eq "tree" && $file_name !~ m|/$|) {
-					$title .= "/";
-				}
-			}
-		}
-	}
+	my $title = get_page_title();
 	my $content_type;
 	# require explicit support from the UA if we are to send the page as
 	# 'application/xhtml+xml', otherwise send it as plain old 'text/html'.
Previous: Jakub NarebskiNext: Petr Baudis
Message 8 of 10 in “gitweb: Miscellaneous improvements, in preparation for caching support”
  1. 0/5 gitweb: Miscellaneous improvements, in preparation for caching supportJakub Narebski, Apr 24, 2010
  2. 1/5 Export more test-related variables when running external testsJakub Narebski, Apr 24, 2010
  3. Jakub NarebskiApr 25, 2010
  4. 2/5 gitweb: href(..., -path_info => 0|1)Jakub Narebski, Apr 24, 2010
  5. 3/5 gitweb: Use nonlocal jump instead of 'exit' in die_errorJakub Narebski, Apr 24, 2010
  6. Jakub NarebskiMay 4, 2010
  7. 4/5 gitweb: Add custom error handler using die_errorJakub Narebski, Apr 24, 2010
  8. 5/5 gitweb: Move generating page title to separate subroutineJakub Narebski, Apr 24, 2010
  9. Petr BaudisApr 25, 2010
  10. Jakub NarebskiApr 25, 2010

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.