Mercurial > emacs
changeset 1442:89ac471c745c
* lisp.h (CHECK_LIVE_WINDOW): New predicate.
(Qlive_window_p): Extern declaration for this.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Mon, 19 Oct 1992 18:41:37 +0000 |
parents | 929409595312 |
children | b359c67a9194 |
files | src/lisp.h |
diffstat | 1 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lisp.h Mon Oct 19 18:41:06 1992 +0000 +++ b/src/lisp.h Mon Oct 19 18:41:37 1992 +0000 @@ -601,6 +601,20 @@ #define CHECK_WINDOW(x, i) \ { if (XTYPE ((x)) != Lisp_Window) x = wrong_type_argument (Qwindowp, (x)); } +/* This macro rejects windows on the interior of the window tree as + "dead", which is what we want; this is an argument-checking macro, and + the user should never get access to interior windows. + + A window of any sort, leaf or interior, is dead iff the buffer, + vchild, and hchild members are all nil. */ + +#define CHECK_LIVE_WINDOW(x, i) \ + { \ + if (XTYPE ((x)) != Lisp_Window \ + || NILP (XWINDOW ((x))->buffer)) \ + x = wrong_type_argument (Qlive_window_p, (x)); \ + } + #define CHECK_PROCESS(x, i) \ { if (XTYPE ((x)) != Lisp_Process) x = wrong_type_argument (Qprocessp, (x)); } @@ -1108,7 +1122,7 @@ extern Lisp_Object Fvertical_motion (), Findent_to (), Fcurrent_column (); /* defined in window.c */ -extern Lisp_Object Qwindowp; +extern Lisp_Object Qwindowp, Qlive_window_p; extern Lisp_Object Fget_buffer_window (); extern Lisp_Object Fsave_window_excursion (); extern Lisp_Object Fset_window_configuration (), Fcurrent_window_configuration ();