From 51d37fc6a508e65469da40946fcb8417968fffcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niccol=C3=B2=20Venerandi?= Date: Wed, 10 May 2023 10:44:53 +0000 Subject: [PATCH] Allow escaping of semicolons in action arguments --- src/inkscape-application.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/inkscape-application.cpp b/src/inkscape-application.cpp index fff9eddcaf..5e9781528b 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; -- GitLab