lua binding: add .name attribute for sections pushed by uci.foreach and uci.get_all
[project/uci.git] / lua / uci.c
index c209cae..e3a1334 100644 (file)
--- a/lua/uci.c
+++ b/lua/uci.c
@@ -94,7 +94,9 @@ static void uci_push_section(lua_State *L, struct uci_section *s)
 
        lua_newtable(L);
        lua_pushstring(L, s->type);
-       lua_setfield(L, -2, ".TYPE");
+       lua_setfield(L, -2, ".type");
+       lua_pushstring(L, s->e.name);
+       lua_setfield(L, -2, ".name");
 
        uci_foreach_element(&s->options, e) {
                struct uci_option *o = uci_to_option(e);
@@ -526,12 +528,12 @@ uci_lua_add_change(lua_State *L, struct uci_element *e)
        lua_getfield(L, -1, h->section);
        if (lua_isnil(L, -1)) {
                lua_pop(L, 1);
-               lua_createtable(L, 0, 0);
+               lua_newtable(L);
                lua_pushvalue(L, -1); /* copy for setfield */
                lua_setfield(L, -3, h->section);
        }
 
-       name = (h->e.name ? h->e.name : ".TYPE");
+       name = (h->e.name ? h->e.name : ".type");
        if (h->value)
                lua_pushstring(L, h->value);
        else
@@ -558,7 +560,7 @@ uci_lua_changes_pkg(lua_State *L, const char *package)
        if (uci_list_empty(&p->history) && uci_list_empty(&p->saved_history))
                goto done;
 
-       lua_createtable(L, 0, 0);
+       lua_newtable(L);
        uci_foreach_element(&p->saved_history, e) {
                uci_lua_add_change(L, e);
        }
@@ -590,7 +592,7 @@ uci_lua_changes(lua_State *L)
                luaL_error(L, "invalid argument count");
        }
 
-       lua_createtable(L, 0, 0);
+       lua_newtable(L);
        if (package) {
                uci_lua_changes_pkg(L, package);
        } else {