free(e);
}
-static struct uci_option *
-uci_alloc_option(struct uci_section *s, const char *name, const char *value)
+struct uci_option *uci_alloc_option(struct uci_section *s, const char *name, const char *value)
{
struct uci_package *p = s->package;
struct uci_context *ctx = p->ctx;
return 0;
}
+int uci_add_named_section(struct uci_context *ctx, struct uci_package *p, const char *type, const char *name, struct uci_section **res)
+{
+ bool internal = ctx->internal;
+ struct uci_section *s;
+
+ UCI_HANDLE_ERR(ctx);
+ UCI_ASSERT(ctx, p != NULL);
+ s = uci_alloc_section(p, type, name);
+ uci_fixup_section(ctx, s);
+ *res = s;
+ if (!internal && p->has_delta)
+ uci_add_delta(ctx, &p->delta, UCI_CMD_ADD, s->e.name, NULL, type);
+
+ return 0;
+}
+
int uci_delete(struct uci_context *ctx, struct uci_ptr *ptr)
{
/* NB: pass on internal flag to uci_del_element */