@@ -646,17 +646,17 @@ struct push_default_info
};
static int config_read_push_default(const char *key, const char *value,
- struct key_value_info *kvi UNUSED, void *cb)
+ struct key_value_info *kvi, void *cb)
{
struct push_default_info* info = cb;
if (strcmp(key, "remote.pushdefault") ||
!value || strcmp(value, info->old_name))
return 0;
- info->scope = current_config_scope();
+ info->scope = kvi->scope;
strbuf_reset(&info->origin);
- strbuf_addstr(&info->origin, current_config_name());
- info->linenr = current_config_line();
+ strbuf_addstr(&info->origin, config_origin_type_name(kvi->origin_type));
+ info->linenr = kvi->linenr;
return 0;
}
@@ -2301,19 +2301,18 @@ static void configset_iter(struct config_reader *reader, struct config_set *set,
struct string_list *values;
struct config_set_element *entry;
struct configset_list *list = &set->list;
+ struct key_value_info *kvi;
for (i = 0; i < list->nr; i++) {
entry = list->items[i].e;
value_index = list->items[i].value_index;
values = &entry->value_list;
+ kvi = values->items[value_index].util;
config_reader_set_kvi(reader, values->items[value_index].util);
- if (fn(entry->key, values->items[value_index].string, NULL, data) < 0)
- git_die_config_linenr(entry->key,
- reader->config_kvi->filename,
- reader->config_kvi->linenr);
-
+ if (fn(entry->key, values->items[value_index].string, kvi, data) < 0)
+ git_die_config_linenr(entry->key, kvi->filename, kvi->linenr);
config_reader_set_kvi(reader, NULL);
}
}
@@ -3951,13 +3950,8 @@ static int reader_origin_type(struct config_reader *reader,
return 0;
}
-const char *current_config_origin_type(void)
+const char *config_origin_type_name(enum config_origin_type type)
{
- enum config_origin_type type = CONFIG_ORIGIN_UNKNOWN;
-
- if (reader_origin_type(&the_reader, &type))
- BUG("current_config_origin_type called outside config callback");
-
switch (type) {
case CONFIG_ORIGIN_BLOB:
return "blob";
@@ -3974,6 +3968,16 @@ const char *current_config_origin_type(void)
}
}
+const char *current_config_origin_type(void)
+{
+ enum config_origin_type type = CONFIG_ORIGIN_UNKNOWN;
+
+ if (reader_origin_type(&the_reader, &type))
+ BUG("current_config_origin_type called outside config callback");
+
+ return config_origin_type_name(type);
+}
+
const char *config_scope_name(enum config_scope scope)
{
switch (scope) {
@@ -4021,14 +4025,6 @@ enum config_scope current_config_scope(void)
return the_reader.parsing_scope;
}
-int current_config_line(void)
-{
- if (the_reader.config_kvi)
- return the_reader.config_kvi->linenr;
- else
- return the_reader.source->linenr;
-}
-
int lookup_config(const char **mapping, int nr_mapping, const char *var)
{
int i;
@@ -367,7 +367,7 @@ int git_config_parse_parameter(const char *, config_fn_t fn, void *data);
enum config_scope current_config_scope(void);
const char *current_config_origin_type(void);
const char *current_config_name(void);
-int current_config_line(void);
+const char *config_origin_type_name(enum config_origin_type type);
/*
* Match and parse a config key of the form:
@@ -349,7 +349,7 @@ static void read_branches_file(struct remote_state *remote_state,
}
static int handle_config(const char *key, const char *value,
- struct key_value_info *kvi UNUSED, void *cb)
+ struct key_value_info *kvi, void *cb)
{
const char *name;
size_t namelen;
@@ -414,8 +414,8 @@ static int handle_config(const char *key, const char *value,
}
remote = make_remote(remote_state, name, namelen);
remote->origin = REMOTE_CONFIG;
- if (current_config_scope() == CONFIG_SCOPE_LOCAL ||
- current_config_scope() == CONFIG_SCOPE_WORKTREE)
+ if (kvi->scope == CONFIG_SCOPE_LOCAL ||
+ kvi->scope == CONFIG_SCOPE_WORKTREE)
remote->configured_in_repo = 1;
if (!strcmp(subkey, "mirror"))
remote->mirror = git_config_bool(key, value);
@@ -43,7 +43,7 @@
*/
static int iterate_cb(const char *var, const char *value,
- struct key_value_info *kvi UNUSED, void *data UNUSED)
+ struct key_value_info *kvi, void *data UNUSED)
{
static int nr;
@@ -52,10 +52,10 @@ static int iterate_cb(const char *var, const char *value,
printf("key=%s\n", var);
printf("value=%s\n", value ? value : "(null)");
- printf("origin=%s\n", current_config_origin_type());
- printf("name=%s\n", current_config_name());
- printf("lno=%d\n", current_config_line());
- printf("scope=%s\n", config_scope_name(current_config_scope()));
+ printf("origin=%s\n", config_origin_type_name(kvi->origin_type));
+ printf("name=%s\n", kvi->filename ? kvi->filename : "");
+ printf("lno=%d\n", kvi->linenr);
+ printf("scope=%s\n", config_scope_name(kvi->scope));
return 0;
}