From: Felix Fietkau Date: Tue, 3 Jun 2008 21:35:17 +0000 (+0200) Subject: change the format of uci.get_all() - reduce the number of tables used and make it... X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3a32fc4d0a93fb811cac661ac273fe75346e8410;p=project%2Fuci.git change the format of uci.get_all() - reduce the number of tables used and make it possible to do uci.get_all("package").section.option --- diff --git a/lua/uci.c b/lua/uci.c index f2be5d5..c209cae 100644 --- a/lua/uci.c +++ b/lua/uci.c @@ -94,20 +94,13 @@ 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_pushstring(L, s->e.name); - lua_setfield(L, -2, "name"); - - lua_newtable(L); - lua_pushvalue(L, -1); - lua_setfield(L, -3, "options"); + lua_setfield(L, -2, ".TYPE"); uci_foreach_element(&s->options, e) { struct uci_option *o = uci_to_option(e); lua_pushstring(L, o->value); lua_setfield(L, -2, o->e.name); } - lua_pop(L, 1); } static void uci_push_package(lua_State *L, struct uci_package *p) @@ -118,9 +111,8 @@ static void uci_push_package(lua_State *L, struct uci_package *p) lua_newtable(L); uci_foreach_element(&p->sections, e) { i++; - luaL_setn(L, -1, i); uci_push_section(L, uci_to_section(e)); - lua_rawseti(L, -2, i); + lua_setfield(L, -2, e->name); } }