Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
3c3b1bc8
Commit
3c3b1bc8
authored
9 years ago
by
Terry Jan Reedy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue #23672: Allow Idle to edit and run files with astral chars in name.
Patch by Mohd Sanad Zaki Rizvi.
parent
4430ac68
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
9 deletions
+27
-9
Lib/idlelib/EditorWindow.py
Lib/idlelib/EditorWindow.py
+8
-8
Lib/idlelib/ScriptBinding.py
Lib/idlelib/ScriptBinding.py
+3
-1
Lib/idlelib/idle_test/test_editor.py
Lib/idlelib/idle_test/test_editor.py
+16
-0
No files found.
Lib/idlelib/EditorWindow.py
View file @
3c3b1bc8
...
...
@@ -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
()
...
...
This diff is collapsed.
Click to expand it.
Lib/idlelib/ScriptBinding.py
View file @
3c3b1bc8
...
...
@@ -36,6 +36,7 @@ To fix case 2, change all tabs to spaces by using Edit->Select All followed \
by Format->Untabify Region and specify the number of columns used by each tab.
"""
class
ScriptBinding
:
menudefs
=
[
...
...
@@ -142,7 +143,8 @@ class ScriptBinding:
return
'break'
interp
=
self
.
shell
.
interp
if
PyShell
.
use_subprocess
:
interp
.
restart_subprocess
(
with_cwd
=
False
,
filename
=
code
.
co_filename
)
interp
.
restart_subprocess
(
with_cwd
=
False
,
filename
=
self
.
editwin
.
_filename_to_unicode
(
filename
))
dirname
=
os
.
path
.
dirname
(
filename
)
# XXX Too often this discards arguments the user just set...
interp
.
runcommand
(
"""if 1:
...
...
This diff is collapsed.
Click to expand it.
Lib/idlelib/idle_test/test_editor.py
0 → 100644
View file @
3c3b1bc8
import
unittest
from
tkinter
import
Tk
,
Text
from
idlelib.EditorWindow
import
EditorWindow
from
test.support
import
requires
class
Editor_func_test
(
unittest
.
TestCase
):
def
test_filename_to_unicode
(
self
):
func
=
EditorWindow
.
_filename_to_unicode
class
dummy
():
filesystemencoding
=
'utf-8'
pairs
=
((
'abc'
,
'abc'
),
(
'a
\
U00011111
c'
,
'a
\
ufffd
c'
),
(
b'abc'
,
'abc'
),
(
b'a
\
xf0
\
x91
\
x84
\
x91
c'
,
'a
\
ufffd
c'
))
for
inp
,
out
in
pairs
:
self
.
assertEqual
(
func
(
dummy
,
inp
),
out
)
if
__name__
==
'__main__'
:
unittest
.
main
(
verbosity
=
2
)
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment