fix compiler error under linux
[project/uci.git] / list.c
diff --git a/list.c b/list.c
index 4ff4f7b..66e83ec 100644 (file)
--- a/list.c
+++ b/list.c
@@ -237,7 +237,6 @@ int uci_lookup(struct uci_context *ctx, struct uci_element **res, struct uci_pac
 {
        struct uci_element *e;
        struct uci_section *s;
-       struct uci_option *o;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, res != NULL);
@@ -384,8 +383,6 @@ int uci_rename(struct uci_context *ctx, struct uci_package *p, char *section, ch
        /* NB: UCI_INTERNAL use means without history tracking */
        bool internal = ctx->internal;
        struct uci_element *e;
-       struct uci_section *s = NULL;
-       struct uci_option *o = NULL;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, p != NULL);
@@ -410,8 +407,6 @@ int uci_delete(struct uci_context *ctx, struct uci_package *p, char *section, ch
        /* NB: pass on internal flag to uci_del_element */
        bool internal = ctx->internal;
        struct uci_element *e;
-       struct uci_section *s = NULL;
-       struct uci_option *o = NULL;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, p != NULL);
@@ -433,7 +428,6 @@ int uci_set(struct uci_context *ctx, struct uci_package *p, char *section, char
        struct uci_element *e = NULL;
        struct uci_section *s = NULL;
        struct uci_option *o = NULL;
-       struct uci_history *h;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, p != NULL);
@@ -450,13 +444,14 @@ int uci_set(struct uci_context *ctx, struct uci_package *p, char *section, char
                goto notfound;
 
        s = uci_to_section(e);
+       if (ctx->pctx)
+               ctx->pctx->section = s;
+
        if (option) {
                e = uci_lookup_list(ctx, &s->options, option);
                if (!e)
                        goto notfound;
                o = uci_to_option(e);
-       } else if (internal && ctx->pctx) {
-               ctx->pctx->section = s;
        }
 
        /* 
@@ -489,16 +484,17 @@ notfound:
                uci_add_history(ctx, p, UCI_CMD_ADD, section, option, value);
        if (s)
                uci_alloc_option(s, option, value);
-       else
-               uci_alloc_section(p, value, section);
+       else {
+               s = uci_alloc_section(p, value, section);
+               if (ctx->pctx)
+                       ctx->pctx->section = s;
+       }
 
        return 0;
 }
 
 int uci_unload(struct uci_context *ctx, struct uci_package *p)
 {
-       struct uci_element *e;
-
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, p != NULL);