summaryrefslogtreecommitdiffabout
path: root/ui-tree.c
Unidiff
Diffstat (limited to 'ui-tree.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-tree.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-tree.c b/ui-tree.c
index f281937..94aff8f 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -241,51 +241,51 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
241 state = 1; 241 state = 1;
242 ls_head(); 242 ls_head();
243 return READ_TREE_RECURSIVE; 243 return READ_TREE_RECURSIVE;
244 } else { 244 } else {
245 print_object(sha1, buffer, pathname); 245 print_object(sha1, buffer, pathname);
246 return 0; 246 return 0;
247 } 247 }
248 } 248 }
249 ls_item(sha1, base, baselen, pathname, mode, stage, NULL); 249 ls_item(sha1, base, baselen, pathname, mode, stage, NULL);
250 return 0; 250 return 0;
251} 251}
252 252
253 253
254/* 254/*
255 * Show a tree or a blob 255 * Show a tree or a blob
256 * rev: the commit pointing at the root tree object 256 * rev: the commit pointing at the root tree object
257 * path: path to tree or blob 257 * path: path to tree or blob
258 */ 258 */
259void cgit_print_tree(const char *rev, char *path) 259void cgit_print_tree(const char *rev, char *path)
260{ 260{
261 unsigned char sha1[20]; 261 unsigned char sha1[20];
262 struct commit *commit; 262 struct commit *commit;
263 const char *paths[] = {path, NULL}; 263 const char *paths[] = {path, NULL};
264 264
265 if (!rev) 265 if (!rev)
266 rev = ctx.qry.head; 266 rev = ctx.qry.head;
267 267
268 curr_rev = xstrdup(rev); 268 curr_rev = xstrdup(rev);
269 if (get_sha1(rev, sha1)) { 269 if (get_sha1(rev, sha1)) {
270 cgit_print_error(fmt("Invalid revision name: %s", rev)); 270 cgit_print_error(fmt("Invalid revision name: %s", rev));
271 return; 271 return;
272 } 272 }
273 commit = lookup_commit_reference(sha1); 273 commit = lookup_commit_reference(sha1);
274 if (!commit || parse_commit(commit)) { 274 if (!commit || parse_commit(commit)) {
275 cgit_print_error(fmt("Invalid commit reference: %s", rev)); 275 cgit_print_error(fmt("Invalid commit reference: %s", rev));
276 return; 276 return;
277 } 277 }
278 278
279 html("path: <a href='"); 279 html("path: <a href='");
280 html_attr(cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s", rev))); 280 html_attr(cgit_pageurl(ctx.qry.repo, "tree", fmt("h=%s", rev)));
281 html("'>root</a>"); 281 html("'>root</a>");
282 282
283 if (path == NULL) { 283 if (path == NULL) {
284 ls_tree(commit->tree->object.sha1, NULL); 284 ls_tree(commit->tree->object.sha1, NULL);
285 return; 285 return;
286 } 286 }
287 287
288 match_path = path; 288 match_path = path;
289 read_tree_recursive(commit->tree, NULL, 0, 0, paths, walk_tree, NULL); 289 read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL);
290 ls_tail(); 290 ls_tail();
291} 291}