|
diff --git a/ui-diff.c b/ui-diff.c index 5c3bc98..2a22009 100644 --- a/ ui-diff.c+++ b/ ui-diff.c |
|
@@ -1,58 +1,59 @@ |
1 | /* ui-diff.c: show diff between two blobs |
1 | /* ui-diff.c: show diff between two blobs |
2 | * |
2 | * |
3 | * Copyright (C) 2006 Lars Hjemli |
3 | * Copyright (C) 2006 Lars Hjemli |
4 | * |
4 | * |
5 | * Licensed under GNU General Public License v2 |
5 | * Licensed under GNU General Public License v2 |
6 | * (see COPYING for full license text) |
6 | * (see COPYING for full license text) |
7 | */ |
7 | */ |
8 | |
8 | |
9 | #include "cgit.h" |
9 | #include "cgit.h" |
10 | #include "html.h" |
10 | #include "html.h" |
| |
11 | #include "ui-shared.h" |
11 | |
12 | |
12 | unsigned char old_rev_sha1[20]; |
13 | unsigned char old_rev_sha1[20]; |
13 | unsigned char new_rev_sha1[20]; |
14 | unsigned char new_rev_sha1[20]; |
14 | |
15 | |
15 | /* |
16 | /* |
16 | * print a single line returned from xdiff |
17 | * print a single line returned from xdiff |
17 | */ |
18 | */ |
18 | static void print_line(char *line, int len) |
19 | static void print_line(char *line, int len) |
19 | { |
20 | { |
20 | char *class = "ctx"; |
21 | char *class = "ctx"; |
21 | char c = line[len-1]; |
22 | char c = line[len-1]; |
22 | |
23 | |
23 | if (line[0] == '+') |
24 | if (line[0] == '+') |
24 | class = "add"; |
25 | class = "add"; |
25 | else if (line[0] == '-') |
26 | else if (line[0] == '-') |
26 | class = "del"; |
27 | class = "del"; |
27 | else if (line[0] == '@') |
28 | else if (line[0] == '@') |
28 | class = "hunk"; |
29 | class = "hunk"; |
29 | |
30 | |
30 | htmlf("<div class='%s'>", class); |
31 | htmlf("<div class='%s'>", class); |
31 | line[len-1] = '\0'; |
32 | line[len-1] = '\0'; |
32 | html_txt(line); |
33 | html_txt(line); |
33 | html("</div>"); |
34 | html("</div>"); |
34 | line[len-1] = c; |
35 | line[len-1] = c; |
35 | } |
36 | } |
36 | |
37 | |
37 | static void header(unsigned char *sha1, char *path1, int mode1, |
38 | static void header(unsigned char *sha1, char *path1, int mode1, |
38 | unsigned char *sha2, char *path2, int mode2) |
39 | unsigned char *sha2, char *path2, int mode2) |
39 | { |
40 | { |
40 | char *abbrev1, *abbrev2; |
41 | char *abbrev1, *abbrev2; |
41 | int subproject; |
42 | int subproject; |
42 | |
43 | |
43 | subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2)); |
44 | subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2)); |
44 | html("<div class='head'>"); |
45 | html("<div class='head'>"); |
45 | html("diff --git a/"); |
46 | html("diff --git a/"); |
46 | html_txt(path1); |
47 | html_txt(path1); |
47 | html(" b/"); |
48 | html(" b/"); |
48 | html_txt(path2); |
49 | html_txt(path2); |
49 | |
50 | |
50 | if (is_null_sha1(sha1)) |
51 | if (is_null_sha1(sha1)) |
51 | path1 = "dev/null"; |
52 | path1 = "dev/null"; |
52 | if (is_null_sha1(sha2)) |
53 | if (is_null_sha1(sha2)) |
53 | path2 = "dev/null"; |
54 | path2 = "dev/null"; |
54 | |
55 | |
55 | if (mode1 == 0) |
56 | if (mode1 == 0) |
56 | htmlf("<br/>new file mode %.6o", mode2); |
57 | htmlf("<br/>new file mode %.6o", mode2); |
57 | |
58 | |
58 | if (mode2 == 0) |
59 | if (mode2 == 0) |
|