all: uci libuci.$(SHLIB_EXT) uci-static ucimap-example
 
-$(eval $(call add_dep,libuci,history.c list.c uci.h uci_config.h uci_internal.h))
+$(eval $(call add_dep,libuci,delta.c list.c uci.h uci_config.h uci_internal.h))
 $(eval $(call add_dep,ucimap,uci.h uci_config.h ucimap.h))
 
 cli.o: cli.c uci.h uci_config.h
 
 {
        struct uci_element *e;
 
-       uci_foreach_element(&p->saved_history, e) {
-               struct uci_history *h = uci_to_history(e);
+       uci_foreach_element(&p->saved_delta, e) {
+               struct uci_delta *h = uci_to_delta(e);
                char *prefix = "";
                char *op = "=";
 
                                ctx->flags &= ~UCI_FLAG_EXPORT_NAME;
                                break;
                        case 'p':
-                               uci_add_history_path(ctx, optarg);
+                               uci_add_delta_path(ctx, optarg);
                                break;
                        case 'P':
-                               uci_add_history_path(ctx, ctx->savedir);
+                               uci_add_delta_path(ctx, ctx->savedir);
                                uci_set_savedir(ctx, optarg);
                                flags |= CLI_FLAG_NOCOMMIT;
                                break;
 
  */
 
 /*
- * This file contains the code for handling uci config history files
+ * This file contains the code for handling uci config delta files
  */
 
 #define _GNU_SOURCE
 
 /* record a change that was done to a package */
 void
-uci_add_history(struct uci_context *ctx, struct uci_list *list, int cmd, const char *section, const char *option, const char *value)
+uci_add_delta(struct uci_context *ctx, struct uci_list *list, int cmd, const char *section, const char *option, const char *value)
 {
-       struct uci_history *h;
+       struct uci_delta *h;
        int size = strlen(section) + 1;
        char *ptr;
 
        if (value)
                size += strlen(value) + 1;
 
-       h = uci_alloc_element(ctx, history, option, size);
+       h = uci_alloc_element(ctx, delta, option, size);
        ptr = uci_dataptr(h);
        h->cmd = cmd;
        h->section = strcpy(ptr, section);
 }
 
 void
-uci_free_history(struct uci_history *h)
+uci_free_delta(struct uci_delta *h)
 {
        if (!h)
                return;
        return 0;
 }
 
-int uci_add_history_path(struct uci_context *ctx, const char *dir)
+int uci_add_delta_path(struct uci_context *ctx, const char *dir)
 {
        struct uci_element *e;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, dir != NULL);
        e = uci_alloc_generic(ctx, UCI_TYPE_PATH, dir, sizeof(struct uci_element));
-       uci_list_add(&ctx->history_path, &e->list);
+       uci_list_add(&ctx->delta_path, &e->list);
 
        return 0;
 }
 
-static inline int uci_parse_history_tuple(struct uci_context *ctx, char **buf, struct uci_ptr *ptr)
+static inline int uci_parse_delta_tuple(struct uci_context *ctx, char **buf, struct uci_ptr *ptr)
 {
        int c = UCI_CMD_CHANGE;
 
        return 0;
 }
 
-static void uci_parse_history_line(struct uci_context *ctx, struct uci_package *p, char *buf)
+static void uci_parse_delta_line(struct uci_context *ctx, struct uci_package *p, char *buf)
 {
        struct uci_element *e = NULL;
        struct uci_ptr ptr;
        int cmd;
 
-       cmd = uci_parse_history_tuple(ctx, &buf, &ptr);
+       cmd = uci_parse_delta_tuple(ctx, &buf, &ptr);
        if (strcmp(ptr.package, p->e.name) != 0)
                goto error;
 
-       if (ctx->flags & UCI_FLAG_SAVED_HISTORY)
-               uci_add_history(ctx, &p->saved_history, cmd, ptr.section, ptr.option, ptr.value);
+       if (ctx->flags & UCI_FLAG_SAVED_DELTA)
+               uci_add_delta(ctx, &p->saved_delta, cmd, ptr.section, ptr.option, ptr.value);
 
        switch(cmd) {
        case UCI_CMD_REORDER:
 }
 
 /* returns the number of changes that were successfully parsed */
-static int uci_parse_history(struct uci_context *ctx, FILE *stream, struct uci_package *p)
+static int uci_parse_delta(struct uci_context *ctx, FILE *stream, struct uci_package *p)
 {
        struct uci_parse_context *pctx;
        int changes = 0;
 
                /*
                 * ignore parse errors in single lines, we want to preserve as much
-                * history as possible
+                * delta as possible
                 */
                UCI_TRAP_SAVE(ctx, error);
-               uci_parse_history_line(ctx, p, pctx->buf);
+               uci_parse_delta_line(ctx, p, pctx->buf);
                UCI_TRAP_RESTORE(ctx);
                changes++;
 error:
 }
 
 /* returns the number of changes that were successfully parsed */
-static int uci_load_history_file(struct uci_context *ctx, struct uci_package *p, char *filename, FILE **f, bool flush)
+static int uci_load_delta_file(struct uci_context *ctx, struct uci_package *p, char *filename, FILE **f, bool flush)
 {
        FILE *stream = NULL;
        int changes = 0;
        UCI_TRAP_SAVE(ctx, done);
        stream = uci_open_stream(ctx, filename, SEEK_SET, flush, false);
        if (p)
-               changes = uci_parse_history(ctx, stream, p);
+               changes = uci_parse_delta(ctx, stream, p);
        UCI_TRAP_RESTORE(ctx);
 done:
        if (f)
 }
 
 /* returns the number of changes that were successfully parsed */
-__private int uci_load_history(struct uci_context *ctx, struct uci_package *p, bool flush)
+__private int uci_load_delta(struct uci_context *ctx, struct uci_package *p, bool flush)
 {
        struct uci_element *e;
        char *filename = NULL;
        FILE *f = NULL;
        int changes = 0;
 
-       if (!p->has_history)
+       if (!p->has_delta)
                return 0;
 
-       uci_foreach_element(&ctx->history_path, e) {
+       uci_foreach_element(&ctx->delta_path, e) {
                if ((asprintf(&filename, "%s/%s", e->name, p->e.name) < 0) || !filename)
                        UCI_THROW(ctx, UCI_ERR_MEM);
 
-               uci_load_history_file(ctx, p, filename, NULL, false);
+               uci_load_delta_file(ctx, p, filename, NULL, false);
                free(filename);
        }
 
        if ((asprintf(&filename, "%s/%s", ctx->savedir, p->e.name) < 0) || !filename)
                UCI_THROW(ctx, UCI_ERR_MEM);
 
-       changes = uci_load_history_file(ctx, p, filename, &f, flush);
+       changes = uci_load_delta_file(ctx, p, filename, &f, flush);
        if (flush && f && (changes > 0)) {
                rewind(f);
                if (ftruncate(fileno(f), 0) < 0) {
        return changes;
 }
 
-static void uci_filter_history(struct uci_context *ctx, const char *name, const char *section, const char *option)
+static void uci_filter_delta(struct uci_context *ctx, const char *name, const char *section, const char *option)
 {
        struct uci_parse_context *pctx;
        struct uci_element *e, *tmp;
                        continue;
 
                /* NB: need to allocate the element before the call to 
-                * uci_parse_history_tuple, otherwise the original string 
+                * uci_parse_delta_tuple, otherwise the original string 
                 * gets modified before it is saved */
-               e = uci_alloc_generic(ctx, UCI_TYPE_HISTORY, pctx->buf, sizeof(struct uci_element));
+               e = uci_alloc_generic(ctx, UCI_TYPE_DELTA, pctx->buf, sizeof(struct uci_element));
                uci_list_add(&list, &e->list);
 
-               uci_parse_history_tuple(ctx, &buf, &ptr);
+               uci_parse_delta_tuple(ctx, &buf, &ptr);
                if (section) {
                        if (!ptr.section || (strcmp(section, ptr.section) != 0))
                                continue;
                uci_free_element(e);
        }
 
-       /* rebuild the history file */
+       /* rebuild the delta file */
        rewind(f);
        if (ftruncate(fileno(f), 0) < 0)
                UCI_THROW(ctx, UCI_ERR_IO);
 
        UCI_HANDLE_ERR(ctx);
        expand_ptr(ctx, ptr, false);
-       UCI_ASSERT(ctx, ptr->p->has_history);
+       UCI_ASSERT(ctx, ptr->p->has_delta);
 
        /* 
         * - flush unwritten changes
         * - save the package name
         * - unload the package
-        * - filter the history
+        * - filter the delta
         * - reload the package
         */
        UCI_TRAP_SAVE(ctx, error);
                option = uci_strdup(ctx, ptr->option);
 
        uci_free_package(&ptr->p);
-       uci_filter_history(ctx, package, section, option);
+       uci_filter_delta(ctx, package, section, option);
 
        UCI_INTERNAL(uci_load, ctx, package, &ptr->p);
        UCI_TRAP_RESTORE(ctx);
 
        /* 
         * if the config file was outside of the /etc/config path,
-        * don't save the history to a file, update the real file
+        * don't save the delta to a file, update the real file
         * directly.
         * does not modify the uci_package pointer
         */
-       if (!p->has_history)
+       if (!p->has_delta)
                return uci_commit(ctx, &p, false);
 
-       if (uci_list_empty(&p->history))
+       if (uci_list_empty(&p->delta))
                return 0;
 
        if (stat(ctx->savedir, &statbuf) < 0)
                if (!hook->ops->set)
                        continue;
 
-               uci_foreach_element(&p->history, e) {
-                       hook->ops->set(hook->ops, p, uci_to_history(e));
+               uci_foreach_element(&p->delta, e) {
+                       hook->ops->set(hook->ops, p, uci_to_delta(e));
                }
        }
 
        f = uci_open_stream(ctx, filename, SEEK_END, true, true);
        UCI_TRAP_RESTORE(ctx);
 
-       uci_foreach_element_safe(&p->history, tmp, e) {
-               struct uci_history *h = uci_to_history(e);
+       uci_foreach_element_safe(&p->delta, tmp, e) {
+               struct uci_delta *h = uci_to_delta(e);
                char *prefix = "";
 
                switch(h->cmd) {
                        fprintf(f, "\n");
                else
                        fprintf(f, "=%s\n", h->value);
-               uci_free_history(h);
+               uci_free_delta(h);
        }
 
 done:
 
        /* open the config file for writing now, so that it is locked */
        f = uci_open_stream(ctx, p->path, SEEK_SET, true, true);
 
-       /* flush unsaved changes and reload from history file */
+       /* flush unsaved changes and reload from delta file */
        UCI_TRAP_SAVE(ctx, done);
-       if (p->has_history) {
+       if (p->has_delta) {
                if (!overwrite) {
                        name = uci_strdup(ctx, p->e.name);
                        path = uci_strdup(ctx, p->path);
-                       /* dump our own changes to the history file */
-                       if (!uci_list_empty(&p->history))
+                       /* dump our own changes to the delta file */
+                       if (!uci_list_empty(&p->delta))
                                UCI_INTERNAL(uci_save, ctx, p);
 
                        /* 
                        UCI_INTERNAL(uci_import, ctx, f, name, &p, true);
 
                        p->path = path;
-                       p->has_history = true;
+                       p->has_delta = true;
                        *package = p;
 
                        /* freed together with the uci_package */
                        path = NULL;
                }
 
-               /* flush history */
-               if (!uci_load_history(ctx, p, true))
+               /* flush delta */
+               if (!uci_load_delta(ctx, p, true))
                        goto done;
        }
 
 
        if (package) {
                package->path = filename;
-               package->has_history = confdir;
-               uci_load_history(ctx, package, false);
+               package->has_delta = confdir;
+               uci_load_delta(ctx, package, false);
        }
 
 done:
 
 
 #include "uci_internal.h"
 #include "list.c"
-#include "history.c"
+#include "delta.c"
 
 /* exported functions */
 struct uci_context *uci_alloc_context(void)
 
        memset(ctx, 0, sizeof(struct uci_context));
        uci_list_init(&ctx->root);
-       uci_list_init(&ctx->history_path);
+       uci_list_init(&ctx->delta_path);
        uci_list_init(&ctx->backends);
        uci_list_init(&ctx->hooks);
        uci_list_init(&ctx->plugins);
-       ctx->flags = UCI_FLAG_STRICT | UCI_FLAG_SAVED_HISTORY;
+       ctx->flags = UCI_FLAG_STRICT | UCI_FLAG_SAVED_DELTA;
 
        ctx->confdir = (char *) uci_confdir;
        ctx->savedir = (char *) uci_savedir;
                struct uci_package *p = uci_to_package(e);
                uci_free_package(&p);
        }
-       uci_foreach_element_safe(&ctx->history_path, tmp, e) {
+       uci_foreach_element_safe(&ctx->delta_path, tmp, e) {
                uci_free_element(e);
        }
        UCI_TRAP_RESTORE(ctx);
 
        p = uci_alloc_element(ctx, package, name, 0);
        p->ctx = ctx;
        uci_list_init(&p->sections);
-       uci_list_init(&p->history);
-       uci_list_init(&p->saved_history);
+       uci_list_init(&p->delta);
+       uci_list_init(&p->saved_delta);
        return p;
 }
 
        uci_foreach_element_safe(&p->sections, tmp, e) {
                uci_free_section(uci_to_section(e));
        }
-       uci_foreach_element_safe(&p->history, tmp, e) {
-               uci_free_history(uci_to_history(e));
+       uci_foreach_element_safe(&p->delta, tmp, e) {
+               uci_free_delta(uci_to_delta(e));
        }
-       uci_foreach_element_safe(&p->saved_history, tmp, e) {
-               uci_free_history(uci_to_history(e));
+       uci_foreach_element_safe(&p->saved_delta, tmp, e) {
+               uci_free_delta(uci_to_delta(e));
        }
        uci_free_element(&p->e);
        *package = NULL;
        struct uci_package *p;
 
        p = ptr->p;
-       if (!internal && p->has_history)
-               uci_add_history(ctx, &p->history, UCI_CMD_LIST_ADD, ptr->section, ptr->option, ptr->value);
+       if (!internal && p->has_delta)
+               uci_add_delta(ctx, &p->delta, UCI_CMD_LIST_ADD, ptr->section, ptr->option, ptr->value);
 
        e = uci_alloc_generic(ctx, UCI_TYPE_ITEM, ptr->value, sizeof(struct uci_option));
        uci_list_add(&ptr->o->v.list, &e->list);
 
 int uci_rename(struct uci_context *ctx, struct uci_ptr *ptr)
 {
-       /* NB: UCI_INTERNAL use means without history tracking */
+       /* NB: UCI_INTERNAL use means without delta tracking */
        bool internal = ctx->internal;
        struct uci_element *e;
        struct uci_package *p;
        UCI_ASSERT(ctx, ptr->s);
        UCI_ASSERT(ctx, ptr->value);
 
-       if (!internal && p->has_history)
-               uci_add_history(ctx, &p->history, UCI_CMD_RENAME, ptr->section, ptr->option, ptr->value);
+       if (!internal && p->has_delta)
+               uci_add_delta(ctx, &p->delta, UCI_CMD_RENAME, ptr->section, ptr->option, ptr->value);
 
        n = uci_strdup(ctx, ptr->value);
        if (e->name)
        UCI_HANDLE_ERR(ctx);
 
        uci_list_set_pos(&s->package->sections, &s->e.list, pos);
-       if (!ctx->internal && p->has_history) {
+       if (!ctx->internal && p->has_delta) {
                sprintf(order, "%d", pos);
-               uci_add_history(ctx, &p->history, UCI_CMD_REORDER, s->e.name, NULL, order);
+               uci_add_delta(ctx, &p->delta, UCI_CMD_REORDER, s->e.name, NULL, order);
        }
 
        return 0;
        s = uci_alloc_section(p, type, NULL);
        uci_fixup_section(ctx, s);
        *res = s;
-       if (!internal && p->has_history)
-               uci_add_history(ctx, &p->history, UCI_CMD_ADD, s->e.name, NULL, type);
+       if (!internal && p->has_delta)
+               uci_add_delta(ctx, &p->delta, UCI_CMD_ADD, s->e.name, NULL, type);
 
        return 0;
 }
 
        UCI_ASSERT(ctx, ptr->s);
 
-       if (!internal && p->has_history)
-               uci_add_history(ctx, &p->history, UCI_CMD_REMOVE, ptr->section, ptr->option, NULL);
+       if (!internal && p->has_delta)
+               uci_add_delta(ctx, &p->delta, UCI_CMD_REMOVE, ptr->section, ptr->option, NULL);
 
        uci_free_any(&e);
 
 
 int uci_add_list(struct uci_context *ctx, struct uci_ptr *ptr)
 {
-       /* NB: UCI_INTERNAL use means without history tracking */
+       /* NB: UCI_INTERNAL use means without delta tracking */
        bool internal = ctx->internal;
        struct uci_option *prev = NULL;
        const char *value2 = NULL;
 
 int uci_set(struct uci_context *ctx, struct uci_ptr *ptr)
 {
-       /* NB: UCI_INTERNAL use means without history tracking */
+       /* NB: UCI_INTERNAL use means without delta tracking */
        bool internal = ctx->internal;
 
        UCI_HANDLE_ERR(ctx);
                UCI_THROW(ctx, UCI_ERR_INVAL);
        }
 
-       if (!internal && ptr->p->has_history)
-               uci_add_history(ctx, &ptr->p->history, UCI_CMD_CHANGE, ptr->section, ptr->option, ptr->value);
+       if (!internal && ptr->p->has_delta)
+               uci_add_delta(ctx, &ptr->p->delta, UCI_CMD_CHANGE, ptr->section, ptr->option, ptr->value);
 
        return 0;
 }
 
 static void
 uci_lua_add_change(lua_State *L, struct uci_element *e)
 {
-       struct uci_history *h;
+       struct uci_delta *h;
        const char *name;
 
-       h = uci_to_history(e);
+       h = uci_to_delta(e);
        if (!h->section)
                return;
 
                        return;
        }
 
-       if (uci_list_empty(&p->history) && uci_list_empty(&p->saved_history))
+       if (uci_list_empty(&p->delta) && uci_list_empty(&p->saved_delta))
                goto done;
 
        lua_newtable(L);
-       uci_foreach_element(&p->saved_history, e) {
+       uci_foreach_element(&p->saved_delta, e) {
                uci_lua_add_change(L, e);
        }
-       uci_foreach_element(&p->history, e) {
+       uci_foreach_element(&p->delta, e) {
                uci_lua_add_change(L, e);
        }
        lua_setfield(L, -2, p->e.name);
 }
 
 static int
-uci_lua_add_history(lua_State *L)
+uci_lua_add_delta(lua_State *L)
 {
        struct uci_context *ctx;
        int ret, offset = 0;
 
        ctx = find_context(L, &offset);
        luaL_checkstring(L, 1 + offset);
-       ret = uci_add_history_path(ctx, lua_tostring(L, -1));
+       ret = uci_add_delta_path(ctx, lua_tostring(L, -1));
        return uci_push_status(L, ctx, false);
 }
 
        { "reorder", uci_lua_reorder },
        { "changes", uci_lua_changes },
        { "foreach", uci_lua_foreach },
-       { "add_history", uci_lua_add_history },
+       { "add_delta", uci_lua_add_delta },
        { "load_plugins", uci_lua_load_plugins },
        { "get_confdir", uci_lua_get_confdir },
        { "set_confdir", uci_lua_set_confdir },
 
 struct uci_package;
 struct uci_section;
 struct uci_option;
-struct uci_history;
+struct uci_delta;
 struct uci_context;
 struct uci_backend;
 struct uci_parse_context;
  * @single: ignore the 'package' keyword and parse everything into a single package
  *
  * the name parameter is for config files that don't explicitly use the 'package <...>' keyword
- * if 'package' points to a non-null struct pointer, enable history tracking and merge 
+ * if 'package' points to a non-null struct pointer, enable delta tracking and merge 
  */
 extern int uci_import(struct uci_context *ctx, FILE *stream, const char *name, struct uci_package **package, bool single);
 
 extern int uci_delete(struct uci_context *ctx, struct uci_ptr *ptr);
 
 /**
- * uci_save: save change history for a package
+ * uci_save: save change delta for a package
  * @ctx: uci context
  * @p: uci_package struct
  */
  * uci_commit: commit changes to a package
  * @ctx: uci context
  * @p: uci_package struct pointer
- * @overwrite: overwrite existing config data and flush history
+ * @overwrite: overwrite existing config data and flush delta
  *
  * committing may reload the whole uci_package data,
  * the supplied pointer is updated accordingly
 extern int uci_list_configs(struct uci_context *ctx, char ***list);
 
 /** 
- * uci_set_savedir: override the default history save directory
+ * uci_set_savedir: override the default delta save directory
  * @ctx: uci context
  * @dir: directory name
  */
 extern int uci_set_confdir(struct uci_context *ctx, const char *dir);
 
 /**
- * uci_add_history_path: add a directory to the search path for change history files
+ * uci_add_delta_path: add a directory to the search path for change delta files
  * @ctx: uci context
  * @dir: directory name
  *
  * This function allows you to add directories, which contain 'overlays'
  * for the active config, that will never be committed.
  */
-extern int uci_add_history_path(struct uci_context *ctx, const char *dir);
+extern int uci_add_delta_path(struct uci_context *ctx, const char *dir);
 
 /**
  * uci_revert: revert all changes to a config item
 /* UCI data structures */
 enum uci_type {
        UCI_TYPE_UNSPEC = 0,
-       UCI_TYPE_HISTORY = 1,
+       UCI_TYPE_DELTA = 1,
        UCI_TYPE_PACKAGE = 2,
        UCI_TYPE_SECTION = 3,
        UCI_TYPE_OPTION = 4,
        UCI_FLAG_STRICT =        (1 << 0), /* strict mode for the parser */
        UCI_FLAG_PERROR =        (1 << 1), /* print parser error messages */
        UCI_FLAG_EXPORT_NAME =   (1 << 2), /* when exporting, name unnamed sections */
-       UCI_FLAG_SAVED_HISTORY = (1 << 3), /* store the saved history in memory as well */
+       UCI_FLAG_SAVED_DELTA = (1 << 3), /* store the saved delta in memory as well */
 };
 
 struct uci_element
        char *confdir;
        char *savedir;
 
-       /* search path for history files */
-       struct uci_list history_path;
+       /* search path for delta files */
+       struct uci_list delta_path;
 
        /* private: */
        int err;
        struct uci_element e;
        struct uci_list sections;
        struct uci_context *ctx;
-       bool has_history;
+       bool has_delta;
        char *path;
 
        /* private: */
        struct uci_backend *backend;
        void *priv;
        int n_section;
-       struct uci_list history;
-       struct uci_list saved_history;
+       struct uci_list delta;
+       struct uci_list saved_delta;
 };
 
 struct uci_section
        UCI_CMD_LIST_ADD,
 };
 
-struct uci_history
+struct uci_delta
 {
        struct uci_element e;
        enum uci_command cmd;
 struct uci_hook_ops
 {
        void (*load)(const struct uci_hook_ops *ops, struct uci_package *p);
-       void (*set)(const struct uci_hook_ops *ops, struct uci_package *p, struct uci_history *e);
+       void (*set)(const struct uci_hook_ops *ops, struct uci_package *p, struct uci_delta *e);
 };
 
 struct uci_hook
 
 /* wrappers for dynamic type handling */
 #define uci_type_backend UCI_TYPE_BACKEND
-#define uci_type_history UCI_TYPE_HISTORY
+#define uci_type_delta UCI_TYPE_DELTA
 #define uci_type_package UCI_TYPE_PACKAGE
 #define uci_type_section UCI_TYPE_SECTION
 #define uci_type_option UCI_TYPE_OPTION
 #ifdef UCI_DEBUG_TYPECAST
 static const char *uci_typestr[] = {
        [uci_type_backend] = "backend",
-       [uci_type_history] = "history",
+       [uci_type_delta] = "delta",
        [uci_type_package] = "package",
        [uci_type_section] = "section",
        [uci_type_option] = "option",
        }
 
 BUILD_CAST(backend)
-BUILD_CAST(history)
+BUILD_CAST(delta)
 BUILD_CAST(package)
 BUILD_CAST(section)
 BUILD_CAST(option)
 
 #else
 #define uci_to_backend(ptr) container_of(ptr, struct uci_backend, e)
-#define uci_to_history(ptr) container_of(ptr, struct uci_history, e)
+#define uci_to_delta(ptr) container_of(ptr, struct uci_delta, e)
 #define uci_to_package(ptr) container_of(ptr, struct uci_package, e)
 #define uci_to_section(ptr) container_of(ptr, struct uci_section, e)
 #define uci_to_option(ptr)  container_of(ptr, struct uci_option, e)
 
 __plugin void *uci_realloc(struct uci_context *ctx, void *ptr, size_t size);
 __plugin char *uci_strdup(struct uci_context *ctx, const char *str);
 __plugin bool uci_validate_str(const char *str, bool name);
-__plugin void uci_add_history(struct uci_context *ctx, struct uci_list *list, int cmd, const char *section, const char *option, const char *value);
-__plugin void uci_free_history(struct uci_history *h);
+__plugin void uci_add_delta(struct uci_context *ctx, struct uci_list *list, int cmd, const char *section, const char *option, const char *value);
+__plugin void uci_free_delta(struct uci_delta *h);
 __plugin struct uci_package *uci_alloc_package(struct uci_context *ctx, const char *name);
 
 __private FILE *uci_open_stream(struct uci_context *ctx, const char *filename, int pos, bool write, bool create);
 __private void uci_fixup_section(struct uci_context *ctx, struct uci_section *s);
 __private void uci_free_package(struct uci_package **package);
 
-__private int uci_load_history(struct uci_context *ctx, struct uci_package *p, bool flush);
+__private int uci_load_delta(struct uci_context *ctx, struct uci_package *p, bool flush);
 
 static inline bool uci_validate_package(const char *str)
 {