Merge branch 'ak/use-hashmap-iter-first-in-submodule-config'
authorJunio C Hamano <gitster@pobox.com>
Wed, 13 Apr 2016 21:12:29 +0000 (14:12 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 13 Apr 2016 21:12:29 +0000 (14:12 -0700)
Minor code cleanup.

* ak/use-hashmap-iter-first-in-submodule-config:
submodule-config: use hashmap_iter_first()

1  2 
submodule-config.c
diff --combined submodule-config.c
index b82d1fbb22efd4c7279edd05955c38ba8df5311b,6ea31dd363c08f184fdaaa3714f7dfe62becb2d9..8ac5031ade2e71b2ac1a70a9130b3eef25eebc35
@@@ -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 {
        } 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") &&
        } 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;
        parameter.commit_sha1 = commit_sha1;
        parameter.gitmodules_sha1 = sha1;
        parameter.overwrite = 0;
 -      git_config_from_buf(parse_config, rev.buf, config, config_size,
 -                      &parameter);
 +      git_config_from_mem(parse_config, "submodule-blob", rev.buf,
 +                      config, config_size, &parameter);
        free(config);
  
        switch (lookup_type) {