filesystem::path fixes

This commit is contained in:
pantor
2025-03-31 22:54:04 +02:00
parent 9b6587135c
commit 804823dbca
4 changed files with 6 additions and 6 deletions

View File

@@ -97,7 +97,7 @@ class Parser {
if (config.search_included_templates_in_files) {
// Build the relative path
template_name = path / original_name;
template_name = (path / original_name).string();
if (template_name.compare(0, 2, "./") == 0) {
template_name.erase(0, 2);
}

View File

@@ -65,7 +65,7 @@ class Renderer : public NodeVisitor {
static std::string htmlescape(const std::string& data) {
std::string buffer;
buffer.reserve(1.1 * data.size());
buffer.reserve((unsigned int)(1.1 * data.size()));
for (size_t pos = 0; pos != data.size(); ++pos) {
switch (data[pos]) {
case '&': buffer.append("&"); break;

View File

@@ -1542,7 +1542,7 @@ class Parser {
if (config.search_included_templates_in_files) {
// Build the relative path
template_name = path / original_name;
template_name = (path / original_name).string();
if (template_name.compare(0, 2, "./") == 0) {
template_name.erase(0, 2);
}
@@ -2172,7 +2172,7 @@ class Renderer : public NodeVisitor {
static std::string htmlescape(const std::string& data) {
std::string buffer;
buffer.reserve(1.1 * data.size());
buffer.reserve((unsigned int)(1.1 * data.size()));
for (size_t pos = 0; pos != data.size(); ++pos) {
switch (data[pos]) {
case '&': buffer.append("&"); break;

View File

@@ -191,13 +191,13 @@ TEST_CASE("templates") {
CHECK_THROWS_WITH(env.parse("{% include \"does-not-exist\" %}!"), "[inja.exception.file_error] failed accessing file at 'does-not-exist'");
env.set_search_included_templates_in_files(false);
env.set_include_callback([&env](const std::string&, const std::string&) { return env.parse("Hello {{ name }}"); });
env.set_include_callback([&env](const std::filesystem::path&, const std::string&) { return env.parse("Hello {{ name }}"); });
const inja::Template t1 = env.parse("{% include \"greeting\" %}!");
CHECK(env.render(t1, data) == "Hello Peter!");
env.set_search_included_templates_in_files(true);
env.set_include_callback([&env](const std::string&, const std::string& name) { return env.parse("Bye " + name); });
env.set_include_callback([&env](const std::filesystem::path&, const std::string& name) { return env.parse("Bye " + name); });
const inja::Template t2 = env.parse("{% include \"Jeff\" %}!");
CHECK(env.render(t2, data) == "Bye Jeff!");