X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/ce0b67174f75fcdf0c57a7bfdb80368360f27217..5180cc015e2cca6f8cb635044ac4643cf83276cb:/src/dispextern.h diff --git a/src/dispextern.h b/src/dispextern.h index e53cdfb3a6..102ae84a6e 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1,5 +1,5 @@ /* Interface definitions for display code. - Copyright (C) 1985, 1993, 1994, 1997, 1998, 1999 + Copyright (C) 1985, 1993, 1994, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -19,7 +19,7 @@ along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* New redisplay written by Gerd Moellmann . */ +/* New redisplay written by Gerd Moellmann . */ #ifndef DISPEXTERN_H_INCLUDED #define DISPEXTERN_H_INCLUDED @@ -40,7 +40,7 @@ Boston, MA 02111-1307, USA. */ #endif #ifdef macintosh -#include "macterm.h" +#include "macgui.h" #endif /* Structure forward declarations. Some are here because function @@ -224,7 +224,13 @@ enum glyph_type }; -/* Glyphs. */ +/* Glyphs. + + Be extra careful when changing this structure! Esp. make sure that + functions producing glyphs, like x_append_glyph, fill ALL of the + glyph structure, and that GLYPH_EQUAL_P compares all + display-relevant members of glyphs (not to imply that these are the + only things to check when you add a member). */ struct glyph { @@ -236,7 +242,9 @@ struct glyph int charpos; /* Lisp object source of this glyph. Currently either a buffer or - a string, or 0. */ + a string, if the glyph was produced from characters which came from + a buffer or a string; or 0 if the glyph was inserted by redisplay + for its own purposes such as padding. */ Lisp_Object object; /* Width in pixels. */ @@ -275,8 +283,9 @@ struct glyph padding. */ unsigned padding_p : 1; - /* 1 means the actual glyph is not available in the current - system. */ + /* 1 means the actual glyph is not available, draw a box instead. + This can happen when a font couldn't be loaded, or a character + doesn't have a glyph in a font. */ unsigned glyph_not_available_p : 1; /* Face of the glyph. */ @@ -324,7 +333,7 @@ struct glyph #define CHAR_GLYPH_SPACE_P(GLYPH) \ (GLYPH_FROM_CHAR_GLYPH ((GLYPH)) == SPACEGLYPH) -/* Are glyphs *X and *Y equal? */ +/* Are glyphs *X and *Y displayed equal? */ #define GLYPH_EQUAL_P(X, Y) \ ((X)->type == (Y)->type \ @@ -333,7 +342,8 @@ struct glyph && (X)->padding_p == (Y)->padding_p \ && (X)->left_box_line_p == (Y)->left_box_line_p \ && (X)->right_box_line_p == (Y)->right_box_line_p \ - && (X)->voffset == (Y)->voffset) + && (X)->voffset == (Y)->voffset \ + && (X)->pixel_width == (Y)->pixel_width) /* Are character codes, faces, padding_ps of glyphs *X and *Y equal? */ @@ -367,9 +377,9 @@ struct glyph character is multibyte, return -1 as we can't use glyph table for a multibyte character. */ -#define GLYPH_FROM_CHAR_GLYPH(GLYPH) \ - ((GLYPH).u.ch < 256 \ - ? ((GLYPH).u.ch | ((GLYPH).face_id << 8)) \ +#define GLYPH_FROM_CHAR_GLYPH(GLYPH) \ + ((GLYPH).u.ch < 256 \ + ? ((GLYPH).u.ch | ((GLYPH).face_id << CHARACTERBITS)) \ : -1) /* Is GLYPH a padding glyph? */ @@ -466,11 +476,13 @@ struct glyph_matrix /* Width and height of the matrix in columns and rows. */ int matrix_w, matrix_h; - /* If this structure describes a window matrix, window_top_y is the - top-most y-position and window_height is the height of the - window, and window_vscroll is the vscroll at the time the matrix - was last adjusted. Only set for window-based redisplay. */ - int window_top_y, window_height, window_width, window_vscroll; + /* If this structure describes a window matrix of window W, + window_left_x is the value of W->left, window_top_y the value of + W->top, window_height and window_width are width and height of W, + as returned by window_box, and window_vscroll is the value of + W->vscroll at the time the matrix was last adjusted. Only set + for window-based redisplay. */ + int window_left_x, window_top_y, window_height, window_width, window_vscroll; /* Number of glyphs reserved for left and right marginal areas when the matrix was last adjusted. */ @@ -490,10 +502,12 @@ struct glyph_matrix char method[512]; #endif - /* The buffer this matrix displays. Set in redisplay_internal. */ + /* The buffer this matrix displays. Set in + mark_window_display_accurate_1. */ struct buffer *buffer; - /* Values of BEGV and ZV as of last redisplay. */ + /* Values of BEGV and ZV as of last redisplay. Set in + mark_window_display_accurate_1. */ int begv, zv; }; @@ -580,7 +594,8 @@ struct glyph_row int x, y; /* Width of the row in pixels without taking face extension at the - end of the row into account. */ + end of the row into account, and without counting truncation + and continuation glyphs at the end of a row on ttys. */ int pixel_width; /* Logical ascent/height of this line. The value of ascent is zero @@ -620,10 +635,6 @@ struct glyph_row screen. */ unsigned enabled_p : 1; - /* Display this line in inverse video? Used for the mode line and - menu bar lines. */ - unsigned inverse_p : 1; - /* 1 means row displays a text line that is truncated on the left or right side. */ unsigned truncated_on_left_p : 1; @@ -657,7 +668,7 @@ struct glyph_row unsigned contains_overlapping_glyphs_p : 1; /* 1 means this row is a wide as the window it is displayed in, including - scroll bars, bitmap areas, and internal borders. This also + scroll bars, fringes, and internal borders. This also implies that the row doesn't have marginal areas. */ unsigned full_width_p : 1; @@ -680,6 +691,12 @@ struct glyph_row /* 1 in a current row means this row overlaps others. */ unsigned overlapping_p : 1; + /* 1 means some glyphs in this row are displayed in mouse-face. */ + unsigned mouse_face_p : 1; + + /* 1 means this row was ended by a newline from a string. */ + unsigned ends_in_newline_from_string_p : 1; + /* Continuation lines width at the start of the row. */ int continuation_lines_width; }; @@ -842,6 +859,10 @@ extern int fonts_changed_p; extern struct glyph space_glyph; +/* Frame being updated by update_window/update_frame. */ + +extern struct frame *updating_frame; + /* Window being updated by update_window. This is non-null as long as update_window has not finished, and null otherwise. It's role is analogous to updating_frame. */ @@ -903,22 +924,30 @@ extern struct glyph_row scratch_glyph_row; : 0) /* Return the current height of the mode line of window W. If not - known from W's current glyph matrix, return a default based on the - height of the font of the face `modeline'. */ - -#define CURRENT_MODE_LINE_HEIGHT(W) \ - (MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix) \ - ? MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix) \ - : estimate_mode_line_height (XFRAME ((W)->frame), MODE_LINE_FACE_ID)) + known from current_mode_line_height, look at W's current glyph + matrix, or return a default based on the height of the font of the + face `mode-line'. */ + +#define CURRENT_MODE_LINE_HEIGHT(W) \ + (current_mode_line_height >= 0 \ + ? current_mode_line_height \ + : (MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix) \ + ? MATRIX_MODE_LINE_HEIGHT ((W)->current_matrix) \ + : estimate_mode_line_height (XFRAME ((W)->frame), \ + MODE_LINE_FACE_ID))) /* Return the current height of the top line of window W. If not - known from W's current glyph matrix, return an estimation based on - the height of the font of the face `top-line'. */ - -#define CURRENT_HEADER_LINE_HEIGHT(W) \ - (MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix) \ - ? MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix) \ - : estimate_mode_line_height (XFRAME ((W)->frame), HEADER_LINE_FACE_ID)) + known from current_header_line_height, look at W's current glyph + matrix, or return an estimation based on the height of the font of + the face `header-line'. */ + +#define CURRENT_HEADER_LINE_HEIGHT(W) \ + (current_header_line_height >= 0 \ + ? current_header_line_height \ + : (MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix) \ + ? MATRIX_HEADER_LINE_HEIGHT ((W)->current_matrix) \ + : estimate_mode_line_height (XFRAME ((W)->frame), \ + HEADER_LINE_FACE_ID))) /* Return the height of the desired mode line of window W. */ @@ -939,12 +968,12 @@ extern struct glyph_row scratch_glyph_row; /* Width of display region of window W. For terminal frames, this equals the width of W since there are no vertical scroll bars. For window system frames, the value has to be corrected by the pixel - width of vertical scroll bars, and bitmap areas. */ + width of vertical scroll bars, and fringes. */ #define WINDOW_DISPLAY_PIXEL_WIDTH(W) \ (((XFASTINT ((W)->width) \ - FRAME_SCROLL_BAR_WIDTH (XFRAME (WINDOW_FRAME ((W)))) \ - - FRAME_FLAGS_AREA_COLS (XFRAME (WINDOW_FRAME ((W))))) \ + - FRAME_FRINGE_COLS (XFRAME (WINDOW_FRAME ((W))))) \ * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W)))))) /* Height of the display region of W, including a mode line, if any. */ @@ -988,7 +1017,7 @@ extern struct glyph_row scratch_glyph_row; (FRAME_INTERNAL_BORDER_WIDTH_SAFE (XFRAME (WINDOW_FRAME ((W)))) \ + (WINDOW_LEFT_MARGIN ((W)) \ * CANON_X_UNIT (XFRAME (WINDOW_FRAME ((W))))) \ - + FRAME_LEFT_FLAGS_AREA_WIDTH (XFRAME (WINDOW_FRAME ((W))))) + + FRAME_LEFT_FRINGE_WIDTH (XFRAME (WINDOW_FRAME ((W))))) /* Right edge of window W in pixels, relative to its frame. */ @@ -1122,6 +1151,8 @@ enum lface_attribute_index LFACE_STRIKE_THROUGH_INDEX, LFACE_BOX_INDEX, LFACE_FONT_INDEX, + LFACE_INHERIT_INDEX, + LFACE_AVGWIDTH_INDEX, LFACE_VECTOR_SIZE }; @@ -1169,8 +1200,9 @@ struct face font may still be used somewhere else. */ XFontStruct *font; - /* Background stipple or bitmap used for this face. */ - Pixmap stipple; + /* Background stipple or bitmap used for this face. This is + an id as returned from load_pixmap. */ + int stipple; #else /* not HAVE_WINDOW_SYSTEM */ @@ -1215,7 +1247,11 @@ struct face unsigned int pixmap_w, pixmap_h; /* Non-zero means characters in this face have a box that thickness - around them. */ + around them. If it is negative, the absolute value indicates the + thickness, and the horizontal lines of box (top and bottom) are + drawn inside of characters glyph area. The vartical lines of box + (left and right) are drawn as the same way as the case that this + value is positive. */ int box_line_width; /* Type of box drawn. A value of FACE_NO_BOX means no box is drawn @@ -1256,7 +1292,7 @@ struct face unsigned background_defaulted_p : 1; /* 1 means that either no color is specified for underlining or that - the the specified color couldn't be loaded. Use the foreground + the specified color couldn't be loaded. Use the foreground color when drawing in that case. */ unsigned underline_defaulted_p : 1; @@ -1277,6 +1313,11 @@ struct face unsigned tty_reverse_p : 1; unsigned tty_blinking_p : 1; + /* 1 means that colors of this face may not be freed because they + have been copied bitwise from a base face (see + realize_x_face). */ + unsigned colors_copied_bitwise_p : 1; + /* Next and previous face in hash collision list of face cache. */ struct face *next, *prev; @@ -1311,7 +1352,7 @@ enum face_id DEFAULT_FACE_ID, MODE_LINE_FACE_ID, TOOL_BAR_FACE_ID, - BITMAP_AREA_FACE_ID, + FRINGE_FACE_ID, HEADER_LINE_FACE_ID, SCROLL_BAR_FACE_ID, BORDER_FACE_ID, @@ -1338,6 +1379,10 @@ struct face_cache /* The allocated size, and number of used slots of faces_by_id. */ int size, used; + + /* Flag indicating that attributes of the `menu' face have been + changed. */ + unsigned menu_face_changed_p : 1; }; @@ -1554,9 +1599,9 @@ struct it /* Vector of glyphs for control character translation. The pointer dpvec is set to ctl_chars when a control character is translated. This vector is also used for incomplete multibyte character - translation (e.g \222\244). Such a character is at most 3 bytes, - thus we need at most 12 bytes here. */ - Lisp_Object ctl_chars[12]; + translation (e.g \222\244). Such a character is at most 4 bytes, + thus we need at most 16 bytes here. */ + Lisp_Object ctl_chars[16]; /* Current buffer or string position of the iterator, including position in overlay strings etc. */ @@ -1591,6 +1636,7 @@ struct it enum glyph_row_area area; unsigned multibyte_p : 1; unsigned string_from_display_prop_p : 1; + unsigned display_ellipsis_p : 1; Lisp_Object space_width; short voffset; Lisp_Object font_height; @@ -1641,9 +1687,12 @@ struct it character have been put on the previous line. */ unsigned starts_in_middle_of_char_p : 1; + /* If 1, saved_face_id contains the id of the face in front of text + skipped due to selective display. */ + unsigned face_before_selective_p : 1; + /* The ID of the default face to use. One of DEFAULT_FACE_ID, - MODE_LINE_FACE_ID, or TOOL_BAR_FACE_ID, depending on what we - are displaying. */ + MODE_LINE_FACE_ID, etc, depending on what we are displaying. */ int base_face_id; /* If what == IT_CHARACTER, character and length in bytes. This is @@ -1849,8 +1898,12 @@ struct redisplay_interface void (*update_window_begin_hook) P_ ((struct window *w)); /* Function to call after window W has been updated in window-based - redisplay. CURSOR_ON_P non-zero means switch cursor on. */ - void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p)); + redisplay. CURSOR_ON_P non-zero means switch cursor on. + MOUSE_FACE_OVERWRITTEN_P non-zero means that some lines in W + that contained glyphs in mouse-face were overwritten, so we + have to update the mouse hightlight. */ + void (*update_window_end_hook) P_ ((struct window *w, int cursor_on_p, + int mouse_face_overwritten_p)); /* Move cursor to row/column position VPOS/HPOS, pixel coordinates Y/X. HPOS/VPOS are window-relative row and column numbers and X/Y @@ -1860,6 +1913,9 @@ struct redisplay_interface /* Flush the display of frame F. For X, this is XFlush. */ void (*flush_display) P_ ((struct frame *f)); + /* Clear the mouse hightlight in window W, if there is any. */ + void (*clear_mouse_face) P_ ((struct window *w)); + /* Set *LEFT and *RIGHT to the left and right overhang of GLYPH on frame F. */ void (*get_glyph_overhangs) P_ ((struct glyph *glyph, struct frame *f, @@ -1934,6 +1990,22 @@ struct image unsigned long *colors; int ncolors; + /* A single `background color' for this image, for the use of anyone that + cares about such a thing. Only valid if the `background_valid' field + is true. This should generally be accessed by calling the accessor + macro `IMAGE_BACKGROUND', which will heuristically calculate a value + if necessary. */ + unsigned long background; + + /* True if this image has a `transparent' background -- that is, is + uses an image mask. The accessor macro for this is + `IMAGE_BACKGROUND_TRANSPARENT'. */ + unsigned background_transparent : 1; + + /* True if the `background' and `background_transparent' fields are + valid, respectively. */ + unsigned background_valid : 1, background_transparent_valid : 1; + /* Width and height of the image. */ int width, height; @@ -1955,8 +2027,8 @@ struct image /* Relief to draw around the image. */ int relief; - /* Optional margin around the image. This includes the relief. */ - int margin; + /* Optional margins around the image. This includes the relief. */ + int hmargin, vmargin; /* Reference to the type of the image. */ struct image_type *type; @@ -2083,12 +2155,20 @@ extern int auto_raise_tool_bar_buttons_p; /* Margin around tool-bar buttons in pixels. */ -extern int tool_bar_button_margin; +extern Lisp_Object Vtool_bar_button_margin; /* Thickness of relief to draw around tool-bar buttons. */ extern int tool_bar_button_relief; +/* Default values of the above variables. */ + +#define DEFAULT_TOOL_BAR_BUTTON_MARGIN 1 +#define DEFAULT_TOOL_BAR_BUTTON_RELIEF 3 + +/* The height in pixels of the default tool-bar images. */ + +#define DEFAULT_TOOL_BAR_IMAGE_HEIGHT 24 /*********************************************************************** @@ -2097,8 +2177,13 @@ extern int tool_bar_button_relief; /* Defined in xdisp.c */ +struct glyph_row *row_containing_pos P_ ((struct window *, int, + struct glyph_row *, + struct glyph_row *, int)); +int string_buffer_position P_ ((struct window *, Lisp_Object, int)); +int line_bottom_y P_ ((struct it *)); int display_prop_intangible_p P_ ((Lisp_Object)); -void resize_echo_area_axactly P_ ((void)); +void resize_echo_area_exactly P_ ((void)); int resize_mini_window P_ ((struct window *, int)); int try_window P_ ((Lisp_Object, struct text_pos)); void window_box P_ ((struct window *, int, int *, int *, int *, int *)); @@ -2109,7 +2194,7 @@ int window_box_left P_ ((struct window *, int)); int window_box_right P_ ((struct window *, int)); void window_box_edges P_ ((struct window *, int, int *, int *, int *, int *)); void mark_window_display_accurate P_ ((Lisp_Object, int)); -void redisplay_preserve_echo_area P_ ((void)); +void redisplay_preserve_echo_area P_ ((int)); void set_cursor_from_row P_ ((struct window *, struct glyph_row *, struct glyph_matrix *, int, int, int, int)); void init_iterator P_ ((struct it *, struct window *, int, @@ -2117,13 +2202,15 @@ void init_iterator P_ ((struct it *, struct window *, int, void init_iterator_to_row_start P_ ((struct it *, struct window *, struct glyph_row *)); int get_next_display_element P_ ((struct it *)); -void set_iterator_to_next P_ ((struct it *)); +void set_iterator_to_next P_ ((struct it *, int)); void produce_glyphs P_ ((struct it *)); void produce_special_glyphs P_ ((struct it *, enum display_element_type)); void start_display P_ ((struct it *, struct window *, struct text_pos)); void move_it_to P_ ((struct it *, int, int, int, int, int)); void move_it_vertically P_ ((struct it *, int)); +void move_it_vertically_backward P_ ((struct it *, int)); void move_it_by_lines P_ ((struct it *, int, int)); +void move_it_past_eol P_ ((struct it *)); int frame_mode_line_height P_ ((struct frame *)); void highlight_trailing_whitespace P_ ((struct frame *, struct glyph_row *)); int tool_bar_item_info P_ ((struct frame *, struct glyph *, int *)); @@ -2132,6 +2219,9 @@ extern Lisp_Object Vshow_trailing_whitespace; extern int redisplaying_p; extern Lisp_Object Vimage_types; extern void add_to_log P_ ((char *, Lisp_Object, Lisp_Object)); +extern int help_echo_showing_p; +extern int current_mode_line_height, current_header_line_height; +extern int cursor_in_non_selected_windows; /* Defined in sysdep.c */ @@ -2144,9 +2234,6 @@ void init_sigio P_ ((int)); /* Defined in xfaces.c */ -#ifdef USE_X_TOOLKIT -void x_set_menu_resources_from_menu_face P_ ((struct frame *, Widget)); -#endif #ifdef HAVE_X_WINDOWS void x_free_colors P_ ((struct frame *, unsigned long *, int)); #endif @@ -2172,11 +2259,12 @@ void free_frame_faces P_ ((struct frame *)); void recompute_basic_faces P_ ((struct frame *)); int face_at_buffer_position P_ ((struct window *, int, int, int, int *, int, int)); -int face_at_string_position P_ ((struct window *, Lisp_Object, - int, int, int, int, int *, enum face_id)); +int face_at_string_position P_ ((struct window *, Lisp_Object, int, int, int, + int, int *, enum face_id, int)); int compute_char_face P_ ((struct frame *, int, Lisp_Object)); void free_all_realized_faces P_ ((Lisp_Object)); extern Lisp_Object Qforeground_color, Qbackground_color; +extern char unspecified_fg[], unspecified_bg[]; void free_realized_multibyte_face P_ ((struct frame *, int)); /* Defined in xfns.c */ @@ -2201,13 +2289,39 @@ void forall_images_in_image_cache P_ ((struct frame *, int valid_image_p P_ ((Lisp_Object)); void prepare_image_for_display P_ ((struct frame *, struct image *)); int lookup_image P_ ((struct frame *, Lisp_Object)); -extern struct frame *tip_frame; + +#ifdef HAVE_X_WINDOWS +unsigned long image_background P_ ((struct image *, struct frame *, + XImage *ximg)); +int image_background_transparent P_ ((struct image *, struct frame *, + XImage *mask)); +#endif /* HAVE_X_WINDOWS */ + +extern Lisp_Object tip_frame; extern Window tip_window; -EXFUN (Fx_show_tip, 4); +EXFUN (Fx_show_tip, 6); EXFUN (Fx_hide_tip, 0); -extern void start_busy_cursor P_ ((void)); -extern void cancel_busy_cursor P_ ((void)); -extern int display_busy_cursor_p; +extern void start_hourglass P_ ((void)); +extern void cancel_hourglass P_ ((void)); +extern int display_hourglass_p; + +/* Returns the background color of IMG, calculating one heuristically if + necessary. If non-zero, XIMG is an existing XImage object to use for + the heuristic. */ + +#define IMAGE_BACKGROUND(img, f, ximg) \ + ((img)->background_valid \ + ? (img)->background \ + : image_background (img, f, ximg)) + +/* Returns true if IMG has a `transparent' background, using heuristics + to decide if necessary. If non-zero, MASK is an existing XImage + object to use for the heuristic. */ + +#define IMAGE_BACKGROUND_TRANSPARENT(img, f, mask) \ + ((img)->background_transparent_valid \ + ? (img)->background_transparent \ + : image_background_transparent (img, f, mask)) #endif /* HAVE_WINDOW_SYSTEM */ @@ -2218,8 +2332,11 @@ int popup_activated P_ ((void)); /* Defined in dispnew.c */ -int estimate_mode_line_height P_ ((struct frame *, enum face_id)); -Lisp_Object mode_line_string P_ ((struct window *, int, int, int, int *)); +extern int inverse_video; +extern int required_matrix_width P_ ((struct window *)); +extern int required_matrix_height P_ ((struct window *)); +extern int estimate_mode_line_height P_ ((struct frame *, enum face_id)); +extern Lisp_Object mode_line_string P_ ((struct window *, int, int, int, int *)); extern void redraw_frame P_ ((struct frame *)); extern void redraw_garbaged_frames P_ ((void)); extern void cancel_line P_ ((int, struct frame *)); @@ -2260,13 +2377,15 @@ int direct_output_forward_char P_ ((int)); int update_frame P_ ((struct frame *, int, int)); void update_single_window P_ ((struct window *, int)); int scrolling P_ ((struct frame *)); -int buffer_posn_from_coords P_ ((struct window *, int *, int *)); +void buffer_posn_from_coords P_ ((struct window *, int *, int *, + Lisp_Object *, struct display_pos *)); void do_pending_window_change P_ ((int)); void change_frame_size P_ ((struct frame *, int, int, int, int, int)); void bitch_at_user P_ ((void)); Lisp_Object sit_for P_ ((int, int, int, int, int)); void init_display P_ ((void)); void syms_of_display P_ ((void)); +extern Lisp_Object Qredisplay_dont_pause; /* Defined in term.c */ @@ -2280,7 +2399,6 @@ extern void set_scroll_region P_ ((int, int)); extern void turn_off_insert P_ ((void)); extern void turn_off_highlight P_ ((void)); extern void background_highlight P_ ((void)); -extern void reassert_line_highlight P_ ((int, int)); extern void clear_frame P_ ((void)); extern void clear_end_of_line P_ ((int)); extern void clear_end_of_line_raw P_ ((int)); @@ -2292,7 +2410,6 @@ extern void calculate_costs P_ ((struct frame *)); extern void term_init P_ ((char *)); extern void fatal P_ ((/* char *, ... */)); void cursor_to P_ ((int, int)); -void change_line_highlight P_ ((int, int, int, int)); /* Defined in scroll.c */