[Python-checkins] bpo-38673: dont switch to ps2 if the line starts with comment or whitespace (GH-17421) (GH-17522)

Ned Deily webhook-mailer at python.org
Mon Dec 9 06:38:42 EST 2019


https://github.com/python/cpython/commit/188d5ae6f047342f3d6860646ccf1a523ef8b0ed
commit: 188d5ae6f047342f3d6860646ccf1a523ef8b0ed
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: Ned Deily <nad at python.org>
date: 2019-12-09T06:38:36-05:00
summary:

bpo-38673: dont switch to ps2 if the line starts with comment or whitespace (GH-17421) (GH-17522)

https://bugs.python.org/issue38673
(cherry picked from commit 109fc2792a490ee5cd8a423e17d415fbdedec5c8)

Co-authored-by: Batuhan Taşkaya <47358913+isidentical at users.noreply.github.com>

files:
A Misc/NEWS.d/next/Core and Builtins/2019-12-01-00-17-44.bpo-38673.K_Tze-.rst
M Parser/tokenizer.c

diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-12-01-00-17-44.bpo-38673.K_Tze-.rst b/Misc/NEWS.d/next/Core and Builtins/2019-12-01-00-17-44.bpo-38673.K_Tze-.rst
new file mode 100644
index 0000000000000..8f8cf88e5e210
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-12-01-00-17-44.bpo-38673.K_Tze-.rst	
@@ -0,0 +1 @@
+In REPL mode, don't switch to PS2 if the line starts with comment or whitespace. Based on work by Batuhan Taşkaya.
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index d720f19eca9db..1739bb7ad5565 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -1395,6 +1395,12 @@ tok_get(struct tok_state *tok, char **p_start, char **p_end)
             if (col == 0 && c == '\n' && tok->prompt != NULL) {
                 blankline = 0; /* Let it through */
             }
+            else if (tok->prompt != NULL && tok->lineno == 1) {
+                /* In interactive mode, if the first line contains
+                   only spaces and/or a comment, let it through. */
+                blankline = 0;
+                col = altcol = 0;
+            }
             else {
                 blankline = 1; /* Ignore completely */
             }



More information about the Python-checkins mailing list