summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/EditorWindow.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2015-08-06 04:54:45 (GMT)
committerTerry Jan Reedy <tjreedy@udel.edu>2015-08-06 04:54:45 (GMT)
commit0901d84e3537174ed00e2a684a81d3c0c6890c58 (patch)
treed0a3929ec715d40c36f7e9690f2ed7b342eb1efb /Lib/idlelib/EditorWindow.py
parent7d6adab716e3007cc50864dd7a2757fe55ae7d2f (diff)
parent5c28e9f887d8a8089d4e5ed6060e61a0da5afbe2 (diff)
downloadcpython-0901d84e3537174ed00e2a684a81d3c0c6890c58.zip
cpython-0901d84e3537174ed00e2a684a81d3c0c6890c58.tar.gz
cpython-0901d84e3537174ed00e2a684a81d3c0c6890c58.tar.bz2
Issue #23672:Merge with 3.4
Diffstat (limited to 'Lib/idlelib/EditorWindow.py')
-rw-r--r--Lib/idlelib/EditorWindow.py16
1 files changed, 8 insertions, 8 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py
index 6dbbe09..3ac68bb 100644
--- a/Lib/idlelib/EditorWindow.py
+++ b/Lib/idlelib/EditorWindow.py
@@ -344,19 +344,19 @@ class EditorWindow(object):
def _filename_to_unicode(self, filename):
- """convert filename to unicode in order to display it in Tk"""
- if isinstance(filename, str) or not filename:
- return filename
- else:
+ """Return filename as BMP unicode so diplayable in Tk."""
+ # Decode bytes to unicode.
+ if isinstance(filename, bytes):
try:
- return filename.decode(self.filesystemencoding)
+ filename = filename.decode(self.filesystemencoding)
except UnicodeDecodeError:
- # XXX
try:
- return filename.decode(self.encoding)
+ filename = filename.decode(self.encoding)
except UnicodeDecodeError:
# byte-to-byte conversion
- return filename.decode('iso8859-1')
+ filename = filename.decode('iso8859-1')
+ # Replace non-BMP char with diamond questionmark.
+ return re.sub('[\U00010000-\U0010FFFF]', '\ufffd', filename)
def new_callback(self, event):
dirname, basename = self.io.defaultfilename()