From: Robin Dunn Date: Tue, 14 Jun 2005 22:59:21 +0000 (+0000) Subject: Log the exception when writing to file fails. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4eb5bfc61fed681f52ce67e253b390ccaa1280e9?ds=inline Log the exception when writing to file fails. Set the default encoding from wxGetDefaultPyEncoding again. Recover from encoding errors when writing the memory file. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/wx/tools/XRCed/globals.py b/wxPython/wx/tools/XRCed/globals.py index 6ab35862d9..61ea8c0b55 100644 --- a/wxPython/wx/tools/XRCed/globals.py +++ b/wxPython/wx/tools/XRCed/globals.py @@ -17,10 +17,9 @@ import sys progname = 'XRCed' version = '0.1.5-2' # Can be changed to set other default encoding different -defaultEncoding = '' +#defaultEncoding = '' # you comment above and can uncomment this: -#import wx -#defaultEncoding = wx.GetDefaultPyEncoding() +defaultEncoding = wxGetDefaultPyEncoding() try: True diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index 249bad55c8..a917f133ad 100644 --- a/wxPython/wx/tools/XRCed/tree.py +++ b/wxPython/wx/tools/XRCed/tree.py @@ -20,9 +20,14 @@ class MemoryFile: self.buffer = '' def write(self, data): if g.currentEncoding: - self.buffer += data.encode(g.currentEncoding) + encoding = g.currentEncoding else: - self.buffer += data.encode() + encoding = wxGetDefaultPyEncoding() + try: + self.buffer += data.encode(encoding) + except UnicodeEncodeError: + self.buffer += data.encode(encoding, 'xmlcharrefreplace') + def close(self): wxMemoryFSHandler_AddFile(self.name, self.buffer) diff --git a/wxPython/wx/tools/XRCed/xrced.py b/wxPython/wx/tools/XRCed/xrced.py index 1cdb52788e..730bf823ba 100644 --- a/wxPython/wx/tools/XRCed/xrced.py +++ b/wxPython/wx/tools/XRCed/xrced.py @@ -716,7 +716,6 @@ Homepage: http://xrced.sourceforge.net\ # Simple emulation of python command line def OnDebugCMD(self, evt): - import traceback while 1: try: exec raw_input('C:\> ') @@ -1033,6 +1032,8 @@ Homepage: http://xrced.sourceforge.net\ self.modified = False panel.SetModified(False) except: + inf = sys.exc_info() + wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1]) wxLogError('Error writing file: %s' % path) raise