summaryrefslogtreecommitdiffstats
path: root/Lib/idlelib/pyshell.py
diff options
context:
space:
mode:
authorTerry Jan Reedy <tjreedy@udel.edu>2017-10-28 00:26:12 (GMT)
committerGitHub <noreply@github.com>2017-10-28 00:26:12 (GMT)
commite86172d63af5827a3c2b55b80351cb38a26190eb (patch)
treed8532f57ab6f3fe11a045e5799cd1433a14e3552 /Lib/idlelib/pyshell.py
parented6554c487fb2403bc88be6deee611c7a4171d33 (diff)
downloadcpython-e86172d63af5827a3c2b55b80351cb38a26190eb.zip
cpython-e86172d63af5827a3c2b55b80351cb38a26190eb.tar.gz
cpython-e86172d63af5827a3c2b55b80351cb38a26190eb.tar.bz2
IDLE -- Restrict shell prompt manipulaton to the shell. (#4143)
Editor and output windows only see an empty last prompt line. This simplifies the code and fixes a minor bug when newline is inserted. Sys.ps1, if present, is read on Shell start-up, but is not set or changed.
Diffstat (limited to 'Lib/idlelib/pyshell.py')
-rwxr-xr-xLib/idlelib/pyshell.py24
1 files changed, 11 insertions, 13 deletions
diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index 168eeae..8b07d52 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -857,15 +857,17 @@ class PyShell(OutputWindow):
fixwordbreaks(root)
root.withdraw()
flist = PyShellFileList(root)
- #
+
OutputWindow.__init__(self, flist, None, None)
- #
-## self.config(usetabs=1, indentwidth=8, context_use_ps1=1)
+
self.usetabs = True
# indentwidth must be 8 when using tabs. See note in EditorWindow:
self.indentwidth = 8
- self.context_use_ps1 = True
- #
+
+ self.sys_ps1 = sys.ps1 if hasattr(sys, 'ps1') else '>>> '
+ self.prompt_last_line = self.sys_ps1.split('\n')[-1]
+ self.prompt = self.sys_ps1 # Changes when debug active
+
text = self.text
text.configure(wrap="char")
text.bind("<<newline-and-indent>>", self.enter_callback)
@@ -878,7 +880,7 @@ class PyShell(OutputWindow):
if use_subprocess:
text.bind("<<view-restart>>", self.view_restart_mark)
text.bind("<<restart-shell>>", self.restart_shell)
- #
+
self.save_stdout = sys.stdout
self.save_stderr = sys.stderr
self.save_stdin = sys.stdin
@@ -951,7 +953,7 @@ class PyShell(OutputWindow):
debugger_r.close_remote_debugger(self.interp.rpcclt)
self.resetoutput()
self.console.write("[DEBUG OFF]\n")
- sys.ps1 = ">>> "
+ self.prompt = self.sys_ps1
self.showprompt()
self.set_debugger_indicator()
@@ -963,7 +965,7 @@ class PyShell(OutputWindow):
dbg_gui = debugger.Debugger(self)
self.interp.setdebugger(dbg_gui)
dbg_gui.load_breakpoints()
- sys.ps1 = "[DEBUG ON]\n>>> "
+ self.prompt = "[DEBUG ON]\n" + self.sys_ps1
self.showprompt()
self.set_debugger_indicator()
@@ -1248,11 +1250,7 @@ class PyShell(OutputWindow):
def showprompt(self):
self.resetoutput()
- try:
- s = str(sys.ps1)
- except:
- s = ""
- self.console.write(s)
+ self.console.write(self.prompt)
self.text.mark_set("insert", "end-1c")
self.set_line_and_column()
self.io.reset_undo()