consistency
[project/uci.git] / file.c
diff --git a/file.c b/file.c
index 9f59637..d320ba6 100644 (file)
--- a/file.c
+++ b/file.c
@@ -69,7 +69,7 @@ static void uci_switch_config(struct uci_context *ctx)
         * if an older config under the same name exists, unload it
         * ignore errors here, e.g. if the config was not found
         */
-       e = uci_lookup_list(ctx, &ctx->root, name);
+       e = uci_lookup_list(&ctx->root, name);
        if (e)
                UCI_THROW(ctx, UCI_ERR_DUPLICATE);
        pctx->package = uci_alloc_package(ctx, name);
@@ -122,7 +122,8 @@ static void uci_parse_config(struct uci_context *ctx, char **str)
 
        if (pctx->merge) {
                UCI_TRAP_SAVE(ctx, error);
-               uci_set(ctx, pctx->package, name, NULL, type, NULL);
+               if (uci_set(ctx, pctx->package, name, NULL, type, NULL) != UCI_OK)
+                       goto error;
                UCI_TRAP_RESTORE(ctx);
                return;
 error:
@@ -293,7 +294,6 @@ int uci_import(struct uci_context *ctx, FILE *stream, const char *name, struct u
        UCI_HANDLE_ERR(ctx);
 
        /* make sure no memory from previous parse attempts is leaked */
-       ctx->internal = true;
        uci_cleanup(ctx);
 
        uci_alloc_parse_context(ctx);
@@ -375,7 +375,7 @@ void uci_file_commit(struct uci_context *ctx, struct uci_package **package, bool
 
        /* flush unsaved changes and reload from history file */
        UCI_TRAP_SAVE(ctx, done);
-       if (p->confdir) {
+       if (p->has_history) {
                if (!overwrite) {
                        name = uci_strdup(ctx, p->e.name);
                        path = uci_strdup(ctx, p->path);
@@ -392,7 +392,7 @@ void uci_file_commit(struct uci_context *ctx, struct uci_package **package, bool
                        UCI_INTERNAL(uci_import, ctx, f, name, &p, true);
 
                        p->path = path;
-                       p->confdir = true;
+                       p->has_history = true;
                        *package = p;
 
                        /* freed together with the uci_package */
@@ -517,7 +517,7 @@ static struct uci_package *uci_file_load(struct uci_context *ctx, const char *na
 
        if (package) {
                package->path = filename;
-               package->confdir = confdir;
+               package->has_history = confdir;
                uci_load_history(ctx, package, false);
        }
 
@@ -528,9 +528,8 @@ done:
        return package;
 }
 
-static struct uci_backend uci_file_backend = {
-       .name = "file",
+static UCI_BACKEND(uci_file_backend, "file",
        .load = uci_file_load,
        .commit = uci_file_commit,
        .list_configs = uci_list_config_files,
-};
+);