diff --git a/src/output.cpp b/src/output.cpp index 1040cb09c..46c1d6a8c 100644 --- a/src/output.cpp +++ b/src/output.cpp @@ -10,9 +10,18 @@ #include #include +#include #include #include +static std::string adapt_relative_filename(std::string const &lua_file, + std::string const &style_file) +{ + boost::filesystem::path base_path{style_file}; + return boost::filesystem::absolute(lua_file, base_path.parent_path()) + .string(); +} + namespace pt = boost::property_tree; namespace { @@ -37,8 +46,11 @@ parse_multi_single(pt::ptree const &conf, std::string name = conf.get("name"); std::string proc_type = conf.get("type"); - new_opts.tag_transform_script = - conf.get_optional("tagtransform"); + auto const opt_script = conf.get_optional("tagtransform"); + if (opt_script) { + new_opts.tag_transform_script = + adapt_relative_filename(opt_script.get(), options.style); + } new_opts.tag_transform_node_func = conf.get_optional("tagtransform-node-function"); diff --git a/src/tagtransform-lua.cpp b/src/tagtransform-lua.cpp index b579cdf47..eb1a48474 100644 --- a/src/tagtransform-lua.cpp +++ b/src/tagtransform-lua.cpp @@ -4,20 +4,10 @@ extern "C" #include } -#include - #include "format.hpp" #include "options.hpp" #include "tagtransform-lua.hpp" -static std::string adapt_relative_filename(std::string const &lua_file, - std::string const &style_file) -{ - boost::filesystem::path base_path{style_file}; - return boost::filesystem::absolute(lua_file, base_path.parent_path()) - .string(); -} - lua_tagtransform_t::lua_tagtransform_t(options_t const *options) : m_node_func( options->tag_transform_node_func.get_value_or("filter_tags_node")), @@ -26,8 +16,7 @@ lua_tagtransform_t::lua_tagtransform_t(options_t const *options) options->tag_transform_rel_func.get_value_or("filter_basic_tags_rel")), m_rel_mem_func(options->tag_transform_rel_mem_func.get_value_or( "filter_tags_relation_member")), - m_lua_file(adapt_relative_filename(options->tag_transform_script.get(), - options->style)), + m_lua_file(options->tag_transform_script.get()), m_extra_attributes(options->extra_attributes) { open_style();