mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
lib/config: add notmuch_config_get_values_string
This is to support the less common (at least in the notmuch codebase) case of accessing a ;-delimited list config value with an arbitrary string key.
This commit is contained in:
parent
2fc40e24de
commit
0c6db22930
3 changed files with 49 additions and 5 deletions
|
@ -261,13 +261,19 @@ _notmuch_config_load_from_database (notmuch_database_t *notmuch)
|
||||||
notmuch_config_values_t *
|
notmuch_config_values_t *
|
||||||
notmuch_config_get_values (notmuch_database_t *notmuch, notmuch_config_key_t key)
|
notmuch_config_get_values (notmuch_database_t *notmuch, notmuch_config_key_t key)
|
||||||
{
|
{
|
||||||
notmuch_config_values_t *values = NULL;
|
|
||||||
bool ok = false;
|
|
||||||
|
|
||||||
const char *key_str = _notmuch_config_key_to_string (key);
|
const char *key_str = _notmuch_config_key_to_string (key);
|
||||||
|
|
||||||
if (! key_str)
|
if (! key_str)
|
||||||
goto DONE;
|
return NULL;
|
||||||
|
|
||||||
|
return notmuch_config_get_values_string (notmuch, key_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
notmuch_config_values_t *
|
||||||
|
notmuch_config_get_values_string (notmuch_database_t *notmuch, const char *key_str)
|
||||||
|
{
|
||||||
|
notmuch_config_values_t *values = NULL;
|
||||||
|
bool ok = false;
|
||||||
|
|
||||||
values = talloc (notmuch, notmuch_config_values_t);
|
values = talloc (notmuch, notmuch_config_values_t);
|
||||||
if (unlikely (! values))
|
if (unlikely (! values))
|
||||||
|
|
|
@ -2494,7 +2494,6 @@ notmuch_config_list_move_to_next (notmuch_config_list_t *config_list);
|
||||||
void
|
void
|
||||||
notmuch_config_list_destroy (notmuch_config_list_t *config_list);
|
notmuch_config_list_destroy (notmuch_config_list_t *config_list);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration keys known to libnotmuch
|
* Configuration keys known to libnotmuch
|
||||||
*/
|
*/
|
||||||
|
@ -2565,6 +2564,22 @@ notmuch_config_set (notmuch_database_t *notmuch, notmuch_config_key_t key, const
|
||||||
notmuch_config_values_t *
|
notmuch_config_values_t *
|
||||||
notmuch_config_get_values (notmuch_database_t *notmuch, notmuch_config_key_t key);
|
notmuch_config_get_values (notmuch_database_t *notmuch, notmuch_config_key_t key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an iterator for a ';'-delimited list of configuration values
|
||||||
|
*
|
||||||
|
* These values reflect all configuration information given at the
|
||||||
|
* time the database was opened.
|
||||||
|
*
|
||||||
|
* @param[in] notmuch database
|
||||||
|
* @param[in] key configuration key
|
||||||
|
*
|
||||||
|
* @since libnotmuch 5.4 (notmuch 0.32)
|
||||||
|
*
|
||||||
|
* @retval NULL in case of error.
|
||||||
|
*/
|
||||||
|
notmuch_config_values_t *
|
||||||
|
notmuch_config_get_values_string (notmuch_database_t *notmuch, const char *key);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is the given 'config_values' iterator pointing at a valid element.
|
* Is the given 'config_values' iterator pointing at a valid element.
|
||||||
*
|
*
|
||||||
|
|
|
@ -255,6 +255,29 @@ EOF
|
||||||
test_expect_equal_file EXPECTED OUTPUT
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
restore_database
|
restore_database
|
||||||
|
|
||||||
|
test_begin_subtest "notmuch_config_get_values_string"
|
||||||
|
cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${NOTMUCH_CONFIG} %NULL%
|
||||||
|
{
|
||||||
|
notmuch_config_values_t *values;
|
||||||
|
EXPECT0(notmuch_database_set_config (db, "test.list", "x;y;z"));
|
||||||
|
for (values = notmuch_config_get_values_string (db, "test.list");
|
||||||
|
notmuch_config_values_valid (values);
|
||||||
|
notmuch_config_values_move_to_next (values))
|
||||||
|
{
|
||||||
|
puts (notmuch_config_values_get (values));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
cat <<'EOF' >EXPECTED
|
||||||
|
== stdout ==
|
||||||
|
x
|
||||||
|
y
|
||||||
|
z
|
||||||
|
== stderr ==
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
restore_database
|
||||||
|
|
||||||
test_begin_subtest "notmuch_config_get_values (restart)"
|
test_begin_subtest "notmuch_config_get_values (restart)"
|
||||||
cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${NOTMUCH_CONFIG} %NULL%
|
cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} ${NOTMUCH_CONFIG} %NULL%
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue