2004-12-31 Richard M. Stallman <rms@gnu.org>
+ * xdisp.c (setup_for_ellipsis, get_next_display_element):
+ Set it->ellipsis_p to 1 or 0.
+ (display_line): Record whether row ends in mid-ellipsis.
+ (set_cursor_from_row): If ends in ellipsis. find start of it.
+ (cursor_row_p): If PT's at the end of the ellipsis the row
+ ends within, don't display cursor on this row.
+
+ * dispextern.h (struct it): New element ellipsis_p.
+ (struct glyph_row): New element ends_in_ellipsis_p.
+
+ * xdisp.c (BUFFER_POS_REACHED_P): We haven't reached the specified
+ position if we're reading from something other than the buffer.
+
* window.c (window_scroll_pixel_based): Only look at
Vscroll_preserve_screen_position if the old PT can't be kept.
(syms_of_window) <scroll-preserve-screen-position>: Doc fix.
/* 1 means this row currently shows the cursor in the right fringe. */
unsigned cursor_in_fringe_p : 1;
+ /* 1 means the last glyph in the row is part of an ellipsis. */
+ unsigned ends_in_ellipsis_p : 1;
+
/* Non-zero means display a bitmap on X frames indicating that this
the first line of the buffer. */
unsigned indicate_bob_p : 1;
Don't handle some `display' properties in these strings. */
unsigned string_from_display_prop_p : 1;
+ /* When METHOD == next_element_from_display_vector,
+ this is 1 if we're doing an ellipsis. Otherwise meaningless. */
+ unsigned ellipsis_p : 1;
+
/* Display table in effect or null for none. */
struct Lisp_Char_Table *dp;