aboutsummaryrefslogtreecommitdiffstats
path: root/ui-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/ui-tree.c b/ui-tree.c
index b1adcc7..b544440 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -202,6 +202,9 @@ static void ls_tail()
202static void ls_tree(const unsigned char *sha1, char *path) 202static void ls_tree(const unsigned char *sha1, char *path)
203{ 203{
204 struct tree *tree; 204 struct tree *tree;
205 struct pathspec paths = {
206 .nr = 0
207 };
205 208
206 tree = parse_tree_indirect(sha1); 209 tree = parse_tree_indirect(sha1);
207 if (!tree) { 210 if (!tree) {
@@ -211,7 +214,7 @@ static void ls_tree(const unsigned char *sha1, char *path)
211 } 214 }
212 215
213 ls_head(); 216 ls_head();
214 read_tree_recursive(tree, "", 0, 1, NULL, ls_item, NULL); 217 read_tree_recursive(tree, "", 0, 1, &paths, ls_item, NULL);
215 ls_tail(); 218 ls_tail();
216} 219}
217 220
@@ -252,7 +255,14 @@ void cgit_print_tree(const char *rev, char *path)
252{ 255{
253 unsigned char sha1[20]; 256 unsigned char sha1[20];
254 struct commit *commit; 257 struct commit *commit;
255 const char *paths[] = {path, NULL}; 258 struct pathspec_item path_items = {
259 .match = path,
260 .len = path ? strlen(path) : 0
261 };
262 struct pathspec paths = {
263 .nr = path ? 1 : 0,
264 .items = &path_items
265 };
256 266
257 if (!rev) 267 if (!rev)
258 rev = ctx.qry.head; 268 rev = ctx.qry.head;
@@ -274,6 +284,6 @@ void cgit_print_tree(const char *rev, char *path)
274 } 284 }
275 285
276 match_path = path; 286 match_path = path;
277 read_tree_recursive(commit->tree, "", 0, 0, paths, walk_tree, NULL); 287 read_tree_recursive(commit->tree, "", 0, 0, &paths, walk_tree, NULL);
278 ls_tail(); 288 ls_tail();
279} 289}