Mercurial > emacs
changeset 29474:a4a198e7b4e5
(struct it): Add starts_in_middle_of_char_p.
(struct glyph_row): Add starts_in_middle_of_char_p and
ends_in_middle_of_char_p.
(MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
ends_in_middle_of_char_p flag.
(MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Tue, 06 Jun 2000 20:02:59 +0000 |
parents | 80835e075d87 |
children | b96b18a0f34b |
files | src/dispextern.h |
diffstat | 1 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dispextern.h Tue Jun 06 20:02:39 2000 +0000 +++ b/src/dispextern.h Tue Jun 06 20:02:59 2000 +0000 @@ -667,6 +667,16 @@ /* 1 in a current row means this row is overlapped by another row. */ unsigned overlapped_p : 1; + /* 1 means this line ends in the middle of a character consisting + of more than one glyph. Some glyphs have been put in this row, + the rest are put in rows below this one. */ + unsigned ends_in_middle_of_char_p : 1; + + /* 1 means this line starts in the middle of a character consisting + of more than one glyph. Some glyphs have been put in the + previoius row, the rest are put in this row. */ + unsigned starts_in_middle_of_char_p : 1; + /* 1 in a current row means this row overlaps others. */ unsigned overlapping_p : 1; @@ -795,7 +805,8 @@ #define MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P(ROW) \ ((ROW)->end.dpvec_index >= 0 \ - || (ROW)->end.overlay_string_index >= 0) + || (ROW)->end.overlay_string_index >= 0 \ + || (ROW)->ends_in_middle_of_char_p) /* Non-zero if ROW ends in the middle of an overlay string. */ @@ -806,6 +817,7 @@ #define MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P(ROW) \ ((ROW)->start.dpvec_index >= 0 \ + || (ROW)->starts_in_middle_of_char_p \ || ((ROW)->start.overlay_string_index >= 0 \ && (ROW)->start.string_pos.charpos > 0)) @@ -1622,7 +1634,12 @@ /* 1 means the actual glyph is not available in the current system. */ - unsigned glyph_not_available_p : 1; + unsigned glyph_not_available_p : 1; + + /* 1 means the next line in display_line continues a character + consisting of more than one glyph, and some glyphs of this + character have been put on the previous line. */ + unsigned starts_in_middle_of_char_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