Merge branch 'jk/config-parsing-cleanup'

Configuration parsing for tar.* configuration variables were
broken. Introduce a new config-keyname parser API to make the
callers much less error prone.

* jk/config-parsing-cleanup:
  reflog: use parse_config_key in config callback
  help: use parse_config_key for man config
  submodule: simplify memory handling in config parsing
  submodule: use parse_config_key when parsing config
  userdiff: drop parse_driver function
  convert some config callbacks to parse_config_key
  archive-tar: use parse_config_key when parsing config
  config: add helper function for parsing key names
This commit is contained in:
Junio C Hamano
2013-02-04 10:24:50 -08:00
10 changed files with 117 additions and 99 deletions

View File

@ -236,21 +236,21 @@ static int add_man_viewer_cmd(const char *name,
static int add_man_viewer_info(const char *var, const char *value)
{
const char *name = var + 4;
const char *subkey = strrchr(name, '.');
const char *name, *subkey;
int namelen;
if (!subkey)
if (parse_config_key(var, "man", &name, &namelen, &subkey) < 0 || !name)
return 0;
if (!strcmp(subkey, ".path")) {
if (!strcmp(subkey, "path")) {
if (!value)
return config_error_nonbool(var);
return add_man_viewer_path(name, subkey - name, value);
return add_man_viewer_path(name, namelen, value);
}
if (!strcmp(subkey, ".cmd")) {
if (!strcmp(subkey, "cmd")) {
if (!value)
return config_error_nonbool(var);
return add_man_viewer_cmd(name, subkey - name, value);
return add_man_viewer_cmd(name, namelen, value);
}
return 0;