(Fset_char_table_parent): Doc fix.
[bpt/emacs.git] / src / keyboard.h
index 1d0ac4e..32d638c 100644 (file)
@@ -20,8 +20,6 @@ Boston, MA 02111-1307, USA.  */
 
 /* Length of echobuf field in each KBOARD.  */
 
-#define ECHOBUFSIZE 300
-
 /* Each KBOARD represents one logical input stream from which Emacs gets input.
    If we are using an ordinary terminal, it has one KBOARD object.
    Usually each X display screen has its own KBOARD,
@@ -59,7 +57,7 @@ Boston, MA 02111-1307, USA.  */
    from the current KBOARD.  If events come from other KBOARDs, they
    are put aside for later in the KBOARDs' kbd_queue lists.
    The flag kbd_queue_has_data in a KBOARD is 1 if this has happened.
-   When Emacs goes back to the any-kboard state, it looks at all the KBOARDS
+   When Emacs goes back to the any-kboard state, it looks at all the KBOARDs
    to find those; and it tries processing their input right away.  */
 
 typedef struct kboard KBOARD;
@@ -104,7 +102,10 @@ struct kboard
        ends before this.  This is not the same as kbd_macro_ptr, because
        we advance this to kbd_macro_ptr when a key's command is complete.
        This way, the keystrokes for "end-kbd-macro" are not included in the
-       macro.  */
+       macro.  This also allows us to throw away the events added to the
+       macro by the last command: all the events between kbd_macro_end and
+       kbd_macro_ptr belong to the last command; see
+       cancel-kbd-macro-events.  */
     Lisp_Object *kbd_macro_end;
 
     /* Allocated size of kbd_macro_buffer.  */
@@ -126,12 +127,9 @@ struct kboard
        larger when you have multiple screens on a single X display.  */
     int reference_count;
 
-    /* Where to append more text to echobuf if we want to.  */
-    char *echoptr;
-
     /* The text we're echoing in the modeline - partial key sequences,
-       usually.  '\0'-terminated.  This really shouldn't have a fixed size.  */
-    char echobuf[ECHOBUFSIZE];
+       usually.  This is nil when not echoing.  */
+    Lisp_Object echo_string;
 
     /* This flag indicates that events were put into kbd_queue
        while Emacs was running for some other KBOARD.
@@ -149,7 +147,7 @@ struct kboard
     char immediate_echo;
 
     /* If we have echoed a prompt string specified by the user,
-       this is its length.  Otherwise this is -1.  */
+       this is its length in characters.  Otherwise this is -1.  */
     char echo_after_prompt;
   };
 
@@ -184,7 +182,7 @@ extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
 extern int num_input_events;
 
 /* Total number of times read_char has returned, outside of macros.  */
-extern int num_nonmacro_input_events;
+extern EMACS_INT num_nonmacro_input_events;
 
 /* Nonzero means polling for input is temporarily suppressed.  */
 extern int poll_suppress_count;
@@ -212,14 +210,14 @@ extern Lisp_Object internal_last_event_frame;
    Using a Lisp vector to hold this information while we decode it
    takes care of protecting all the data from GC.  */
 extern Lisp_Object item_properties;
+
 /* This describes the elements of item_properties.
    The first element is not a property, it is a pointer to the item properties
    that is saved for GC protection. */
 #define ITEM_PROPERTY_ITEM 0
 /* The item string.  */
 #define ITEM_PROPERTY_NAME 1
-/* Start of initilize to nil */
+/* Start of initialize to nil */
 /* The binding: nil, a command or a keymap.  */
 #define ITEM_PROPERTY_DEF 2
 /* The keymap if the binding is a keymap, otherwise nil.  */
@@ -232,7 +230,7 @@ extern Lisp_Object item_properties;
 #define ITEM_PROPERTY_SELECTED 6
 /* Place for a help string. Not yet used.  */
 #define ITEM_PROPERTY_HELP 7
-/* Start of initilize to t */
+/* Start of initialize to t */
 /* Last property. */
 /* Not nil if item is enabled.  */
 #define ITEM_PROPERTY_ENABLE 8
@@ -257,6 +255,7 @@ extern Lisp_Object item_properties;
 /* Extract the fields of a position.  */
 #define POSN_WINDOW(posn) (XCAR (posn))
 #define POSN_BUFFER_POSN(posn) (XCAR (XCDR (posn)))
+#define POSN_BUFFER_SET_POSN(posn,x) (XSETCAR (XCDR (posn), (x)))
 #define POSN_WINDOW_POSN(posn) (XCAR (XCDR (XCDR (posn))))
 #define POSN_TIMESTAMP(posn) \
   (XCAR (XCDR (XCDR (XCDR (posn)))))
@@ -291,16 +290,12 @@ extern Lisp_Object Qmode_line, Qvertical_line, Qheader_line;
 /* Forward declaration for prototypes.  */
 struct input_event;
 
-extern Lisp_Object get_keymap_1 P_ ((Lisp_Object, int, int));
-EXFUN (Fkeymapp, 1);
 extern Lisp_Object parse_modifiers P_ ((Lisp_Object));
 extern Lisp_Object reorder_modifiers P_ ((Lisp_Object));
 extern Lisp_Object read_char P_ ((int, int, Lisp_Object *, Lisp_Object, int *));
 /* User-supplied string to translate input characters through.  */
 extern Lisp_Object Vkeyboard_translate_table;
 
-extern Lisp_Object map_prompt P_ ((Lisp_Object));
-
 
 extern int parse_menu_item P_ ((Lisp_Object, int, int));
 
@@ -311,7 +306,6 @@ extern void single_kboard_state P_ ((void));
 extern void push_frame_kboard P_ ((struct frame *));
 extern void pop_frame_kboard P_ ((void));
 extern void record_asynch_buffer_change P_ ((void));
-extern void clear_waiting_for_input P_ ((void));
 extern SIGTYPE input_poll_signal P_ ((int));
 extern void start_polling P_ ((void));
 extern void stop_polling P_ ((void));
@@ -341,3 +335,6 @@ extern int gen_help_event P_ ((struct input_event *, int, Lisp_Object,
 extern void kbd_buffer_store_help_event P_ ((Lisp_Object, Lisp_Object));
 extern Lisp_Object menu_item_eval_property P_ ((Lisp_Object));
 extern int  kbd_buffer_events_waiting P_ ((int));
+
+/* arch-tag: 769cbade-1ba9-4950-b886-db265b061aa3
+   (do not change this comment) */