summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
5b1428b)
The code handling the topic message isn't expecting any new lines
since it is usually not possible to have any from the IRC specs.
But we can have some Unicode new lines instead!
Qt is happily converting them to simple new lines which then crashes
the client with a stack overflow.
+ _topic = sanitizeTopic(newtopic);
_readonly = readonly;
ui.topicEditButton->setVisible(!_readonly);
_readonly = readonly;
ui.topicEditButton->setVisible(!_readonly);
- ui.topicLabel->setText(newtopic);
- ui.topicLineEdit->setPlainText(newtopic);
+ ui.topicLabel->setText(_topic);
+ ui.topicLineEdit->setPlainText(_topic);
+
+QString TopicWidget::sanitizeTopic(const QString& topic)
+{
+ // Normally, you don't have new lines in topic messages
+ // But the use of "plain text" functionnality from Qt replaces
+ // some unicode characters with a new line, which then triggers
+ // a stack overflow later
+ QString result(topic);
+ result.replace(QChar::ParagraphSeparator, " ");
+ result.replace(QChar::LineSeparator, " ");
+
+ return result;
+}
void setUseCustomFont(const QVariant &);
private:
void setUseCustomFont(const QVariant &);
private:
+ QString sanitizeTopic(const QString& topic);
+
Ui::TopicWidget ui;
QString _topic;
Ui::TopicWidget ui;
QString _topic;