about summary refs log tree commit diff
path: root/ui-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/ui-tree.c b/ui-tree.c
index e4c3d22..4ab0137 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -121,9 +121,8 @@ static void print_object(const unsigned char *sha1, char *path, const char *base
 }
 
 
-static int ls_item(const unsigned char *sha1, const char *base, int baselen,
-		   const char *pathname, unsigned int mode, int stage,
-		   void *cbdata)
+static int ls_item(const unsigned char *sha1, struct strbuf *base,
+		const char *pathname, unsigned mode, int stage, void *cbdata)
 {
 	struct walk_tree_context *walk_tree_ctx = cbdata;
 	char *name;
@@ -216,16 +215,15 @@ static void ls_tree(const unsigned char *sha1, char *path, struct walk_tree_cont
 }
 
 
-static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
-		     const char *pathname, unsigned mode, int stage,
-		     void *cbdata)
+static int walk_tree(const unsigned char *sha1, struct strbuf *base,
+		const char *pathname, unsigned mode, int stage, void *cbdata)
 {
 	struct walk_tree_context *walk_tree_ctx = cbdata;
 	static char buffer[PATH_MAX];
 
 	if (walk_tree_ctx->state == 0) {
-		memcpy(buffer, base, baselen);
-		strcpy(buffer + baselen, pathname);
+		memcpy(buffer, base->buf, base->len);
+		strcpy(buffer + base->len, pathname);
 		if (strcmp(walk_tree_ctx->match_path, buffer))
 			return READ_TREE_RECURSIVE;
 
@@ -238,11 +236,10 @@ static int walk_tree(const unsigned char *sha1, const char *base, int baselen,
 			return 0;
 		}
 	}
-	ls_item(sha1, base, baselen, pathname, mode, stage, walk_tree_ctx);
+	ls_item(sha1, base, pathname, mode, stage, walk_tree_ctx);
 	return 0;
 }
 
-
 /*
  * Show a tree or a blob
  *   rev:  the commit pointing at the root tree object