]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Merge Py Idle changes:
authorKurt B. Kaiser <kbk@shore.net>
Wed, 18 Sep 2002 02:29:59 +0000 (02:29 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Wed, 18 Sep 2002 02:29:59 +0000 (02:29 +0000)
Rev 1.35 fdrake
Use string.ascii_letters instead of string.letters (SF bug #226706).
Move computation of sets of characters out of the body of the function
that uses them.

Rev 1.36 tim_one
Convert a pile of obvious "yes/no" functions to return bool

Rev 1.37
(skip, done differently in Idlefork)

Rev 1.38 loewis
Patch #590913: PEP 263 support.

Rev 1.39 loewis
Convert characters from the locale's encoding on output.
Reject characters outside the locale's encoding on input.

Rev 1.40 doerwalter
(string methods)

Rev 1.41
(skipped, done by GvR in rpc)

Lib/idlelib/PyShell.py

index 9c3aa50a866886d2822f5cad9a6a8987b66d412f..7ce52441040b3a6df4dc0d2843607867e94e9355 100644 (file)
@@ -289,6 +289,14 @@ class ModifiedInterpreter(InteractiveInterpreter):
         self.more = 0
         self.save_warnings_filters = warnings.filters[:]
         warnings.filterwarnings(action="error", category=SyntaxWarning)
+        if isinstance(source, types.UnicodeType):
+            import IOBinding
+            try:
+                source = source.encode(IOBinding.encoding)
+            except UnicodeError:
+                self.tkconsole.resetoutput()
+                self.write("Unsupported characters in input")
+                return
         try:
             return InteractiveInterpreter.runsource(self, source, filename)
         finally:
@@ -300,10 +308,12 @@ class ModifiedInterpreter(InteractiveInterpreter):
         "Stuff source in the filename cache"
         filename = "<pyshell#%d>" % self.gid
         self.gid = self.gid + 1
-        lines = string.split(source, "\n")
+        lines = source.split("\n")
         linecache.cache[filename] = len(source)+1, 0, lines, filename
         return filename
-
+    
+    IDENTCHARS = string.ascii_letters + string.digits + "_"
+    
     def showsyntaxerror(self, filename=None):
         """Extend base class method: Add Colorizing
 
@@ -326,7 +336,7 @@ class ModifiedInterpreter(InteractiveInterpreter):
         text.tag_add("ERROR", pos)
         text.see(pos)
         char = text.get(pos)
-        if char and char in string.letters + string.digits + "_":
+        if char and char in IDENTCHARS:
             text.tag_add("ERROR", pos + " wordstart", pos)
         self.tkconsole.resetoutput()
         self.write("SyntaxError: %s\n" % str(msg))
@@ -598,7 +608,7 @@ class PyShell(OutputWindow):
 
     def ispythonsource(self, filename):
         "Override EditorWindow method: never remove the colorizer"
-        return 1
+        return True
 
     def short_title(self):
         return self.shell_title
@@ -641,7 +651,7 @@ class PyShell(OutputWindow):
         return line
 
     def isatty(self):
-        return 1
+        return True
 
     def cancel_callback(self, event):
         try:
@@ -735,7 +745,7 @@ class PyShell(OutputWindow):
         # If we're in the current input and there's only whitespace
         # beyond the cursor, erase that whitespace first
         s = self.text.get("insert", "end-1c")
-        if s and not string.strip(s):
+        if s and not s.strip():
             self.text.delete("insert", "end-1c")
         # If we're in the current input before its last line,
         # insert a newline right at the insert point
@@ -852,7 +862,7 @@ class PseudoFile:
         pass
 
     def isatty(self):
-        return 1
+        return True
 
 
 usage_msg = """\