Mercurial > emacs
changeset 33619:d0482eab29e1
(Fwindow_list): Change parameter list to be XEmacs
compatible.
(window_list_1): New function.
(window_loop): Use it instead of Fwindow_list.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Sun, 19 Nov 2000 15:20:27 +0000 |
parents | beb961476e7f |
children | 62859e71806e |
files | src/window.c |
diffstat | 1 files changed, 31 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/window.c Sun Nov 19 14:36:27 2000 +0000 +++ b/src/window.c Sun Nov 19 15:20:27 2000 +0000 @@ -79,6 +79,7 @@ static int foreach_window_1 P_ ((struct window *, int (* fn) (struct window *, void *), void *)); +static Lisp_Object window_list_1 P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); /* This is the window in which the terminal's cursor should be left when nothing is being done with it. This must @@ -1549,9 +1550,35 @@ DEFUN ("window-list", Fwindow_list, Swindow_list, 0, 3, 0, - "Return a list of windows in canonical ordering.\n\ -Arguments are like for `next-window'.") - (window, minibuf, all_frames) + "Return a list of windows on FRAME, starting with WINDOW.\n\ +FRAME nil or omitted means use the selected frame.\n\ +WINDOW nil or omitted means use the selected window.\n\ +MINIBUF t means include the minibuffer window, even if it isn't active.\n\ +MINIBUF nil or omitted means include the minibuffer window only\n\ +if it's active.\n\ +MINIBUF neither nil nor t means never include the minibuffer window.") + (frame, minibuf, window) + Lisp_Object frame, minibuf, window; +{ + Lisp_Object list; + + if (NILP (window)) + window = selected_window; + if (NILP (frame)) + frame = selected_frame; + + if (!EQ (frame, XWINDOW (window)->frame)) + error ("Window is on a different frame"); + + return window_list_1 (window, minibuf, frame); +} + + +/* Return a list of windows in canonical ordering. Arguments are like + for `next-window'. */ + +static Lisp_Object +window_list_1 (window, minibuf, all_frames) Lisp_Object window, minibuf, all_frames; { Lisp_Object tail, list; @@ -1637,7 +1664,7 @@ We can't just wait until we hit the first window again, because it might be deleted. */ - windows = Fwindow_list (window, mini ? Qt : Qnil, frame_arg); + windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); GCPRO1 (windows); best_window = Qnil;