author | Ragnar Ouchterlony <ragnar@lysator.liu.se> | 2009-09-16 16:56:26 (UTC) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2009-09-16 18:17:56 (UTC) |
commit | 4a198e4b8ee62a9a8b5156a46bfce46dc7223fe9 (patch) (unidiff) | |
tree | c6389de8ae75cf907ed3884e87ee554d80498145 /ui-ssdiff.c | |
parent | 207cc34711039329b41345f716bf421a88a6fd0a (diff) | |
download | cgit-4a198e4b8ee62a9a8b5156a46bfce46dc7223fe9.zip cgit-4a198e4b8ee62a9a8b5156a46bfce46dc7223fe9.tar.gz cgit-4a198e4b8ee62a9a8b5156a46bfce46dc7223fe9.tar.bz2 |
Fixed side-by-side diff bugs related to binary diff and more.
The fixed bugs:
* "Binary files differ" did not show up either in unidiff or
side-by-side-diff.
* Subproject diffs did not work for side-by-side diffs.
* The ssdiff link on diff pages did not conserve the path.
Signed-off-by: Ragnar Ouchterlony <ragnar@lysator.liu.se>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
-rw-r--r-- | ui-ssdiff.c | 8 |
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 | |||
@@ -105,12 +105,14 @@ static void print_ssdiff_line(char *class, int old_line_no, char *old_line, | |||
105 | int new_line_no, char *new_line) | 105 | int new_line_no, char *new_line) |
106 | { | 106 | { |
107 | html("<tr>"); | 107 | html("<tr>"); |
108 | if (old_line_no > 0) | 108 | if (old_line_no > 0) |
109 | htmlf("<td class='lineno'>%d</td><td class='%s'>", | 109 | htmlf("<td class='lineno'>%d</td><td class='%s'>", |
110 | old_line_no, class); | 110 | old_line_no, class); |
111 | else if (old_line) | ||
112 | htmlf("<td class='lineno'></td><td class='%s'>", class); | ||
111 | else | 113 | else |
112 | htmlf("<td class='lineno'></td><td class='%s_dark'>", class); | 114 | htmlf("<td class='lineno'></td><td class='%s_dark'>", class); |
113 | 115 | ||
114 | if (old_line) { | 116 | if (old_line) { |
115 | old_line = replace_tabs(old_line + 1); | 117 | old_line = replace_tabs(old_line + 1); |
116 | html_txt(old_line); | 118 | html_txt(old_line); |
@@ -119,12 +121,14 @@ static void print_ssdiff_line(char *class, int old_line_no, char *old_line, | |||
119 | 121 | ||
120 | html("</td>"); | 122 | html("</td>"); |
121 | 123 | ||
122 | if (new_line_no > 0) | 124 | if (new_line_no > 0) |
123 | htmlf("<td class='lineno'>%d</td><td class='%s'>", | 125 | htmlf("<td class='lineno'>%d</td><td class='%s'>", |
124 | new_line_no, class); | 126 | new_line_no, class); |
127 | else if (new_line) | ||
128 | htmlf("<td class='lineno'></td><td class='%s'>", class); | ||
125 | else | 129 | else |
126 | htmlf("<td class='lineno'></td><td class='%s_dark'>", class); | 130 | htmlf("<td class='lineno'></td><td class='%s_dark'>", class); |
127 | 131 | ||
128 | if (new_line) { | 132 | if (new_line) { |
129 | new_line = replace_tabs(new_line + 1); | 133 | new_line = replace_tabs(new_line + 1); |
130 | html_txt(new_line); | 134 | html_txt(new_line); |
@@ -248,14 +252,14 @@ void cgit_ssdiff_line_cb(char *line, int len) | |||
248 | } | 252 | } |
249 | line[len - 1] = c; | 253 | line[len - 1] = c; |
250 | } | 254 | } |
251 | 255 | ||
252 | void cgit_ssdiff_header_begin() | 256 | void cgit_ssdiff_header_begin() |
253 | { | 257 | { |
254 | current_old_line = 0; | 258 | current_old_line = -1; |
255 | current_new_line = 0; | 259 | current_new_line = -1; |
256 | html("<tr><td class='space' colspan='4'><div></div></td></tr>"); | 260 | html("<tr><td class='space' colspan='4'><div></div></td></tr>"); |
257 | html("<tr><td class='head' colspan='4'>"); | 261 | html("<tr><td class='head' colspan='4'>"); |
258 | } | 262 | } |
259 | 263 | ||
260 | void cgit_ssdiff_header_end() | 264 | void cgit_ssdiff_header_end() |
261 | { | 265 | { |