Lisp_Object f, tail;
int passed = 0;
+ eassume (CONSP (Vframe_list));
+
while (passed < 2)
FOR_EACH_FRAME (tail, f)
{
{
Lisp_Object f, tail, prev = Qnil;
+ eassume (CONSP (Vframe_list));
+
FOR_EACH_FRAME (tail, f)
{
if (EQ (frame, f) && !NILP (prev))
if (f == sf)
{
Lisp_Object tail;
+ eassume (CONSP (Vframe_list));
/* Look for another visible frame on the same terminal.
Do not call next_frame here because it may loop forever.
/* If we've deleted the last_nonminibuf_frame, then try to find
another one. */
- if (f == last_nonminibuf_frame && !NILP (Vframe_list))
+ if (f == last_nonminibuf_frame)
{
last_nonminibuf_frame = 0;
/* If there's no other frame on the same kboard, get out of
single-kboard state if we're in it for this kboard. */
- if (kb != NULL && !NILP (Vframe_list))
+ if (kb != NULL)
{
/* Some frame we found on the same kboard, or nil if there are none. */
Lisp_Object frame_on_same_kboard = Qnil;
/* 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, KVAR (kb, Vdefault_minibuffer_frame))
- && !NILP (Vframe_list))
+ if (kb != NULL && EQ (frame, KVAR (kb, Vdefault_minibuffer_frame)))
{
/* The last frame we saw with a minibuffer, minibuffer-only or not. */
Lisp_Object frame_with_minibuf = Qnil;
/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
`for' loop which iterates over the elements of Vframe_list. The
loop will set FRAME_VAR, a Lisp_Object, to each frame in
- Vframe_list in succession and execute the statement. Vframe_list
- should be nonempty, so the body is executed at least once. LIST_VAR
+ Vframe_list in succession and execute the statement. LIST_VAR
should be a Lisp_Object too; it is used to iterate through the
Vframe_list. Note that this macro walks over child frames and
the tooltip frame as well.
something which executes the statement once. */
#define FOR_EACH_FRAME(list_var, frame_var) \
- for ((list_var) = (eassume (CONSP (Vframe_list)), Vframe_list); \
+ for ((list_var) = Vframe_list; \
(CONSP (list_var) \
&& (frame_var = XCAR (list_var), true)); \
list_var = XCDR (list_var))