Merge branch 'fp/linenumbers'

This commit is contained in:
Lars Hjemli 2009-09-13 22:01:52 +02:00
commit 5f12e45fe3
5 changed files with 32 additions and 17 deletions

3
cgit.c
View File

@ -86,6 +86,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.enable_log_filecount = atoi(value); ctx.cfg.enable_log_filecount = atoi(value);
else if (!strcmp(name, "enable-log-linecount")) else if (!strcmp(name, "enable-log-linecount"))
ctx.cfg.enable_log_linecount = atoi(value); 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")) else if (!strcmp(name, "max-stats"))
ctx.cfg.max_stats = cgit_find_stats_period(value, NULL); ctx.cfg.max_stats = cgit_find_stats_period(value, NULL);
else if (!strcmp(name, "cache-size")) else if (!strcmp(name, "cache-size"))
@ -238,6 +240,7 @@ static void prepare_context(struct cgit_context *ctx)
ctx->cfg.css = "/cgit.css"; ctx->cfg.css = "/cgit.css";
ctx->cfg.logo = "/cgit.png"; ctx->cfg.logo = "/cgit.png";
ctx->cfg.local_time = 0; ctx->cfg.local_time = 0;
ctx->cfg.enable_tree_linenumbers = 1;
ctx->cfg.max_repo_count = 50; ctx->cfg.max_repo_count = 50;
ctx->cfg.max_commit_count = 50; ctx->cfg.max_commit_count = 50;
ctx->cfg.max_lock_attempts = 5; ctx->cfg.max_lock_attempts = 5;

View File

@ -237,16 +237,16 @@ table.blob {
} }
table.blob td.lines { table.blob td.lines {
margin: 0; padding: 0; margin: 0; padding: 0 0 0 0.5em;
vertical-align: top; vertical-align: top;
color: black; color: black;
} }
table.blob td.linenumbers { table.blob td.linenumbers {
margin: 0; padding: 0; margin: 0; padding: 0 0.5em 0 0.5em;
vertical-align: top; vertical-align: top;
text-align: right;
border-right: 1px solid gray; border-right: 1px solid gray;
background-color: #eee;
} }
table.blob pre { table.blob pre {

1
cgit.h
View File

@ -173,6 +173,7 @@ struct cgit_config {
int enable_index_links; int enable_index_links;
int enable_log_filecount; int enable_log_filecount;
int enable_log_linecount; int enable_log_linecount;
int enable_tree_linenumbers;
int local_time; int local_time;
int max_repo_count; int max_repo_count;
int max_commit_count; int max_commit_count;

View File

@ -99,6 +99,10 @@ enable-log-linecount::
and removed lines for each commit on the repository log page. Default and removed lines for each commit on the repository log page. Default
value: "0". 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:: favicon::
Url used as link to a shortcut icon for cgit. If specified, it is 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 suggested to use the value "/favicon.ico" since certain browsers will

View File

@ -22,16 +22,8 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
"<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n"; "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n";
html("<table summary='blob content' class='blob'>\n"); html("<table summary='blob content' class='blob'>\n");
if (ctx.repo->source_filter) {
html("<tr><td class='lines'><pre><code>");
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("</code></pre></td></tr></table>\n");
return;
}
if (ctx.cfg.enable_tree_linenumbers) {
html("<tr><td class='linenumbers'><pre>"); html("<tr><td class='linenumbers'><pre>");
idx = 0; idx = 0;
lineno = 0; lineno = 0;
@ -45,6 +37,21 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
} }
} }
html("</pre></td>\n"); html("</pre></td>\n");
}
else {
html("<tr>\n");
}
if (ctx.repo->source_filter) {
html("<td class='lines'><pre><code>");
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("</code></pre></td></tr></table>\n");
return;
}
html("<td class='lines'><pre><code>"); html("<td class='lines'><pre><code>");
html_txt(buf); html_txt(buf);
html("</code></pre></td></tr></table>\n"); html("</code></pre></td></tr></table>\n");