config: add options parameter to git_config_from_mem
The underlying config parser knows how to handle a config_options struct, but git_config_from_mem() always passes NULL. Let's allow our callers to specify the options struct. We could add a "_with_options" variant, but since there are only a handful of callers, let's just update them to pass NULL. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
63583203df
commit
4574f1aace
11
config.c
11
config.c
|
@ -1569,8 +1569,10 @@ int git_config_from_file(config_fn_t fn, const char *filename, void *data)
|
||||||
return git_config_from_file_with_options(fn, filename, data, NULL);
|
return git_config_from_file_with_options(fn, filename, data, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_config_from_mem(config_fn_t fn, const enum config_origin_type origin_type,
|
int git_config_from_mem(config_fn_t fn,
|
||||||
const char *name, const char *buf, size_t len, void *data)
|
const enum config_origin_type origin_type,
|
||||||
|
const char *name, const char *buf, size_t len,
|
||||||
|
void *data, const struct config_options *opts)
|
||||||
{
|
{
|
||||||
struct config_source top;
|
struct config_source top;
|
||||||
|
|
||||||
|
@ -1585,7 +1587,7 @@ int git_config_from_mem(config_fn_t fn, const enum config_origin_type origin_typ
|
||||||
top.do_ungetc = config_buf_ungetc;
|
top.do_ungetc = config_buf_ungetc;
|
||||||
top.do_ftell = config_buf_ftell;
|
top.do_ftell = config_buf_ftell;
|
||||||
|
|
||||||
return do_config_from(&top, fn, data, NULL);
|
return do_config_from(&top, fn, data, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_config_from_blob_oid(config_fn_t fn,
|
int git_config_from_blob_oid(config_fn_t fn,
|
||||||
|
@ -1606,7 +1608,8 @@ int git_config_from_blob_oid(config_fn_t fn,
|
||||||
return error("reference '%s' does not point to a blob", name);
|
return error("reference '%s' does not point to a blob", name);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = git_config_from_mem(fn, CONFIG_ORIGIN_BLOB, name, buf, size, data);
|
ret = git_config_from_mem(fn, CONFIG_ORIGIN_BLOB, name, buf, size,
|
||||||
|
data, NULL);
|
||||||
free(buf);
|
free(buf);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
7
config.h
7
config.h
|
@ -68,8 +68,11 @@ extern int git_config_from_file(config_fn_t fn, const char *, void *);
|
||||||
extern int git_config_from_file_with_options(config_fn_t fn, const char *,
|
extern int git_config_from_file_with_options(config_fn_t fn, const char *,
|
||||||
void *,
|
void *,
|
||||||
const struct config_options *);
|
const struct config_options *);
|
||||||
extern int git_config_from_mem(config_fn_t fn, const enum config_origin_type,
|
extern int git_config_from_mem(config_fn_t fn,
|
||||||
const char *name, const char *buf, size_t len, void *data);
|
const enum config_origin_type,
|
||||||
|
const char *name,
|
||||||
|
const char *buf, size_t len,
|
||||||
|
void *data, const struct config_options *opts);
|
||||||
extern int git_config_from_blob_oid(config_fn_t fn, const char *name,
|
extern int git_config_from_blob_oid(config_fn_t fn, const char *name,
|
||||||
const struct object_id *oid, void *data);
|
const struct object_id *oid, void *data);
|
||||||
extern void git_config_push_parameter(const char *text);
|
extern void git_config_push_parameter(const char *text);
|
||||||
|
|
2
fsck.c
2
fsck.c
|
@ -1012,7 +1012,7 @@ static int fsck_blob(struct blob *blob, const char *buf,
|
||||||
data.options = options;
|
data.options = options;
|
||||||
data.ret = 0;
|
data.ret = 0;
|
||||||
if (git_config_from_mem(fsck_gitmodules_fn, CONFIG_ORIGIN_BLOB,
|
if (git_config_from_mem(fsck_gitmodules_fn, CONFIG_ORIGIN_BLOB,
|
||||||
".gitmodules", buf, size, &data))
|
".gitmodules", buf, size, &data, NULL))
|
||||||
data.ret |= report(options, &blob->object,
|
data.ret |= report(options, &blob->object,
|
||||||
FSCK_MSG_GITMODULES_PARSE,
|
FSCK_MSG_GITMODULES_PARSE,
|
||||||
"could not parse gitmodules blob");
|
"could not parse gitmodules blob");
|
||||||
|
|
|
@ -561,7 +561,7 @@ static const struct submodule *config_from(struct submodule_cache *cache,
|
||||||
parameter.gitmodules_oid = &oid;
|
parameter.gitmodules_oid = &oid;
|
||||||
parameter.overwrite = 0;
|
parameter.overwrite = 0;
|
||||||
git_config_from_mem(parse_config, CONFIG_ORIGIN_SUBMODULE_BLOB, rev.buf,
|
git_config_from_mem(parse_config, CONFIG_ORIGIN_SUBMODULE_BLOB, rev.buf,
|
||||||
config, config_size, ¶meter);
|
config, config_size, ¶meter, NULL);
|
||||||
strbuf_release(&rev);
|
strbuf_release(&rev);
|
||||||
free(config);
|
free(config);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue