summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/submodule.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/submodule.c b/src/submodule.c
index 4f7a6c613..b927b17b6 100644
--- a/src/submodule.c
+++ b/src/submodule.c
@@ -231,10 +231,13 @@ static int load_submodule_names(git_strmap *out, git_repository *repo, git_confi
fdot = strchr(entry->name, '.');
ldot = strrchr(entry->name, '.');
+ git_buf_clear(&buf);
git_buf_put(&buf, fdot + 1, ldot - fdot - 1);
isvalid = git_submodule_name_is_valid(repo, buf.ptr, 0);
- if (isvalid < 0)
- return isvalid;
+ if (isvalid < 0) {
+ error = isvalid;
+ goto out;
+ }
if (!isvalid)
continue;
@@ -244,9 +247,13 @@ static int load_submodule_names(git_strmap *out, git_repository *repo, git_confi
return -1;
}
}
+ if (error == GIT_ITEROVER)
+ error = 0;
+out:
+ git_buf_free(&buf);
git_config_iterator_free(iter);
- return 0;
+ return error;
}
int git_submodule_lookup(