From 80789508b9655d25629223b9dcc84b4cfb77ce45 Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 29 Jun 2020 15:29:03 -0400 Subject: Updates for mdoc Also more tests --- src/server/lua_api/load_io.cpp | 85 +++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 42 deletions(-) (limited to 'src/server') diff --git a/src/server/lua_api/load_io.cpp b/src/server/lua_api/load_io.cpp index 278d7a7..0a20311 100644 --- a/src/server/lua_api/load_io.cpp +++ b/src/server/lua_api/load_io.cpp @@ -10,54 +10,55 @@ extern "C" { #include #include -#define epath "../data" -#define epathlen sizeof(epath) +//#define epath "../data" +//#define epathlen sizeof(epath) /*Add an io.dir(path) function, which lists all the files in (path)*/ -int dirpath(lua_State *L){ - if(!lua_isstring(L,-1)){ - lua_pushstring(L,"io.dir() requires a string as argument #1"); - lua_error(L); - } - size_t pathstrlen; - const char *pathstr = lua_tolstring(L,-1,&pathstrlen); - //printf("got pathstr: %s\n",pathstr); - //char tpathstr[pathstrlen + epathlen + 1 + 1]; //+1 for null, +1 for / - //memcpy(tpathstr,epath,epathlen); - //tpathstr[epathlen] = '/'; - //memcpy(tpathstr+epathlen,pathstr,pathstrlen); - //tpathstr[pathstrlen + epathlen + 1] = '\0'; - //printf("tpathstr is: \"%s\"\n",tpathstr); - //lua_pop(L,1); - DIR *dir; - struct dirent *ent; - const char *tpathstr = pathstr; - dir = opendir(tpathstr); - if(dir == NULL){ - perror("Cannot open"); - lua_pushstring(L,"Failed to open directory: "); - lua_pushstring(L,tpathstr); - lua_concat(L,2); - lua_error(L); - } - int i = 1; - ent = readdir(dir); - lua_newtable(L); - while( (ent = readdir(dir)) != NULL){ - lua_pushinteger(L,i); - lua_pushstring(L,ent->d_name); - lua_settable(L,-3); - i++; - } - closedir(dir); - return 1; -} +//UPDATE: Moved to shared code +//int dirpath(lua_State *L){ + //if(!lua_isstring(L,-1)){ + //lua_pushstring(L,"io.dir() requires a string as argument #1"); + //lua_error(L); + //} + //size_t pathstrlen; + //const char *pathstr = lua_tolstring(L,-1,&pathstrlen); + ////printf("got pathstr: %s\n",pathstr); + ////char tpathstr[pathstrlen + epathlen + 1 + 1]; //+1 for null, +1 for / + ////memcpy(tpathstr,epath,epathlen); + ////tpathstr[epathlen] = '/'; + ////memcpy(tpathstr+epathlen,pathstr,pathstrlen); + ////tpathstr[pathstrlen + epathlen + 1] = '\0'; + ////printf("tpathstr is: \"%s\"\n",tpathstr); + ////lua_pop(L,1); + //DIR *dir; + //struct dirent *ent; + //const char *tpathstr = pathstr; + //dir = opendir(tpathstr); + //if(dir == NULL){ + //perror("Cannot open"); + //lua_pushstring(L,"Failed to open directory: "); + //lua_pushstring(L,tpathstr); + //lua_concat(L,2); + //lua_error(L); + //} + //int i = 1; + //ent = readdir(dir); + //lua_newtable(L); + //while( (ent = readdir(dir)) != NULL){ + //lua_pushinteger(L,i); + //lua_pushstring(L,ent->d_name); + //lua_settable(L,-3); + //i++; + //} + //closedir(dir); + //return 1; +//} void load_iofuncs(lua_State* L){ lua_getglobal(L,"io"); - lua_pushcfunction(L,dirpath); - lua_setfield(L,-2,"dir"); + //lua_pushcfunction(L,dirpath); + //lua_setfield(L,-2,"dir"); lua_pop(L,1); } -- cgit v1.2.3-70-g09d2