mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +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;
|
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 *
|
static const char *
|
||||||
_notmuch_config_key_to_string (notmuch_config_key_t key) {
|
_notmuch_config_key_to_string (notmuch_config_key_t key) {
|
||||||
switch (key) {
|
switch (key) {
|
||||||
|
|
|
@ -2532,6 +2532,25 @@ notmuch_config_values_start (notmuch_config_values_t *values);
|
||||||
void
|
void
|
||||||
notmuch_config_values_destroy (notmuch_config_values_t *values);
|
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.
|
* get the current default indexing options for a given database.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue