summaryrefslogtreecommitdiff
path: root/Lib/idlelib/EditorWindow.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2015-08-06 00:55:07 -0400
committerTerry Jan Reedy <tjreedy@udel.edu>2015-08-06 00:55:07 -0400
commitc7c66c91427734dcdb34ae78eee2431e92fa6f07 (patch)
treef8c97540eaed53b4a37eb1858a7ab473d6a9f2e2 /Lib/idlelib/EditorWindow.py
parentd38718d41965489efefe323b97024cd8c69eecaf (diff)
parent0901d84e3537174ed00e2a684a81d3c0c6890c58 (diff)
downloadcpython-git-c7c66c91427734dcdb34ae78eee2431e92fa6f07.tar.gz
Issue #23672:Merge with 3.5
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 6dbbe09823..3ac68bbaf2 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()