summaryrefslogtreecommitdiffabout
path: root/ui-diff.c
authorLars Hjemli <hjemli@gmail.com>2007-11-11 12:17:13 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-11-11 12:17:13 (UTC)
commita7cf406c802394460cb14c79f3f43582d1428a45 (patch) (unidiff)
tree71f3069c782698ae2972459258d551055f502c4f /ui-diff.c
parentab21082c21867e035cd925a06d6d55fb3143d883 (diff)
parent2ff33a8a0405b420cd75e0e207c7efeecd6f130b (diff)
downloadcgit-a7cf406c802394460cb14c79f3f43582d1428a45.zip
cgit-a7cf406c802394460cb14c79f3f43582d1428a45.tar.gz
cgit-a7cf406c802394460cb14c79f3f43582d1428a45.tar.bz2
Merge branch 'lh/testsuite'
* lh/testsuite: Set commit date on snapshot contents Fix html error detected by test-suite Create initial testsuite
Diffstat (limited to 'ui-diff.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-diff.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-diff.c b/ui-diff.c
index ac9a3fa..4fcf852 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -80,70 +80,70 @@ static void header(unsigned char *sha1, char *path1, int mode1,
80 cgit_tree_link(path2, NULL, NULL, cgit_query_head, 80 cgit_tree_link(path2, NULL, NULL, cgit_query_head,
81 sha1_to_hex(new_rev_sha1), path2); 81 sha1_to_hex(new_rev_sha1), path2);
82 else 82 else
83 html_txt(path2); 83 html_txt(path2);
84 } 84 }
85 html("</div>"); 85 html("</div>");
86} 86}
87 87
88static void filepair_cb(struct diff_filepair *pair) 88static void filepair_cb(struct diff_filepair *pair)
89{ 89{
90 header(pair->one->sha1, pair->one->path, pair->one->mode, 90 header(pair->one->sha1, pair->one->path, pair->one->mode,
91 pair->two->sha1, pair->two->path, pair->two->mode); 91 pair->two->sha1, pair->two->path, pair->two->mode);
92 if (S_ISGITLINK(pair->one->mode) || S_ISGITLINK(pair->two->mode)) { 92 if (S_ISGITLINK(pair->one->mode) || S_ISGITLINK(pair->two->mode)) {
93 if (S_ISGITLINK(pair->one->mode)) 93 if (S_ISGITLINK(pair->one->mode))
94 print_line(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52); 94 print_line(fmt("-Subproject %s", sha1_to_hex(pair->one->sha1)), 52);
95 if (S_ISGITLINK(pair->two->mode)) 95 if (S_ISGITLINK(pair->two->mode))
96 print_line(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52); 96 print_line(fmt("+Subproject %s", sha1_to_hex(pair->two->sha1)), 52);
97 return; 97 return;
98 } 98 }
99 if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line)) 99 if (cgit_diff_files(pair->one->sha1, pair->two->sha1, print_line))
100 cgit_print_error("Error running diff"); 100 cgit_print_error("Error running diff");
101} 101}
102 102
103void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix) 103void cgit_print_diff(const char *new_rev, const char *old_rev, const char *prefix)
104{ 104{
105 enum object_type type; 105 enum object_type type;
106 unsigned long size; 106 unsigned long size;
107 struct commit *commit, *commit2; 107 struct commit *commit, *commit2;
108 108
109 if (!new_rev) 109 if (!new_rev)
110 new_rev = cgit_query_head; 110 new_rev = cgit_query_head;
111 get_sha1(new_rev, new_rev_sha1); 111 get_sha1(new_rev, new_rev_sha1);
112 type = sha1_object_info(new_rev_sha1, &size); 112 type = sha1_object_info(new_rev_sha1, &size);
113 if (type == OBJ_BAD) { 113 if (type == OBJ_BAD) {
114 cgit_print_error(fmt("Bad object name: %s", new_rev)); 114 cgit_print_error(fmt("Bad object name: %s", new_rev));
115 return; 115 return;
116 } 116 }
117 if (type != OBJ_COMMIT) { 117 if (type != OBJ_COMMIT) {
118 cgit_print_error(fmt("Unhandled object type: %s", 118 cgit_print_error(fmt("Unhandled object type: %s",
119 typename(type))); 119 typename(type)));
120 return; 120 return;
121 } 121 }
122 122
123 commit = lookup_commit_reference(new_rev_sha1); 123 commit = lookup_commit_reference(new_rev_sha1);
124 if (!commit || parse_commit(commit)) 124 if (!commit || parse_commit(commit))
125 cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(new_rev_sha1))); 125 cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(new_rev_sha1)));
126 126
127 if (old_rev) 127 if (old_rev)
128 get_sha1(old_rev, old_rev_sha1); 128 get_sha1(old_rev, old_rev_sha1);
129 else if (commit->parents && commit->parents->item) 129 else if (commit->parents && commit->parents->item)
130 hashcpy(old_rev_sha1, commit->parents->item->object.sha1); 130 hashcpy(old_rev_sha1, commit->parents->item->object.sha1);
131 else 131 else
132 hashclr(old_rev_sha1); 132 hashclr(old_rev_sha1);
133 133
134 if (!is_null_sha1(old_rev_sha1)) { 134 if (!is_null_sha1(old_rev_sha1)) {
135 type = sha1_object_info(old_rev_sha1, &size); 135 type = sha1_object_info(old_rev_sha1, &size);
136 if (type == OBJ_BAD) { 136 if (type == OBJ_BAD) {
137 cgit_print_error(fmt("Bad object name: %s", sha1_to_hex(old_rev_sha1))); 137 cgit_print_error(fmt("Bad object name: %s", sha1_to_hex(old_rev_sha1)));
138 return; 138 return;
139 } 139 }
140 commit2 = lookup_commit_reference(old_rev_sha1); 140 commit2 = lookup_commit_reference(old_rev_sha1);
141 if (!commit2 || parse_commit(commit2)) 141 if (!commit2 || parse_commit(commit2))
142 cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(old_rev_sha1))); 142 cgit_print_error(fmt("Bad commit: %s", sha1_to_hex(old_rev_sha1)));
143 } 143 }
144 html("<table class='diff'>"); 144 html("<table summary='diff' class='diff'>");
145 html("<tr><td>"); 145 html("<tr><td>");
146 cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb, prefix); 146 cgit_diff_tree(old_rev_sha1, new_rev_sha1, filepair_cb, prefix);
147 html("</td></tr>"); 147 html("</td></tr>");
148 html("</table>"); 148 html("</table>");
149} 149}