Mercurial > emacs
changeset 30709:71b0b4b5d334
(kbd_buffer_events_waiting): New function.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Wed, 09 Aug 2000 12:24:02 +0000 |
parents | 7da70192ab68 |
children | 17973241c0d2 |
files | src/keyboard.c |
diffstat | 1 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Wed Aug 09 12:15:06 2000 +0000 +++ b/src/keyboard.c Wed Aug 09 12:24:02 2000 +0000 @@ -3251,6 +3251,31 @@ } } } + +/* Return non-zero if there are any events waiting in the event buffer + whose .kind is not no_event. If DISCARD is non-zero, discard all + no_event placeholders up to the first real event. If there are no + real events waiting and DISCARD is non-zero, this function makes + the event buffer empty as side effect. */ +int +kbd_buffer_events_waiting (discard) + int discard; +{ + struct input_event *sp; + for (sp = kbd_fetch_ptr; sp != kbd_store_ptr; sp++) + { + if (sp == kbd_buffer + KBD_BUFFER_SIZE) + sp = kbd_buffer; + + if (sp->kind != no_event) + return 1; + if (discard) + kbd_fetch_ptr = sp; + } + if (discard) + kbd_fetch_ptr = sp; + return 0; +} /* Read one event from the event buffer, waiting if necessary. The value is a Lisp object representing the event.