diff --git a/src/Cutter.cpp b/src/Cutter.cpp index 7f26ed7a..14f4b0e7 100644 --- a/src/Cutter.cpp +++ b/src/Cutter.cpp @@ -2535,11 +2535,16 @@ QList CutterCore::disassembleLines(RVA offset, int lines) for (const QJsonValue &value : array) { QJsonObject object = value.toObject(); + char *html = r_cons_html_filter(object[RJsonKey::text].toString().toUtf8(), nullptr); + if (!html) { + continue; + } DisassemblyLine line; line.offset = object[RJsonKey::offset].toVariant().toULongLong(); - line.text = object[RJsonKey::text].toString(); + line.text = QString::fromUtf8(html); + free (html); r << line; } diff --git a/src/widgets/DisassemblerGraphView.cpp b/src/widgets/DisassemblerGraphView.cpp index 0d4da857..241f91cd 100644 --- a/src/widgets/DisassemblerGraphView.cpp +++ b/src/widgets/DisassemblerGraphView.cpp @@ -170,8 +170,7 @@ void DisassemblerGraphView::refreshView() void DisassemblerGraphView::loadCurrentGraph() { TempConfig tempConfig; - tempConfig.set("scr.html", true) - .set("scr.color", COLOR_MODE_16M) + tempConfig.set("scr.color", COLOR_MODE_16M) .set("asm.bbline", false) .set("asm.lines", false) .set("asm.lines.fcn", false); @@ -290,11 +289,13 @@ void DisassemblerGraphView::loadCurrentGraph() // Skip last byte, otherwise it will overlap with next instruction i.size -= 1; - QString disas; - disas = op["text"].toString(); - QTextDocument textDoc; - textDoc.setHtml(disas); + char *html = r_cons_html_filter(op["text"].toString().toUtf8().constData(), nullptr); + if (html) { + textDoc.setHtml(QString::fromUtf8(html)); + free (html); + } + i.plainText = textDoc.toPlainText(); RichTextPainter::List richText = RichTextPainter::fromTextDocument(textDoc); diff --git a/src/widgets/DisassemblyWidget.cpp b/src/widgets/DisassemblyWidget.cpp index ac8d8f24..04e34792 100644 --- a/src/widgets/DisassemblyWidget.cpp +++ b/src/widgets/DisassemblyWidget.cpp @@ -224,8 +224,7 @@ void DisassemblyWidget::refreshDisasm(RVA offset) QList disassemblyLines; { TempConfig tempConfig; - tempConfig.set("scr.html", true) - .set("scr.color", COLOR_MODE_16M); + tempConfig.set("scr.color", COLOR_MODE_16M); disassemblyLines = Core()->disassembleLines(topOffset, maxLines); } diff --git a/src/widgets/FunctionsWidget.cpp b/src/widgets/FunctionsWidget.cpp index a0641033..48e5024e 100644 --- a/src/widgets/FunctionsWidget.cpp +++ b/src/widgets/FunctionsWidget.cpp @@ -200,7 +200,7 @@ QVariant FunctionModel::data(const QModelIndex &index, int role) const { // temporarily simplify the disasm output to get it colorful and simple to read TempConfig tempConfig; - tempConfig.set("scr.html", true) + tempConfig .set("scr.color", COLOR_MODE_16M) .set("asm.lines", false) .set("asm.var", false)