summaryrefslogtreecommitdiffstats
path: root/Parser/tokenizer.c
diff options
context:
space:
mode:
authorPaul m. p. P <mail.peny@free.fr>2022-02-01 22:33:52 (GMT)
committerGitHub <noreply@github.com>2022-02-01 22:33:52 (GMT)
commit89b13042fcfc95bae21a49806a205ef62f1cdd73 (patch)
treef961003f8dfff27c8aab2bbb516f13ff451fbb97 /Parser/tokenizer.c
parenta0e55a571cf01885fd5826266c37abaee307c309 (diff)
downloadcpython-89b13042fcfc95bae21a49806a205ef62f1cdd73.zip
cpython-89b13042fcfc95bae21a49806a205ef62f1cdd73.tar.gz
cpython-89b13042fcfc95bae21a49806a205ef62f1cdd73.tar.bz2
bpo-14916: use specified tokenizer fd for file input (GH-31006)
@pablogsal, sorry i failed to rebase to main, so i recreated https://github.com/python/cpython/pull/22190#issuecomment-1024633392 > PyRun_InteractiveOne\*() functions allow to explicitily set fd instead of stdin. but stdin was hardcoded in readline call. > This patch does not fix target file for prompt unlike original bpo one : prompt fd is unrelated to tokenizer source which could be read only. It is more of a bugfix regarding the docs : actual documentation say "prompt the user" so one would expect prompt to go on stdout not a file for both PyRun_InteractiveOne\*() and PyRun_InteractiveLoop\*(). Automerge-Triggered-By: GH:pablogsal
Diffstat (limited to 'Parser/tokenizer.c')
-rw-r--r--Parser/tokenizer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index cd4254f..5b5cbdb 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -855,7 +855,7 @@ tok_underflow_interactive(struct tok_state *tok) {
tok->done = E_INTERACT_STOP;
return 1;
}
- char *newtok = PyOS_Readline(stdin, stdout, tok->prompt);
+ char *newtok = PyOS_Readline(tok->fp ? tok->fp : stdin, stdout, tok->prompt);
if (newtok != NULL) {
char *translated = translate_newlines(newtok, 0, tok);
PyMem_Free(newtok);