diff --git a/src/modules/filesystem/physfs/Filesystem.cpp b/src/modules/filesystem/physfs/Filesystem.cpp index 595b716b4..915782e0f 100644 --- a/src/modules/filesystem/physfs/Filesystem.cpp +++ b/src/modules/filesystem/physfs/Filesystem.cpp @@ -557,6 +557,20 @@ namespace physfs } } + int Filesystem::getLastModified(lua_State * L) + { + const char * filename = luaL_checkstring(L, 1); + int64_t time = PHYSFS_getLastModTime(filename); + if (time == -1) + { + lua_pushnil(L); + lua_pushstring(L, "Could not determine file modification date."); + return 2; + } + lua_pushnumber(L, time); + return 1; + } + } // physfs } // filesystem } // love diff --git a/src/modules/filesystem/physfs/Filesystem.h b/src/modules/filesystem/physfs/Filesystem.h index 3a5018b86..94e5bf32f 100644 --- a/src/modules/filesystem/physfs/Filesystem.h +++ b/src/modules/filesystem/physfs/Filesystem.h @@ -278,6 +278,8 @@ namespace physfs **/ int load(lua_State * L); + int getLastModified(lua_State * L); + }; // Filesystem } // physfs diff --git a/src/modules/filesystem/physfs/wrap_Filesystem.cpp b/src/modules/filesystem/physfs/wrap_Filesystem.cpp index d2e4bbcba..fe6ef0d6b 100644 --- a/src/modules/filesystem/physfs/wrap_Filesystem.cpp +++ b/src/modules/filesystem/physfs/wrap_Filesystem.cpp @@ -221,6 +221,11 @@ namespace physfs return instance->load(L); } + int w_getLastModified(lua_State * L) + { + return instance->getLastModified(L); + } + int loader(lua_State * L) { const char * filename = lua_tostring(L, -1); @@ -297,6 +302,7 @@ namespace physfs { "enumerate", w_enumerate }, { "lines", w_lines }, { "load", w_load }, + { "getLastModified", w_getLastModified }, { "newFileData", w_newFileData }, { 0, 0 } }; diff --git a/src/modules/filesystem/physfs/wrap_Filesystem.h b/src/modules/filesystem/physfs/wrap_Filesystem.h index c1990c5f2..f11b5c48e 100644 --- a/src/modules/filesystem/physfs/wrap_Filesystem.h +++ b/src/modules/filesystem/physfs/wrap_Filesystem.h @@ -57,6 +57,7 @@ namespace physfs int w_enumerate(lua_State * L); int w_lines(lua_State * L); int w_load(lua_State * L); + int w_getLastModified(lua_State * L); int loader(lua_State * L); extern "C" LOVE_EXPORT int luaopen_love_filesystem(lua_State * L);