diff options
Diffstat (limited to 'ui-tree.c')
-rw-r--r-- | ui-tree.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/ui-tree.c b/ui-tree.c index 1e4efb2..b61f6f5 100644 --- a/ui-tree.c +++ b/ui-tree.c | |||
@@ -139,8 +139,7 @@ struct single_tree_ctx { | |||
139 | }; | 139 | }; |
140 | 140 | ||
141 | static int single_tree_cb(const struct object_id *oid, struct strbuf *base, | 141 | static int single_tree_cb(const struct object_id *oid, struct strbuf *base, |
142 | const char *pathname, unsigned mode, int stage, | 142 | const char *pathname, unsigned mode, void *cbdata) |
143 | void *cbdata) | ||
144 | { | 143 | { |
145 | struct single_tree_ctx *ctx = cbdata; | 144 | struct single_tree_ctx *ctx = cbdata; |
146 | 145 | ||
@@ -185,8 +184,7 @@ static void write_tree_link(const struct object_id *oid, char *name, | |||
185 | tree_ctx.name = NULL; | 184 | tree_ctx.name = NULL; |
186 | tree_ctx.count = 0; | 185 | tree_ctx.count = 0; |
187 | 186 | ||
188 | read_tree_recursive(the_repository, tree, "", 0, 1, | 187 | read_tree(the_repository, tree, &paths, single_tree_cb, &tree_ctx); |
189 | &paths, single_tree_cb, &tree_ctx); | ||
190 | 188 | ||
191 | if (tree_ctx.count != 1) | 189 | if (tree_ctx.count != 1) |
192 | break; | 190 | break; |
@@ -199,7 +197,7 @@ static void write_tree_link(const struct object_id *oid, char *name, | |||
199 | } | 197 | } |
200 | 198 | ||
201 | static int ls_item(const struct object_id *oid, struct strbuf *base, | 199 | static int ls_item(const struct object_id *oid, struct strbuf *base, |
202 | const char *pathname, unsigned mode, int stage, void *cbdata) | 200 | const char *pathname, unsigned mode, void *cbdata) |
203 | { | 201 | { |
204 | struct walk_tree_context *walk_tree_ctx = cbdata; | 202 | struct walk_tree_context *walk_tree_ctx = cbdata; |
205 | char *name; | 203 | char *name; |
@@ -294,14 +292,13 @@ static void ls_tree(const struct object_id *oid, const char *path, struct walk_t | |||
294 | } | 292 | } |
295 | 293 | ||
296 | ls_head(); | 294 | ls_head(); |
297 | read_tree_recursive(the_repository, tree, "", 0, 1, | 295 | read_tree(the_repository, tree, &paths, ls_item, walk_tree_ctx); |
298 | &paths, ls_item, walk_tree_ctx); | ||
299 | ls_tail(); | 296 | ls_tail(); |
300 | } | 297 | } |
301 | 298 | ||
302 | 299 | ||
303 | static int walk_tree(const struct object_id *oid, struct strbuf *base, | 300 | static int walk_tree(const struct object_id *oid, struct strbuf *base, |
304 | const char *pathname, unsigned mode, int stage, void *cbdata) | 301 | const char *pathname, unsigned mode, void *cbdata) |
305 | { | 302 | { |
306 | struct walk_tree_context *walk_tree_ctx = cbdata; | 303 | struct walk_tree_context *walk_tree_ctx = cbdata; |
307 | 304 | ||
@@ -326,7 +323,7 @@ static int walk_tree(const struct object_id *oid, struct strbuf *base, | |||
326 | return 0; | 323 | return 0; |
327 | } | 324 | } |
328 | } | 325 | } |
329 | ls_item(oid, base, pathname, mode, stage, walk_tree_ctx); | 326 | ls_item(oid, base, pathname, mode, walk_tree_ctx); |
330 | return 0; | 327 | return 0; |
331 | } | 328 | } |
332 | 329 | ||
@@ -374,10 +371,8 @@ void cgit_print_tree(const char *rev, char *path) | |||
374 | goto cleanup; | 371 | goto cleanup; |
375 | } | 372 | } |
376 | 373 | ||
377 | read_tree_recursive(the_repository, | 374 | read_tree(the_repository, repo_get_commit_tree(the_repository, commit), |
378 | repo_get_commit_tree(the_repository, commit), | 375 | &paths, walk_tree, &walk_tree_ctx); |
379 | "", 0, 0, | ||
380 | &paths, walk_tree, &walk_tree_ctx); | ||
381 | if (walk_tree_ctx.state == 1) | 376 | if (walk_tree_ctx.state == 1) |
382 | ls_tail(); | 377 | ls_tail(); |
383 | else if (walk_tree_ctx.state == 2) | 378 | else if (walk_tree_ctx.state == 2) |