eric5.py

branch
BgService
changeset 3417
5a93c6cdc989
parent 3209
c5432abceb25
child 3456
96232974dcdb
--- a/eric5.py	Sat Mar 22 13:06:32 2014 +0100
+++ b/eric5.py	Sat Mar 22 14:44:39 2014 +0100
@@ -14,7 +14,7 @@
 from __future__ import unicode_literals
 
 try:  # Only for Py2
-    import StringIO as io
+    import StringIO as io   # __IGNORE_EXCEPTION__
     import sip
     sip.setapi('QString', 2)
     sip.setapi('QVariant', 2)
@@ -22,6 +22,7 @@
     import Utilities.compatibility_fixes     # __IGNORE_WARNING__
 except ImportError:
     import io       # __IGNORE_WARNING__
+    basestring = str
 
 import sys
 import os
@@ -100,6 +101,7 @@
     @param excValue exception value
     @param tracebackobj traceback object
     """
+    import xml.sax.saxutils
     from UI.Info import BugAddress
     import Utilities
     import Globals
@@ -122,10 +124,13 @@
     if distroInfo:
         versionInfo += "{0}\n{1}".format(separator, distroInfo)
     
-    tbinfofile = io.StringIO()
-    traceback.print_tb(tracebackobj, None, tbinfofile)
-    tbinfofile.seek(0)
-    tbinfo = tbinfofile.read()
+    if isinstance(excType, basestring):
+        tbinfo = tracebackobj
+    else:
+        tbinfofile = io.StringIO()
+        traceback.print_tb(tracebackobj, None, tbinfofile)
+        tbinfofile.seek(0)
+        tbinfo = tbinfofile.read()
     errmsg = '{0}: \n{1}'.format(str(excType), str(excValue))
     sections = [separator, timeString, separator, errmsg, separator, tbinfo]
     msg = '\n'.join(sections)
@@ -136,7 +141,11 @@
         f.close()
     except IOError:
         pass
-    qWarning(str(notice) + str(msg) + str(versionInfo))
+    
+    warning = str(notice) + str(msg) + str(versionInfo)
+    # Escape &<> otherwise it's not visible in the error dialog
+    warning = xml.sax.saxutils.escape(warning)
+    qWarning(warning)
 
 
 def uiStartUp():

eric ide

mercurial