47 lines
1.2 KiB
Plaintext
47 lines
1.2 KiB
Plaintext
--- lib/readline/input.c
|
|
+++ lib/readline/input.c Mon Mar 17 19:03:51 2003
|
|
@@ -415,6 +415,8 @@
|
|
return (c);
|
|
}
|
|
|
|
+extern int _rl_read_zero_char_from_tty;
|
|
+
|
|
int
|
|
rl_getc (stream)
|
|
FILE *stream;
|
|
@@ -432,7 +434,10 @@
|
|
/* If zero characters are returned, then the file that we are
|
|
reading from is empty! Return EOF in that case. */
|
|
if (result == 0)
|
|
- return (EOF);
|
|
+ {
|
|
+ _rl_read_zero_char_from_tty = 1;
|
|
+ return (EOF);
|
|
+ }
|
|
|
|
#if defined (__BEOS__)
|
|
if (errno == EINTR)
|
|
--- lib/readline/readline.c
|
|
+++ lib/readline/readline.c Mon Mar 17 19:02:52 2003
|
|
@@ -387,6 +387,9 @@
|
|
return (eof ? (char *)NULL : savestring (the_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 ()
|
|
@@ -421,6 +424,10 @@
|
|
RL_SETSTATE(RL_STATE_READCMD);
|
|
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);
|
|
|
|
/* EOF typed to a non-blank line is a <NL>. */
|
|
if (c == EOF && rl_end)
|