diff options
| author | Gerd Moellmann | 2000-06-06 20:03:57 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-06-06 20:03:57 +0000 |
| commit | 666852af779a33301b352898195df9b472143ce5 (patch) | |
| tree | de976ae7293902ec999bad576875fced71af140f /src | |
| parent | 91004049759c848b217a947f5043983bbc25f791 (diff) | |
| download | emacs-666852af779a33301b352898195df9b472143ce5.tar.gz emacs-666852af779a33301b352898195df9b472143ce5.zip | |
(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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 16 | ||||
| -rw-r--r-- | src/dispextern.h | 21 |
2 files changed, 35 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 654c9f221b8..51d4b7d1ee5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,21 @@ | |||
| 1 | 2000-06-06 Gerd Moellmann <gerd@gnu.org> | 1 | 2000-06-06 Gerd Moellmann <gerd@gnu.org> |
| 2 | 2 | ||
| 3 | * xdisp.c (display_line): Set row's and iterator's | ||
| 4 | starts_in_middle_of_char_p and ends_in_middle_of_char_p flags. | ||
| 5 | Set cursor even if row ends in the middle of a character. | ||
| 6 | (dump_glyph_row): Print values of new flags. | ||
| 7 | (redisplay_window) <cursor movement in unchanged window>: When | ||
| 8 | point has been moved forward, and PT is at the end of the cursor | ||
| 9 | row, don't place the cursor in the next row if the cursor row ends | ||
| 10 | in the middle of a character or at ZV. | ||
| 11 | |||
| 12 | * dispextern.h (struct it): Add starts_in_middle_of_char_p. | ||
| 13 | (struct glyph_row): Add starts_in_middle_of_char_p and | ||
| 14 | ends_in_middle_of_char_p. | ||
| 15 | (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's | ||
| 16 | ends_in_middle_of_char_p flag. | ||
| 17 | (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise. | ||
| 18 | |||
| 3 | * term.c (append_glyph): Revert change of 2000-06-06. | 19 | * term.c (append_glyph): Revert change of 2000-06-06. |
| 4 | 20 | ||
| 5 | * xdisp.c (display_line): Revert change of 2000-06-06. Treat | 21 | * xdisp.c (display_line): Revert change of 2000-06-06. Treat |
diff --git a/src/dispextern.h b/src/dispextern.h index 68334438676..459762132ce 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -667,6 +667,16 @@ struct glyph_row | |||
| 667 | /* 1 in a current row means this row is overlapped by another row. */ | 667 | /* 1 in a current row means this row is overlapped by another row. */ |
| 668 | unsigned overlapped_p : 1; | 668 | unsigned overlapped_p : 1; |
| 669 | 669 | ||
| 670 | /* 1 means this line ends in the middle of a character consisting | ||
| 671 | of more than one glyph. Some glyphs have been put in this row, | ||
| 672 | the rest are put in rows below this one. */ | ||
| 673 | unsigned ends_in_middle_of_char_p : 1; | ||
| 674 | |||
| 675 | /* 1 means this line starts in the middle of a character consisting | ||
| 676 | of more than one glyph. Some glyphs have been put in the | ||
| 677 | previoius row, the rest are put in this row. */ | ||
| 678 | unsigned starts_in_middle_of_char_p : 1; | ||
| 679 | |||
| 670 | /* 1 in a current row means this row overlaps others. */ | 680 | /* 1 in a current row means this row overlaps others. */ |
| 671 | unsigned overlapping_p : 1; | 681 | unsigned overlapping_p : 1; |
| 672 | 682 | ||
| @@ -795,7 +805,8 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); | |||
| 795 | 805 | ||
| 796 | #define MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P(ROW) \ | 806 | #define MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P(ROW) \ |
| 797 | ((ROW)->end.dpvec_index >= 0 \ | 807 | ((ROW)->end.dpvec_index >= 0 \ |
| 798 | || (ROW)->end.overlay_string_index >= 0) | 808 | || (ROW)->end.overlay_string_index >= 0 \ |
| 809 | || (ROW)->ends_in_middle_of_char_p) | ||
| 799 | 810 | ||
| 800 | /* Non-zero if ROW ends in the middle of an overlay string. */ | 811 | /* Non-zero if ROW ends in the middle of an overlay string. */ |
| 801 | 812 | ||
| @@ -806,6 +817,7 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int)); | |||
| 806 | 817 | ||
| 807 | #define MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P(ROW) \ | 818 | #define MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P(ROW) \ |
| 808 | ((ROW)->start.dpvec_index >= 0 \ | 819 | ((ROW)->start.dpvec_index >= 0 \ |
| 820 | || (ROW)->starts_in_middle_of_char_p \ | ||
| 809 | || ((ROW)->start.overlay_string_index >= 0 \ | 821 | || ((ROW)->start.overlay_string_index >= 0 \ |
| 810 | && (ROW)->start.string_pos.charpos > 0)) | 822 | && (ROW)->start.string_pos.charpos > 0)) |
| 811 | 823 | ||
| @@ -1622,7 +1634,12 @@ struct it | |||
| 1622 | 1634 | ||
| 1623 | /* 1 means the actual glyph is not available in the current | 1635 | /* 1 means the actual glyph is not available in the current |
| 1624 | system. */ | 1636 | system. */ |
| 1625 | unsigned glyph_not_available_p : 1; | 1637 | unsigned glyph_not_available_p : 1; |
| 1638 | |||
| 1639 | /* 1 means the next line in display_line continues a character | ||
| 1640 | consisting of more than one glyph, and some glyphs of this | ||
| 1641 | character have been put on the previous line. */ | ||
| 1642 | unsigned starts_in_middle_of_char_p : 1; | ||
| 1626 | 1643 | ||
| 1627 | /* The ID of the default face to use. One of DEFAULT_FACE_ID, | 1644 | /* The ID of the default face to use. One of DEFAULT_FACE_ID, |
| 1628 | MODE_LINE_FACE_ID, or TOOL_BAR_FACE_ID, depending on what we | 1645 | MODE_LINE_FACE_ID, or TOOL_BAR_FACE_ID, depending on what we |