degesch: refactoring

This commit is contained in:
Přemysl Eric Janouch 2015-12-24 16:02:26 +01:00
parent 7d531a9bbf
commit 25bb7a978d
1 changed files with 19 additions and 17 deletions

View File

@ -2156,18 +2156,8 @@ log_message_attributed (void *user_data, const char *quote, const char *fmt,
input_show (&ctx->input);
}
static void
apply_attribute_change (struct config_item *item, int id)
{
struct app_context *ctx = item->user_data;
free (ctx->attrs[id]);
ctx->attrs[id] = xstrdup (item->type == CONFIG_ITEM_NULL
? ctx->attrs_defaults[id]
: item->value.string.str);
}
static void
on_config_attribute_change (struct config_item *item)
static ssize_t
attr_by_name (const char *name)
{
static const char *table[ATTR_COUNT] =
{
@ -2177,11 +2167,23 @@ on_config_attribute_change (struct config_item *item)
};
for (size_t i = 0; i < N_ELEMENTS (table); i++)
if (!strcmp (item->schema->name, table[i]))
{
apply_attribute_change (item, i);
return;
}
if (!strcmp (name, table[i]))
return i;
return -1;
}
static void
on_config_attribute_change (struct config_item *item)
{
struct app_context *ctx = item->user_data;
ssize_t id = attr_by_name (item->schema->name);
if (id != -1)
{
free (ctx->attrs[id]);
ctx->attrs[id] = xstrdup (item->type == CONFIG_ITEM_NULL
? ctx->attrs_defaults[id]
: item->value.string.str);
}
}
static void