Mercurial > emacs
changeset 66711:d89d56f50d43
(Fget_lru_window, Fget_largest_window, window_loop):
Don't abuse the `mini' arg. Use the `obj' arg instead.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Fri, 04 Nov 2005 21:37:03 +0000 |
parents | ff5bc4e6c882 |
children | 13b5bb686732 |
files | src/ChangeLog src/window.c |
diffstat | 2 files changed, 22 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Fri Nov 04 17:24:09 2005 +0000 +++ b/src/ChangeLog Fri Nov 04 21:37:03 2005 +0000 @@ -1,3 +1,8 @@ +2005-11-04 Stefan Monnier <monnier@iro.umontreal.ca> + + * window.c (Fget_lru_window, Fget_largest_window, window_loop): + Don't abuse the `mini' arg. Use the `obj' arg instead. + 2005-11-04 Kim F. Storm <storm@cua.dk> * xdisp.c (show_mouse_face): Clear mouse face to eol. @@ -251,8 +256,7 @@ 2005-10-20 Aubrey Jaffer <agj@alum.mit.edu> (tiny change) - * unexelf.c (unexec): Fix calls to `fatal' with less than 3 - arguments. + * unexelf.c (unexec): Fix calls to `fatal' with less than 3 arguments. 2005-10-20 Olli Savia <ops@iki.fi> (tiny change)
--- a/src/window.c Fri Nov 04 17:24:09 2005 +0000 +++ b/src/window.c Fri Nov 04 21:37:03 2005 +0000 @@ -1996,11 +1996,13 @@ break; case GET_LRU_WINDOW: - /* t as arg means consider only full-width windows */ - if (!NILP (obj) && !WINDOW_FULL_WIDTH_P (w)) - break; - /* Ignore dedicated windows and minibuffers. */ - if (MINI_WINDOW_P (w) || (!mini && EQ (w->dedicated, Qt))) + /* `obj' is an integer encoding a bitvector. + `obj & 1' means consider only full-width windows. + `obj & 2' means consider also dedicated windows. */ + if (((XINT (obj) & 1) && !WINDOW_FULL_WIDTH_P (w)) + || (!(XINT (obj) & 2) && EQ (w->dedicated, Qt)) + /* Minibuffer windows are always ignored. */ + || MINI_WINDOW_P (w)) break; if (NILP (best_window) || (XFASTINT (XWINDOW (best_window)->use_time) @@ -2051,9 +2053,9 @@ break; case GET_LARGEST_WINDOW: - { + { /* nil `obj' means to ignore dedicated windows. */ /* Ignore dedicated windows and minibuffers. */ - if (MINI_WINDOW_P (w) || (!mini && EQ (w->dedicated, Qt))) + if (MINI_WINDOW_P (w) || (NILP (obj) && EQ (w->dedicated, Qt))) break; if (NILP (best_window)) @@ -2163,11 +2165,15 @@ { register Lisp_Object w; /* First try for a window that is full-width */ - w = window_loop (GET_LRU_WINDOW, Qt, !NILP (dedicated), frame); + w = window_loop (GET_LRU_WINDOW, + NILP (dedicated) ? make_number (1) : make_number (3), + 0, frame); if (!NILP (w) && !EQ (w, selected_window)) return w; /* If none of them, try the rest */ - return window_loop (GET_LRU_WINDOW, Qnil, !NILP (dedicated), frame); + return window_loop (GET_LRU_WINDOW, + NILP (dedicated) ? make_number (0) : make_number (2), + 0, frame); } DEFUN ("get-largest-window", Fget_largest_window, Sget_largest_window, 0, 2, 0, @@ -2183,7 +2189,7 @@ (frame, dedicated) Lisp_Object frame, dedicated; { - return window_loop (GET_LARGEST_WINDOW, Qnil, !NILP (dedicated), + return window_loop (GET_LARGEST_WINDOW, dedicated, 0, frame); }