conf: move duplicate check to _read_name_value()
config_add_block_param() cannot fail, which makes it easier to use.
This commit is contained in:
parent
e3eca82cc3
commit
bc0fec0afe
27
src/conf.c
27
src/conf.c
@ -223,20 +223,13 @@ void config_global_check(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
void
|
||||||
config_add_block_param(struct config_param * param, const char *name,
|
config_add_block_param(struct config_param * param, const char *name,
|
||||||
const char *value, int line, GError **error_r)
|
const char *value, int line)
|
||||||
{
|
{
|
||||||
struct block_param *bp;
|
struct block_param *bp;
|
||||||
|
|
||||||
bp = config_get_block_param(param, name);
|
assert(config_get_block_param(param, name) == NULL);
|
||||||
if (bp != NULL) {
|
|
||||||
g_set_error(error_r, config_quark(), 0,
|
|
||||||
"\"%s\" first defined on line %i, and "
|
|
||||||
"redefined on line %i\n", name,
|
|
||||||
bp->line, line);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
param->num_block_params++;
|
param->num_block_params++;
|
||||||
|
|
||||||
@ -250,8 +243,6 @@ config_add_block_param(struct config_param * param, const char *name,
|
|||||||
bp->value = g_strdup(value);
|
bp->value = g_strdup(value);
|
||||||
bp->line = line;
|
bp->line = line;
|
||||||
bp->used = false;
|
bp->used = false;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
@ -283,8 +274,16 @@ config_read_name_value(struct config_param *param, char *input, unsigned line,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return config_add_block_param(param, name, value, line,
|
const struct block_param *bp = config_get_block_param(param, name);
|
||||||
error_r);
|
if (bp != NULL) {
|
||||||
|
g_set_error(error_r, config_quark(), 0,
|
||||||
|
"\"%s\" is duplicate, first defined on line %i",
|
||||||
|
name, bp->line);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
config_add_block_param(param, name, value, line);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct config_param *
|
static struct config_param *
|
||||||
|
@ -210,8 +210,8 @@ G_GNUC_MALLOC
|
|||||||
struct config_param *
|
struct config_param *
|
||||||
config_new_param(const char *value, int line);
|
config_new_param(const char *value, int line);
|
||||||
|
|
||||||
bool
|
void
|
||||||
config_add_block_param(struct config_param * param, const char *name,
|
config_add_block_param(struct config_param * param, const char *name,
|
||||||
const char *value, int line, GError **error_r);
|
const char *value, int line);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -75,7 +75,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
param = config_new_param(NULL, -1);
|
param = config_new_param(NULL, -1);
|
||||||
config_add_block_param(param, "quality", "5.0", -1, NULL);
|
config_add_block_param(param, "quality", "5.0", -1);
|
||||||
|
|
||||||
encoder = encoder_init(plugin, param, &error);
|
encoder = encoder_init(plugin, param, &error);
|
||||||
if (encoder == NULL) {
|
if (encoder == NULL) {
|
||||||
|
Loading…
Reference in New Issue
Block a user