-rw-r--r-- | ui-ssdiff.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/ui-ssdiff.c b/ui-ssdiff.c index 3591ab4..8215051 100644 --- a/ui-ssdiff.c +++ b/ui-ssdiff.c @@ -85,66 +85,66 @@ static void deferred_old_add(char *line, int line_no) } else { deferred_old = deferred_old_last = item; } } static void deferred_new_add(char *line, int line_no) { struct deferred_lines *item = xmalloc(sizeof(struct deferred_lines)); item->line = xstrdup(line); item->line_no = line_no; item->next = NULL; if (deferred_new) { deferred_new_last->next = item; deferred_new_last = item; } else { deferred_new = deferred_new_last = item; } } static void print_ssdiff_line(char *class, int old_line_no, char *old_line, int new_line_no, char *new_line) { html("<tr>"); if (old_line_no > 0) - htmlf("<td class='%s'>%d </td><td class='%s'>", class, + htmlf("<td class='lineno'>%d</td><td class='%s'>", old_line_no, class); else - htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class); + htmlf("<td class='lineno'></td><td class='%s_dark'>", class); if (old_line) { old_line = replace_tabs(old_line + 1); html_txt(old_line); free(old_line); } html(" </td>"); if (new_line_no > 0) - htmlf("<td class='%s'> %d </td><td class='%s'>", class, + htmlf("<td class='lineno'>%d</td><td class='%s'>", new_line_no, class); else - htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class); + htmlf("<td class='lineno'></td><td class='%s_dark'>", class); if (new_line) { new_line = replace_tabs(new_line + 1); html_txt(new_line); free(new_line); } html("</td></tr>"); } static void print_deferred_old_lines() { struct deferred_lines *iter_old, *tmp; iter_old = deferred_old; while (iter_old) { print_ssdiff_line("del", iter_old->line_no, iter_old->line, -1, NULL); tmp = iter_old->next; free(iter_old); iter_old = tmp; } } @@ -228,37 +228,43 @@ void cgit_ssdiff_line_cb(char *line, int len) if (deferred_old || deferred_new) cgit_ssdiff_print_deferred_lines(); print_ssdiff_line("ctx", current_old_line, line, current_new_line, line); current_old_line += 1; current_new_line += 1; } else if (line[0] == '+') { deferred_new_add(line, current_new_line); current_new_line += 1; } else if (line[0] == '-') { deferred_old_add(line, current_old_line); current_old_line += 1; } else if (line[0] == '@') { html("<tr><td colspan='4' class='hunk'>"); html_txt(line); html("</td></tr>"); } else { html("<tr><td colspan='4' class='ctx'>"); html_txt(line); html("</td></tr>"); } line[len - 1] = c; } -void cgit_ssdiff_header() +void cgit_ssdiff_header_begin() { current_old_line = 0; current_new_line = 0; - html("<table class='ssdiff'>"); + html("<tr><td class='space' colspan='4'><div></div></td></tr>"); + html("<tr><td class='head' colspan='4'>"); +} + +void cgit_ssdiff_header_end() +{ + html("</td><tr>"); } void cgit_ssdiff_footer() { if (deferred_old || deferred_new) cgit_ssdiff_print_deferred_lines(); - html("</table>"); + html("<tr><td class='foot' colspan='4'></td></tr>"); } |