preserve section list order
[project/uci.git] / ucimap.c
index 7637bd5572d2fd22f2c1127dc80bd21c3cd98f29..da73ba987b29b2138b59891b46c793c38d1d6ce7 100644 (file)
--- a/ucimap.c
+++ b/ucimap.c
@@ -193,11 +193,11 @@ ucimap_handle_fixup(struct uci_map *map, struct uci_fixup *f)
 
        switch(f->type & UCIMAP_TYPE) {
        case UCIMAP_SIMPLE:
-               f->data->section = ptr;
+               f->data->ptr = ptr;
                break;
        case UCIMAP_LIST:
                list = f->data->list;
-               list->item[list->n_items++].section = ptr;
+               list->item[list->n_items++].ptr = ptr;
                break;
        }
        return true;
@@ -452,7 +452,7 @@ ucimap_parse_section(struct uci_map *map, struct uci_sectionmap *sm, struct ucim
        if (err)
                goto error;
 
-       list_add(&sd->list, &map->sdata);
+       list_add_tail(&sd->list, &map->sdata);
        err = ucimap_parse_options(map, sm, sd, s);
        if (err)
                goto error;