Merge branch 'fp/linenumbers'
This commit is contained in:
commit
5f12e45fe3
3
cgit.c
3
cgit.c
@ -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;
|
||||||
|
6
cgit.css
6
cgit.css
@ -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
1
cgit.h
@ -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;
|
||||||
|
@ -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
|
||||||
|
35
ui-tree.c
35
ui-tree.c
@ -22,8 +22,28 @@ 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.cfg.enable_tree_linenumbers) {
|
||||||
|
html("<tr><td class='linenumbers'><pre>");
|
||||||
|
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("</pre></td>\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
html("<tr>\n");
|
||||||
|
}
|
||||||
|
|
||||||
if (ctx.repo->source_filter) {
|
if (ctx.repo->source_filter) {
|
||||||
html("<tr><td class='lines'><pre><code>");
|
html("<td class='lines'><pre><code>");
|
||||||
ctx.repo->source_filter->argv[1] = xstrdup(name);
|
ctx.repo->source_filter->argv[1] = xstrdup(name);
|
||||||
cgit_open_filter(ctx.repo->source_filter);
|
cgit_open_filter(ctx.repo->source_filter);
|
||||||
write(STDOUT_FILENO, buf, size);
|
write(STDOUT_FILENO, buf, size);
|
||||||
@ -32,19 +52,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
html("<tr><td class='linenumbers'><pre>");
|
|
||||||
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("</pre></td>\n");
|
|
||||||
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");
|
||||||
|
Loading…
Reference in New Issue
Block a user