libobs: Write default values to config

This commit is contained in:
derrod 2023-02-03 18:59:24 +01:00 committed by Ryan Foster
parent 278973576e
commit 75693a6682

View file

@ -579,6 +579,16 @@ unlock:
pthread_mutex_unlock(&config->mutex);
}
static void config_set_item_default(config_t *config, const char *section,
const char *name, char *value)
{
config_set_item(config, &config->defaults, section, name, value);
if (!config_has_user_value(config, section, name))
config_set_item(config, &config->sections, section, name,
bstrdup(value));
}
void config_set_string(config_t *config, const char *section, const char *name,
const char *value)
{
@ -626,8 +636,7 @@ void config_set_default_string(config_t *config, const char *section,
{
if (!value)
value = "";
config_set_item(config, &config->defaults, section, name,
bstrdup(value));
config_set_item_default(config, section, name, bstrdup(value));
}
void config_set_default_int(config_t *config, const char *section,
@ -636,7 +645,7 @@ void config_set_default_int(config_t *config, const char *section,
struct dstr str;
dstr_init(&str);
dstr_printf(&str, "%" PRId64, value);
config_set_item(config, &config->defaults, section, name, str.array);
config_set_item_default(config, section, name, str.array);
}
void config_set_default_uint(config_t *config, const char *section,
@ -645,14 +654,14 @@ void config_set_default_uint(config_t *config, const char *section,
struct dstr str;
dstr_init(&str);
dstr_printf(&str, "%" PRIu64, value);
config_set_item(config, &config->defaults, section, name, str.array);
config_set_item_default(config, section, name, str.array);
}
void config_set_default_bool(config_t *config, const char *section,
const char *name, bool value)
{
char *str = bstrdup(value ? "true" : "false");
config_set_item(config, &config->defaults, section, name, str);
config_set_item_default(config, section, name, str);
}
void config_set_default_double(config_t *config, const char *section,
@ -661,7 +670,7 @@ void config_set_default_double(config_t *config, const char *section,
struct dstr str;
dstr_init(&str);
dstr_printf(&str, "%g", value);
config_set_item(config, &config->defaults, section, name, str.array);
config_set_item_default(config, section, name, str.array);
}
const char *config_get_string(config_t *config, const char *section,