diff --git a/src/texthandler.cpp b/src/texthandler.cpp index f0938858c..12e2535dc 100644 --- a/src/texthandler.cpp +++ b/src/texthandler.cpp @@ -350,8 +350,9 @@ MessageComponent TextHandler::nextBlock(const QString &string, QString TextHandler::stripBlockTags(QString string, const QString &tagType) const { - if (blockTags.contains(tagType) && tagType != QStringLiteral("ol") && tagType != QStringLiteral("ul") && tagType != QStringLiteral("table")) { - string.replace(QLatin1String("<%1>").arg(tagType), QString()).replace(QLatin1String("").arg(tagType), QString()); + if (blockTags.contains(tagType) && tagType != QStringLiteral("ol") && tagType != QStringLiteral("ul") && tagType != QStringLiteral("table") + && string.startsWith(QLatin1String("<%1").arg(tagType))) { + string.remove(0, string.indexOf(u'>') + 1).remove(string.indexOf(QLatin1String("").arg(tagType)), string.size()); } if (string.startsWith(QStringLiteral("\n"))) { @@ -363,7 +364,7 @@ QString TextHandler::stripBlockTags(QString string, const QString &tagType) cons if (tagType == QStringLiteral("pre")) { if (string.startsWith(QStringLiteral("') + 1); - string.remove(string.size() - 7, string.size()); + string.remove(string.indexOf(QLatin1String("")), string.size()); } if (string.endsWith(QStringLiteral("\n"))) { string.remove(string.size() - 1, string.size()); @@ -371,8 +372,8 @@ QString TextHandler::stripBlockTags(QString string, const QString &tagType) cons } if (tagType == QStringLiteral("blockquote")) { if (string.startsWith(QStringLiteral("

"))) { - string.remove(0, 3); - string.remove(string.size() - 4, string.size()); + string.remove(0, string.indexOf(u'>') + 1); + string.remove(string.indexOf(QLatin1String("

")), string.size()); } if (!string.startsWith(u'"')) { string.prepend(u'"');