diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2019-10-04 10:28:53 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-04 10:28:53 (GMT) |
commit | 6c3fbbc177f5e1867ab09a315dbf58554a80accd (patch) | |
tree | 88eaf1324a1f40d97c27967bebc17245147e3af6 /Lib/idlelib/pyshell.py | |
parent | 4f82a53c5d34df00bf2d563c2417f5e2638d1004 (diff) | |
download | cpython-6c3fbbc177f5e1867ab09a315dbf58554a80accd.zip cpython-6c3fbbc177f5e1867ab09a315dbf58554a80accd.tar.gz cpython-6c3fbbc177f5e1867ab09a315dbf58554a80accd.tar.bz2 |
bpo-13153: Use OS native encoding for converting between Python and Tcl. (GH-16545)
On Windows use UTF-16 (or UTF-32 for 32-bit Tcl_UniChar) with the
"surrogatepass" error handler for converting to/from Tcl Unicode objects.
On Linux use UTF-8 with the "surrogateescape" error handler for converting
to/from Tcl String objects.
Converting strings from Tcl to Python and back now never fails
(except MemoryError).
(cherry picked from commit 06cb94bc8419b9a24df6b0d724fcd8e40c6971d6)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Diffstat (limited to 'Lib/idlelib/pyshell.py')
-rwxr-xr-x | Lib/idlelib/pyshell.py | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py index 2e4dfad..bc87d24 100755 --- a/Lib/idlelib/pyshell.py +++ b/Lib/idlelib/pyshell.py @@ -679,14 +679,6 @@ class ModifiedInterpreter(InteractiveInterpreter): self.more = 0 # at the moment, InteractiveInterpreter expects str assert isinstance(source, str) - #if isinstance(source, str): - # from idlelib import iomenu - # try: - # source = source.encode(iomenu.encoding) - # except UnicodeError: - # self.tkconsole.resetoutput() - # self.write("Unsupported characters in input\n") - # return # InteractiveInterpreter.runsource() calls its runcode() method, # which is overridden (see below) return InteractiveInterpreter.runsource(self, source, filename) @@ -1298,16 +1290,6 @@ class PyShell(OutputWindow): self.set_line_and_column() def write(self, s, tags=()): - if isinstance(s, str) and len(s) and max(s) > '\uffff': - # Tk doesn't support outputting non-BMP characters - # Let's assume what printed string is not very long, - # find first non-BMP character and construct informative - # UnicodeEncodeError exception. - for start, char in enumerate(s): - if char > '\uffff': - break - raise UnicodeEncodeError("UCS-2", char, start, start+1, - 'Non-BMP character not supported in Tk') try: self.text.mark_gravity("iomark", "right") count = OutputWindow.write(self, s, tags, "iomark") |