Merge branch 'gc/config-context'

Reduce reliance on a global state in the config reading API.

* gc/config-context:
  config: pass source to config_parser_event_fn_t
  config: add kvi.path, use it to evaluate includes
  config.c: remove config_reader from configsets
  config: pass kvi to die_bad_number()
  trace2: plumb config kvi
  config.c: pass ctx with CLI config
  config: pass ctx with config files
  config.c: pass ctx in configsets
  config: add ctx arg to config_fn_t
  urlmatch.h: use config_fn_t type
  config: inline git_color_default_config
This commit is contained in:
Junio C Hamano
2023-07-06 11:54:48 -07:00
103 changed files with 960 additions and 632 deletions

12
fsck.c
View File

@ -1165,7 +1165,9 @@ struct fsck_gitmodules_data {
int ret;
};
static int fsck_gitmodules_fn(const char *var, const char *value, void *vdata)
static int fsck_gitmodules_fn(const char *var, const char *value,
const struct config_context *ctx UNUSED,
void *vdata)
{
struct fsck_gitmodules_data *data = vdata;
const char *subsection, *key;
@ -1238,7 +1240,8 @@ static int fsck_blob(const struct object_id *oid, const char *buf,
data.ret = 0;
config_opts.error_action = CONFIG_ERROR_SILENT;
if (git_config_from_mem(fsck_gitmodules_fn, CONFIG_ORIGIN_BLOB,
".gitmodules", buf, size, &data, &config_opts))
".gitmodules", buf, size, &data,
CONFIG_SCOPE_UNKNOWN, &config_opts))
data.ret |= report(options, oid, OBJ_BLOB,
FSCK_MSG_GITMODULES_PARSE,
"could not parse gitmodules blob");
@ -1375,7 +1378,8 @@ int fsck_finish(struct fsck_options *options)
return ret;
}
int git_fsck_config(const char *var, const char *value, void *cb)
int git_fsck_config(const char *var, const char *value,
const struct config_context *ctx, void *cb)
{
struct fsck_options *options = cb;
if (strcmp(var, "fsck.skiplist") == 0) {
@ -1396,7 +1400,7 @@ int git_fsck_config(const char *var, const char *value, void *cb)
return 0;
}
return git_default_config(var, value, cb);
return git_default_config(var, value, ctx, cb);
}
/*