diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2013-08-08 18:59:39 +0400 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2013-08-08 18:59:39 +0400 |
commit | cca5df6376fd41fb4fbbb9f8a9ff87c38079dfd5 (patch) | |
tree | d7e25181e8ba26300208757834788639478a4ec8 /src/config_file.c | |
parent | 3a7ffc29c9416c5d182835c7f18c04437366f218 (diff) |
config: hopefully get the iterator to work on multivars
Diffstat (limited to 'src/config_file.c')
-rw-r--r-- | src/config_file.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/config_file.c b/src/config_file.c index 5559bd406..74b200073 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -433,7 +433,7 @@ static void foreach_iter_free(git_config_iterator *_iter) git__free(iter); } -static int foreach_iter_next(git_config_entry **out, git_config_iterator *_iter) +static int foreach_iter_next(git_config_entry *out, git_config_iterator *_iter) { foreach_iter *iter = (foreach_iter *) _iter; @@ -443,7 +443,9 @@ static int foreach_iter_next(git_config_entry **out, git_config_iterator *_iter) return GIT_ITEROVER; if (!iter->have_regex) { - *out = var->entry; + out->name = var->entry->name; + out->value = var->entry->value; + iter->var = var->next; return 0; } @@ -453,7 +455,8 @@ static int foreach_iter_next(git_config_entry **out, git_config_iterator *_iter) git_config_entry *entry = var->entry; regex_t *regex = &iter->regex;; if (regexec(regex, entry->value, 0, NULL, 0) == 0) { - *out = entry; + out->name = entry->name; + out->value = entry->value; return 0; } } while(var != NULL); |