]> pilppa.com Git - uci.git/commitdiff
lua: fix rewriting uci lists
authorFelix Fietkau <nbd@openwrt.org>
Tue, 20 Jan 2009 00:28:02 +0000 (01:28 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Tue, 20 Jan 2009 00:28:02 +0000 (01:28 +0100)
lua/uci.c

index 67e9418810d031f042582768fbc81d86215b1c4f..70d02054062ecde669f864329cf07bcfd6a16346 100644 (file)
--- 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);