cgit

commit c1ad6cb77889880ad0189a689840fbfa6e5cbc80

Author: Lars Hjemli <hjemli@gmail.com>

Restrict length of repo description on repolist page

If any repo has a very long description, all repos suffer since the
repo-links in the right-most column gets pushed out of sight.

Fix it by introducing max-repodesc-length parameter in cgitrc, and default
to 60 chars.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>

 cgit.h | 1 +
 cgitrc | 4 ++++
 shared.c | 3 +++
 ui-repolist.c | 2 +-


diff --git a/cgit.h b/cgit.h
index 764225d22e819e60946f886ee2f5c997ffa75611..290401fde06feeae3a2a9924accc78dfbf744d8d 100644
--- a/cgit.h
+++ b/cgit.h
@@ -89,6 +89,7 @@ extern int cgit_cache_static_ttl;
 extern int cgit_cache_max_create_time;
 
 extern int cgit_max_msg_len;
+extern int cgit_max_repodesc_len;
 extern int cgit_max_commit_count;
 
 extern char *cgit_repo_name;




diff --git a/cgitrc b/cgitrc
index e7e731c9611ea41d48e38587b8fe14d4a2084e5d..f923cc4cc7c99ed012ebf3360fddfabdc0529720 100644
--- a/cgitrc
+++ b/cgitrc
@@ -51,6 +51,10 @@ ## Url loaded when clicking a submodule link
 #module-link=./?repo=%s&page=commit&id=%s
 
 
+## Number of chars shown of repo description (in repolist view)
+#max-repodesc-length=60
+
+
 ## Number of chars shown of commit subject message (in log view)
 #max-message-length=60
 




diff --git a/shared.c b/shared.c
index a1e1acd7dda0bc5f254a9c1d0a5e21848003a71a..752ceacbb5a31fdead0c4cb600984de176450a52 100644
--- a/shared.c
+++ b/shared.c
@@ -30,6 +30,7 @@ int cgit_cache_static_ttl      = -1;
 int cgit_cache_max_create_time =  5;
 
 int cgit_max_msg_len = 60;
+int cgit_max_repodesc_len = 60;
 int cgit_max_commit_count = 50;
 
 int cgit_query_has_symref = 0;
@@ -118,6 +119,8 @@ 	else if (!strcmp(name, "cache-dynamic-ttl"))
 		cgit_cache_dynamic_ttl = atoi(value);
 	else if (!strcmp(name, "max-message-length"))
 		cgit_max_msg_len = atoi(value);
+	else if (!strcmp(name, "max-repodesc-length"))
+		cgit_max_repodesc_len = atoi(value);
 	else if (!strcmp(name, "max-commit-count"))
 		cgit_max_commit_count = atoi(value);
 	else if (!strcmp(name, "repo.url"))




diff --git a/ui-repolist.c b/ui-repolist.c
index d341193c1d727b4c61829d4bd890f22dfc02ea5a..d7311e4d492768c689d7a35196dfe45108b23d74 100644
--- a/ui-repolist.c
+++ b/ui-repolist.c
@@ -30,7 +30,7 @@ 		html_link_open(cgit_repourl(repo->url), NULL, NULL);
 		html_txt(repo->name);
 		html_link_close();
 		html("</td><td>");
-		html_txt(repo->desc);
+		html_ntxt(cgit_max_repodesc_len, repo->desc);
 		html("</td><td>");
 		html_txt(repo->owner);
 		html("</td><td>");