1. Restore the capability to run and debug without a subprocess.
2. Add an indicator to the shell startup notice when running w/o
subprocess.
3. Improve exception reporting when running a command or script from the
command line.
4. Clarify the fact that breakpoints set or cleared after a file is
saved will revert to the saved state if the file is closed without
re-saving.
5. If user tries to exit or restart when user code is running, interrupt
the user code. This helps to eliminate occasional hanging
subprocesses on Windows (except for Freddy :).
M NEWS.txt
M PyShell.py
M ScriptBinding.py
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
index 9604cb8..d404fc9 100644
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -22,6 +22,7 @@
import tabnanny
import tokenize
import tkMessageBox
+import PyShell
IDENTCHARS = string.ascii_letters + string.digits + "_"
@@ -38,8 +39,6 @@
by Untabify Region (both in the Edit menu)."""
-# XXX 11Jun02 KBK TBD Implement stop-execution
-
class ScriptBinding:
menudefs = [
@@ -124,7 +123,19 @@
flist = self.editwin.flist
shell = flist.open_shell()
interp = shell.interp
- interp.restart_subprocess()
+ if PyShell.use_subprocess:
+ shell.restart_shell()
+ if shell.executing:
+ delay = 2700
+ else:
+ delay = 500
+ # Wait for the interrupt and reset to finish
+ shell.text.after(delay, self.run_module_event2, interp,
+ filename, code)
+ else:
+ self.run_module_event2(interp, filename, code)
+
+ def run_module_event2(self, interp, filename, code):
# XXX Too often this discards arguments the user just set...
interp.runcommand("""if 1:
_filename = %s