summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2009-01-20 01:28:02 +0100
committerFelix Fietkau <nbd@openwrt.org>2009-01-20 01:28:02 +0100
commitcd9311c8d6b7432f507e9eed12587c971875a9de (patch)
treee2d912e652fc7602b97d9f40ce3307e245a4c5bb
parent00d91c8ca4a5d35d5c3706d0042f0e57cefa3d12 (diff)
downloaduci-cd9311c8d6b7432f507e9eed12587c971875a9de.tar.gz
lua: fix rewriting uci listsv0.7.2
-rw-r--r--lua/uci.c13
1 files changed, 12 insertions, 1 deletions
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);