add a helper function for looking up an option string
[project/uci.git] / uci.h
diff --git a/uci.h b/uci.h
index d83da52..fe5e314 100644 (file)
--- a/uci.h
+++ b/uci.h
@@ -662,6 +662,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 +678,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 +694,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