comparison src/dispextern.h @ 108760:f528b6459bdd

merge trunk
author Kenichi Handa <handa@etlken>
date Tue, 25 May 2010 09:35:50 +0900
parents 0bb727f1d547 60bc561d59c5
children e16f43875a48
comparison
equal deleted inserted replaced
108759:0bb727f1d547 108760:f528b6459bdd
746 is constructed, i.e. after a call to display_line. */ 746 is constructed, i.e. after a call to display_line. */
747 unsigned hash; 747 unsigned hash;
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
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;
765 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. */
769 int overlay_arrow_bitmap; 777 int overlay_arrow_bitmap;
945 starts. BIDI Note: this is the smallest character/byte position 953 starts. BIDI Note: this is the smallest character/byte position
946 among characters in ROW, i.e. the first logical-order character 954 among characters in ROW, i.e. the first logical-order character
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
963 #define MATRIX_ROW_VPOS(ROW, MATRIX) ((ROW) - (MATRIX)->rows) 971 #define MATRIX_ROW_VPOS(ROW, MATRIX) ((ROW) - (MATRIX)->rows)
964 972
1787 struct bidi_saved_info prev_for_neutral; /* ...resolving neutrals */ 1795 struct bidi_saved_info prev_for_neutral; /* ...resolving neutrals */
1788 struct bidi_saved_info next_for_ws; /* character after sequence of ws */ 1796 struct bidi_saved_info next_for_ws; /* character after sequence of ws */
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
1796 stuff that is not part of the bidi iterator's state! */ 1804 stuff that is not part of the bidi iterator's state! */
1797 struct bidi_stack level_stack[BIDI_MAXLEVEL]; /* stack of embedding levels */ 1805 struct bidi_stack level_stack[BIDI_MAXLEVEL]; /* stack of embedding levels */
2911 2919
2912 void mark_window_display_accurate P_ ((Lisp_Object, int)); 2920 void mark_window_display_accurate P_ ((Lisp_Object, int));
2913 void redisplay_preserve_echo_area P_ ((int)); 2921 void redisplay_preserve_echo_area P_ ((int));
2914 int set_cursor_from_row P_ ((struct window *, struct glyph_row *, 2922 int 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));
2916 void init_iterator P_ ((struct it *, struct window *, int, 2924 void 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));
2918 void init_iterator_to_row_start P_ ((struct it *, struct window *, 2926 void init_iterator_to_row_start P_ ((struct it *, struct window *,
2919 struct glyph_row *)); 2927 struct glyph_row *));
2920 int get_next_display_element P_ ((struct it *)); 2928 int get_next_display_element P_ ((struct it *));
2921 void set_iterator_to_next P_ ((struct it *, int)); 2929 void set_iterator_to_next P_ ((struct it *, int));
2922 void start_display P_ ((struct it *, struct window *, struct text_pos)); 2930 void start_display P_ ((struct it *, struct window *, struct text_pos));