diff -Nru a/config.c b/config.c --- a/config.c 2005-01-30 10:27:54 -07:00 +++ b/config.c 2005-01-30 10:27:54 -07:00 @@ -124,59 +124,13 @@ return variable; } -static struct ast_variable *variable_get(const struct ast_category *category, const char *name) -{ - struct ast_variable *variable; - - for (variable = category->root; variable; variable = variable->next) - if (!strcasecmp(variable->name, name)) - return variable; - - return NULL; -} - -static void variable_remove(struct ast_category *category, const struct ast_variable *variable) -{ - struct ast_variable *prev = category->root; - - if (!prev) - return; - - if (prev == variable) { - category->root = prev->next; - if (category->last == variable) - category->last = NULL; - } else { - while (prev->next && (prev->next != variable)) prev = prev->next; - if (prev->next) { - prev->next = variable->next; - if (category->last == variable) - category->last = prev; - } - } -} - void ast_variable_append(struct ast_category *category, struct ast_variable *variable) { - /* Note: this function also implements "variable replacement"... if the - new variable's value is empty, then existing variables of the same - name in the category are removed (and the new variable is destroyed) - */ - if (variable->value && !ast_strlen_zero(variable->value)) { - if (category->last) - category->last->next = variable; - else - category->root = variable; - category->last = variable; - } else { - struct ast_variable *v; - - while ((v = variable_get(category, variable->name))) { - variable_remove(category, v); - ast_variables_destroy(v); - } - ast_variables_destroy(variable); - } + if (category->last) + category->last->next = variable; + else + category->root = variable; + category->last = variable; } void ast_variables_destroy(struct ast_variable *v)