]> pilppa.org Git - uci.git/blobdiff - uci.h
fix possible uninitialized warning from gcc 4.92
[uci.git] / uci.h
diff --git a/uci.h b/uci.h
index d83da52c1794583d09d39617e1ff44cfe58f5be6..035c0513d53c21fb9e376444b9f1d6452010b8c6 100644 (file)
--- a/uci.h
+++ b/uci.h
@@ -73,6 +73,8 @@ struct uci_parse_context;
  */
 extern struct uci_context *uci_alloc_context(void);
 
+extern struct uci_option *uci_alloc_option(struct uci_section *s, const char *name, const char *value);
+
 /**
  * uci_free_context: Free the uci context including all of its data
  */
@@ -162,6 +164,8 @@ extern int uci_lookup_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *st
  */
 extern int uci_add_section(struct uci_context *ctx, struct uci_package *p, const char *type, struct uci_section **res);
 
+extern int uci_add_named_section(struct uci_context *ctx, struct uci_package *p, const char *type, const char *name, struct uci_section **res);
+
 /**
  * uci_set: Set an element's value; create the element if necessary
  * @ctx: uci context
@@ -662,6 +666,8 @@ uci_lookup_package(struct uci_context *ctx, const char *name)
        struct uci_element *e = NULL;
        if (uci_lookup_next(ctx, &e, &ctx->root, name) == 0)
                return uci_to_package(e);
+       else
+               return NULL;
 }
 
 /**
@@ -676,6 +682,8 @@ uci_lookup_section(struct uci_context *ctx, struct uci_package *p, const char *n
        struct uci_element *e = NULL;
        if (uci_lookup_next(ctx, &e, &p->sections, name) == 0)
                return uci_to_section(e);
+       else
+               return NULL;
 }
 
 /**
@@ -690,6 +698,20 @@ uci_lookup_option(struct uci_context *ctx, struct uci_section *s, const char *na
        struct uci_element *e = NULL;
        if (uci_lookup_next(ctx, &e, &s->options, name) == 0)
                return uci_to_option(e);
+       else
+               return NULL;
+}
+
+static inline const char *
+uci_lookup_option_string(struct uci_context *ctx, struct uci_section *s, const char *name)
+{
+       struct uci_option *o;
+
+       o = uci_lookup_option(ctx, s, name);
+       if (!o || o->type != UCI_TYPE_STRING)
+               return NULL;
+
+       return o->v.string;
 }
 
 #endif