From 47fa2a1a1551565b92306a159e0c4b91b9876b6c Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 3 Nov 2007 03:46:57 +0000 Subject: (face_at_buffer_position_no_overlays): Add decl. --- src/dispextern.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/dispextern.h') diff --git a/src/dispextern.h b/src/dispextern.h index 9e899f9ccb2..c59403b0205 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1808,6 +1808,9 @@ struct it_slice Lisp_Object height; }; +/* Input sources for fetching characters or data to display. + The input source is found in the `method' field. */ + enum it_method { GET_FROM_BUFFER = 0, GET_FROM_DISPLAY_VECTOR, @@ -2856,6 +2859,9 @@ 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_buffer_position_no_overlays 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)); int merge_faces P_ ((struct frame *, Lisp_Object, int, int)); -- cgit v1.2.1 From bae8f08be2aa6315390a2a1839b58e3bd278b943 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sun, 4 Nov 2007 07:31:56 +0000 Subject: (struct it): New elt string_overlays. New elt from_overlay, also in stack. Rearrange a few elements. (face_for_overlay_string): Decl renamed from face_at_buffer_position_no_overlays, and add argument. --- src/dispextern.h | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) (limited to 'src/dispextern.h') diff --git a/src/dispextern.h b/src/dispextern.h index c59403b0205..a3c62637497 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1912,20 +1912,28 @@ struct it position in overlay strings etc. */ struct display_pos current; + /* Total number of overlay strings to process. This can be > + OVERLAY_STRING_CHUNK_SIZE. */ + int n_overlay_strings; + /* Vector of overlays to process. Overlay strings are processed OVERLAY_STRING_CHUNK_SIZE at a time. */ #define OVERLAY_STRING_CHUNK_SIZE 16 Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; - /* Total number of overlay strings to process. This can be > - OVERLAY_STRING_CHUNK_SIZE. */ - int n_overlay_strings; + /* For each overlay string, the overlay it came from. */ +#define OVERLAY_STRING_CHUNK_SIZE 16 + Lisp_Object string_overlays[OVERLAY_STRING_CHUNK_SIZE]; /* If non-nil, a Lisp string being processed. If current.overlay_string_index >= 0, this is an overlay string from pos. */ Lisp_Object string; + /* If non-nil, we are processing a string that came + from a `display' property given by an overlay. */ + Lisp_Object from_overlay; + /* Stack of saved values. New entries are pushed when we begin to process an overlay string or a string from a `glyph' property. Entries are popped when we return to deliver display elements @@ -1961,6 +1969,7 @@ struct it /* current text and display positions. */ struct text_pos position; struct display_pos current; + Lisp_Object from_overlay; enum glyph_row_area area; enum it_method method; unsigned multibyte_p : 1; @@ -1977,13 +1986,6 @@ struct it /* Stack pointer. */ int sp; - /* Setting of buffer-local variable selective-display-ellipsis. */ - unsigned selective_display_ellipsis_p : 1; - - /* 1 means control characters are translated into the form `^C' - where the `^' can be replaced by a display table entry. */ - unsigned ctl_arrow_p : 1; - /* -1 means selective display hides everything between a \r and the next newline; > 0 means hide lines indented more than that value. */ int selective; @@ -1995,6 +1997,16 @@ struct it /* Face to use. */ int face_id; + /* Setting of buffer-local variable selective-display-ellipsis. */ + unsigned selective_display_ellipsis_p : 1; + + /* 1 means control characters are translated into the form `^C' + where the `^' can be replaced by a display table entry. */ + unsigned ctl_arrow_p : 1; + + /* 1 means lines are truncated. */ + unsigned truncate_lines_p : 1; + /* Non-zero means that the current face has a box. */ unsigned face_box_p : 1; @@ -2074,9 +2086,6 @@ struct it Lisp_Object object; struct text_pos position; - /* 1 means lines are truncated. */ - unsigned truncate_lines_p : 1; - /* Number of columns per \t. */ short tab_width; @@ -2859,9 +2868,9 @@ 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_buffer_position_no_overlays P_ ((struct window *, int, int, - int, int *, - int, int)); +int face_for_overlay_string P_ ((struct window *, int, int, + int, int *, + int, int, Lisp_Object)); int face_at_string_position P_ ((struct window *, Lisp_Object, int, int, int, int, int *, enum face_id, int)); int merge_faces P_ ((struct frame *, Lisp_Object, int, int)); -- cgit v1.2.1 From 2013dccd1acafe015fa170d0eff849cf1e399a56 Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Wed, 7 Nov 2007 15:30:51 +0000 Subject: (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE twice. --- src/dispextern.h | 1 - 1 file changed, 1 deletion(-) (limited to 'src/dispextern.h') diff --git a/src/dispextern.h b/src/dispextern.h index a3c62637497..f96a5ace4e9 100644 --- a/src/dispextern.h +++ b/src/dispextern.h @@ -1922,7 +1922,6 @@ struct it Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; /* For each overlay string, the overlay it came from. */ -#define OVERLAY_STRING_CHUNK_SIZE 16 Lisp_Object string_overlays[OVERLAY_STRING_CHUNK_SIZE]; /* If non-nil, a Lisp string being processed. If -- cgit v1.2.1