mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-06 17:20:22 +00:00
Add build_varname to make a full var name
Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
This commit is contained in:
parent
e15afc8e7c
commit
26faa3668f
17
src/config.c
17
src/config.c
@ -463,10 +463,25 @@ static int config_parse(git_config *cfg_file)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *build_varname(const char *section, const char *name, int len)
|
||||||
|
{
|
||||||
|
static char varname[1024]; /* TODO: What's the longest we should allow? */
|
||||||
|
|
||||||
|
if(strlen(section) + len + 2 > sizeof(varname))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
strcpy(varname, section);
|
||||||
|
strcat(varname, ".");
|
||||||
|
strncat(varname, name, len);
|
||||||
|
|
||||||
|
return varname;
|
||||||
|
}
|
||||||
|
|
||||||
static int parse_variable(git_config *cfg, const char *section_name, const char *line)
|
static int parse_variable(git_config *cfg, const char *section_name, const char *line)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
int has_value = 1;
|
int has_value = 1;
|
||||||
|
const char *varname;
|
||||||
|
|
||||||
const char *var_end = NULL;
|
const char *var_end = NULL;
|
||||||
const char *value_start = NULL;
|
const char *value_start = NULL;
|
||||||
@ -492,6 +507,8 @@ static int parse_variable(git_config *cfg, const char *section_name, const char
|
|||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
varname = build_varname(section_name, line, var_end - line + 1);
|
||||||
|
|
||||||
return GIT_SUCCESS;
|
return GIT_SUCCESS;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Loading…
Reference in New Issue
Block a user