Prathamesh Chavan <[email protected]> writes:
> +typedef void (*submodule_list_func_t)(const struct cache_entry *list_item,
> + void *cb_data);
> +
> static char *get_default_remote(void)
> {
> char *dest = NULL, *ret;
> @@ -353,17 +356,30 @@ static int module_list(int argc, const char **argv,
> const char *prefix)
> return 0;
> }
>
> -static void init_submodule(const char *path, const char *prefix, int quiet)
> +static void for_each_submodule(const struct module_list *list,
> + submodule_list_func_t fn, void *cb_data)
In the output from
$ git grep for_each \*.h
we find that the convention is that an interator over a group of X
is for_each_X, the callback function that is given to for_each_X is
of type each_X_fn. An interator over a subset of group of X that
has trait Y, for_each_Y_X() iterates and calls back a function of
type each_X_fn (e.g. for_each_tag_ref() still calls each_ref_fn).
I do not offhand think of a reason why the above code need to
deviate from that pattern.