diff options
Diffstat (limited to 'ui-tree.c')
| -rw-r--r-- | ui-tree.c | 35 |
1 files changed, 21 insertions, 14 deletions
| @@ -22,8 +22,28 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) | |||
| 22 | "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n"; | 22 | "<a class='no' id='n%1$d' name='n%1$d' href='#n%1$d'>%1$d</a>\n"; |
| 23 | 23 | ||
| 24 | html("<table summary='blob content' class='blob'>\n"); | 24 | html("<table summary='blob content' class='blob'>\n"); |
| 25 | |||
| 26 | if (ctx.cfg.enable_tree_linenumbers) { | ||
| 27 | html("<tr><td class='linenumbers'><pre>"); | ||
| 28 | idx = 0; | ||
| 29 | lineno = 0; | ||
| 30 | |||
| 31 | if (size) { | ||
| 32 | htmlf(numberfmt, ++lineno); | ||
| 33 | while(idx < size - 1) { // skip absolute last newline | ||
| 34 | if (buf[idx] == '\n') | ||
| 35 | htmlf(numberfmt, ++lineno); | ||
| 36 | idx++; | ||
| 37 | } | ||
| 38 | } | ||
| 39 | html("</pre></td>\n"); | ||
| 40 | } | ||
| 41 | else { | ||
| 42 | html("<tr>\n"); | ||
| 43 | } | ||
| 44 | |||
| 25 | if (ctx.repo->source_filter) { | 45 | if (ctx.repo->source_filter) { |
| 26 | html("<tr><td class='lines'><pre><code>"); | 46 | html("<td class='lines'><pre><code>"); |
| 27 | ctx.repo->source_filter->argv[1] = xstrdup(name); | 47 | ctx.repo->source_filter->argv[1] = xstrdup(name); |
| 28 | cgit_open_filter(ctx.repo->source_filter); | 48 | cgit_open_filter(ctx.repo->source_filter); |
| 29 | write(STDOUT_FILENO, buf, size); | 49 | write(STDOUT_FILENO, buf, size); |
| @@ -32,19 +52,6 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size) | |||
| 32 | return; | 52 | return; |
| 33 | } | 53 | } |
| 34 | 54 | ||
| 35 | html("<tr><td class='linenumbers'><pre>"); | ||
| 36 | idx = 0; | ||
| 37 | lineno = 0; | ||
| 38 | |||
| 39 | if (size) { | ||
| 40 | htmlf(numberfmt, ++lineno); | ||
| 41 | while(idx < size - 1) { // skip absolute last newline | ||
| 42 | if (buf[idx] == '\n') | ||
| 43 | htmlf(numberfmt, ++lineno); | ||
| 44 | idx++; | ||
| 45 | } | ||
| 46 | } | ||
| 47 | html("</pre></td>\n"); | ||
| 48 | html("<td class='lines'><pre><code>"); | 55 | html("<td class='lines'><pre><code>"); |
| 49 | html_txt(buf); | 56 | html_txt(buf); |
| 50 | html("</code></pre></td></tr></table>\n"); | 57 | html("</code></pre></td></tr></table>\n"); |
