diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp index fff9eddcaf0f9a0f06a9aa262831fe4c36272437..5e9781528b53cacf519110db08732a517e0a97e1 100644 --- a/src/inkscape-application.cpp +++ b/src/inkscape-application.cpp @@ -1169,9 +1169,15 @@ InkscapeApplication::parse_actions(const Glib::ustring& input, action_vector_t& { const auto re_colon = Glib::Regex::create("\\s*:\\s*"); - // Split action list - std::vector tokens = Glib::Regex::split_simple("\\s*;\\s*", input); - for (auto token : tokens) { + // Split action list at ";" if not preceded by "\" + std::vector tokens = Glib::Regex::split_simple("(? -1) { + token = token.replace(pos, 2, ";"); + pos = token.find("\\;"); + } // Note: split into 2 tokens max ("param:value"); allows value to contain colon (e.g. abs. paths on Windows) std::vector tokens2 = re_colon->split(token, 0, static_cast(0), 2); Glib::ustring action;