if (!set->append ||
ctx->info->defines[key_idx].type != SET_STR) {
if (set->append && ctx->info->defines[key_idx].type != SET_FILTER_ARRAY)
- *_key = t_strconcat(key, "+", NULL);
+ *_key = t_strconcat(key, SETTINGS_APPEND_KEY_SUFFIX, NULL);
else
*_key = key;
*key_idx_r = key_idx;
set->type = type;
size_t len = strlen(key);
T_BEGIN {
- if (len > 0 && key[len-1] == '+') {
+ if (len > 0 && key[len-1] == SETTINGS_APPEND_KEY_SUFFIX[0]) {
/* key+=value */
set->append = TRUE;
len--;
enum settings_override_type type)
{
size_t key_len = strlen(key);
- bool key_append = (key_len > 0 && key[key_len-1] == '+');
+ bool key_append = (key_len > 0 &&
+ key[key_len-1] == SETTINGS_APPEND_KEY_SUFFIX[0]);
if (set->type != type)
return FALSE;
#define SETTINGS_INCLUDE_GROUP_PREFIX '@'
#define SETTINGS_INCLUDE_GROUP_PREFIX_S "@"
+/* If setting key has such suffix, append the value to it. This can be used
+ for SET_STR and SET_FILTER_ARRAY type settings. */
+#define SETTINGS_APPEND_KEY_SUFFIX "+"
+
/* Set struct settings_instance to events so settings_get() can
use it to get instance-specific settings. */
#define SETTINGS_EVENT_INSTANCE "settings_instance"