diff options
author | ache <ache@FreeBSD.org> | 2004-10-18 07:02:42 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2004-10-18 07:02:42 +0000 |
commit | 0a8076ac56fc245cdfb48a1ac83798a3d6086c30 (patch) | |
tree | f78c1227a8143a263e4974d6bf25cf0ccde0e716 /contrib/libreadline/input.c | |
parent | 001407b3a64c7fac1489a2ad6eeb2d23254b3e19 (diff) | |
download | FreeBSD-src-0a8076ac56fc245cdfb48a1ac83798a3d6086c30.zip FreeBSD-src-0a8076ac56fc245cdfb48a1ac83798a3d6086c30.tar.gz |
Virgin import of GNU Readline 5.0
Diffstat (limited to 'contrib/libreadline/input.c')
-rw-r--r-- | contrib/libreadline/input.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/contrib/libreadline/input.c b/contrib/libreadline/input.c index 841f05d..044338e 100644 --- a/contrib/libreadline/input.c +++ b/contrib/libreadline/input.c @@ -21,6 +21,10 @@ 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #define READLINE_LIBRARY +#if defined (__TANDEM) +# include <floss.h> +#endif + #if defined (HAVE_CONFIG_H) # include <config.h> #endif @@ -154,6 +158,12 @@ _rl_unget_char (key) return (0); } +int +_rl_pushed_input_available () +{ + return (push_index != pop_index); +} + /* If a character is available to be read, then read it and stuff it into IBUFFER. Otherwise, just return. Returns number of characters read (0 if none available) and -1 on error (EIO). */ @@ -162,7 +172,7 @@ rl_gather_tyi () { int tty; register int tem, result; - int chars_avail; + int chars_avail, k; char input; #if defined(HAVE_SELECT) fd_set readfds, exceptfds; @@ -202,6 +212,11 @@ rl_gather_tyi () fcntl (tty, F_SETFL, tem); if (chars_avail == -1 && errno == EAGAIN) return 0; + if (chars_avail == 0) /* EOF */ + { + rl_stuff_char (EOF); + return (0); + } } #endif /* O_NDELAY */ @@ -225,7 +240,12 @@ rl_gather_tyi () if (result != -1) { while (chars_avail--) - rl_stuff_char ((*rl_getc_function) (rl_instream)); + { + k = (*rl_getc_function) (rl_instream); + rl_stuff_char (k); + if (k == NEWLINE || k == RETURN) + break; + } } else { |