Merge branch 'fp/linenumbers'
This commit is contained in:
коміт
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);
|
||||
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"))
|
||||
@ -238,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;
|
||||
|
6
cgit.css
6
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 {
|
||||
|
1
cgit.h
1
cgit.h
@ -173,6 +173,7 @@ struct cgit_config {
|
||||
int enable_index_links;
|
||||
int enable_log_filecount;
|
||||
int enable_log_linecount;
|
||||
int enable_tree_linenumbers;
|
||||
int local_time;
|
||||
int max_repo_count;
|
||||
int max_commit_count;
|
||||
|
@ -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
|
||||
|
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";
|
||||
|
||||
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) {
|
||||
html("<tr><td class='lines'><pre><code>");
|
||||
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);
|
||||
@ -32,19 +52,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
|
||||
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_txt(buf);
|
||||
html("</code></pre></td></tr></table>\n");
|
||||
|
Завантаження…
Посилання в новій задачі
Block a user