X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/ab1dc14b220747e527d507d40905a24ba5c692d9..0877d0dc24ee792b9b14592869ea1aa0934aee58:/src/window.h diff --git a/src/window.h b/src/window.h index 115b361194..1ebd35a7c6 100644 --- a/src/window.h +++ b/src/window.h @@ -1,6 +1,6 @@ /* Window definitions for GNU Emacs. - Copyright (C) 1985-1986, 1993, 1995, 1997-2012 - Free Software Foundation, Inc. + Copyright (C) 1985-1986, 1993, 1995, 1997-2013 Free Software + Foundation, Inc. This file is part of GNU Emacs. @@ -261,7 +261,7 @@ struct window EMACS_INT last_overlay_modified; /* Value of point at that time. Since this is a position in a buffer, - it should be positive. */ + it should be positive. */ ptrdiff_t last_point; /* Scaling factor for the glyph_matrix size calculation in this window. @@ -290,7 +290,7 @@ struct window /* Non-zero if this window is a minibuffer window. */ unsigned mini : 1; - /* Non-zero means must regenerate mode line of this window */ + /* Non-zero means must regenerate mode line of this window. */ unsigned update_mode_line : 1; /* Non-nil if the buffer was "modified" when the window @@ -343,7 +343,7 @@ struct window y-direction (smooth scrolling). */ int vscroll; - /* Z_BYTE - the buffer position of the last glyph in the current matrix of W. + /* Z_BYTE - Buffer position of the last glyph in the current matrix of W. Should be nonnegative, and only valid if window_end_valid is not nil. */ ptrdiff_t window_end_bytepos; }; @@ -351,11 +351,6 @@ struct window /* Most code should use these functions to set Lisp fields in struct window. */ WINDOW_INLINE void -wset_buffer (struct window *w, Lisp_Object val) -{ - w->buffer = val; -} -WINDOW_INLINE void wset_frame (struct window *w, Lisp_Object val) { w->frame = val; @@ -939,7 +934,7 @@ extern EMACS_INT minibuf_level; extern int update_mode_lines; /* Nonzero if window sizes or contents have changed since last - redisplay that finished */ + redisplay that finished. */ extern int windows_or_buffers_changed; @@ -947,11 +942,6 @@ extern int windows_or_buffers_changed; extern int cursor_type_changed; -/* Number of windows displaying the selected buffer. Normally this is - 1, but it can be more. */ - -extern int buffer_shared; - /* If *ROWS or *COLS are too small a size for FRAME, set them to the minimum allowable size. */ @@ -970,17 +960,26 @@ struct glyph *get_phys_cursor_glyph (struct window *w); || !NILP (XWINDOW (WINDOW)->vchild) \ || !NILP (XWINDOW (WINDOW)->hchild))) +/* A window of any sort, leaf or interior, is "valid" if one + of its buffer, vchild, or hchild members is non-nil. */ +#define CHECK_VALID_WINDOW(WINDOW) \ + CHECK_TYPE (WINDOW_VALID_P (WINDOW), Qwindow_valid_p, WINDOW) /* Value is non-zero if WINDOW is a live window. */ #define WINDOW_LIVE_P(WINDOW) \ (WINDOWP (WINDOW) && !NILP (XWINDOW (WINDOW)->buffer)) +/* A window is "live" if and only if it shows a buffer. */ +#define CHECK_LIVE_WINDOW(WINDOW) \ + CHECK_TYPE (WINDOW_LIVE_P (WINDOW), Qwindow_live_p, WINDOW) + /* These used to be in lisp.h. */ extern Lisp_Object Qwindowp, Qwindow_live_p; extern Lisp_Object Vwindow_list; extern struct window *decode_live_window (Lisp_Object); +extern struct window *decode_any_window (Lisp_Object); extern bool compare_window_configurations (Lisp_Object, Lisp_Object, bool); extern void mark_window_cursors_off (struct window *); extern int window_internal_height (struct window *); @@ -988,6 +987,8 @@ extern int window_body_cols (struct window *w); extern void temp_output_buffer_show (Lisp_Object); extern void replace_buffer_in_windows (Lisp_Object); extern void replace_buffer_in_windows_safely (Lisp_Object); +/* This looks like a setter, but it is a bit special. */ +extern void wset_buffer (struct window *, Lisp_Object); extern void init_window_once (void); extern void init_window (void); extern void syms_of_window (void);