/***************************************************************************
- * Copyright (C) 2005-2013 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
ClickableList ClickableList::fromString(const QString &str)
{
// For matching URLs
- static QString scheme("(?:(?:mailto:|(?:[+.-]?\\w)+://)|www(?=\\.\\S+\\.))");
- static QString authority("(?:(?:[,.;@:]?[-\\w]+)+\\.?|\\[[0-9a-f:.]+\\])(?::\\d+)?");
- static QString urlChars("(?:[,.;:]*[\\w~@/?&=+$()!%#*{}\\[\\]\\|'^-])");
- static QString urlEnd("(?:>|[,.;:\"]*\\s|\\b|$)");
+ static QString scheme(R"((?:(?:mailto:|(?:[+.-]?\w)+://)|www(?=\.\S+\.)))");
+ static QString authority(R"((?:(?:[,.;@:]?[-\w]+)+\.?|\[[0-9a-f:.]+\])(?::\d+)?)");
+ static QString urlChars("(?:[,.;:]*[\\w~@/?&=+$()!%#*-])");
+ static QString urlEnd("(?:>|[,.;:\"]*\\s|\\b|$)"); // NOLINT(modernize-raw-string-literal)
static QRegExp regExp[] = {
// URL
// Channel name
// We don't match for channel names starting with + or &, because that gives us a lot of false positives.
- QRegExp("((?:#|![A-Z0-9]{5})[^,:\\s]+(?::[^,:\\s]+)?)\\b", Qt::CaseInsensitive)
+ QRegExp(R"(((?:#|![A-Z0-9]{5})[^,:\s]+(?::[^,:\s]+)?)\b)", Qt::CaseInsensitive)
// TODO: Nicks, we'll need a filtering for only matching known nicknames further down if we do this
};
if (QRegExp("^#\\d+$").exactMatch(match))
continue;
}
- result.append(Clickable((Clickable::Type)type, matches[type], matchEnd[type] - matches[type]));
+ result.emplace_back((Clickable::Type)type, matches[type], matchEnd[type] - matches[type]);
}
}
while (type >= 0);