| -rw-r--r-- | cgit.css | 66 | ||||
| -rw-r--r-- | ui-diff.c | 27 | ||||
| -rw-r--r-- | ui-ssdiff.c | 30 | ||||
| -rw-r--r-- | ui-ssdiff.h | 3 |
4 files changed, 30 insertions, 96 deletions
@@ -602,91 +602,37 @@ table.hgraph div.bar { height: 1em; } -table.ssdiff { - width: 100%; -} - -table.ssdiff td { - font-size: 75%; - font-family: monospace; - white-space: pre; - padding: 1px 4px 1px 4px; - border-left: solid 1px #aaa; - border-right: solid 1px #aaa; -} - table.ssdiff td.add { color: black; - background: #cfc; - min-width: 50%; + background: #afa; } table.ssdiff td.add_dark { color: black; - background: #aca; - min-width: 50%; + background: #9c9; } table.ssdiff td.del { color: black; - background: #fcc; - min-width: 50%; + background: #faa; } table.ssdiff td.del_dark { color: black; - background: #caa; - min-width: 50%; + background: #c99; } table.ssdiff td.changed { color: black; - background: #ffc; - min-width: 50%; + background: #ffa; } table.ssdiff td.changed_dark { color: black; - background: #cca; - min-width: 50%; -} - -table.ssdiff td.lineno { - color: black; - background: #eee; - text-align: right; - width: 3em; - min-width: 3em; + background: #cc9; } table.ssdiff td.hunk { color: #black; background: #ccf; - border-top: solid 1px #aaa; - border-bottom: solid 1px #aaa; } - -table.ssdiff td.head { - border-top: solid 1px #aaa; - border-bottom: solid 1px #aaa; -} - -table.ssdiff td.head div.head { - font-weight: bold; - color: black; -} - -table.ssdiff td.foot { - border-top: solid 1px #aaa; - border-left: none; - border-right: none; - border-bottom: none; -} - -table.ssdiff td.space { - border: none; -} - -table.ssdiff td.space div { - min-height: 3em; -}
\ No newline at end of file @@ -246,6 +246,8 @@ static void header(unsigned char *sha1, char *path1, int mode1, html_txt(path2); } html("</div>"); + if (use_ssdiff) + cgit_ssdiff_header(); } static void print_ssdiff_link() @@ -268,26 +270,24 @@ static void filepair_cb(struct diff_filepair *pair) int binary = 0; linediff_fn print_line_fn = print_line; + header(pair->one->sha1, pair->one->path, pair->one->mode, + pair->two->sha1, pair->two->path, pair->two->mode); if (use_ssdiff) { - cgit_ssdiff_header_begin(); + cgit_ssdiff_header(); print_line_fn = cgit_ssdiff_line_cb; } - header(pair->one->sha1, pair->one->path, pair->one->mode, - pair->two->sha1, pair->two->path, pair->two->mode); - if (use_ssdiff) - cgit_ssdiff_header_end(); if (S_ISGITLINK(pair->one->mode) || S_ISGITLINK(pair->two->mode)) { if (S_ISGITLINK(pair->one->mode)) - print_line_fn(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52); + print_line(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52); if (S_ISGITLINK(pair->two->mode)) - print_line_fn(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52); + print_line(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52); return; } if (cgit_diff_files(pair->one->sha1, pair->two->sha1, &old_size, &new_size, &binary, print_line_fn)) cgit_print_error("Error running diff"); if (binary) - print_line_fn(" Binary files differ", 20); + html("Binary files differ"); if (use_ssdiff) cgit_ssdiff_footer(); } @@ -334,14 +334,9 @@ void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefi print_ssdiff_link(); cgit_print_diffstat(old_rev_sha1, new_rev_sha1); - if (use_ssdiff) { - html("<table summary='ssdiff' class='ssdiff'>"); - } else { - html("<table summary='diff' class='diff'>"); - html("<tr><td>"); - } + html("<table summary='diff' class='diff'>"); + html("<tr><td>"); cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb, prefix); - if (!use_ssdiff) - html("</td></tr>"); + html("</td></tr>"); html("</table>"); } diff --git a/ui-ssdiff.c b/ui-ssdiff.c index 8215051..3591ab4 100644 --- a/ui-ssdiff.c +++ b/ui-ssdiff.c @@ -40,9 +40,9 @@ static char *replace_tabs(char *line) { char *prev_buf = line; char *cur_buf; - int linelen = strlen(line); + int linelen = strlen(line); int n_tabs = 0; - int i; + int i; char *result; char *spaces = " "; @@ -52,10 +52,10 @@ static char *replace_tabs(char *line) return result; } - for (i = 0; i < linelen; i++) + for (i = 0; i < linelen; i++) if (line[i] == '\t') n_tabs += 1; - result = xmalloc(linelen + n_tabs * 8 + 1); + result = xmalloc(linelen + n_tabs * 8 + 1); result[0] = '\0'; while (1) { @@ -106,10 +106,10 @@ static void print_ssdiff_line(char *class, int old_line_no, char *old_line, { html("<tr>"); if (old_line_no > 0) - htmlf("<td class='lineno'>%d</td><td class='%s'>", + htmlf("<td class='%s'>%d </td><td class='%s'>", class, old_line_no, class); else - htmlf("<td class='lineno'></td><td class='%s_dark'>", class); + htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class); if (old_line) { old_line = replace_tabs(old_line + 1); @@ -117,13 +117,13 @@ static void print_ssdiff_line(char *class, int old_line_no, char *old_line, free(old_line); } - html("</td>"); + html(" </td>"); if (new_line_no > 0) - htmlf("<td class='lineno'>%d</td><td class='%s'>", + htmlf("<td class='%s'> %d </td><td class='%s'>", class, new_line_no, class); else - htmlf("<td class='lineno'></td><td class='%s_dark'>", class); + htmlf("<td class='%s_dark'> </td><td class='%s_dark'>", class, class); if (new_line) { new_line = replace_tabs(new_line + 1); @@ -249,22 +249,16 @@ void cgit_ssdiff_line_cb(char *line, int len) line[len - 1] = c; } -void cgit_ssdiff_header_begin() +void cgit_ssdiff_header() { current_old_line = 0; current_new_line = 0; - 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>"); + html("<table class='ssdiff'>"); } void cgit_ssdiff_footer() { if (deferred_old || deferred_new) cgit_ssdiff_print_deferred_lines(); - html("<tr><td class='foot' colspan='4'></td></tr>"); + html("</table>"); } diff --git a/ui-ssdiff.h b/ui-ssdiff.h index 64b4b12..a0b1efe 100644 --- a/ui-ssdiff.h +++ b/ui-ssdiff.h @@ -5,8 +5,7 @@ extern void cgit_ssdiff_print_deferred_lines(); extern void cgit_ssdiff_line_cb(char *line, int len); -extern void cgit_ssdiff_header_begin(); -extern void cgit_ssdiff_header_end(); +extern void cgit_ssdiff_header(); extern void cgit_ssdiff_footer(); |