| -rw-r--r-- | cgit.css | 10 | ||||
| -rwxr-xr-x | filters/syntax-highlighting.py | 2 | ||||
| -rw-r--r-- | ui-blame.c | 63 |
3 files changed, 13 insertions, 62 deletions
@@ -353,16 +353,6 @@ div#cgit table.blame div.alt:nth-child(odd) { background: white; } -div#cgit table.blame td.lines > div { - position: relative; -} - -div#cgit table.blame td.lines > div > pre { - padding: 0 0 0 0.5em; - position: absolute; - top: 0; -} - div#cgit table.bin-blob { margin-top: 0.5em; border: solid 1px black; diff --git a/filters/syntax-highlighting.py b/filters/syntax-highlighting.py index e912594..5888b50 100755 --- a/filters/syntax-highlighting.py +++ b/filters/syntax-highlighting.py @@ -34,7 +34,7 @@ sys.stdin = io.TextIOWrapper(sys.stdin.buffer, encoding='utf-8', errors='replace sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace') data = sys.stdin.read() filename = sys.argv[1] -formatter = HtmlFormatter(style='pastie', nobackground=True) +formatter = HtmlFormatter(style='pastie') try: lexer = guess_lexer_for_filename(filename, data) @@ -67,29 +67,15 @@ static void emit_blame_entry_linenumber(struct blame_entry *ent) htmlf(numberfmt, ++lineno); } -static void emit_blame_entry_line_background(struct blame_scoreboard *sb, - struct blame_entry *ent) +static void emit_blame_entry_line(struct blame_scoreboard *sb, + struct blame_entry *ent) { - unsigned long line; - size_t len, maxlen = 2; - const char* pos, *endpos; + const char *cp, *cpend; - for (line = ent->lno; line < ent->lno + ent->num_lines; line++) { - html("\n"); - pos = blame_nth_line(sb, line); - endpos = blame_nth_line(sb, line + 1); - len = 0; - while (pos < endpos) { - len++; - if (*pos++ == '\t') - len = (len + 7) & ~7; - } - if (len > maxlen) - maxlen = len; - } + cp = blame_nth_line(sb, ent->lno); + cpend = blame_nth_line(sb, ent->lno + ent->num_lines); - for (len = 0; len < maxlen - 1; len++) - html(" "); + html_ntxt(cp, cpend - cp); } struct walk_tree_context { @@ -102,7 +88,6 @@ static void print_object(const unsigned char *sha1, const char *path, const char *basename, const char *rev) { enum object_type type; - char *buf; unsigned long size; struct argv_array rev_argv = ARGV_ARRAY_INIT; struct rev_info revs; @@ -117,13 +102,6 @@ static void print_object(const unsigned char *sha1, const char *path, return; } - buf = read_sha1_file(sha1, &type, &size); - if (!buf) { - cgit_print_error_page(500, "Internal server error", - "Error reading object %s", sha1_to_hex(sha1)); - return; - } - argv_array_push(&rev_argv, "blame"); argv_array_push(&rev_argv, rev); init_revisions(&revs, NULL); @@ -179,37 +157,20 @@ static void print_object(const unsigned char *sha1, const char *path, html("</td>\n"); } - html("<td class='lines'><div>"); - - /* Colored bars behind lines */ - html("<div>"); + /* Lines */ + html("<td class='lines'>"); for (ent = sb.ent; ent; ) { struct blame_entry *e = ent->next; - html("<div class='alt'><pre>"); - emit_blame_entry_line_background(&sb, ent); - html("</pre></div>"); + html("<div class='alt'><pre><code>"); + emit_blame_entry_line(&sb, ent); + html("</code></pre></div>"); free(ent); ent = e; } - html("</div>"); + html("</td>\n"); free((void *)sb.final_buf); - /* Lines */ - html("<pre><code>"); - if (ctx.repo->source_filter) { - char *filter_arg = xstrdup(basename); - cgit_open_filter(ctx.repo->source_filter, filter_arg); - html_raw(buf, size); - cgit_close_filter(ctx.repo->source_filter); - free(filter_arg); - } else { - html_txt(buf); - } - html("</code></pre>"); - - html("</div></td>\n"); - html("</tr>\n</table>\n"); cgit_print_layout_end(); |