From ca38764a13180cd857101630e7a3a019580dd7b5 Mon Sep 17 00:00:00 2001 From: Thiago Date: Sat, 17 Jan 2026 10:16:32 -0300 Subject: [PATCH 1/2] fix parsing rules crash --- plugins/window-rules/window-rules.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/plugins/window-rules/window-rules.cpp b/plugins/window-rules/window-rules.cpp index b79ee36a7..c98aa3e6c 100644 --- a/plugins/window-rules/window-rules.cpp +++ b/plugins/window-rules/window-rules.cpp @@ -187,12 +187,20 @@ void wayfire_window_rules_t::setup_rules_from_config() for (const auto& [name, rule_str] : rule_list) { LOGD("Registering ", rule_str); - _lexer.reset(rule_str); - auto rule = wf::rule_parser_t().parse(_lexer); - if (rule != nullptr) - { + try { + _lexer.reset(rule_str); + auto rule = wf::rule_parser_t().parse(_lexer); + + if (rule == nullptr) { + LOGW("Failed to parse rule: ", rule_str); + continue; + } + _rules.push_back(rule); } + catch (const std::exception& e) { + LOGE("Error parsing rule: ", rule_str, " Exception: ", e.what()); + } } } From f7c8c6492fe343a3736fb5c87418bc9ce28d046a Mon Sep 17 00:00:00 2001 From: Thiago Date: Sat, 17 Jan 2026 10:19:19 -0300 Subject: [PATCH 2/2] fix code style --- plugins/window-rules/window-rules.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/window-rules/window-rules.cpp b/plugins/window-rules/window-rules.cpp index c98aa3e6c..07878df24 100644 --- a/plugins/window-rules/window-rules.cpp +++ b/plugins/window-rules/window-rules.cpp @@ -191,14 +191,15 @@ void wayfire_window_rules_t::setup_rules_from_config() _lexer.reset(rule_str); auto rule = wf::rule_parser_t().parse(_lexer); - if (rule == nullptr) { + if (rule == nullptr) + { LOGW("Failed to parse rule: ", rule_str); continue; } _rules.push_back(rule); - } - catch (const std::exception& e) { + } catch (const std::exception& e) + { LOGE("Error parsing rule: ", rule_str, " Exception: ", e.what()); } }