You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
/* Length of echobuf field in each KBOARD. */
{
KBOARD *next_kboard;
+ /* If non-nil, a keymap that overrides all others but applies only to
+ this KBOARD. Lisp code that uses this instead of calling read-char
+ can effectively wait for input in the any-kboard state, and hence
+ avoid blocking out the other KBOARDs. See universal-argument in
+ lisp/simple.el for an example. */
+ Lisp_Object Voverriding_terminal_local_map;
+
+ /* Last command executed by the editor command loop, not counting
+ commands that set the prefix argument. */
+ Lisp_Object Vlast_command;
+
/* The prefix argument for the next command, in raw form. */
Lisp_Object Vprefix_arg;
/* Alist of system-specific X windows key symbols. */
Lisp_Object Vsystem_key_alist;
+ /* Cache for modify_event_symbol. */
+ Lisp_Object system_key_syms;
+
/* Minibufferless frames on this display use this frame's minibuffer. */
Lisp_Object Vdefault_minibuffer_frame;
extern Lisp_Object Qrecompute_lucid_menubar, Qactivate_menubar_hook;
/* Total number of times read_char has returned. */
-extern int num_input_chars;
+extern int num_input_events;
/* Total number of times read_char has returned, outside of macros. */
-extern int num_nonmacro_input_chars;
+extern int num_nonmacro_input_events;
/* Nonzero means polling for input is temporarily suppressed. */
extern int poll_suppress_count;
extern Lisp_Object this_command_keys;
extern int this_command_key_count;
-#ifdef MULTI_FRAME
/* The frame in which the last input event occurred, or Qmacro if the
last event came from a macro. We use this to determine when to
generate switch-frame events. This may be cleared by functions
like Fselect_frame, to make sure that a switch-frame event is
generated by the next character. */
extern Lisp_Object internal_last_event_frame;
-#endif
-
\f
/* Macros for dealing with lispy events. */
/* Symbols to use for non-text mouse positions. */
extern Lisp_Object Qmode_line, Qvertical_line;
-extern Lisp_Object get_keymap_1 ();
-extern Lisp_Object Fkeymapp ();
-extern Lisp_Object reorder_modifiers ();
-extern Lisp_Object read_char ();
+/* Forward declaration for prototypes. */
+struct input_event;
+
+extern Lisp_Object get_keymap_1 P_ ((Lisp_Object, int, int));
+EXFUN (Fkeymapp, 1);
+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 ();
+extern Lisp_Object map_prompt P_ ((Lisp_Object));
+
+extern void echo_now P_ ((void));
+extern void init_kboard P_ ((KBOARD *));
+extern void delete_kboard P_ ((KBOARD *));
+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));
+extern void set_poll_suppress_count P_ ((int));
+extern void gobble_input P_ ((int));
+extern int input_polling_used P_ ((void));
+extern void clear_input_pending P_ ((void));
+extern int requeued_events_pending_p P_ ((void));
+extern void bind_polling_period P_ ((int));
+extern void stuff_buffered_input P_ ((Lisp_Object));
+extern void clear_waiting_for_input P_ ((void));
+extern void swallow_events P_ ((int));
+extern int help_char_p P_ ((Lisp_Object));
+extern void quit_throw_to_read_char P_ ((void));
+extern void cmd_error_internal P_ ((Lisp_Object, char *));
+extern void timer_start_idle P_ ((void));
+extern void timer_stop_idle P_ ((void));
+extern int lucid_event_type_list_p P_ ((Lisp_Object));
+extern void kbd_buffer_store_event P_ ((struct input_event *));