summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/pyshell.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2019-10-04 10:09:52 (GMT)
committerGitHub <noreply@github.com>2019-10-04 10:09:52 (GMT)
commit06cb94bc8419b9a24df6b0d724fcd8e40c6971d6 (patch)
tree61dff1fe122eac251b43b7994f7deb40f1b9efcc /Lib/idlelib/pyshell.py
parent2290b23dfc9cce71ffc49bfcb6a5a16c570cefae (diff)
downloadcpython-06cb94bc8419b9a24df6b0d724fcd8e40c6971d6.zip
cpython-06cb94bc8419b9a24df6b0d724fcd8e40c6971d6.tar.gz
cpython-06cb94bc8419b9a24df6b0d724fcd8e40c6971d6.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).
Diffstat (limited to 'Lib/idlelib/pyshell.py')
-rwxr-xr-xLib/idlelib/pyshell.py18
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")