aboutsummaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--cgit.css66
-rw-r--r--ui-diff.c27
-rw-r--r--ui-ssdiff.c30
-rw-r--r--ui-ssdiff.h3
4 files changed, 30 insertions, 96 deletions
diff --git a/cgit.css b/cgit.css
index 3f37165..bf58b8a 100644
--- a/cgit.css
+++ b/cgit.css
@@ -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
diff --git a/ui-diff.c b/ui-diff.c
index b21c2c1..42e81ac 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -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();