425
* baselen - pointer to size_t which will hold the length of the
426
* section + subsection part, can be NULL
427
*/
428
-static int git_config_parse_key_1(const char *key, char **store_key, size_t *baselen_, int quiet)
428
+int git_config_parse_key(const char *key, char **store_key, size_t *baselen_)
429
{
430
size_t i, baselen;
431
int dot;
437
*/
438
439
if (last_dot == NULL || last_dot == key) {
440
- if (!quiet)
441
- error(_("key does not contain a section: %s"), key);
440
+ error(_("key does not contain a section: %s"), key);
441
return -CONFIG_NO_SECTION_OR_NAME;
442
}
443
444
if (!last_dot[1]) {
446
- if (!quiet)
447
- error(_("key does not contain variable name: %s"), key);
445
+ error(_("key does not contain variable name: %s"), key);
446
return -CONFIG_NO_SECTION_OR_NAME;
447
}
448
453
/*
454
* Validate the key and while at it, lower case it for matching.
455
*/
458
- if (store_key)
459
- *store_key = xmallocz(strlen(key));
456
+ *store_key = xmallocz(strlen(key));
457
458
dot = 0;
459
for (i = 0; key[i]; i++) {
464
if (!dot || i > baselen) {
465
if (!iskeychar(c) ||
466
(i == baselen + 1 && !isalpha(c))) {
470
- if (!quiet)
471
- error(_("invalid key: %s"), key);
467
+ error(_("invalid key: %s"), key);
468
goto out_free_ret_1;
469
}
470
c = tolower(c);
471
} else if (c == '\n') {
476
- if (!quiet)
477
- error(_("invalid key (newline): %s"), key);
472
+ error(_("invalid key (newline): %s"), key);
473
goto out_free_ret_1;
474
}
480
- if (store_key)
481
- (*store_key)[i] = c;
475
+ (*store_key)[i] = c;
476
}
477
478
return 0;
479
480
out_free_ret_1:
487
- if (store_key) {
488
- FREE_AND_NULL(*store_key);
489
- }
481
+ FREE_AND_NULL(*store_key);
482
return -CONFIG_INVALID_KEY;
483
}
484
493
-int git_config_parse_key(const char *key, char **store_key, size_t *baselen)
494
-{
495
- return git_config_parse_key_1(key, store_key, baselen, 0);
496
-}
497
-
498
-int git_config_key_is_valid(const char *key)
499
-{
500
- return !git_config_parse_key_1(key, NULL, NULL, 1);
501
-}
502
-
485
static int config_parse_pair(const char *key, const char *value,
486
config_fn_t fn, void *data)
487
{