split off and compile delta.c separately
authorFelix Fietkau <nbd@openwrt.org>
Fri, 20 Aug 2010 13:27:22 +0000 (15:27 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 20 Aug 2010 13:40:12 +0000 (15:40 +0200)
Makefile
delta.c
libuci.c
list.c
uci_internal.h

index 9f5b3139f5e5ea7ec16bffcbe9d17858344f2d4a..8062bd410042dfa254787dfbb57fbf700a733aa1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -19,11 +19,11 @@ $(1).shared.o: $(2)
 $(1).static.o: $(2)
 endef
 
-SOURCES = libuci.c file.c ucimap.c util.c
+SOURCES = libuci.c file.c ucimap.c util.c delta.c
 
 all: uci libuci.$(SHLIB_EXT) uci-static ucimap-example
 
-$(eval $(call add_dep,libuci,delta.c list.c uci.h uci_config.h uci_internal.h))
+$(eval $(call add_dep,libuci,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
diff --git a/delta.c b/delta.c
index e0fa1b18966505c5c817cec1ac25b4a4502f1660..f697141f9ff1e758051ac1df1c29336f47251ee3 100644 (file)
--- a/delta.c
+++ b/delta.c
 #include <fcntl.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "uci.h"
+#include "uci_internal.h"
 
 /* record a change that was done to a package */
 void
@@ -157,7 +162,7 @@ static void uci_parse_delta_line(struct uci_context *ctx, struct uci_package *p,
 
        switch(cmd) {
        case UCI_CMD_REORDER:
-               expand_ptr(ctx, &ptr, true);
+               uci_expand_ptr(ctx, &ptr, true);
                if (!ptr.s)
                        UCI_THROW(ctx, UCI_ERR_NOTFOUND);
                UCI_INTERNAL(uci_reorder_section, ctx, ptr.s, strtoul(ptr.value, NULL, 10));
@@ -349,7 +354,7 @@ int uci_revert(struct uci_context *ctx, struct uci_ptr *ptr)
        char *option = NULL;
 
        UCI_HANDLE_ERR(ctx);
-       expand_ptr(ctx, ptr, false);
+       uci_expand_ptr(ctx, ptr, false);
        UCI_ASSERT(ctx, ptr->p->has_delta);
 
        /* 
index 1a09fc7e454b0ac09e33c6af655601dde47ae8bd..d669c79634a7a2d39afe27f281c27a36b68816d2 100644 (file)
--- a/libuci.c
+++ b/libuci.c
@@ -26,9 +26,6 @@
 #include <glob.h>
 #include "uci.h"
 
-static const char *uci_confdir = UCI_CONFDIR;
-static const char *uci_savedir = UCI_SAVEDIR;
-
 static const char *uci_errstr[] = {
        [UCI_OK] =            "Success",
        [UCI_ERR_MEM] =       "Out of memory",
@@ -44,7 +41,9 @@ static void uci_unload_plugin(struct uci_context *ctx, struct uci_plugin *p);
 
 #include "uci_internal.h"
 #include "list.c"
-#include "delta.c"
+
+__private const char *uci_confdir = UCI_CONFDIR;
+__private const char *uci_savedir = UCI_SAVEDIR;
 
 /* exported functions */
 struct uci_context *uci_alloc_context(void)
diff --git a/list.c b/list.c
index cee1063079b18908c428bd106eccef451039b837..0b3a3f2ad2db079ddf73d523faef9987a09750d2 100644 (file)
--- a/list.c
+++ b/list.c
@@ -36,7 +36,7 @@ static inline void uci_list_fixup(struct uci_list *ptr)
  * uci_alloc_generic allocates a new uci_element with payload
  * payload is appended to the struct to save memory and reduce fragmentation
  */
-static struct uci_element *
+__private struct uci_element *
 uci_alloc_generic(struct uci_context *ctx, int type, const char *name, int size)
 {
        struct uci_element *e;
@@ -62,7 +62,7 @@ done:
        return e;
 }
 
-static void
+__private void
 uci_free_element(struct uci_element *e)
 {
        if (e->name)
@@ -417,8 +417,8 @@ notfound:
        return 0;
 }
 
-static struct uci_element *
-expand_ptr(struct uci_context *ctx, struct uci_ptr *ptr, bool complete)
+__private struct uci_element *
+uci_expand_ptr(struct uci_context *ctx, struct uci_ptr *ptr, bool complete)
 {
        UCI_ASSERT(ctx, ptr != NULL);
 
@@ -469,7 +469,7 @@ int uci_rename(struct uci_context *ctx, struct uci_ptr *ptr)
 
        UCI_HANDLE_ERR(ctx);
 
-       e = expand_ptr(ctx, ptr, true);
+       e = uci_expand_ptr(ctx, ptr, true);
        p = ptr->p;
 
        UCI_ASSERT(ctx, ptr->s);
@@ -530,7 +530,7 @@ int uci_delete(struct uci_context *ctx, struct uci_ptr *ptr)
 
        UCI_HANDLE_ERR(ctx);
 
-       e = expand_ptr(ctx, ptr, true);
+       e = uci_expand_ptr(ctx, ptr, true);
        p = ptr->p;
 
        UCI_ASSERT(ctx, ptr->s);
@@ -557,7 +557,7 @@ int uci_add_list(struct uci_context *ctx, struct uci_ptr *ptr)
 
        UCI_HANDLE_ERR(ctx);
 
-       expand_ptr(ctx, ptr, false);
+       uci_expand_ptr(ctx, ptr, false);
        UCI_ASSERT(ctx, ptr->s);
        UCI_ASSERT(ctx, ptr->value);
 
@@ -595,7 +595,7 @@ int uci_set(struct uci_context *ctx, struct uci_ptr *ptr)
        bool internal = ctx->internal;
 
        UCI_HANDLE_ERR(ctx);
-       expand_ptr(ctx, ptr, false);
+       uci_expand_ptr(ctx, ptr, false);
        UCI_ASSERT(ctx, ptr->value);
        UCI_ASSERT(ctx, ptr->s || (!ptr->option && ptr->section));
        if (!ptr->option && ptr->value[0]) {
index 728920d86158b0dee03d59c44ff3a2f0f25a29d3..32f29511f849ca20acf2705f7b84253a4657b308 100644 (file)
@@ -40,6 +40,9 @@ struct uci_parse_context
        int bufsz;
 };
 
+extern const char *uci_confdir;
+extern const char *uci_savedir;
+
 __plugin void *uci_malloc(struct uci_context *ctx, size_t size);
 __plugin void *uci_realloc(struct uci_context *ctx, void *ptr, size_t size);
 __plugin char *uci_strdup(struct uci_context *ctx, const char *str);
@@ -59,6 +62,9 @@ __private void uci_cleanup(struct uci_context *ctx);
 __private struct uci_element *uci_lookup_list(struct uci_list *list, const char *name);
 __private void uci_fixup_section(struct uci_context *ctx, struct uci_section *s);
 __private void uci_free_package(struct uci_package **package);
+__private struct uci_element *uci_alloc_generic(struct uci_context *ctx, int type, const char *name, int size);
+__private void uci_free_element(struct uci_element *e);
+__private struct uci_element *uci_expand_ptr(struct uci_context *ctx, struct uci_ptr *ptr, bool complete);
 
 __private int uci_load_delta(struct uci_context *ctx, struct uci_package *p, bool flush);