diff options
-rw-r--r-- | cgit.css | 13 | ||||
-rw-r--r-- | ui-diff.c | 32 |
2 files changed, 32 insertions, 13 deletions
@@ -294,19 +294,18 @@ div.diffstat-summary { | |||
294 | padding-top: 0.5em; | 294 | padding-top: 0.5em; |
295 | } | 295 | } |
296 | 296 | ||
297 | table.diff th { | ||
298 | padding: 1em 0em 0.1em 0.1em; | ||
299 | text-align: left; | ||
300 | } | ||
301 | |||
302 | table.diff td { | 297 | table.diff td { |
303 | border: solid 1px black; | ||
304 | font-family: monospace; | 298 | font-family: monospace; |
305 | white-space: pre; | 299 | white-space: pre; |
306 | } | 300 | } |
307 | 301 | ||
302 | table.diff td div.head { | ||
303 | font-weight: bold; | ||
304 | padding-top: 1em; | ||
305 | } | ||
306 | |||
308 | table.diff td div.hunk { | 307 | table.diff td div.hunk { |
309 | background: #ccc; | 308 | color: #009; |
310 | } | 309 | } |
311 | 310 | ||
312 | table.diff td div.add { | 311 | table.diff td div.add { |
@@ -31,12 +31,33 @@ static void print_line(char *line, int len) | |||
31 | line[len-1] = c; | 31 | line[len-1] = c; |
32 | } | 32 | } |
33 | 33 | ||
34 | static void filepair_cb(struct diff_filepair *pair) | 34 | static void header(unsigned char *sha1, char *path1, |
35 | unsigned char *sha2, char *path2) | ||
35 | { | 36 | { |
36 | html("<tr><th>"); | 37 | char *abbrev1, *abbrev2; |
37 | html_txt(pair->two->path); | 38 | |
38 | html("</th></tr>"); | ||
39 | html("<tr><td>"); | 39 | html("<tr><td>"); |
40 | html("<div class='head'>"); | ||
41 | html("diff --git a/"); | ||
42 | html_txt(path1); | ||
43 | html(" b/"); | ||
44 | html_txt(path2); | ||
45 | abbrev1 = xstrdup(find_unique_abbrev(sha1, DEFAULT_ABBREV)); | ||
46 | abbrev2 = xstrdup(find_unique_abbrev(sha2, DEFAULT_ABBREV)); | ||
47 | htmlf("\nindex %s..%s", abbrev1, abbrev2); | ||
48 | free(abbrev1); | ||
49 | free(abbrev2); | ||
50 | html("\n--- a/"); | ||
51 | html_txt(path1); | ||
52 | html("\n+++ b/"); | ||
53 | html_txt(path2); | ||
54 | html("</div>"); | ||
55 | } | ||
56 | |||
57 | static void filepair_cb(struct diff_filepair *pair) | ||
58 | { | ||
59 | header(pair->one->sha1, pair->one->path, | ||
60 | pair->two->sha1, pair->two->path); | ||
40 | if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) | 61 | if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) |
41 | cgit_print_error("Error running diff"); | 62 | cgit_print_error("Error running diff"); |
42 | html("</tr></td>"); | 63 | html("</tr></td>"); |
@@ -63,9 +84,8 @@ void cgit_print_diff(const char *old_hex, const char *new_hex, char *path) | |||
63 | html("<table class='diff'>"); | 84 | html("<table class='diff'>"); |
64 | switch(type) { | 85 | switch(type) { |
65 | case OBJ_BLOB: | 86 | case OBJ_BLOB: |
66 | if (path) | ||
67 | htmlf("<tr><th>%s</th></tr>", path); | ||
68 | html("<tr><td>"); | 87 | html("<tr><td>"); |
88 | header(sha1, path, sha2, path); | ||
69 | if (cgit_diff_files(sha1, sha2, print_line)) | 89 | if (cgit_diff_files(sha1, sha2, print_line)) |
70 | cgit_print_error("Error running diff"); | 90 | cgit_print_error("Error running diff"); |
71 | html("</tr></td>"); | 91 | html("</tr></td>"); |