Making errbuf an optional argument complicates error reporting. Fix this
by making all callers supply an errbuf, even if they may ignore it. This
will be important in follow-up patches where the filter-spec parsing has
more pitfalls and possible errors.

Signed-off-by: Matthew DeVore <matv...@google.com>
---
 list-objects-filter-options.c | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c
index c0036f7378..aef24ddae3 100644
--- a/list-objects-filter-options.c
+++ b/list-objects-filter-options.c
@@ -23,47 +23,40 @@
  * convenience of the current command.
  */
 static int gently_parse_list_objects_filter(
        struct list_objects_filter_options *filter_options,
        const char *arg,
        struct strbuf *errbuf)
 {
        const char *v0;
 
        if (filter_options->choice) {
-               if (errbuf) {
-                       strbuf_addstr(
-                               errbuf,
-                               _("multiple filter-specs cannot be combined"));
-               }
+               strbuf_addstr(
+                       errbuf, _("multiple filter-specs cannot be combined"));
                return 1;
        }
 
        filter_options->filter_spec = strdup(arg);
 
        if (!strcmp(arg, "blob:none")) {
                filter_options->choice = LOFC_BLOB_NONE;
                return 0;
 
        } else if (skip_prefix(arg, "blob:limit=", &v0)) {
                if (git_parse_ulong(v0, &filter_options->blob_limit_value)) {
                        filter_options->choice = LOFC_BLOB_LIMIT;
                        return 0;
                }
 
        } else if (skip_prefix(arg, "tree:", &v0)) {
                if (!git_parse_ulong(v0, &filter_options->tree_exclude_depth)) {
-                       if (errbuf) {
-                               strbuf_addstr(
-                                       errbuf,
-                                       _("expected 'tree:<depth>'"));
-                       }
+                       strbuf_addstr(errbuf, _("expected 'tree:<depth>'"));
                        return 1;
                }
                filter_options->choice = LOFC_TREE_DEPTH;
                return 0;
 
        } else if (skip_prefix(arg, "sparse:oid=", &v0)) {
                struct object_context oc;
                struct object_id sparse_oid;
 
                /*
@@ -80,22 +73,21 @@ static int gently_parse_list_objects_filter(
        } else if (skip_prefix(arg, "sparse:path=", &v0)) {
                filter_options->choice = LOFC_SPARSE_PATH;
                filter_options->sparse_path_value = strdup(v0);
                return 0;
        }
        /*
         * Please update _git_fetch() in git-completion.bash when you
         * add new filters
         */
 
-       if (errbuf)
-               strbuf_addf(errbuf, "invalid filter-spec '%s'", arg);
+       strbuf_addf(errbuf, "invalid filter-spec '%s'", arg);
 
        memset(filter_options, 0, sizeof(*filter_options));
        return 1;
 }
 
 int parse_list_objects_filter(struct list_objects_filter_options 
*filter_options,
                              const char *arg)
 {
        struct strbuf buf = STRBUF_INIT;
        if (gently_parse_list_objects_filter(filter_options, arg, &buf))
@@ -166,19 +158,22 @@ void partial_clone_register(
         */
        core_partial_clone_filter_default =
                xstrdup(filter_options->filter_spec);
        git_config_set("core.partialclonefilter",
                       core_partial_clone_filter_default);
 }
 
 void partial_clone_get_default_filter_spec(
        struct list_objects_filter_options *filter_options)
 {
+       struct strbuf errbuf = STRBUF_INIT;
+
        /*
         * Parse default value, but silently ignore it if it is invalid.
         */
        if (!core_partial_clone_filter_default)
                return;
        gently_parse_list_objects_filter(filter_options,
                                         core_partial_clone_filter_default,
-                                        NULL);
+                                        &errbuf);
+       strbuf_release(&errbuf);
 }
-- 
2.17.1

Reply via email to