+2006-08-05 Eli Zaretskii <eliz@gnu.org>
+
+ * keyboard.c (kbd_buffer_get_event): Return Qnil when current time
+ is exactly equal to end_time, not only when it is past that.
+
2006-08-04 Chong Yidong <cyd@stupidchicken.com>
* keyboard.c (read_char): Rebalance specpdl after receiving jump.
{
EMACS_TIME duration;
EMACS_GET_TIME (duration);
- EMACS_SUB_TIME (duration, *end_time, duration);
- if (EMACS_TIME_NEG_P (duration))
- return Qnil;
+ if (EMACS_TIME_GE (duration, *end_time))
+ return Qnil; /* finished waiting */
else
- wait_reading_process_output (EMACS_SECS (duration),
- EMACS_USECS (duration),
- -1, 1, Qnil, NULL, 0);
+ {
+ EMACS_SUB_TIME (duration, *end_time, duration);
+ wait_reading_process_output (EMACS_SECS (duration),
+ EMACS_USECS (duration),
+ -1, 1, Qnil, NULL, 0);
+ }
}
else
wait_reading_process_output (0, 0, -1, 1, Qnil, NULL, 0);