diff options
author | Terry Jan Reedy <tjreedy@udel.edu> | 2017-10-28 00:26:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-28 00:26:12 (GMT) |
commit | e86172d63af5827a3c2b55b80351cb38a26190eb (patch) | |
tree | d8532f57ab6f3fe11a045e5799cd1433a14e3552 /Lib/idlelib/pyshell.py | |
parent | ed6554c487fb2403bc88be6deee611c7a4171d33 (diff) | |
download | cpython-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-x | Lib/idlelib/pyshell.py | 24 |
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() |