From: Junio C Hamano Date: Wed, 13 Apr 2016 21:12:29 +0000 (-0700) Subject: Merge branch 'ak/use-hashmap-iter-first-in-submodule-config' X-Git-Tag: v2.9.0-rc0~136 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/73385f20e14be779f06177fb9f307d63662d36d1?hp=-c Merge branch 'ak/use-hashmap-iter-first-in-submodule-config' Minor code cleanup. * ak/use-hashmap-iter-first-in-submodule-config: submodule-config: use hashmap_iter_first() --- 73385f20e14be779f06177fb9f307d63662d36d1 diff --combined submodule-config.c index b82d1fbb22,6ea31dd363..8ac5031ade --- a/submodule-config.c +++ b/submodule-config.c @@@ -59,7 -59,6 +59,7 @@@ static void free_one_config(struct subm { free((void *) entry->config->path); free((void *) entry->config->name); + free((void *) entry->config->update_strategy.command); free(entry->config); } @@@ -195,8 -194,6 +195,8 @@@ static struct submodule *lookup_or_crea submodule->path = NULL; submodule->url = NULL; + submodule->update_strategy.type = SM_UPDATE_UNSPECIFIED; + submodule->update_strategy.command = NULL; submodule->fetch_recurse = RECURSE_SUBMODULES_NONE; submodule->ignore = NULL; @@@ -296,7 -293,7 +296,7 @@@ static int parse_config(const char *var if (!strcmp(item.buf, "path")) { if (!value) ret = config_error_nonbool(var); - else if (!me->overwrite && submodule->path != NULL) + else if (!me->overwrite && submodule->path) warn_multiple_config(me->commit_sha1, submodule->name, "path"); else { @@@ -320,7 -317,7 +320,7 @@@ } else if (!strcmp(item.buf, "ignore")) { if (!value) ret = config_error_nonbool(var); - else if (!me->overwrite && submodule->ignore != NULL) + else if (!me->overwrite && submodule->ignore) warn_multiple_config(me->commit_sha1, submodule->name, "ignore"); else if (strcmp(value, "untracked") && @@@ -336,23 -333,13 +336,23 @@@ } else if (!strcmp(item.buf, "url")) { if (!value) { ret = config_error_nonbool(var); - } else if (!me->overwrite && submodule->url != NULL) { + } else if (!me->overwrite && submodule->url) { warn_multiple_config(me->commit_sha1, submodule->name, "url"); } else { free((void *) submodule->url); submodule->url = xstrdup(value); } + } else if (!strcmp(item.buf, "update")) { + if (!value) + ret = config_error_nonbool(var); + else if (!me->overwrite && + submodule->update_strategy.type != SM_UPDATE_UNSPECIFIED) + warn_multiple_config(me->commit_sha1, submodule->name, + "update"); + else if (parse_submodule_update_strategy(value, + &submodule->update_strategy) < 0) + die(_("invalid value for %s"), var); } strbuf_release(&name); @@@ -405,8 -392,7 +405,7 @@@ static const struct submodule *config_f struct hashmap_iter iter; struct submodule_entry *entry; - hashmap_iter_init(&cache->for_name, &iter); - entry = hashmap_iter_next(&iter); + entry = hashmap_iter_first(&cache->for_name, &iter); if (!entry) return NULL; return entry->config; @@@ -440,8 -426,8 +439,8 @@@ parameter.commit_sha1 = commit_sha1; parameter.gitmodules_sha1 = sha1; parameter.overwrite = 0; - git_config_from_buf(parse_config, rev.buf, config, config_size, - ¶meter); + git_config_from_mem(parse_config, "submodule-blob", rev.buf, + config, config_size, ¶meter); free(config); switch (lookup_type) {