diff options
author | Taylor Blau <me@ttaylorr.com> | 2020-07-31 20:26:26 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-08-04 01:03:24 (GMT) |
commit | b9ea214795b89e0455bbe92fab5d30d1f3a4cc6d (patch) | |
tree | 5c020eed4d254c6d08517d82e81e0658f580c980 | |
parent | a08a83db2bf27f015bec9a435f6d73e223c21c5e (diff) | |
download | git-b9ea214795b89e0455bbe92fab5d30d1f3a4cc6d.zip git-b9ea214795b89e0455bbe92fab5d30d1f3a4cc6d.tar.gz git-b9ea214795b89e0455bbe92fab5d30d1f3a4cc6d.tar.bz2 |
list_objects_filter_options: introduce 'list_object_filter_config_name'
In a subsequent commit, we will add configuration options that are
specific to each kind of object filter, in which case it is handy to
have a function that translates between 'enum
list_objects_filter_choice' and an appropriate configuration-friendly
string.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | list-objects-filter-options.c | 23 | ||||
-rw-r--r-- | list-objects-filter-options.h | 6 |
2 files changed, 29 insertions, 0 deletions
diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index 3553ad7..92b408c 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -15,6 +15,29 @@ static int parse_combine_filter( const char *arg, struct strbuf *errbuf); +const char *list_object_filter_config_name(enum list_objects_filter_choice c) +{ + switch (c) { + case LOFC_DISABLED: + /* we have no name for "no filter at all" */ + break; + case LOFC_BLOB_NONE: + return "blob:none"; + case LOFC_BLOB_LIMIT: + return "blob:limit"; + case LOFC_TREE_DEPTH: + return "tree"; + case LOFC_SPARSE_OID: + return "sparse:oid"; + case LOFC_COMBINE: + return "combine"; + case LOFC__COUNT: + /* not a real filter type; just the count of all filters */ + break; + } + BUG("list_object_filter_choice_name: invalid argument '%d'", c); +} + /* * Parse value of the argument to the "filter" keyword. * On the command line this looks like: diff --git a/list-objects-filter-options.h b/list-objects-filter-options.h index 73fffa4..01767c3 100644 --- a/list-objects-filter-options.h +++ b/list-objects-filter-options.h @@ -17,6 +17,12 @@ enum list_objects_filter_choice { LOFC__COUNT /* must be last */ }; +/* + * Returns a configuration key suitable for describing the given object filter, + * e.g.: "blob:none", "combine", etc. + */ +const char *list_object_filter_config_name(enum list_objects_filter_choice c); + struct list_objects_filter_options { /* * 'filter_spec' is the raw argument value given on the command line |