list-objects-filter: implement composite filters
[gitweb.git] / list-objects-filter-options.h
index e3adc78ebf74717d3b4e544c5bbb5215d9402a92..789faef1e500bafea4674cce0ba1917cf684306c 100644 (file)
@@ -13,7 +13,7 @@ enum list_objects_filter_choice {
        LOFC_BLOB_LIMIT,
        LOFC_TREE_DEPTH,
        LOFC_SPARSE_OID,
-       LOFC_SPARSE_PATH,
+       LOFC_COMBINE,
        LOFC__COUNT /* must be last */
 };
 
@@ -39,14 +39,23 @@ struct list_objects_filter_options {
        unsigned int no_filter : 1;
 
        /*
-        * Parsed values (fields) from within the filter-spec.  These are
-        * choice-specific; not all values will be defined for any given
-        * choice.
+        * BEGIN choice-specific parsed values from within the filter-spec. Only
+        * some values will be defined for any given choice.
         */
+
        struct object_id *sparse_oid_value;
-       char *sparse_path_value;
        unsigned long blob_limit_value;
        unsigned long tree_exclude_depth;
+
+       /* LOFC_COMBINE values */
+
+       /* This array contains all the subfilters which this filter combines. */
+       size_t sub_nr, sub_alloc;
+       struct list_objects_filter_options *sub;
+
+       /*
+        * END choice-specific parsed values.
+        */
 };
 
 /* Normalized command line arguments */