From 633c9fa68b7dd7126288b1ef0da04a5085bee17d Mon Sep 17 00:00:00 2001 From: fourtf Date: Sat, 21 Apr 2018 23:48:32 +0200 Subject: [PATCH] Fixes #358 ,fixed messages being highlighted when a subword of a word matched a highlight --- src/providers/twitch/twitchmessagebuilder.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/providers/twitch/twitchmessagebuilder.cpp b/src/providers/twitch/twitchmessagebuilder.cpp index c05f1b582..8e6e5a330 100644 --- a/src/providers/twitch/twitchmessagebuilder.cpp +++ b/src/providers/twitch/twitchmessagebuilder.cpp @@ -411,7 +411,16 @@ void TwitchMessageBuilder::parseHighlights() if (!blackList.contains(this->ircMessage->nick(), Qt::CaseInsensitive)) { for (const messages::HighlightPhrase &highlight : activeHighlights) { - if (this->originalMessage.contains(highlight.key, Qt::CaseInsensitive)) { + int index = -1; + + while ((index = this->originalMessage.indexOf(highlight.key, index + 1, + Qt::CaseInsensitive)) != -1) { + if ((index != 0 && this->originalMessage[index - 1] != ' ') || + (index + highlight.key.length() != this->originalMessage.length() && + this->originalMessage[index + highlight.key.length()] != ' ')) { + continue; + } + debug::Log("Highlight because {} contains {}", this->originalMessage, highlight.key); doHighlight = true;