fix(renderer): Do not escape parsed action cmds #444
This commit is contained in:
parent
f3089e88f2
commit
5c86842083
@ -511,7 +511,11 @@ void builder::underline_close() {
|
||||
*/
|
||||
void builder::cmd(mousebtn index, string action, bool condition) {
|
||||
if (condition && !action.empty()) {
|
||||
action = string_util::replace_all(action, ":", "\\:");
|
||||
size_t p{0};
|
||||
while ((p = action.find(':', p)) != string::npos && action[p - 1] != '\\') {
|
||||
action.insert(p, 1, '\\');
|
||||
p++;
|
||||
}
|
||||
tag_open(syntaxtag::A, to_string(static_cast<int>(index)) + ":" + action + ":");
|
||||
}
|
||||
}
|
||||
@ -520,9 +524,8 @@ void builder::cmd(mousebtn index, string action, bool condition) {
|
||||
* Wrap label in command block
|
||||
*/
|
||||
void builder::cmd(mousebtn index, string action, const label_t& label) {
|
||||
if (!action.empty() && label && *label) {
|
||||
action = string_util::replace_all(action, ":", "\\:");
|
||||
tag_open(syntaxtag::A, to_string(static_cast<int>(index)) + ":" + action + ":");
|
||||
if (label && *label) {
|
||||
cmd(index, action, true);
|
||||
node(label);
|
||||
tag_close(syntaxtag::A);
|
||||
}
|
||||
|
@ -731,7 +731,7 @@ bool renderer::on(const signals::parser::action_begin& evt) {
|
||||
action.button = a.button == mousebtn::NONE ? mousebtn::LEFT : a.button;
|
||||
action.align = m_align;
|
||||
action.start_x = m_blocks.at(m_align).x;
|
||||
action.command = string_util::replace_all(a.command, ":", "\\:");
|
||||
action.command = string_util::replace_all(a.command, "\\:", ":");
|
||||
action.active = true;
|
||||
m_actions.emplace_back(action);
|
||||
return true;
|
||||
|
Loading…
Reference in New Issue
Block a user