: Qnil);
}
-DEFUN ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
+DEFUE ("window-system", Fwindow_system, Swindow_system, 0, 1, 0,
doc: /* The name of the window system that FRAME is displaying through.
The value is a symbol:
nil for a termcap frame (a character-only terminal),
if (NILP (mini_window))
{
/* Use default-minibuffer-frame if possible. */
- if (!FRAMEP (kb->Vdefault_minibuffer_frame)
- || ! FRAME_LIVE_P (XFRAME (kb->Vdefault_minibuffer_frame)))
+ if (!FRAMEP (KVAR (kb, Vdefault_minibuffer_frame))
+ || ! FRAME_LIVE_P (XFRAME (KVAR (kb, Vdefault_minibuffer_frame))))
{
Lisp_Object frame_dummy;
XSETFRAME (frame_dummy, f);
GCPRO1 (frame_dummy);
/* If there's no minibuffer frame to use, create one. */
- kb->Vdefault_minibuffer_frame =
+ KVAR (kb, Vdefault_minibuffer_frame) =
call1 (intern ("make-initial-minibuffer-frame"), display);
UNGCPRO;
}
- mini_window = XFRAME (kb->Vdefault_minibuffer_frame)->minibuffer_window;
+ mini_window = XFRAME (KVAR (kb, Vdefault_minibuffer_frame))->minibuffer_window;
}
f->minibuffer_window = mini_window;
return frame;
}
-DEFUN ("select-frame", Fselect_frame, Sselect_frame, 1, 2, "e",
+DEFUE ("select-frame", Fselect_frame, Sselect_frame, 1, 2, "e",
doc: /* Select FRAME.
Subsequent editing commands apply to its selected window.
Optional argument NORECORD means to neither change the order of
(Lisp_Object event)
{
/* Preserve prefix arg that the command loop just cleared. */
- current_kboard->Vprefix_arg = Vcurrent_prefix_arg;
- call1 (Vrun_hooks, Qmouse_leave_buffer_hook);
+ KVAR (current_kboard, Vprefix_arg) = Vcurrent_prefix_arg;
+ Frun_hooks (1, &Qmouse_leave_buffer_hook);
return do_switch_frame (event, 0, 0, Qnil);
}
-DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
+DEFUE ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
doc: /* Return the frame that is now selected. */)
(void)
{
return selected_frame;
}
\f
-DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
+DEFUE ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
doc: /* Return the frame object that window WINDOW is on. */)
(Lisp_Object window)
{
return XWINDOW (window)->frame;
}
-DEFUN ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
+DEFUE ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
doc: /* Returns the topmost, leftmost window of FRAME.
If omitted, FRAME defaults to the currently selected frame. */)
(Lisp_Object frame)
return minibuf_level ? minibuf_window : Qnil;
}
-DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
+DEFUE ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
doc: /* Returns the root-window of FRAME.
If omitted, FRAME defaults to the currently selected frame. */)
(Lisp_Object frame)
return window;
}
-DEFUN ("set-frame-selected-window", Fset_frame_selected_window,
+DEFUE ("set-frame-selected-window", Fset_frame_selected_window,
Sset_frame_selected_window, 2, 3, 0,
doc: /* Set selected window of FRAME to WINDOW.
If FRAME is nil, use the selected frame. If FRAME is the
/* If we've deleted this keyboard's default_minibuffer_frame, try to
find another one. Prefer minibuffer-only frames, but also notice
frames with other windows. */
- if (kb != NULL && EQ (frame, kb->Vdefault_minibuffer_frame))
+ if (kb != NULL && EQ (frame, KVAR (kb, Vdefault_minibuffer_frame)))
{
Lisp_Object frames;
if (NILP (frame_with_minibuf))
abort ();
- kb->Vdefault_minibuffer_frame = frame_with_minibuf;
+ KVAR (kb, Vdefault_minibuffer_frame) = frame_with_minibuf;
}
else
/* No frames left on this kboard--say no minibuffer either. */
- kb->Vdefault_minibuffer_frame = Qnil;
+ KVAR (kb, Vdefault_minibuffer_frame) = Qnil;
}
/* Cause frame titles to update--necessary if we now have just one frame. */
\f
static void make_frame_visible_1 (Lisp_Object);
-DEFUN ("make-frame-visible", Fmake_frame_visible, Smake_frame_visible,
+DEFUE ("make-frame-visible", Fmake_frame_visible, Smake_frame_visible,
0, 1, "",
doc: /* Make the frame FRAME visible (assuming it is an X window).
If omitted, FRAME defaults to the currently selected frame. */)
w = XWINDOW (window);
if (!NILP (w->buffer))
- XBUFFER (w->buffer)->display_time = Fcurrent_time ();
+ BVAR (XBUFFER (w->buffer), display_time) = Fcurrent_time ();
if (!NILP (w->vchild))
make_frame_visible_1 (w->vchild);
return Qnil;
}
-DEFUN ("iconify-frame", Ficonify_frame, Siconify_frame,
+DEFUE ("iconify-frame", Ficonify_frame, Siconify_frame,
0, 1, "",
doc: /* Make the frame FRAME into an icon.
If omitted, FRAME defaults to the currently selected frame. */)
}
-DEFUN ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "",
+DEFUE ("raise-frame", Fraise_frame, Sraise_frame, 0, 1, "",
doc: /* Bring FRAME to the front, so it occludes any frames it overlaps.
If FRAME is invisible or iconified, make it visible.
If you don't specify a frame, the selected frame is used.
}
\f
-DEFUN ("redirect-frame-focus", Fredirect_frame_focus, Sredirect_frame_focus,
+DEFUE ("redirect-frame-focus", Fredirect_frame_focus, Sredirect_frame_focus,
1, 2, 0,
doc: /* Arrange for keystrokes typed at FRAME to be sent to FOCUS-FRAME.
In other words, switch-frame events caused by events in FRAME will
register Lisp_Object old_alist_elt;
/* The buffer-list parameters are stored in a special place and not
- in the alist. */
+ in the alist. All buffers must be live. */
if (EQ (prop, Qbuffer_list))
{
- f->buffer_list = val;
+ Lisp_Object list = Qnil;
+ for (; CONSP (val); val = XCDR (val))
+ if (!NILP (Fbuffer_live_p (XCAR (val))))
+ list = Fcons (XCAR (val), list);
+ f->buffer_list = Fnreverse (list);
return;
}
if (EQ (prop, Qburied_buffer_list))
{
- f->buried_buffer_list = val;
+ Lisp_Object list = Qnil;
+ for (; CONSP (val); val = XCDR (val))
+ if (!NILP (Fbuffer_live_p (XCAR (val))))
+ list = Fcons (XCAR (val), list);
+ f->buried_buffer_list = Fnreverse (list);
return;
}
}
-DEFUN ("frame-parameter", Fframe_parameter, Sframe_parameter, 2, 2, 0,
+DEFUE ("frame-parameter", Fframe_parameter, Sframe_parameter, 2, 2, 0,
doc: /* Return FRAME's value for parameter PARAMETER.
If FRAME is nil, describe the currently selected frame. */)
(Lisp_Object frame, Lisp_Object parameter)
}
-DEFUN ("modify-frame-parameters", Fmodify_frame_parameters,
+DEFUE ("modify-frame-parameters", Fmodify_frame_parameters,
Smodify_frame_parameters, 2, 2, 0,
doc: /* Modify the parameters of frame FRAME according to ALIST.
If FRAME is nil, it defaults to the selected frame.
}
/* Now process them in reverse of specified order. */
- for (i--; i >= 0; i--)
+ while (--i >= 0)
{
prop = parms[i];
val = values[i];
/* Record in these vectors all the parms specified. */
Lisp_Object *parms;
Lisp_Object *values;
- int i, p;
+ size_t i, p;
int left_no_change = 0, top_no_change = 0;
int icon_left_no_change = 0, icon_top_no_change = 0;
int size_changed = 0;
}
/* Now process them in reverse of specified order. */
- for (i--; i >= 0; i--)
+ while (i-- != 0)
{
Lisp_Object prop, val;
bgcolor = Fassq (Qbackground_color, f->param_alist);
if (CONSP (bgcolor) && (bgcolor = XCDR (bgcolor), STRINGP (bgcolor)))
{
- Lisp_Object index = Fget (Qbackground_color, Qx_frame_parameter);
- if (NATNUMP (index)
- && (XFASTINT (index)
+ Lisp_Object parm_index = Fget (Qbackground_color, Qx_frame_parameter);
+ if (NATNUMP (parm_index)
+ && (XFASTINT (parm_index)
< sizeof (frame_parms)/sizeof (frame_parms[0]))
- && FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
- (*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (index)])
+ && FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)])
+ (*FRAME_RIF (f)->frame_parm_handlers[XFASTINT (parm_index)])
(f, bgcolor, Qnil);
}
return;
/* If name is entirely invalid, or nearly so, use `emacs'. */
- if (good_count == 0
- || (good_count == 1 && bad_count > 0))
+ if (good_count < 2)
{
Vx_resource_name = build_string ("emacs");
return;