comparison src/lisp.h @ 10550:8e536dd17a89

Add comments and `volatile' keyword to previous change.
author Karl Heuer <kwzh@gnu.org>
date Wed, 25 Jan 1995 08:55:43 +0000
parents c57d8bad186b
children 79848fcf723b
comparison
equal deleted inserted replaced
10549:c57d8bad186b 10550:8e536dd17a89
489 Lisp_Object prefix_arg; 489 Lisp_Object prefix_arg;
490 Lisp_Object current_prefix_arg; 490 Lisp_Object current_prefix_arg;
491 Lisp_Object this_command_keys; 491 Lisp_Object this_command_keys;
492 Lisp_Object internal_last_event_frame; 492 Lisp_Object internal_last_event_frame;
493 Lisp_Object kbd_buffer_frame_or_window; 493 Lisp_Object kbd_buffer_frame_or_window;
494
495 /* Circular buffer for pre-read keyboard input. */
494 struct input_event *kbd_buffer; 496 struct input_event *kbd_buffer;
497
498 /* Pointer to next available character in kbd_buffer.
499 If kbd_fetch_ptr == kbd_store_ptr, the buffer is empty.
500 This may be kbd_buffer + KBD_BUFFER_SIZE, meaning that the the
501 next available char is in kbd_buffer[0]. */
495 struct input_event *kbd_fetch_ptr; 502 struct input_event *kbd_fetch_ptr;
496 struct input_event *kbd_store_ptr; 503
504 /* Pointer to next place to store character in kbd_buffer. This
505 may be kbd_buffer + KBD_BUFFER_SIZE, meaning that the next
506 character should go in kbd_buffer[0]. */
507 volatile struct input_event *kbd_store_ptr;
508
509 /* The above pair of variables forms a "queue empty" flag. When we
510 enqueue a non-hook event, we increment kbd_store_ptr. When we
511 dequeue a non-hook event, we increment kbd_fetch_ptr. We say that
512 there is input available iff the two counters are not equal.
513
514 Why not just have a flag set and cleared by the enqueuing and
515 dequeuing functions? Such a flag could be screwed up by interrupts
516 at inopportune times. */
517
497 int this_command_key_count; 518 int this_command_key_count;
498 int immediate_echo; 519 int immediate_echo;
499 int echo_after_prompt; 520 int echo_after_prompt;
500 char *echoptr; 521 char *echoptr;
501 char echobuf[300]; 522 char echobuf[300];