summaryrefslogtreecommitdiff
path: root/src/client/client.cpp
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2019-11-09 15:11:21 +0100
committersfan5 <sfan5@live.de>2019-11-09 16:08:38 +0100
commitd961ece144c239a61ff46d830041249867656e9c (patch)
tree2fba4befafb5ea7ff0643d6626c293606ad91fa1 /src/client/client.cpp
parent485b669840b43af1b10a5e11bf65373c88f63395 (diff)
downloadminetest-d961ece144c239a61ff46d830041249867656e9c.tar.gz
minetest-d961ece144c239a61ff46d830041249867656e9c.tar.bz2
minetest-d961ece144c239a61ff46d830041249867656e9c.zip
Be lenient with extra slashes for CSM paths
Diffstat (limited to 'src/client/client.cpp')
-rw-r--r--src/client/client.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client/client.cpp b/src/client/client.cpp
index fd7673a99..0908e52f9 100644
--- a/src/client/client.cpp
+++ b/src/client/client.cpp
@@ -1881,8 +1881,17 @@ scene::IAnimatedMesh* Client::getMesh(const std::string &filename, bool cache)
return mesh;
}
-const std::string* Client::getModFile(const std::string &filename)
+const std::string* Client::getModFile(std::string filename)
{
+ // strip dir delimiter from beginning of path
+ auto pos = filename.find_first_of(':');
+ if (pos == std::string::npos)
+ return nullptr;
+ pos++;
+ auto pos2 = filename.find_first_not_of("/", pos);
+ if (pos2 > pos)
+ filename.erase(pos, pos2 - pos);
+
StringMap::const_iterator it = m_mod_vfs.find(filename);
if (it == m_mod_vfs.end())
return nullptr;