static int filefind_index_table(lua_State* L) { struct FileFindInfo* info = filefind_checkmetatable(L, 1); lua_newtable(L); filefind_index_filename_helper(L, info); lua_setfield(L, -2, "filename"); filefind_index_creation_time_helper(L, info); lua_setfield(L, -2, "creation_time"); filefind_index_access_time_helper(L, info); lua_setfield(L, -2, "access_time"); filefind_index_write_time_helper(L, info); lua_setfield(L, -2, "write_time"); filefind_index_creation_FILETIME_helper(L, info); lua_setfield(L, -2, "creation_FILETIME"); filefind_index_access_FILETIME_helper(L, info); lua_setfield(L, -2, "access_FILETIME"); filefind_index_write_FILETIME_helper(L, info); lua_setfield(L, -2, "write_FILETIME"); filefind_index_size_helper(L, info); lua_setfield(L, -2, "size"); filefind_index_is_directory_helper(L, info); lua_setfield(L, -2, "is_directory"); filefind_index_is_readonly_helper(L, info); lua_setfield(L, -2, "is_readonly"); return 1; }
static int filefind_index_table_helper(lua_State* L, struct FileFindInfo* info, int simple_query) { lua_newtable(L); filefind_index_filename_helper(L, info); lua_setfield(L, -2, "filename"); filefind_index_creation_time_helper(L, info); lua_setfield(L, -2, "creation_time"); filefind_index_access_time_helper(L, info); lua_setfield(L, -2, "access_time"); filefind_index_write_time_helper(L, info); lua_setfield(L, -2, "write_time"); filefind_index_creation_FILETIME_helper(L, info); lua_setfield(L, -2, "creation_FILETIME"); filefind_index_access_FILETIME_helper(L, info); lua_setfield(L, -2, "access_FILETIME"); filefind_index_write_FILETIME_helper(L, info); lua_setfield(L, -2, "write_FILETIME"); filefind_index_size_helper(L, info); lua_setfield(L, -2, "size"); filefind_index_is_directory_helper(L, info); lua_setfield(L, -2, "is_directory"); filefind_index_is_link_helper(L, info); lua_setfield(L, -2, "is_link"); filefind_index_is_readonly_helper(L, info); lua_setfield(L, -2, "is_readonly"); if (!simple_query) { filefind_index_number_of_links_helper(L, info); lua_setfield(L, -2, "number_of_links"); } return 1; }
static int filefind_index_size(lua_State* L) { return filefind_index_size_helper(L, filefind_checkmetatable(L, 1)); }