diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/filter.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/filter.c b/src/filter.c index 3c6a0a9d8..e25d37c35 100644 --- a/src/filter.c +++ b/src/filter.c @@ -27,6 +27,7 @@ struct git_filter_source { }; typedef struct { + const char *filter_name; git_filter *filter; void *payload; } git_filter_entry; @@ -526,7 +527,9 @@ int git_filter_list__load_ext( fe = git_array_alloc(fl->filters); GITERR_CHECK_ALLOC(fe); - fe->filter = fdef->filter; + + fe->filter = fdef->filter; + fe->filter_name = fdef->filter_name; fe->payload = payload; } } @@ -574,6 +577,25 @@ void git_filter_list_free(git_filter_list *fl) git__free(fl); } +int git_filter_list_contains( + git_filter_list *fl, + const char *name) +{ + size_t i; + + assert(name); + + if (!fl) + return 0; + + for (i = 0; i < fl->filters.size; i++) { + if (strcmp(fl->filters.ptr[i].filter_name, name) == 0) + return 1; + } + + return 0; +} + int git_filter_list_push( git_filter_list *fl, git_filter *filter, void *payload) { |
