From 28d2cc2adde3f9ec077a77cf363045a17f116032 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 18 Aug 2008 22:14:14 +0200 Subject: [PATCH] fix list parsing with anonymous sections --- file.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/file.c b/file.c index 0b4f14a..d551208 100644 --- a/file.c +++ b/file.c @@ -187,8 +187,20 @@ static void uci_parse_list(struct uci_context *ctx, char **str) return; error: UCI_THROW(ctx, ctx->err); - } else - UCI_INTERNAL(uci_add_list, ctx, pctx->package, pctx->section->e.name, name, value, NULL); + } else { + struct uci_option *o; + struct uci_element *e; + + e = uci_lookup_list(&pctx->section->options, name); + o = uci_to_option(e); + if (!o) { + o = uci_alloc_list(pctx->section, name); + } else { + if (o->type != UCI_TYPE_LIST) + uci_parse_error(ctx, *str, "conflicting list/option keywords"); + } + UCI_INTERNAL(uci_add_element_list, ctx, o, value); + } } -- 2.25.1