Aligned all different files, so that all side-by-side tables look
the same. Also made sure that the tables take up the whole browser
width.
Also various changes to the css to make things easier on the eye.
Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
+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;
table.ssdiff td.add {
color: black;
+ background: #cfc;
+ min-width: 50%;
}
table.ssdiff td.add_dark {
color: black;
}
table.ssdiff td.add_dark {
color: black;
+ background: #aca;
+ min-width: 50%;
}
table.ssdiff td.del {
color: black;
}
table.ssdiff td.del {
color: black;
+ background: #fcc;
+ min-width: 50%;
}
table.ssdiff td.del_dark {
color: black;
}
table.ssdiff td.del_dark {
color: black;
+ background: #caa;
+ min-width: 50%;
}
table.ssdiff td.changed {
color: black;
}
table.ssdiff td.changed {
color: black;
+ background: #ffc;
+ min-width: 50%;
}
table.ssdiff td.changed_dark {
color: black;
}
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;
}
table.ssdiff td.hunk {
color: #black;
background: #ccf;
}
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
html_txt(path2);
}
html("</div>");
html_txt(path2);
}
html("</div>");
- if (use_ssdiff)
- cgit_ssdiff_header();
}
static void print_ssdiff_link()
}
static void print_ssdiff_link()
int binary = 0;
linediff_fn print_line_fn = print_line;
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);
+ cgit_ssdiff_header_begin();
print_line_fn = cgit_ssdiff_line_cb;
}
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))
if (S_ISGITLINK(pair->one->mode) || S_ISGITLINK(pair->two->mode)) {
if (S_ISGITLINK(pair->one->mode))
- print_line(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52);
+ print_line_fn(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52);
if (S_ISGITLINK(pair->two->mode))
if (S_ISGITLINK(pair->two->mode))
- print_line(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52);
+ print_line_fn(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)
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)
- html("Binary files differ");
+ print_line_fn(" Binary files differ", 20);
if (use_ssdiff)
cgit_ssdiff_footer();
}
if (use_ssdiff)
cgit_ssdiff_footer();
}
print_ssdiff_link();
cgit_print_diffstat(old_rev_sha1, new_rev_sha1);
print_ssdiff_link();
cgit_print_diffstat(old_rev_sha1, new_rev_sha1);
- html("<table summary='diff' class='diff'>");
- html("<tr><td>");
+ if (use_ssdiff) {
+ html("<table summary='ssdiff' class='ssdiff'>");
+ } else {
+ html("<table summary='diff' class='diff'>");
+ html("<tr><td>");
+ }
cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb, prefix);
cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb, prefix);
+ if (!use_ssdiff)
+ html("</td></tr>");
{
char *prev_buf = line;
char *cur_buf;
{
char *prev_buf = line;
char *cur_buf;
- int linelen = strlen(line);
+ int linelen = strlen(line);
char *result;
char *spaces = " ";
char *result;
char *spaces = " ";
- for (i = 0; i < linelen; i++)
+ for (i = 0; i < linelen; i++)
if (line[i] == '\t')
n_tabs += 1;
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) {
result[0] = '\0';
while (1) {
{
html("<tr>");
if (old_line_no > 0)
{
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
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);
if (old_line) {
old_line = replace_tabs(old_line + 1);
- htmlf("<td class='%s'> %d </td><td class='%s'>", class,
+ htmlf("<td class='lineno'>%d</td><td class='%s'>",
new_line_no, class);
else
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);
if (new_line) {
new_line = replace_tabs(new_line + 1);
-void cgit_ssdiff_header()
+void cgit_ssdiff_header_begin()
{
current_old_line = 0;
current_new_line = 0;
{
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();
}
void cgit_ssdiff_footer()
{
if (deferred_old || deferred_new)
cgit_ssdiff_print_deferred_lines();
+ html("<tr><td class='foot' colspan='4'></td></tr>");
extern void cgit_ssdiff_line_cb(char *line, int len);
extern void cgit_ssdiff_line_cb(char *line, int len);
-extern void cgit_ssdiff_header();
+extern void cgit_ssdiff_header_begin();
+extern void cgit_ssdiff_header_end();
extern void cgit_ssdiff_footer();
extern void cgit_ssdiff_footer();