diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-06-03 05:23:01 +0000 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-06-03 05:23:01 +0000 |
commit | 5641b34207407e26e9265721f068efed6b118a99 (patch) | |
tree | c3ee1685dea48aaa06ffbda3b74425aa650e296b /user/quassel/unterminated-mIRC-codes.patch | |
parent | 76b6b9adadf678385640651a4ef4996af439260c (diff) | |
download | packages-5641b34207407e26e9265721f068efed6b118a99.tar.gz packages-5641b34207407e26e9265721f068efed6b118a99.tar.bz2 packages-5641b34207407e26e9265721f068efed6b118a99.tar.xz packages-5641b34207407e26e9265721f068efed6b118a99.zip |
user/quassel: fix hang on unterminated mIRC codes in input box
Diffstat (limited to 'user/quassel/unterminated-mIRC-codes.patch')
-rw-r--r-- | user/quassel/unterminated-mIRC-codes.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/user/quassel/unterminated-mIRC-codes.patch b/user/quassel/unterminated-mIRC-codes.patch new file mode 100644 index 000000000..8cedeb461 --- /dev/null +++ b/user/quassel/unterminated-mIRC-codes.patch @@ -0,0 +1,40 @@ +From 391cdf6c2595060ff3b2adb54f5b2fc8ebd7cc04 Mon Sep 17 00:00:00 2001 +From: "A. Wilcox" <AWilcox@Wilcox-Tech.com> +Date: Mon, 3 Jun 2019 00:16:30 -0500 +Subject: [PATCH] multilineedit: handle unterminated mIRC codes + +Currently, if an unterminated mIRC code is pasted into Quassel, trying to +go through input line history will cause a deadlock. This breaks the loop +at the cost of possibly mangling the formatting of the line somewhat. +This is seen as more acceptable than locking up, and the line is invalid +anyway. + +Reproducer: + +```sh +printf '\00303,08HONK' | xclip -selection clipboard +``` + +Paste into Quassel, send, press Up arrow key. +--- + src/uisupport/multilineedit.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp +index 133a2433..b13834c5 100644 +--- a/src/uisupport/multilineedit.cpp ++++ b/src/uisupport/multilineedit.cpp +@@ -645,6 +645,10 @@ QString MultiLineEdit::convertMircCodesToHtml(const QString &text) + } + + posRight = text.indexOf(mircCode.cap(), posRight + 1); ++ if (posRight == -1) { ++ words << text.mid(posLeft); ++ break; // unclosed color code; can't process ++ } + words << text.mid(posLeft, posRight + 1 - posLeft); + posLeft = posRight + 1; + } +-- +2.21.0 + |