mirror of
https://github.com/pantor/inja.git
synced 2026-02-17 09:03:58 +00:00
filesystem::path fixes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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!");
|
||||
|
||||
Reference in New Issue
Block a user