From 08ef5b435273eaa3de860eac1c031219cd815587 Mon Sep 17 00:00:00 2001 From: jussi Date: Sun, 27 Nov 2022 16:25:25 +0200 Subject: RL_LoadDirectoryFilesEx and separate option for doc_parser. --- src/core.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/core.c') diff --git a/src/core.c b/src/core.c index f821af0..eabfe52 100644 --- a/src/core.c +++ b/src/core.c @@ -2198,6 +2198,33 @@ int lcoreLoadDirectoryFiles( lua_State *L ) { return 1; } +/* +> fileNames = RL_LoadDirectoryFilesEx( string basePath, string filter, bool scanSubdirs ) + +Load directory filepaths with extension filtering and recursive directory scan + +- Failure return false +- Success return string{} +*/ +int lcoreLoadDirectoryFilesEx( lua_State *L ) { + if ( !lua_isstring( L, -3 ) || !lua_isstring( L, -2 ) || !lua_isboolean( L, -1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_LoadDirectoryFilesEx( string dirPath )" ); + lua_pushboolean( L, false ); + return 1; + } + FilePathList files = LoadDirectoryFilesEx( lua_tostring( L, -3 ), lua_tostring( L, -2 ), lua_toboolean( L, -1 ) ); + + lua_createtable( L, files.count, 0 ); + + for ( int i = 0; i < files.count; ++i ) { + lua_pushstring( L, files.paths[i] ); + lua_rawseti( L, -2, i+1 ); + } + UnloadDirectoryFiles( files ); + + return 1; +} + /* > success = RL_ChangeDirectory( string directory ) -- cgit v1.2.3