On Wed, Aug 23, 2017 at 12:13 PM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Prathamesh Chavan <pc44800@xxxxxxxxx> 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, ... which this is... > the callback function that is given to for_each_X is > of type each_X_fn. So you suggest s/submodule_list_func_t/each_submodule_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). This reads as a suggestion for for_each_listed_submodule as the name. > I do not offhand think of a reason why the above code need to > deviate from that pattern.