+bool
+TemplateManager::adjust_plugin_paths (XMLNode* node, const string& name, const string& new_name) const
+{
+ bool adjusted = false;
+
+ const XMLNodeList& procs = node->children (X_("Processor"));
+ XMLNodeConstIterator pit;
+ for (pit = procs.begin(); pit != procs.end(); ++pit) {
+ XMLNode* lv2_node = (*pit)->child (X_("lv2"));
+ if (!lv2_node) {
+ continue;
+ }
+ string template_dir;
+
+ if (!lv2_node->get_property (X_("template-dir"), template_dir)) {
+ continue;
+ }
+
+ const int suffix_pos = template_dir.size() - name.size();
+ if (suffix_pos < 0) {
+ cerr << "Template name\"" << name << "\" longer than template-dir \"" << template_dir << "\", WTH?" << endl;
+ continue;
+ }
+
+ if (template_dir.compare (suffix_pos, template_dir.size(), name)) {
+ cerr << "Template name \"" << name << "\" no suffix of template-dir \"" << template_dir << "\"" << endl;
+ continue;
+ }
+
+ const string new_template_dir = template_dir.substr (0, suffix_pos) + new_name;
+ lv2_node->set_property (X_("template-dir"), new_template_dir);
+
+ adjusted = true;
+ }
+
+ return adjusted;
+}