config: deduplicate iterator creation When the glob iterator is passed NULL regexp, call the non-globbing iterator so we don't have to special-case which functions to call.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
diff --git a/src/config.c b/src/config.c
index 061765a..ae4e481 100644
--- a/src/config.c
+++ b/src/config.c
@@ -449,23 +449,20 @@ int git_config_iterator_glob_new(git_config_iterator **out, const git_config *cf
all_iter *iter;
int result;
+ if (regexp == NULL)
+ return git_config_iterator_new(out, cfg);
+
iter = git__calloc(1, sizeof(all_iter));
GITERR_CHECK_ALLOC(iter);
- if (regexp != NULL) {
- if ((result = regcomp(&iter->regex, regexp, REG_EXTENDED)) < 0) {
- giterr_set_regex(&iter->regex, result);
- regfree(&iter->regex);
- return -1;
- }
-
- iter->parent.next = all_iter_glob_next;
- iter->parent.free = all_iter_glob_free;
- } else {
- iter->parent.next = all_iter_next;
- iter->parent.free = all_iter_free;
+ if ((result = regcomp(&iter->regex, regexp, REG_EXTENDED)) < 0) {
+ giterr_set_regex(&iter->regex, result);
+ regfree(&iter->regex);
+ return -1;
}
+ iter->parent.next = all_iter_glob_next;
+ iter->parent.free = all_iter_glob_free;
iter->i = cfg->files.length;
iter->cfg = cfg;