summaryrefslogtreecommitdiffabout
path: root/ui-ssdiff.c
Side-by-side diff
Diffstat (limited to 'ui-ssdiff.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-ssdiff.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ui-ssdiff.c b/ui-ssdiff.c
index 8215051..5673642 100644
--- a/ui-ssdiff.c
+++ b/ui-ssdiff.c
@@ -95,46 +95,50 @@ static void deferred_new_add(char *line, int 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='lineno'>%d</td><td class='%s'>",
old_line_no, class);
+ else if (old_line)
+ htmlf("<td class='lineno'></td><td class='%s'>", class);
else
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='lineno'>%d</td><td class='%s'>",
new_line_no, class);
+ else if (new_line)
+ htmlf("<td class='lineno'></td><td class='%s'>", class);
else
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;
@@ -238,33 +242,33 @@ void cgit_ssdiff_line_cb(char *line, int len)
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_begin()
{
- current_old_line = 0;
- current_new_line = 0;
+ current_old_line = -1;
+ current_new_line = -1;
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("<tr><td class='foot' colspan='4'></td></tr>");
}