From 7f9b33051e4efb8603ce375bd71ee7b1c1d3e306 Mon Sep 17 00:00:00 2001 From: nerix Date: Sun, 12 Jan 2025 14:12:31 +0100 Subject: [PATCH] fix: use non-capturing group for highlight boundaries (#5784) --- CHANGELOG.md | 1 + src/controllers/highlights/HighlightPhrase.cpp | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 089d8f67..f7fc8695 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Bugfix: Fixed a crash that could occur on Linux and macOS when clicking "Install" from the update prompt. (#5818) - Bugfix: Fixed missing word wrap in update popup. (#5811) - Bugfix: Fixed tabs not scaling to the default scale when changing the scale from a non-default value. (#5794) +- Dev: Highlight checks now use non-capturing groups for the boundaries. (#5784) - Dev: Updated Conan dependencies. (#5776) ## 2.5.2 diff --git a/src/controllers/highlights/HighlightPhrase.cpp b/src/controllers/highlights/HighlightPhrase.cpp index 7afd1a33..164de013 100644 --- a/src/controllers/highlights/HighlightPhrase.cpp +++ b/src/controllers/highlights/HighlightPhrase.cpp @@ -1,11 +1,13 @@ #include "controllers/highlights/HighlightPhrase.hpp" +#include + namespace chatterino { namespace { - const QString REGEX_START_BOUNDARY("(\\b|\\s|^)"); - const QString REGEX_END_BOUNDARY("(\\b|\\s|$)"); + constexpr QStringView REGEX_START_BOUNDARY(u"(?:\\b|\\s|^)"); + constexpr QStringView REGEX_END_BOUNDARY(u"(?:\\b|\\s|$)"); } // namespace @@ -46,7 +48,7 @@ HighlightPhrase::HighlightPhrase(const QString &pattern, bool showInMentions, , soundUrl_(soundUrl) , regex_(isRegex_ ? pattern - : REGEX_START_BOUNDARY + QRegularExpression::escape(pattern) + + : REGEX_START_BOUNDARY % QRegularExpression::escape(pattern) % REGEX_END_BOUNDARY, QRegularExpression::UseUnicodePropertiesOption | (isCaseSensitive_ ? QRegularExpression::NoPatternOption @@ -69,7 +71,7 @@ HighlightPhrase::HighlightPhrase(const QString &pattern, bool showInMentions, , color_(std::move(color)) , regex_(isRegex_ ? pattern - : REGEX_START_BOUNDARY + QRegularExpression::escape(pattern) + + : REGEX_START_BOUNDARY % QRegularExpression::escape(pattern) % REGEX_END_BOUNDARY, QRegularExpression::UseUnicodePropertiesOption | (isCaseSensitive_ ? QRegularExpression::NoPatternOption