update_mode_lines = 1;
if (command_loop_level
- && current_buffer != XBUFFER (XWINDOW (selected_window)->buffer))
+ && current_buffer != XBUFFER (WVAR (XWINDOW (selected_window), buffer)))
buffer = Fcurrent_buffer ();
else
buffer = Qnil;
Fkill_emacs (Qnil);
/* Make sure the current window's buffer is selected. */
- if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer)
- set_buffer_internal (XBUFFER (XWINDOW (selected_window)->buffer));
+ if (XBUFFER (WVAR (XWINDOW (selected_window), buffer)) != current_buffer)
+ set_buffer_internal (XBUFFER (WVAR (XWINDOW (selected_window), buffer)));
/* Display any malloc warning that just came out. Use while because
displaying one warning can cause another. */
/* A filter may have run while we were reading the input. */
if (! FRAME_LIVE_P (XFRAME (selected_frame)))
Fkill_emacs (Qnil);
- if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer)
- set_buffer_internal (XBUFFER (XWINDOW (selected_window)->buffer));
+ if (XBUFFER (WVAR (XWINDOW (selected_window), buffer)) != current_buffer)
+ set_buffer_internal (XBUFFER (WVAR (XWINDOW (selected_window), buffer)));
++num_input_keys;
{
struct buffer *b;
XWINDOW (selected_window)->force_start = 0;
- b = XBUFFER (XWINDOW (selected_window)->buffer);
+ b = XBUFFER (WVAR (XWINDOW (selected_window), buffer));
BUF_BEG_UNCHANGED (b) = BUF_END_UNCHANGED (b) = 0;
}
if (!NILP (help) && !STRINGP (help))
{
if (FUNCTIONP (help))
- {
- Lisp_Object args[4];
- args[0] = help;
- args[1] = window;
- args[2] = object;
- args[3] = pos;
- help = safe_call (4, args);
- }
+ help = safe_call (4, help, window, object, pos);
else
help = safe_eval (help);
&& ! CONSP (Vunread_command_events))
{
Fdo_auto_save (Qnil, Qnil);
-
- /* If we have auto-saved and there is still no input
- available, garbage collect if there has been enough
- consing going on to make it worthwhile. */
- if (!detect_input_pending_run_timers (0)
- && consing_since_gc > gc_cons_threshold / 2)
- Fgarbage_collect ();
-
redisplay ();
}
}
+
+ /* If there is still no input available, ask for GC. */
+ if (!detect_input_pending_run_timers (0))
+ maybe_gc ();
}
/* Notify the caller if an autosave hook, or a timer, sentinel or
if (STRINGP (string))
string_info = Fcons (string, make_number (charpos));
textpos = (w == XWINDOW (selected_window)
- && current_buffer == XBUFFER (w->buffer))
- ? PT : XMARKER (w->pointm)->charpos;
+ && current_buffer == XBUFFER (WVAR (w, buffer)))
+ ? PT : XMARKER (WVAR (w, pointm))->charpos;
xret = wx;
yret = wy;
{
int i;
- switch (SWITCH_ENUM_CAST (event->kind))
+ switch (event->kind)
{
/* A simple keystroke. */
case ASCII_KEYSTROKE_EVENT:
int fuzz;
if (WINDOWP (event->frame_or_window))
- f = XFRAME (XWINDOW (event->frame_or_window)->frame);
+ f = XFRAME (WVAR (XWINDOW (event->frame_or_window), frame));
else if (FRAMEP (event->frame_or_window))
f = XFRAME (event->frame_or_window);
else
int is_double;
if (WINDOWP (event->frame_or_window))
- fr = XFRAME (XWINDOW (event->frame_or_window)->frame);
+ fr = XFRAME (WVAR (XWINDOW (event->frame_or_window), frame));
else if (FRAMEP (event->frame_or_window))
fr = XFRAME (event->frame_or_window);
else
/* If the command is an alias for another
(such as lmenu.el set it up), check if the
original command matches the cached command. */
- && !(SYMBOLP (def) && EQ (tem, XSYMBOL (def)->function))))
+ && !(SYMBOLP (def)
+ && EQ (tem, SVAR (XSYMBOL (def), function)))))
keys = Qnil;
}
next = access_keymap (map, key, 1, 0, 1);
- /* Handle symbol with autoload definition. */
- if (SYMBOLP (next) && !NILP (Ffboundp (next))
- && CONSP (XSYMBOL (next)->function)
- && EQ (XCAR (XSYMBOL (next)->function), Qautoload))
- do_autoload (XSYMBOL (next)->function, next);
-
/* Handle a symbol whose function definition is a keymap
or an array. */
if (SYMBOLP (next) && !NILP (Ffboundp (next))
- && (ARRAYP (XSYMBOL (next)->function)
- || KEYMAPP (XSYMBOL (next)->function)))
- next = XSYMBOL (next)->function;
+ && (ARRAYP (SVAR (XSYMBOL (next), function))
+ || KEYMAPP (SVAR (XSYMBOL (next), function))))
+ next = Fautoload_do_load (SVAR (XSYMBOL (next), function), next, Qnil);
/* If the keymap gives a function, not an
array, then call the function with one arg and use
{
if (! FRAME_LIVE_P (XFRAME (selected_frame)))
Fkill_emacs (Qnil);
- if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer)
- Fset_buffer (XWINDOW (selected_window)->buffer);
+ if (XBUFFER (WVAR (XWINDOW (selected_window), buffer)) != current_buffer)
+ Fset_buffer (WVAR (XWINDOW (selected_window), buffer));
}
orig_local_map = get_local_map (PT, current_buffer, Qlocal_map);
not the current buffer. If we're at the
beginning of a key sequence, switch buffers. */
if (WINDOWP (window)
- && BUFFERP (XWINDOW (window)->buffer)
- && XBUFFER (XWINDOW (window)->buffer) != current_buffer)
+ && BUFFERP (WVAR (XWINDOW (window), buffer))
+ && XBUFFER (WVAR (XWINDOW (window), buffer)) != current_buffer)
{
ASET (raw_keybuf, raw_keybuf_count, key);
raw_keybuf_count++;
if (! FRAME_LIVE_P (XFRAME (selected_frame)))
Fkill_emacs (Qnil);
- set_buffer_internal (XBUFFER (XWINDOW (window)->buffer));
+ set_buffer_internal (XBUFFER (WVAR (XWINDOW (window), buffer)));
orig_local_map = get_local_map (PT, current_buffer,
Qlocal_map);
orig_keymap = get_local_map (PT, current_buffer,
struct gcpro gcpro1, gcpro2;
GCPRO2 (cmd, prefixarg);
- do_autoload (final, cmd);
+ Fautoload_do_load (final, cmd, Qnil);
UNGCPRO;
}
else
? window_box_left_offset (w, TEXT_AREA)
: 0)));
XSETINT (y, WINDOW_TO_FRAME_PIXEL_Y (w, XINT (y)));
- frame_or_window = w->frame;
+ frame_or_window = WVAR (w, frame);
}
CHECK_LIVE_FRAME (frame_or_window);
initial_define_lispy_key (Vspecial_event_map, "config-changed-event",
"ignore");
+#if defined (WINDOWSNT)
+ initial_define_lispy_key (Vspecial_event_map, "language-change",
+ "ignore");
+#endif
}
/* Mark the pointers in the kboard objects.