summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorKurt B. Kaiser <kbk@shore.net>2002-12-16 02:07:11 (GMT)
committerKurt B. Kaiser <kbk@shore.net>2002-12-16 02:07:11 (GMT)
commit822a77fcc761b3c9992950ddf48b3f0bec917b4d (patch)
tree39e69cbc0b8010183aedc7505ef0691a1d6f749d /Lib
parent8e5b53b3d9b1955494f5bfea638417f690808e05 (diff)
downloadcpython-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')
-rw-r--r--Lib/idlelib/EditorWindow.py2
-rw-r--r--Lib/idlelib/PyShell.py11
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: