URI: 
       tqt crash reporter: html.escape traceback to avoid formatting issues - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 8f4c384aad8531d1acecffde5583deefc251fc50
   DIR parent b1d23896562d0311b3bbcb56588a67f99d76047c
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Sat, 18 Apr 2020 05:48:11 +0200
       
       qt crash reporter: html.escape traceback to avoid formatting issues
       
       fixes #6099
       
       Diffstat:
         M electrum/base_crash_reporter.py     |       5 ++++-
         M electrum/gui/qt/exception_window.py |      10 ++++++++--
       
       2 files changed, 12 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/electrum/base_crash_reporter.py b/electrum/base_crash_reporter.py
       t@@ -121,9 +121,12 @@ class BaseCrashReporter(Logger):
                    ['git', 'describe', '--always', '--dirty'], cwd=dir)
                return str(version, "utf8").strip()
        
       +    def _get_traceback_str(self) -> str:
       +        return "".join(traceback.format_exception(*self.exc_args))
       +
            def get_report_string(self):
                info = self.get_additional_info()
       -        info["traceback"] = "".join(traceback.format_exception(*self.exc_args))
       +        info["traceback"] = self._get_traceback_str()
                return self.issue_template.format(**info)
        
            def get_user_description(self):
   DIR diff --git a/electrum/gui/qt/exception_window.py b/electrum/gui/qt/exception_window.py
       t@@ -22,6 +22,7 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        import sys
       +import html
        
        from PyQt5.QtCore import QObject
        import PyQt5.QtCore as QtCore
       t@@ -58,8 +59,6 @@ class Exception_Window(BaseCrashReporter, QWidget, MessageBoxMixin, Logger):
                main_box.addWidget(QLabel(BaseCrashReporter.REQUEST_HELP_MESSAGE))
        
                collapse_info = QPushButton(_("Show report contents"))
       -        # FIXME if traceback contains special HTML characters, e.g. '<'
       -        #       then formatting issues arise (due to rich_text=True)
                collapse_info.clicked.connect(
                    lambda: self.msg_box(QMessageBox.NoIcon,
                                         self, _("Report contents"), self.get_report_string(),
       t@@ -139,6 +138,13 @@ class Exception_Window(BaseCrashReporter, QWidget, MessageBoxMixin, Logger):
            def get_wallet_type(self):
                return self.main_window.wallet.wallet_type
        
       +    def _get_traceback_str(self) -> str:
       +        # The msg_box that shows the report uses rich_text=True, so
       +        # if traceback contains special HTML characters, e.g. '<',
       +        # they need to be escaped to avoid formatting issues.
       +        traceback_str = super()._get_traceback_str()
       +        return html.escape(traceback_str)
       +
        
        def _show_window(*args):
            if not Exception_Window._active_window: