mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
lib: add notmuch_config_get_bool
Booleans have no out of band values, so return a status for errors.
This commit is contained in:
parent
53f27aaf73
commit
a4af7a2a1b
2 changed files with 45 additions and 0 deletions
|
@ -359,6 +359,32 @@ _notmuch_config_load_from_file (notmuch_database_t *notmuch,
|
|||
return status;
|
||||
}
|
||||
|
||||
notmuch_status_t
|
||||
notmuch_config_get_bool (notmuch_database_t *notmuch, notmuch_config_key_t key, notmuch_bool_t *val)
|
||||
{
|
||||
const char *key_string, *val_string;
|
||||
|
||||
key_string = _notmuch_config_key_to_string (key);
|
||||
if (! key_string) {
|
||||
return NOTMUCH_STATUS_ILLEGAL_ARGUMENT;
|
||||
}
|
||||
|
||||
val_string = _notmuch_string_map_get (notmuch->config, key_string);
|
||||
if (! val_string) {
|
||||
*val = FALSE;
|
||||
return NOTMUCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (strcase_equal (val_string, "false") || strcase_equal (val_string, "no"))
|
||||
*val = FALSE;
|
||||
else if (strcase_equal (val_string, "true") || strcase_equal (val_string, "yes"))
|
||||
*val = TRUE;
|
||||
else
|
||||
return NOTMUCH_STATUS_ILLEGAL_ARGUMENT;
|
||||
|
||||
return NOTMUCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static const char *
|
||||
_notmuch_config_key_to_string (notmuch_config_key_t key) {
|
||||
switch (key) {
|
||||
|
|
|
@ -2532,6 +2532,25 @@ notmuch_config_values_start (notmuch_config_values_t *values);
|
|||
void
|
||||
notmuch_config_values_destroy (notmuch_config_values_t *values);
|
||||
|
||||
/**
|
||||
* get a configuration value from an open database as Boolean
|
||||
*
|
||||
* This value reflects all configuration information given at the time
|
||||
* the database was opened.
|
||||
*
|
||||
* @param[in] notmuch database
|
||||
* @param[in] key configuration key
|
||||
* @param[out] val configuration value, converted to Boolean
|
||||
*
|
||||
* @since libnotmuch 5.4 (notmuch 0.32)
|
||||
*
|
||||
* @retval #NOTMUCH_STATUS_ILLEGAL_ARGUMENT if either key is unknown
|
||||
* or the corresponding value does not convert to Boolean.
|
||||
*/
|
||||
notmuch_status_t
|
||||
notmuch_config_get_bool (notmuch_database_t *notmuch,
|
||||
notmuch_config_key_t key,
|
||||
notmuch_bool_t *val);
|
||||
/**
|
||||
* get the current default indexing options for a given database.
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue