|
diff --git a/ui-diff.c b/ui-diff.c index 10330d3..7ec5701 100644 --- a/ ui-diff.c+++ b/ ui-diff.c |
|
@@ -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>"); |
|