summaryrefslogtreecommitdiff
path: root/ui-tree.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2013-03-20 20:21:25 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2013-03-20 20:21:25 +0100
commit0255821e22678d4c58c809efe17bf2798835d5b9 (patch)
treed4679ff23796406648cf83ff0b98940ba844c5e1 /ui-tree.c
parent6d8a789d61f3a682bc040f1f7f44050b1f723546 (diff)
parent59fe348deaa270434f05afc56ca8d13618af9ca9 (diff)
downloadcgit-0255821e22678d4c58c809efe17bf2798835d5b9.tar.gz
cgit-0255821e22678d4c58c809efe17bf2798835d5b9.tar.bz2
cgit-0255821e22678d4c58c809efe17bf2798835d5b9.zip
Merge branch 'wip'
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/ui-tree.c b/ui-tree.c
index 561f9e7..b692b56 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -271,7 +271,6 @@ void cgit_print_tree(const char *rev, char *path)
if (!rev)
rev = ctx.qry.head;
- walk_tree_ctx.curr_rev = xstrdup(rev);
if (get_sha1(rev, sha1)) {
cgit_print_error(fmt("Invalid revision name: %s", rev));
return;
@@ -282,12 +281,17 @@ void cgit_print_tree(const char *rev, char *path)
return;
}
+ walk_tree_ctx.curr_rev = xstrdup(rev);
+
if (path == NULL) {
ls_tree(commit->tree->object.sha1, NULL, &walk_tree_ctx);
- return;
+ goto cleanup;
}
read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx);
if (walk_tree_ctx.state == 1)
ls_tail();
+
+cleanup:
+ free(walk_tree_ctx.curr_rev);
}