# HG changeset patch # User Richard M. Stallman # Date 788048845 0 # Node ID 9e8f603bcff4f72d7d46fce1ac3b8c9e7b06bd06 # Parent e6618f52efe9676f19ff95186fb938be7ea131ec (struct frame): New field buffer_predicate. Move all the Lisp_Object fields to the top. diff -r e6618f52efe9 -r 9e8f603bcff4 src/frame.h --- a/src/frame.h Wed Dec 21 22:26:02 1994 +0000 +++ b/src/frame.h Wed Dec 21 22:27:25 1994 +0000 @@ -44,45 +44,9 @@ EMACS_INT size; struct Lisp_Vector *next; - /* glyphs as they appear on the frame */ - struct frame_glyphs *current_glyphs; - - /* glyphs we'd like to appear on the frame */ - struct frame_glyphs *desired_glyphs; - - /* See do_line_insertion_deletion_costs for info on these arrays. */ - /* Cost of inserting 1 line on this frame */ - int *insert_line_cost; - /* Cost of deleting 1 line on this frame */ - int *delete_line_cost; - /* Cost of inserting n lines on this frame */ - int *insert_n_lines_cost; - /* Cost of deleting n lines on this frame */ - int *delete_n_lines_cost; - - /* glyphs for the mode line */ - struct frame_glyphs *temp_glyphs; - - /* Intended cursor position of this frame. - Measured in characters, counting from upper left corner - within the frame. */ - int cursor_x; - int cursor_y; - - /* Actual cursor position of this frame, and the character under it. - (Not used for terminal frames.) */ - int phys_cursor_x; - int phys_cursor_y; - /* This is handy for undrawing the cursor, because current_glyphs is - not always accurate when in do_scrolling. */ - GLYPH phys_cursor_glyph; - - /* Size of this frame, in units of characters. */ - EMACS_INT height; - EMACS_INT width; - - /* New height and width for pending size change. 0 if no change pending. */ - int new_height, new_width; + /* All Lisp_Object components must come first. + Only EMACS_INT values can be intermixed with them. + That ensures they are all aligned normally. */ /* Name of this frame: a Lisp string. See also `explicit_name'. */ Lisp_Object name; @@ -140,6 +104,59 @@ /* Alist of elements (FACE-NAME . FACE-VECTOR-DATA). */ Lisp_Object face_alist; + /* A vector that records the entire structure of this frame's menu bar. + For the format of the data, see extensive comments in xmenu.c. + Only the X toolkit version uses this. */ + Lisp_Object menu_bar_vector; + /* Number of elements in the vector that have meaningful data. */ + EMACS_INT menu_bar_items_used; + + /* Predicate for selecting buffers for other-buffer. */ + Lisp_Object buffer_predicate; + + /* Beyond here, there should be no more Lisp_Object components. */ + + + /* glyphs as they appear on the frame */ + struct frame_glyphs *current_glyphs; + + /* glyphs we'd like to appear on the frame */ + struct frame_glyphs *desired_glyphs; + + /* See do_line_insertion_deletion_costs for info on these arrays. */ + /* Cost of inserting 1 line on this frame */ + int *insert_line_cost; + /* Cost of deleting 1 line on this frame */ + int *delete_line_cost; + /* Cost of inserting n lines on this frame */ + int *insert_n_lines_cost; + /* Cost of deleting n lines on this frame */ + int *delete_n_lines_cost; + + /* glyphs for the mode line */ + struct frame_glyphs *temp_glyphs; + + /* Intended cursor position of this frame. + Measured in characters, counting from upper left corner + within the frame. */ + int cursor_x; + int cursor_y; + + /* Actual cursor position of this frame, and the character under it. + (Not used for terminal frames.) */ + int phys_cursor_x; + int phys_cursor_y; + /* This is handy for undrawing the cursor, because current_glyphs is + not always accurate when in do_scrolling. */ + GLYPH phys_cursor_glyph; + + /* Size of this frame, in units of characters. */ + EMACS_INT height; + EMACS_INT width; + + /* New height and width for pending size change. 0 if no change pending. */ + int new_height, new_width; + /* The output method says how the contents of this frame are displayed. It could be using termcap, or using an X window. */ enum output_method output_method; @@ -234,13 +251,6 @@ for lines beyond a certain vpos. This is the vpos. */ int scroll_bottom_vpos; - /* A vector that records the entire structure of this frame's menu bar. - For the format of the data, see extensive comments in xmenu.c. - Only the X toolkit version uses this. */ - Lisp_Object menu_bar_vector; - /* Number of elements in the vector that have meaningful data. */ - int menu_bar_items_used; - /* Width of the scroll bar, in pixels and in characters. scroll_bar_cols tracks scroll_bar_pixel_width if the latter is positive; a zero value in scroll_bar_pixel_width means to compute the actual width