X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fqtuimessageprocessor.cpp;h=9bc1c8c36f74d391d98835d2bcec69e08bebf9d7;hb=236dda81632fa792e788d45b0f4f31b973823f7f;hp=095b3e62763ae3ebb7ebcf08a9088f43d358b336;hpb=01ed2953cbad3f2de3df262dc1601e82d903b4a8;p=quassel.git diff --git a/src/qtui/qtuimessageprocessor.cpp b/src/qtui/qtuimessageprocessor.cpp index 095b3e62..9bc1c8c3 100644 --- a/src/qtui/qtuimessageprocessor.cpp +++ b/src/qtui/qtuimessageprocessor.cpp @@ -1,5 +1,5 @@ /*************************************************************************** -* Copyright (C) 2005-08 by the Quassel Project * +* Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -138,7 +138,7 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { nickList = myIdentity->nicks(); } foreach(QString nickname, nickList) { - QRegExp nickRegExp("\\b" + QRegExp::escape(nickname) + "\\b", + QRegExp nickRegExp("\\b" + QRegExp::escape(nickname) + "(\\W|\\b|$)", // + "\\b", this does not seem to work for trailing ` -> upstream bug? _nicksCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive); if(nickRegExp.indexIn(msg.contents()) >= 0) { msg.setFlags(msg.flags() | Message::Highlight); @@ -151,13 +151,15 @@ void QtUiMessageProcessor::checkForHighlight(Message &msg) { if(!rule.isEnabled) continue; - QRegExp userRegExp; + bool match = false; if(rule.isRegExp) { - userRegExp = QRegExp(rule.name, rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp rx(rule.name, rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + match = rx.exactMatch(msg.contents()); } else { - userRegExp = QRegExp("\\b" + QRegExp::escape(rule.name) + "\\b", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + QRegExp rx("\\b" + QRegExp::escape(rule.name) + "\\b", rule.caseSensitive? Qt::CaseSensitive : Qt::CaseInsensitive); + match = (rx.indexIn(msg.contents()) >= 0); } - if(userRegExp.exactMatch(msg.contents())) { + if(match) { msg.setFlags(msg.flags() | Message::Highlight); return; }