diff options
Diffstat (limited to 'src/Utils.cpp')
-rw-r--r-- | src/Utils.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/Utils.cpp b/src/Utils.cpp index 2249379d..8ff8cec6 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -66,9 +66,9 @@ utils::stripReplyFromBody(const std::string &bodyi) if (body.startsWith(QLatin1String("> <"))) { auto segments = body.split('\n'); while (!segments.isEmpty() && segments.begin()->startsWith('>')) - segments.erase(segments.begin()); + segments.erase(segments.cbegin()); if (!segments.empty() && segments.first().isEmpty()) - segments.erase(segments.begin()); + segments.erase(segments.cbegin()); body = segments.join('\n'); } @@ -80,8 +80,9 @@ std::string utils::stripReplyFromFormattedBody(const std::string &formatted_bodyi) { QString formatted_body = QString::fromStdString(formatted_bodyi); - formatted_body.remove(QRegularExpression(QStringLiteral("<mx-reply>.*</mx-reply>"), - QRegularExpression::DotMatchesEverythingOption)); + static QRegularExpression replyRegex(QStringLiteral("<mx-reply>.*</mx-reply>"), + QRegularExpression::DotMatchesEverythingOption); + formatted_body.remove(replyRegex); formatted_body.replace(QLatin1String("@room"), QString::fromUtf8("@\u2060room")); return formatted_body.toStdString(); } @@ -409,9 +410,10 @@ utils::linkifyMessage(const QString &body) // Convert to valid XML. auto doc = body; doc.replace(conf::strings::url_regex, conf::strings::url_html); - doc.replace( - QRegularExpression(QStringLiteral("\\b(?<![\"'])(?>(matrix:[\\S]{5,}))(?![\"'])\\b")), - conf::strings::url_html); + + static QRegularExpression matrixURIRegex( + QStringLiteral("\\b(?<![\"'])(?>(matrix:[\\S]{5,}))(?![\"'])\\b")); + doc.replace(matrixURIRegex, conf::strings::url_html); return doc; } |