mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Issue #23672: Allow Idle to edit and run files with astral chars in name.
Patch by Mohd Sanad Zaki Rizvi.
This commit is contained in:
parent
8c125eb44b
commit
5c28e9f887
3 changed files with 27 additions and 9 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue