From: Daniel Albers Date: Wed, 12 Aug 2009 22:45:00 +0000 (+0200) Subject: change highlight regexp boundaries from \b to \W X-Git-Tag: 0.5-rc1~60 X-Git-Url: https://git.quassel-irc.org/?a=commitdiff_plain;ds=sidebyside;h=e036ee9df2219667ce1cc22d42a7c50fbdf5b3ba;p=quassel.git change highlight regexp boundaries from \b to \W fixes #708 \b is between \w\W or \W\w, therefore doesn't match "^nickname^ something" due to "^ " being \W\W characters --- diff --git a/src/qtui/qtuimessageprocessor.cpp b/src/qtui/qtuimessageprocessor.cpp index 353928ae..e245a7bc 100644 --- a/src/qtui/qtuimessageprocessor.cpp +++ b/src/qtui/qtuimessageprocessor.cpp @@ -119,8 +119,7 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { nickList.prepend(net->myNick()); } foreach(QString nickname, nickList) { - QRegExp nickRegExp("\\b" + QRegExp::escape(nickname) + "(\\W|\\b|$)", // + "\\b", this does not seem to work for trailing ` -> upstream bug? - _nicksCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp nickRegExp("(^|\\W)" + QRegExp::escape(nickname) + "(\\W|$)", _nicksCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); if(nickRegExp.indexIn(msg.contents()) >= 0) { msg.setFlags(msg.flags() | Message::Highlight); return; @@ -137,7 +136,7 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { QRegExp rx(rule.name, rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); match = rx.exactMatch(msg.contents()); } else { - QRegExp rx("\\b" + QRegExp::escape(rule.name) + "\\b", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp rx("\\W" + QRegExp::escape(rule.name) + "\\W", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); match = (rx.indexIn(msg.contents()) >= 0); } if(match) {