From d584852bc0e78532d1febeb8f47b0788f29a8773 Mon Sep 17 00:00:00 2001 From: Rasmus Karlsson Date: Tue, 5 Jun 2018 16:29:06 +0200 Subject: [PATCH] Fix tag string parsing --- src/util/irchelpers.hpp | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/src/util/irchelpers.hpp b/src/util/irchelpers.hpp index fa0b559f8..6816c8a82 100644 --- a/src/util/irchelpers.hpp +++ b/src/util/irchelpers.hpp @@ -10,48 +10,43 @@ inline QString parseTagString(const QString &input) QString output = input; output.detach(); - bool changed = false; + auto length = output.length(); - for (int i = 0; i < output.length() - 1; i++) { + for (int i = 0; i < length - 1; i++) { if (output[i] == '\\') { QChar c = output[i + 1]; switch (c.cell()) { case 'n': { - output[i] = '\n'; + output.replace(i, 2, '\n'); } break; case 'r': { - output[i] = '\r'; + output.replace(i, 2, '\r'); } break; case 's': { - output[i] = ' '; + output.replace(i, 2, ' '); } break; case '\\': { - output[i] = '\\'; + output.replace(i, 2, '\\'); } break; case ':': { - output[i] = ';'; + output.replace(i, 2, ';'); } break; default: { - output[i] = output[i + 1]; + output.remove(i, 1); } break; } - output[i + 1] = '\0'; - changed = true; i++; + length--; } } - if (changed) { - return output.replace("\0", ""); - } - return output; }