X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=lua%2Fuci.c;h=70d02054062ecde669f864329cf07bcfd6a16346;hp=67e9418810d031f042582768fbc81d86215b1c4f;hb=cd9311c8d6b7432f507e9eed12587c971875a9de;hpb=9d0c6014304f1dd2f1f7a57e2039520b0f330250 diff --git a/lua/uci.c b/lua/uci.c index 67e9418..70d0205 100644 --- a/lua/uci.c +++ b/lua/uci.c @@ -527,7 +527,18 @@ uci_lua_set(lua_State *L) } if (istable) { - for (i = 1; i <= lua_objlen(L, nargs); i++) { + if (lua_objlen(L, nargs) == 1) { + i = 1; + if (ptr.o) + err = uci_delete(ctx, &ptr); + } else { + i = 2; + err = uci_set(ctx, &ptr); + if (err) + goto error; + } + + for (; i <= lua_objlen(L, nargs); i++) { lua_rawgeti(L, nargs, i); ptr.value = luaL_checkstring(L, -1); err = uci_add_list(ctx, &ptr);