lineedit: don't fall back to simple line input if tty is in raw mode
No binary (build failed)
—
(log yok)
| @@ -2256,9 +2256,13 @@ int FAST_FUNC read_line_input(line_input_t *st, const char *prompt, char *comman | |
| INIT_S(); | |
| if (tcgetattr(STDIN_FILENO, &initial_settings) < 0 | |
| - | || !(initial_settings.c_lflag & ECHO) |
| + | || (initial_settings.c_lflag & (ECHO|ICANON)) == ICANON |
| ) { | |
| - | /* Happens when e.g. stty -echo was run before */ |
| + | /* Happens when e.g. stty -echo was run before. |
| + | * But if ICANON is not set, we don't come here. |
| + | * (example: interactive python ^Z-backgrounded, |
| + | * tty is still in "raw mode"). |
| + | */ |
| parse_and_put_prompt(prompt); | |
| /* fflush_all(); - done by parse_and_put_prompt */ | |
| if (fgets(command, maxsize, stdin) == NULL) | |