1 /* Definitions needed by most editing commands.
2 Copyright (C) 1985-1994 Free Software Foundation, Inc.
4 This file is part of SXEmacs
6 SXEmacs is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 SXEmacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 /* Synched up with: FSF 19.30. */
22 #ifndef INCLUDED_commands_h_
23 #define INCLUDED_commands_h_
26 #define Ctl(c) ((c)&037)
29 /* bunches of FSF keymap and minibuffer stuff not here (in Lisp) */
31 extern Lisp_Object Vlast_command_event;
33 extern Lisp_Object Vlast_input_event;
35 /* These next two for compatibility; they are V... because they can be
36 nil. (Many FSFmacs equivalent variables incorrectly omit the V
37 even though they are Lisp_Objects.) */
38 /* Last character of last key sequence. */
39 extern Lisp_Object Vlast_command_char;
41 extern Lisp_Object Vlast_input_char;
44 /* Last input character read as a command, not counting menus
45 reached by the mouse. */
46 extern Lisp_Object Vlast_nonmenu_event;
49 #if 0 /* Local to event-stream.c */
50 /* List of command events to be re-read, or Qnil. */
51 extern Lisp_Object Vunread_command_events;
55 /* Command char event to be re-read, or -1 if none.
56 Setting this is obsolete, but some things should still check it. */
57 extern int unread_command_char;
60 /* Last command executed by the editor command loop, not counting
61 commands that set the prefix argument. */
63 extern Lisp_Object Vlast_command;
65 /* The command being executed by the command loop.
66 Commands may set this, and the value set will be copied into
67 Vlast_command instead of the actual command. */
68 extern Lisp_Object Vthis_command;
71 /* If not Qnil, this is a switch-frame event which we decided to put
72 off until the end of a key sequence. This should be read as the
73 next command input, after any Vunread_command_events.
75 read_key_sequence uses this to delay switch-frame events until the
76 end of the key sequence; Fread_char uses it to put off switch-frame
77 events until a non-ASCII event is acceptable as input. */
78 extern Lisp_Object unread_switch_frame;
81 #if 0 /* Local to event-stream.c */
82 /* The value of point when the last command was executed. */
83 extern int last_point_position;
85 /* The buffer that was current when the last command was started. */
86 extern Lisp_Object last_point_position_buffer;
89 /* This is so incredibly losing that it's been completely eliminated
90 from the code. Trust me, there are cleaner, safer ways of
91 achieving the same functionality (e.g. use select()). */
92 /* extern int immediate_quit; Nonzero means ^G can quit instantly */
94 /* Nonzero if input is coming from the keyboard */
96 #define INTERACTIVE (NILP (Vexecuting_macro) && !noninteractive)
98 /* Set this nonzero to force reconsideration of modeline. */
100 extern int modeline_changed;
102 extern Lisp_Object recent_keys_ring;
103 extern int recent_keys_ring_index;
105 /* #ifndef LISP_COMMAND_LOOP */
106 extern Lisp_Object Vtop_level;
108 extern Lisp_Object Vcommand_loop;
110 DECLARE_DOESNT_RETURN(initial_command_loop(Lisp_Object));
111 Lisp_Object call_command_loop(Lisp_Object catch_errors);
112 extern Fixnum command_loop_level;
114 extern Lisp_Object Vkeyboard_translate_table;
115 extern Lisp_Object Vlast_input_time;
116 extern Lisp_Object Vcurrent_mouse_event;
118 extern int zmacs_regions;
119 extern int zmacs_region_active_p;
120 extern int zmacs_region_stays;
121 void zmacs_update_region(void);
122 void zmacs_deactivate_region(void);
123 Lisp_Object zmacs_region_buffer(void);
125 extern Lisp_Object Vthis_command_keys; /* event-stream.c */
127 #endif /* INCLUDED_commands_h_ */