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);
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;
}