aboutsummaryrefslogtreecommitdiffstats
path: root/ui-tree.c
diff options
context:
space:
mode:
authorJohn Keeping2014-01-12 17:13:50 +0000
committerJason A. Donenfeld2014-01-12 20:20:20 +0100
commit3d8a6507ca542881a5e8b30ad6b7068a9c4fdeea (patch)
treef95c74d3317546606d72b74db3082769515c5e33 /ui-tree.c
parentda218fcd9eb554a8405ca72e84bcc0feb371194f (diff)
downloadcgit-3d8a6507ca542881a5e8b30ad6b7068a9c4fdeea.tar.gz
cgit-3d8a6507ca542881a5e8b30ad6b7068a9c4fdeea.tar.bz2
cgit-3d8a6507ca542881a5e8b30ad6b7068a9c4fdeea.zip
filter: pass extra arguments via cgit_open_filter
This avoids poking into the filter data structure at various points in the code. We rely on the fact that the number of arguments is fixed based on the filter type (set in cgit_new_filter) and that the call sites all know which filter type they're using. Signed-off-by: John Keeping <john@keeping.me.uk>
Diffstat (limited to 'ui-tree.c')
-rw-r--r--ui-tree.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ui-tree.c b/ui-tree.c
index 5ae3926..e4c3d22 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)
45 } 45 }
46 46
47 if (ctx.repo->source_filter) { 47 if (ctx.repo->source_filter) {
48 char *filter_arg = xstrdup(name);
48 html("<td class='lines'><pre><code>"); 49 html("<td class='lines'><pre><code>");
49 ctx.repo->source_filter->argv[1] = xstrdup(name); 50 cgit_open_filter(ctx.repo->source_filter, filter_arg);
50 cgit_open_filter(ctx.repo->source_filter);
51 html_raw(buf, size); 51 html_raw(buf, size);
52 cgit_close_filter(ctx.repo->source_filter); 52 cgit_close_filter(ctx.repo->source_filter);
53 free(ctx.repo->source_filter->argv[1]); 53 free(filter_arg);
54 ctx.repo->source_filter->argv[1] = NULL;
55 html("</code></pre></td></tr></table>\n"); 54 html("</code></pre></td></tr></table>\n");
56 return; 55 return;
57 } 56 }