more plugin support
[project/uci.git] / history.c
index 75e3f40..8935a3f 100644 (file)
--- a/history.c
+++ b/history.c
@@ -27,7 +27,7 @@
 #include <ctype.h>
 
 /* record a change that was done to a package */
-static void
+void
 uci_add_history(struct uci_context *ctx, struct uci_list *list, int cmd, char *section, char *option, char *value)
 {
        struct uci_history *h;
@@ -48,7 +48,7 @@ uci_add_history(struct uci_context *ctx, struct uci_list *list, int cmd, char *s
        uci_list_add(list, &h->e.list);
 }
 
-static void
+void
 uci_free_history(struct uci_history *h)
 {
        if (!h)
@@ -162,7 +162,6 @@ static int uci_parse_history(struct uci_context *ctx, FILE *stream, struct uci_p
        int changes = 0;
 
        /* make sure no memory from previous parse attempts is leaked */
-       ctx->internal = true;
        uci_cleanup(ctx);
 
        pctx = (struct uci_parse_context *) uci_malloc(ctx, sizeof(struct uci_parse_context));
@@ -187,7 +186,6 @@ error:
        }
 
        /* no error happened, we can get rid of the parser context now */
-       ctx->internal = true;
        uci_cleanup(ctx);
        return changes;
 }
@@ -219,7 +217,7 @@ static int uci_load_history(struct uci_context *ctx, struct uci_package *p, bool
        FILE *f = NULL;
        int changes = 0;
 
-       if (!p->confdir)
+       if (!p->has_history)
                return 0;
 
        uci_foreach_element(&ctx->history_path, e) {
@@ -311,7 +309,6 @@ done:
        uci_foreach_element_safe(&list, tmp, e) {
                uci_free_element(e);
        }
-       ctx->internal = true;
        uci_cleanup(ctx);
 }
 
@@ -324,7 +321,7 @@ int uci_revert(struct uci_context *ctx, struct uci_package **pkg, char *section,
        UCI_ASSERT(ctx, pkg != NULL);
        p = *pkg;
        UCI_ASSERT(ctx, p != NULL);
-       UCI_ASSERT(ctx, p->confdir);
+       UCI_ASSERT(ctx, p->has_history);
 
        /* 
         * - flush unwritten changes
@@ -368,7 +365,7 @@ int uci_save(struct uci_context *ctx, struct uci_package *p)
         * directly.
         * does not modify the uci_package pointer
         */
-       if (!p->confdir)
+       if (!p->has_history)
                return uci_commit(ctx, &p, false);
 
        if (uci_list_empty(&p->history))