X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/f7f26f88755ac6a3b9af4918b51b0d6e7a692c78..8eef4589d0ba80fd4e6a9ce2f3ca4fcf266a64e0:/ui-tree.c
diff --git a/ui-tree.c b/ui-tree.c
index 5ae3926..bbc468e 100644
--- a/ui-tree.c
+++ b/ui-tree.c
@@ -45,13 +45,12 @@ static void print_text_buffer(const char *name, char *buf, unsigned long size)
}
if (ctx.repo->source_filter) {
+ char *filter_arg = xstrdup(name);
html("
");
- ctx.repo->source_filter->argv[1] = xstrdup(name);
- cgit_open_filter(ctx.repo->source_filter);
+ cgit_open_filter(ctx.repo->source_filter, filter_arg);
html_raw(buf, size);
cgit_close_filter(ctx.repo->source_filter);
- free(ctx.repo->source_filter->argv[1]);
- ctx.repo->source_filter->argv[1] = NULL;
+ free(filter_arg);
html("
| \n");
return;
}
@@ -122,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;
@@ -182,7 +180,7 @@ static int ls_item(const unsigned char *sha1, const char *base, int baselen,
return 0;
}
-static void ls_head()
+static void ls_head(void)
{
html("\n");
html("");
@@ -193,7 +191,7 @@ static void ls_head()
html("
\n");
}
-static void ls_tail()
+static void ls_tail(void)
{
html("
\n");
}
@@ -217,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;
@@ -239,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