Antonio Ospite <ao2@xxxxxx> writes: > Add a helper function to make it clearer that retrieving 'fetch' > configuration from the .gitmodules file is a special case supported > solely for backward compatibility purposes. > ... Then perhaps the new public function deserves a comment stating that? > +struct fetch_config { > + int *max_children; > + int *recurse_submodules; > +}; > + > +static int gitmodules_fetch_config(const char *var, const char *value, void *cb) > +{ > + struct fetch_config *config = cb; > + if (!strcmp(var, "submodule.fetchjobs")) { > + *(config->max_children) = parse_submodule_fetchjobs(var, value); > + return 0; > + } else if (!strcmp(var, "fetch.recursesubmodules")) { > + *(config->recurse_submodules) = parse_fetch_recurse_submodules_arg(var, value); > + return 0; > + } > + > + return 0; > +} > + > +void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules) > +{ > + struct fetch_config config = { > + .max_children = max_children, > + .recurse_submodules = recurse_submodules > + }; We started using designated initializers some time ago, and use of it improves readability of something like this ;-) > + config_from_gitmodules(gitmodules_fetch_config, &config); > +} > diff --git a/submodule-config.h b/submodule-config.h > index 5148801f4..cff297a75 100644 > --- a/submodule-config.h > +++ b/submodule-config.h > @@ -66,4 +66,6 @@ int check_submodule_name(const char *name); > */ > extern void config_from_gitmodules(config_fn_t fn, void *data); > > +extern void fetch_config_from_gitmodules(int *max_children, int *recurse_submodules); > + > #endif /* SUBMODULE_CONFIG_H */