Move require path into filesystem module

--HG--
branch : minor
This commit is contained in:
Bart van Strien
2014-09-05 07:57:42 +02:00
parent 97cacf1b2d
commit 5b4ef23772
3 changed files with 17 additions and 4 deletions
@@ -77,6 +77,7 @@ Filesystem::Filesystem()
, fused(false)
, fusedSet(false)
{
requirePath = {"?.lua", "?/init.lua"};
}
Filesystem::~Filesystem()
@@ -671,6 +672,11 @@ bool Filesystem::isSymlink(const char *filename) const
return PHYSFS_isSymbolicLink(filename) != 0;
}
std::vector<std::string> &Filesystem::getRequirePath()
{
return requirePath;
}
} // physfs
} // filesystem
} // love
@@ -26,6 +26,7 @@
#include <cstring>
#include <iostream>
#include <string>
#include <vector>
// LOVE
#include "common/Module.h"
@@ -262,6 +263,10 @@ public:
**/
static int lines_i(lua_State *L);
// Require path accessors
// Not const because it's R/W
std::vector<std::string> &getRequirePath();
private:
// Contains the current working directory (UTF8).
@@ -290,6 +295,9 @@ private:
bool fused;
bool fusedSet;
// Search path for require
std::vector<std::string> requirePath;
}; // Filesystem
} // physfs
+3 -4
View File
@@ -510,13 +510,11 @@ int w_isSymlink(lua_State *L)
return 1;
}
static std::vector<std::string> requirePath = {"?.lua", "?/init.lua"};
int w_getRequirePath(lua_State *L)
{
std::stringstream path;
bool seperator = false;
for (auto &element : requirePath)
for (auto &element : instance()->getRequirePath())
{
if (seperator)
path << ";";
@@ -533,6 +531,7 @@ int w_getRequirePath(lua_State *L)
int w_setRequirePath(lua_State *L)
{
std::string element = luax_checkstring(L, 1);
auto &requirePath = instance()->getRequirePath();
requirePath.clear();
std::stringstream path;
@@ -555,7 +554,7 @@ int loader(lua_State *L)
}
auto *inst = instance();
for (std::string element : requirePath)
for (std::string element : inst->getRequirePath())
{
size_t pos = element.find('?');
if (pos == std::string::npos)