diff options
author | Kurt B. Kaiser <kbk@shore.net> | 2002-12-16 02:07:11 (GMT) |
---|---|---|
committer | Kurt B. Kaiser <kbk@shore.net> | 2002-12-16 02:07:11 (GMT) |
commit | 822a77fcc761b3c9992950ddf48b3f0bec917b4d (patch) | |
tree | 39e69cbc0b8010183aedc7505ef0691a1d6f749d /Lib/idlelib | |
parent | 8e5b53b3d9b1955494f5bfea638417f690808e05 (diff) | |
download | cpython-822a77fcc761b3c9992950ddf48b3f0bec917b4d.zip cpython-822a77fcc761b3c9992950ddf48b3f0bec917b4d.tar.gz cpython-822a77fcc761b3c9992950ddf48b3f0bec917b4d.tar.bz2 |
M EditorWindow.py
M PyShell.py
Idlefork SF Bug 440383 - IDLE goes into beep loop
Fix loop in EditorWindow.newline_and_indent_event() and
in addition fix submission of >>> prompt to PyParse.Parser
Eliminate extra attribute EditorWindow.auto_indent
Diffstat (limited to 'Lib/idlelib')
-rw-r--r-- | Lib/idlelib/EditorWindow.py | 2 | ||||
-rw-r--r-- | Lib/idlelib/PyShell.py | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/Lib/idlelib/EditorWindow.py b/Lib/idlelib/EditorWindow.py index 8177058..a1a4830 100644 --- a/Lib/idlelib/EditorWindow.py +++ b/Lib/idlelib/EditorWindow.py @@ -1085,8 +1085,6 @@ class EditorWindow: text.see("insert") text.undo_block_stop() - auto_indent = newline_and_indent_event - # Our editwin provides a is_char_in_string function that works # with a Tk text index, but PyParse only knows about offsets into # a string. This builds a function for PyParse that accepts an diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py index f6e85f7..52d1a70 100644 --- a/Lib/idlelib/PyShell.py +++ b/Lib/idlelib/PyShell.py @@ -886,7 +886,7 @@ class PyShell(OutputWindow): self.text.insert("insert", "\n") self.text.see("insert") else: - self.auto_indent(event) + self.newline_and_indent_event(event) return "break" def enter_callback(self, event): @@ -918,6 +918,11 @@ class PyShell(OutputWindow): # No stdin mark -- just get the current line self.recall(self.text.get("insert linestart", "insert lineend")) return "break" + # If we're between the beginning of the line and the iomark, i.e. + # in the prompt area, complain. + if self.text.compare("insert", "<", "iomark"): + self.text.bell() + return "break" # 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") @@ -926,7 +931,7 @@ class PyShell(OutputWindow): # If we're in the current input before its last line, # insert a newline right at the insert point if self.text.compare("insert", "<", "end-1c linestart"): - self.auto_indent(event) + self.newline_and_indent_event(event) return "break" # We're in the last line; append a newline and submit it self.text.mark_set("insert", "end-1c") @@ -934,7 +939,7 @@ class PyShell(OutputWindow): self.text.insert("insert", "\n") self.text.see("insert") else: - self.auto_indent(event) + self.newline_and_indent_event(event) self.text.tag_add("stdin", "iomark", "end-1c") self.text.update_idletasks() if self.reading: |