mirror of
https://github.com/love2d/love.git
synced 2026-08-15 15:51:12 +02:00
Move require path into filesystem module
--HG-- branch : minor
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user