diff options
Diffstat (limited to 'readline.c')
-rw-r--r-- | readline.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -440,6 +440,9 @@ _rl_internal_char_cleanup () _rl_erase_entire_line (); } +/* Catch EOF from tty, do not return command line */ +int _rl_read_zero_char_from_tty = 0; + STATIC_CALLBACK int #if defined (READLINE_CALLBACKS) readline_internal_char () @@ -484,6 +487,10 @@ readline_internal_charloop () c = rl_read_key (); RL_UNSETSTATE(RL_STATE_READCMD); + /* Return here if terminal is closed */ + if (c == EOF && _rl_read_zero_char_from_tty) + return (rl_done = 1); + /* look at input.c:rl_getc() for the circumstances under which this will be returned; punt immediately on read error without converting it to a newline. */ |