mirror of
https://github.com/minetest/minetest.git
synced 2024-12-24 15:12:23 +01:00
parent
084cdea686
commit
5a0a59ad46
@ -398,7 +398,8 @@ int ModApiUtil::l_get_dir_list(lua_State *L)
|
|||||||
{
|
{
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
const char *path = luaL_checkstring(L, 1);
|
const char *path = luaL_checkstring(L, 1);
|
||||||
short is_dir = lua_isboolean(L, 2) ? lua_toboolean(L, 2) : -1;
|
bool list_all = !lua_isboolean(L, 2); // if its not a boolean list all
|
||||||
|
bool list_dirs = lua_toboolean(L, 2); // true: list dirs, false: list files
|
||||||
|
|
||||||
CHECK_SECURE_PATH(L, path, false);
|
CHECK_SECURE_PATH(L, path, false);
|
||||||
|
|
||||||
@ -408,7 +409,7 @@ int ModApiUtil::l_get_dir_list(lua_State *L)
|
|||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
|
|
||||||
for (size_t i = 0; i < list.size(); i++) {
|
for (size_t i = 0; i < list.size(); i++) {
|
||||||
if (is_dir == -1 || is_dir == list[i].dir) {
|
if (list_all || list_dirs == list[i].dir) {
|
||||||
lua_pushstring(L, list[i].name.c_str());
|
lua_pushstring(L, list[i].name.c_str());
|
||||||
lua_rawseti(L, -2, ++index);
|
lua_rawseti(L, -2, ++index);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user