aboutsummaryrefslogtreecommitdiffstats
path: root/lib/readline/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/readline/input.c')
-rw-r--r--lib/readline/input.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/readline/input.c b/lib/readline/input.c
index b5876da..7c74c99 100644
--- a/lib/readline/input.c
+++ b/lib/readline/input.c
@@ -1,6 +1,6 @@
/* input.c -- character input functions for readline. */
-/* Copyright (C) 1994-2009 Free Software Foundation, Inc.
+/* Copyright (C) 1994-2010 Free Software Foundation, Inc.
This file is part of the GNU Readline Library (Readline), a library
for reading lines of text with interactive input and history editing.
@@ -427,17 +427,19 @@ rl_read_key ()
/* If the user has an event function, then call it periodically. */
if (rl_event_hook)
{
- while (rl_event_hook && rl_get_char (&c) == 0)
+ while (rl_event_hook)
{
- (*rl_event_hook) ();
- RL_CHECK_SIGNALS ();
- if (rl_done) /* XXX - experimental */
- return ('\n');
if (rl_gather_tyi () < 0) /* XXX - EIO */
{
rl_done = 1;
return ('\n');
}
+ RL_CHECK_SIGNALS ();
+ if (rl_get_char (&c) != 0)
+ break;
+ if (rl_done) /* XXX - experimental */
+ return ('\n');
+ (*rl_event_hook) ();
}
}
else