]> git.ipfire.org Git - thirdparty/git.git/commitdiff
list_objects_filter_options: introduce 'list_object_filter_config_name'
authorTaylor Blau <me@ttaylorr.com>
Fri, 31 Jul 2020 20:26:26 +0000 (16:26 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Aug 2020 01:03:24 +0000 (18:03 -0700)
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>
list-objects-filter-options.c
list-objects-filter-options.h

index 3553ad7b0a759e13258a267960caf2ee15b6f019..92b408c0c81c8593c8a93dbcb46546f00ef44ed0 100644 (file)
@@ -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:
index 73fffa4ad746a31a4a798d05f38452f1916b365d..01767c3c968f33440aac3095a25d8cc08bec3659 100644 (file)
@@ -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