case 2:
ptr->section = luaL_checkstring(L, 2 + offset);
ptr->package = luaL_checkstring(L, 1 + offset);
- if (uci_lookup_ptr(ctx, ptr, NULL, false) != UCI_OK)
+ if (uci_lookup_ptr(ctx, ptr, NULL, true) != UCI_OK)
goto error;
break;
case 1:
- if (uci_lookup_ptr(ctx, ptr, s, false) != UCI_OK)
+ if (uci_lookup_ptr(ctx, ptr, s, true) != UCI_OK)
goto error;
break;
default:
lua_pushvalue(L, 3 + offset); /* iterator function */
uci_push_section(L, s, i - 1);
- if (lua_pcall(L, 1, 0, 0) == 0)
+ if (lua_pcall(L, 1, 1, 0) == 0) {
ret = true;
+ if (lua_isboolean(L, -1) && !lua_toboolean(L, -1))
+ break;
+ }
+ else
+ {
+ lua_error(L);
+ break;
+ }
}
done:
if (lookup_args(L, ctx, offset, &ptr, &s))
goto error;
- uci_lookup_ptr(ctx, &ptr, NULL, false);
+ uci_lookup_ptr(ctx, &ptr, NULL, true);
if (!all && !ptr.s) {
err = UCI_ERR_INVAL;
goto error;
goto error;
}
- err = uci_lookup_ptr(ctx, &ptr, NULL, false);
+ err = uci_lookup_ptr(ctx, &ptr, NULL, true);
if (err)
goto error;
goto error;
}
- err = uci_lookup_ptr(ctx, &ptr, NULL, false);
+ err = uci_lookup_ptr(ctx, &ptr, NULL, true);
if (err)
goto error;
goto error;
}
- err = uci_lookup_ptr(ctx, &ptr, NULL, false);
+ err = uci_lookup_ptr(ctx, &ptr, NULL, true);
if (err)
goto error;
if (lookup_args(L, ctx, offset, &ptr, &s))
goto err;
- uci_lookup_ptr(ctx, &ptr, NULL, false);
+ uci_lookup_ptr(ctx, &ptr, NULL, true);
uci_foreach_element_safe(&ctx->root, tmp, e) {
struct uci_package *p = uci_to_package(e);