diff options
| author | Edward Thomson <ethomson@microsoft.com> | 2015-06-10 14:43:49 -0400 |
|---|---|---|
| committer | Edward Thomson <ethomson@microsoft.com> | 2015-06-10 14:43:49 -0400 |
| commit | 2eecc2886be68496bb9555e4c93e59e985a7d09f (patch) | |
| tree | 058d6717ff7c08e9255135c651b7e5191a91b194 /src | |
| parent | da6720fcc5d9f368e7aa562384439498c1bf307e (diff) | |
| download | libgit2-2eecc2886be68496bb9555e4c93e59e985a7d09f.tar.gz | |
Introduce `git_filter_list_contains`
`git_filter_list_contains` can be used to query a filter list to
determine if a given filter will be run.
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) { |
