Browse Source

Let the love.filesystem loader support the template path for multiple interrogation mark.

evan yeung 8 years ago
parent
commit
9b77dbe262
1 changed files with 12 additions and 2 deletions
  1. 12 2
      src/modules/filesystem/wrap_Filesystem.cpp

+ 12 - 2
src/modules/filesystem/wrap_Filesystem.cpp

@@ -631,8 +631,18 @@ int loader(lua_State *L)
 	auto *inst = instance();
 	for (std::string element : inst->getRequirePath())
 	{
-		size_t pos = element.find('?');
-		if (pos != std::string::npos)
+		// [Modified: 20170104] @evanyeung
+		// Remark: For each template, the searcher will change
+		// the first interrogation mark in the template by the file name.
+		// size_t pos = element.find('?');
+		// if (pos != std::string::npos)
+		// 	element.replace(pos, 1, modulename);
+
+		// [Modified: 20170104] @evanyeung
+		// Remark: For each template, the searcher will change
+		// each interrogation mark in the template by filename.
+		size_t pos = 0;
+		while ((pos = element.find('?', pos)) != std::string::npos)
 			element.replace(pos, 1, modulename);
 
 		if (inst->isFile(element.c_str()))