aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispextern.h
diff options
context:
space:
mode:
authorKenichi Handa2010-05-25 09:35:50 +0900
committerKenichi Handa2010-05-25 09:35:50 +0900
commit8a2b8c4f7c2a18254fc0b34f236d7487fc7917d4 (patch)
tree48e379874bd0bf796a12a5f43b369e0d6691a125 /src/dispextern.h
parent10f72a3793087770f131a0dc729f29ff50f08ad9 (diff)
parent7eca871a82d582b986c638343f74d16b819a0f14 (diff)
downloademacs-8a2b8c4f7c2a18254fc0b34f236d7487fc7917d4.tar.gz
emacs-8a2b8c4f7c2a18254fc0b34f236d7487fc7917d4.zip
merge trunk
Diffstat (limited to 'src/dispextern.h')
-rw-r--r--src/dispextern.h40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index a68bc3e9899..f0d14c0e487 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -748,21 +748,29 @@ struct glyph_row
748 748
749 /* First position in this row. This is the text position, including 749 /* First position in this row. This is the text position, including
750 overlay position information etc, where the display of this row 750 overlay position information etc, where the display of this row
751 started, and can thus be less the position of the first glyph 751 started, and can thus be less than the position of the first
752 (e.g. due to invisible text or horizontal scrolling). BIDI Note: 752 glyph (e.g. due to invisible text or horizontal scrolling).
753 This is the smallest character position in the row, but not 753 BIDI Note: In R2L rows, that have its reversed_p flag set, this
754 necessarily the character that is the leftmost on the display. */ 754 position is at or beyond the right edge of the row. */
755 struct display_pos start; 755 struct display_pos start;
756 756
757 /* Text position at the end of this row. This is the position after 757 /* Text position at the end of this row. This is the position after
758 the last glyph on this row. It can be greater than the last 758 the last glyph on this row. It can be greater than the last
759 glyph position + 1, due to truncation, invisible text etc. In an 759 glyph position + 1, due to a newline that ends the line,
760 up-to-date display, this should always be equal to the start 760 truncation, invisible text etc. In an up-to-date display, this
761 position of the next row. BIDI Note: this is the character whose 761 should always be equal to the start position of the next row.
762 buffer position is the largest, but not necessarily the rightmost 762 BIDI Note: In R2L rows, this position is at or beyond the left
763 one on the display. */ 763 edge of the row. */
764 struct display_pos end; 764 struct display_pos end;
765 765
766 /* The smallest and the largest buffer positions that contributed to
767 glyphs in this row. Note that due to bidi reordering, these are
768 in general different from the text positions stored in `start'
769 and `end' members above, and also different from the buffer
770 positions recorded in the glyphs displayed the leftmost and
771 rightmost on the screen. */
772 struct text_pos minpos, maxpos;
773
766 /* Non-zero means the overlay arrow bitmap is on this line. 774 /* Non-zero means the overlay arrow bitmap is on this line.
767 -1 means use default overlay arrow bitmap, else 775 -1 means use default overlay arrow bitmap, else
768 it specifies actual fringe bitmap number. */ 776 it specifies actual fringe bitmap number. */
@@ -947,16 +955,16 @@ struct glyph_row *matrix_row P_ ((struct glyph_matrix *, int));
947 displayed by ROW, which is not necessarily the smallest horizontal 955 displayed by ROW, which is not necessarily the smallest horizontal
948 position. */ 956 position. */
949 957
950#define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->start.pos.charpos) 958#define MATRIX_ROW_START_CHARPOS(ROW) ((ROW)->minpos.charpos)
951#define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->start.pos.bytepos) 959#define MATRIX_ROW_START_BYTEPOS(ROW) ((ROW)->minpos.bytepos)
952 960
953/* Return the character/ byte position at which ROW ends. BIDI Note: 961/* Return the character/ byte position at which ROW ends. BIDI Note:
954 this is the largest character/byte position among characters in 962 this is the largest character/byte position among characters in
955 ROW, i.e. the last logical-order character displayed by ROW, which 963 ROW, i.e. the last logical-order character displayed by ROW, which
956 is not necessarily the largest horizontal position. */ 964 is not necessarily the largest horizontal position. */
957 965
958#define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->end.pos.charpos) 966#define MATRIX_ROW_END_CHARPOS(ROW) ((ROW)->maxpos.charpos)
959#define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->end.pos.bytepos) 967#define MATRIX_ROW_END_BYTEPOS(ROW) ((ROW)->maxpos.bytepos)
960 968
961/* Return the vertical position of ROW in MATRIX. */ 969/* Return the vertical position of ROW in MATRIX. */
962 970
@@ -1789,7 +1797,7 @@ struct bidi_it {
1789 EMACS_INT next_en_pos; /* position of next EN char for ET */ 1797 EMACS_INT next_en_pos; /* position of next EN char for ET */
1790 EMACS_INT ignore_bn_limit; /* position until which to ignore BNs */ 1798 EMACS_INT ignore_bn_limit; /* position until which to ignore BNs */
1791 bidi_dir_t sor; /* direction of start-of-run in effect */ 1799 bidi_dir_t sor; /* direction of start-of-run in effect */
1792 int scan_dir; /* direction of text scan */ 1800 int scan_dir; /* direction of text scan, 1: forw, -1: back */
1793 int stack_idx; /* index of current data on the stack */ 1801 int stack_idx; /* index of current data on the stack */
1794 /* Note: Everything from here on is not copied/saved when the bidi 1802 /* Note: Everything from here on is not copied/saved when the bidi
1795 iterator state is saved, pushed, or popped. So only put here 1803 iterator state is saved, pushed, or popped. So only put here
@@ -2913,8 +2921,8 @@ void mark_window_display_accurate P_ ((Lisp_Object, int));
2913void redisplay_preserve_echo_area P_ ((int)); 2921void redisplay_preserve_echo_area P_ ((int));
2914int set_cursor_from_row P_ ((struct window *, struct glyph_row *, 2922int set_cursor_from_row P_ ((struct window *, struct glyph_row *,
2915 struct glyph_matrix *, int, int, int, int)); 2923 struct glyph_matrix *, int, int, int, int));
2916void init_iterator P_ ((struct it *, struct window *, int, 2924void init_iterator P_ ((struct it *, struct window *, EMACS_INT,
2917 int, struct glyph_row *, enum face_id)); 2925 EMACS_INT, struct glyph_row *, enum face_id));
2918void init_iterator_to_row_start P_ ((struct it *, struct window *, 2926void init_iterator_to_row_start P_ ((struct it *, struct window *,
2919 struct glyph_row *)); 2927 struct glyph_row *));
2920int get_next_display_element P_ ((struct it *)); 2928int get_next_display_element P_ ((struct it *));