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>
此提交包含在:
@ -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("<td class='lines'><pre><code>");
|
||||
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("</code></pre></td></tr></table>\n");
|
||||
return;
|
||||
}
|
||||
|
新增問題並參考
封鎖使用者