mirror of
https://github.com/python/cpython.git
synced 2026-01-06 15:32:22 +00:00
#14254: IDLE now handles readline correctly across shell restarts.
This commit is contained in:
parent
0d28a61d23
commit
6b7a5ae2c1
2 changed files with 14 additions and 2 deletions
|
|
@ -458,6 +458,7 @@ def restart_subprocess(self, with_cwd=False):
|
|||
self.display_no_subprocess_error()
|
||||
return None
|
||||
self.transfer_path(with_cwd=with_cwd)
|
||||
console.stop_readline()
|
||||
# annotate restart in shell window and mark it
|
||||
console.text.delete("iomark", "end-1c")
|
||||
if was_executing:
|
||||
|
|
@ -896,6 +897,7 @@ def get_standard_extension_names(self):
|
|||
canceled = False
|
||||
endoffile = False
|
||||
closing = False
|
||||
_stop_readline_flag = False
|
||||
|
||||
def set_warning_stream(self, stream):
|
||||
global warning_stream
|
||||
|
|
@ -971,8 +973,7 @@ def close(self):
|
|||
parent=self.text)
|
||||
if response is False:
|
||||
return "cancel"
|
||||
if self.reading:
|
||||
self.top.quit()
|
||||
self.stop_readline()
|
||||
self.canceled = True
|
||||
self.closing = True
|
||||
# Wait for poll_subprocess() rescheduling to stop
|
||||
|
|
@ -1027,6 +1028,12 @@ def begin(self):
|
|||
tkinter._default_root = None # 03Jan04 KBK What's this?
|
||||
return True
|
||||
|
||||
def stop_readline(self):
|
||||
if not self.reading: # no nested mainloop to exit.
|
||||
return
|
||||
self._stop_readline_flag = True
|
||||
self.top.quit()
|
||||
|
||||
def readline(self):
|
||||
save = self.reading
|
||||
try:
|
||||
|
|
@ -1034,6 +1041,9 @@ def readline(self):
|
|||
self.top.mainloop() # nested mainloop()
|
||||
finally:
|
||||
self.reading = save
|
||||
if self._stop_readline_flag:
|
||||
self._stop_readline_flag = False
|
||||
return ""
|
||||
line = self.text.get("iomark", "end-1c")
|
||||
if len(line) == 0: # may be EOF if we quit our mainloop with Ctrl-C
|
||||
line = "\n"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #14254: IDLE now handles readline correctly across shell restarts.
|
||||
|
||||
- Issue #17614: IDLE no longer raises exception when quickly closing a file.
|
||||
|
||||
- Issue #6698: IDLE now opens just an editor window when configured to do so.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue