summaryrefslogtreecommitdiff
path: root/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'input.c')
-rw-r--r--input.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/input.c b/input.c
index c311dfc..b8dfa99 100644
--- a/input.c
+++ b/input.c
@@ -41,11 +41,14 @@
#include "input.h"
#include "error.h"
#include "externs.h"
+#include "quit.h"
#if !defined (errno)
extern int errno;
#endif /* !errno */
+extern void termsig_handler __P((int));
+
/* Functions to handle reading input on systems that don't restart read(2)
if a signal is received. */
@@ -61,11 +64,14 @@ getc_with_restart (stream)
{
unsigned char uc;
+ CHECK_TERMSIG;
+
/* Try local buffering to reduce the number of read(2) calls. */
if (local_index == local_bufused || local_bufused == 0)
{
while (1)
{
+ CHECK_TERMSIG;
local_bufused = read (fileno (stream), localbuf, sizeof(localbuf));
if (local_bufused > 0)
break;
@@ -446,6 +452,7 @@ b_fill_buffer (bp)
{
ssize_t nr;
+ CHECK_TERMSIG;
nr = zread (bp->b_fd, bp->b_buffer, bp->b_size);
if (nr <= 0)
{
@@ -513,6 +520,8 @@ sync_buffered_stream (bfd)
int
buffered_getchar ()
{
+ CHECK_TERMSIG;
+
#if !defined (DJGPP)
return (bufstream_getc (buffers[bash_input.location.buffered_fd]));
#else