From 03389d6e67bfda5cb3ff1504db815f09715ec6f4 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 9 Aug 2009 13:43:18 +0000 Subject: ui-tree.c: show line numbers when highlighting When source-filter is enabled, cgit currently will not display linenumbers in the tree view. This patch restores the linenumber function. Signed-off-by: Florian Pritz Signed-off-by: Lars Hjemli --- ui-tree.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/ui-tree.c b/ui-tree.c index c608754..7bf2ad2 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -22,15 +22,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) "%1$d\n"; html("\n"); - if (ctx.repo->source_filter) { - html("
");
-		ctx.repo->source_filter->argv[1] = xstrdup(name);
-		cgit_open_filter(ctx.repo->source_filter);
-		write(STDOUT_FILENO, buf, size);
-		cgit_close_filter(ctx.repo->source_filter);
-		html("
\n"); - return; - } html("
");
 	idx = 0;
@@ -45,6 +36,17 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
 		}
 	}
 	html("
\n"); + + if (ctx.repo->source_filter) { + html("
");
+		ctx.repo->source_filter->argv[1] = xstrdup(name);
+		cgit_open_filter(ctx.repo->source_filter);
+		write(STDOUT_FILENO, buf, size);
+		cgit_close_filter(ctx.repo->source_filter);
+		html("
\n"); + return; + } + html("
");
 	html_txt(buf);
 	html("
\n"); -- cgit 1.4.1 From d67cc7f9d556650438e421cdcda37bc52710bffd Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Sun, 9 Aug 2009 20:42:45 +0000 Subject: Add 'linenumbers' config option Signed-off-by: Florian Pritz Signed-off-by: Lars Hjemli --- cgit.c | 2 ++ cgit.h | 1 + cgitrc.5.txt | 4 ++++ ui-tree.c | 27 ++++++++++++++++----------- 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/cgit.c b/cgit.c index b0e1c44..a4788cb 100644 --- a/cgit.c +++ b/cgit.c @@ -66,6 +66,8 @@ void config_cb(const char *name, const char *value) ctx.cfg.index_info = xstrdup(value); else if (!strcmp(name, "logo-link")) ctx.cfg.logo_link = xstrdup(value); + else if (!strcmp(name, "linenumbers")) + ctx.cfg.linenumbers = atoi(value); else if (!strcmp(name, "module-link")) ctx.cfg.module_link = xstrdup(value); else if (!strcmp(name, "virtual-root")) { diff --git a/cgit.h b/cgit.h index adb8da4..2fdc531 100644 --- a/cgit.h +++ b/cgit.h @@ -174,6 +174,7 @@ struct cgit_config { int enable_log_filecount; int enable_log_linecount; int local_time; + int linenumbers; int max_repo_count; int max_commit_count; int max_lock_attempts; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 3c35b02..a762ccc 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -146,6 +146,10 @@ logo-link:: calculated url of the repository index page will be used. Default value: none. +linenumbers:: + If set to "1" lines in tree view will have numbers. + Default value: "0". + max-commit-count:: Specifies the number of entries to list per page in "log" view. Default value: "50". diff --git a/ui-tree.c b/ui-tree.c index 7bf2ad2..f64e6e0 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -23,19 +23,24 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) html("\n"); - html("\n"); + } + else { + html("\n"); } - html("\n"); if (ctx.repo->source_filter) { html("
");
-	idx = 0;
-	lineno = 0;
-
-	if (size) {
-		htmlf(numberfmt, ++lineno);
-		while(idx < size - 1) { // skip absolute last newline
-			if (buf[idx] == '\n')
-				htmlf(numberfmt, ++lineno);
-			idx++;
+	if (ctx.cfg.linenumbers) {
+		html("
");
+		idx = 0;
+		lineno = 0;
+	
+		if (size) {
+			htmlf(numberfmt, ++lineno);
+			while(idx < size - 1) { // skip absolute last newline
+				if (buf[idx] == '\n')
+					htmlf(numberfmt, ++lineno);
+				idx++;
+			}
 		}
+		html("
");
-- 
cgit 1.4.1


From b0f946bcc7f08168ea2858d8658a74a32accd7f5 Mon Sep 17 00:00:00 2001
From: Lars Hjemli 
Date: Fri, 21 Aug 2009 14:26:52 +0200
Subject: Rename "linenumbers" to "enable-tree-linenumbers", change default to
 "1"

This makes the name of the cgitrc option more descriptive and at the
same time changes the default from "0" to "1" in an attempt to stay
backwards compatible - prior to the introduction of "source-filter"
and "linenumbers", cgit always generated linenumber links in the
tree view, but now this feature can be turned off (one might want to
do this if the source-filter performs line-wrapping etc).

While at it, the documentation is updated to match the surrounding
descriptions.

Signed-off-by: Lars Hjemli 
---
 cgit.c       | 5 +++--
 cgit.h       | 2 +-
 cgitrc.5.txt | 8 ++++----
 ui-tree.c    | 2 +-
 4 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/cgit.c b/cgit.c
index a4788cb..ec40e1f 100644
--- a/cgit.c
+++ b/cgit.c
@@ -66,8 +66,6 @@ void config_cb(const char *name, const char *value)
 		ctx.cfg.index_info = xstrdup(value);
 	else if (!strcmp(name, "logo-link"))
 		ctx.cfg.logo_link = xstrdup(value);
-	else if (!strcmp(name, "linenumbers"))
-		ctx.cfg.linenumbers = atoi(value);
 	else if (!strcmp(name, "module-link"))
 		ctx.cfg.module_link = xstrdup(value);
 	else if (!strcmp(name, "virtual-root")) {
@@ -88,6 +86,8 @@ void config_cb(const char *name, const char *value)
 		ctx.cfg.enable_log_filecount = atoi(value);
 	else if (!strcmp(name, "enable-log-linecount"))
 		ctx.cfg.enable_log_linecount = atoi(value);
+	else if (!strcmp(name, "enable-tree-linenumbers"))
+		ctx.cfg.enable_tree_linenumbers = atoi(value);
 	else if (!strcmp(name, "max-stats"))
 		ctx.cfg.max_stats = cgit_find_stats_period(value, NULL);
 	else if (!strcmp(name, "cache-size"))
@@ -240,6 +240,7 @@ static void prepare_context(struct cgit_context *ctx)
 	ctx->cfg.css = "/cgit.css";
 	ctx->cfg.logo = "/cgit.png";
 	ctx->cfg.local_time = 0;
+	ctx->cfg.enable_tree_linenumbers = 1;
 	ctx->cfg.max_repo_count = 50;
 	ctx->cfg.max_commit_count = 50;
 	ctx->cfg.max_lock_attempts = 5;
diff --git a/cgit.h b/cgit.h
index 2fdc531..a20679a 100644
--- a/cgit.h
+++ b/cgit.h
@@ -173,8 +173,8 @@ struct cgit_config {
 	int enable_index_links;
 	int enable_log_filecount;
 	int enable_log_linecount;
+	int enable_tree_linenumbers;
 	int local_time;
-	int linenumbers;
 	int max_repo_count;
 	int max_commit_count;
 	int max_lock_attempts;
diff --git a/cgitrc.5.txt b/cgitrc.5.txt
index a762ccc..ac5c58c 100644
--- a/cgitrc.5.txt
+++ b/cgitrc.5.txt
@@ -99,6 +99,10 @@ enable-log-linecount::
 	and removed lines for each commit on the repository log page. Default
 	value: "0".
 
+enable-tree-linenumbers::
+	Flag which, when set to "1", will make cgit generate linenumber links
+	for plaintext blobs printed in the tree view. Default value: "1".
+
 favicon::
 	Url used as link to a shortcut icon for cgit. If specified, it is
 	suggested to use the value "/favicon.ico" since certain browsers will
@@ -146,10 +150,6 @@ logo-link::
 	calculated url of the repository index page will be used. Default
 	value: none.
 
-linenumbers::
-	If set to "1" lines in tree view will have numbers.
-	Default value: "0".
-
 max-commit-count::
 	Specifies the number of entries to list per page in "log" view. Default
 	value: "50".
diff --git a/ui-tree.c b/ui-tree.c
index f64e6e0..f53ab64 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -23,7 +23,7 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
 
 	html("\n");
 
-	if (ctx.cfg.linenumbers) {
+	if (ctx.cfg.enable_tree_linenumbers) {
 		html("
");
 		idx = 0;
 		lineno = 0;
-- 
cgit 1.4.1


From 6638f40868ccf7806a9668560d3608324704c2b7 Mon Sep 17 00:00:00 2001
From: Lars Hjemli 
Date: Fri, 21 Aug 2009 14:37:50 +0200
Subject: cgit.css: make the blob display in tree view a bit prettier

Adding some padding to the linenumbers while right-aligning them and
removing the background color makes the page more readable.

Signed-off-by: Lars Hjemli 
---
 cgit.css | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/cgit.css b/cgit.css
index e3b32e7..ebf3322 100644
--- a/cgit.css
+++ b/cgit.css
@@ -237,16 +237,16 @@ table.blob {
 }
 
 table.blob td.lines {
-	margin: 0; padding: 0;
+	margin: 0; padding: 0 0 0 0.5em;
 	vertical-align: top;
 	color: black;
 }
 
 table.blob td.linenumbers {
-	margin: 0; padding: 0;
+	margin: 0; padding: 0 0.5em 0 0.5em;
 	vertical-align: top;
+	text-align: right;
 	border-right: 1px solid gray;
-	background-color: #eee;
 }
 
 table.blob pre {
-- 
cgit 1.4.1