[Python-checkins] bpo-45296: Fix exit/quit message on Windows (GH-28577) (GH-28601)

ambv webhook-mailer at python.org
Tue Sep 28 08:35:09 EDT 2021

commit: 813fbba4cab4556e55d6044c05725a26ec20b648
branch: 3.9
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: ambv <lukasz at langa.pl>
date: 2021-09-28T14:35:04+02:00

bpo-45296: Fix exit/quit message on Windows (GH-28577) (GH-28601)

IDLE recognizes Ctrl-D, as on other systems, instead of Ctrl-Z.
(cherry picked from commit e649e0658ff2af87b07d994c05ae048e16e31aae)

Co-authored-by: Terry Jan Reedy <tjreedy at udel.edu>

A Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst
M Lib/idlelib/pyshell.py
M Lib/idlelib/run.py

diff --git a/Lib/idlelib/pyshell.py b/Lib/idlelib/pyshell.py
index fea3762461e99..ee529fa2ff7e3 100755
--- a/Lib/idlelib/pyshell.py
+++ b/Lib/idlelib/pyshell.py
@@ -60,6 +60,13 @@
 HOST = '' # python execution server on localhost loopback
 PORT = 0  # someday pass in host, port for remote debug capability
+try:  # In case IDLE started with -n.
+    eof = 'Ctrl-D (end-of-file)'
+    exit.eof = eof
+    quit.eof = eof
+except NameError: # In case python started with -S.
+    pass
 # Override warnings module to write to warning_stream.  Initialize to send IDLE
 # internal warnings to the console.  ScriptBinding.check_syntax() will
 # temporarily redirect the stream to the shell window to display warnings when
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 07e9a2bf9ceea..dda9711dcf7ae 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -39,6 +39,13 @@
+    eof = 'Ctrl-D (end-of-file)'
+    exit.eof = eof
+    quit.eof = eof
+except NameError: # In case subprocess started with -S (maybe in future).
+    pass
 def idle_formatwarning(message, category, filename, lineno, line=None):
     """Format warnings the IDLE way."""
diff --git a/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst b/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst
new file mode 100644
index 0000000000000..52bade1e5327b
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2021-09-27-01-21-59.bpo-45296.9H8rdY.rst
@@ -0,0 +1,2 @@
+On Windows, change exit/quit message to suggest Ctrl-D, which works, instead
+of <Ctrl-Z Return>, which does not work in IDLE.

More information about the Python-checkins mailing list