Fix bug #13277 with TTY cursor positioning in a line with overlay arrow.
src/xdisp.c (set_cursor_from_row): Don't confuse a truncation or continuation glyph on a TTY with an indication of an empty line. src/dispextern.h: Improve commentary to glyph->charpos and glyph->object.
This commit is contained in:
parent
c88943a2a4
commit
7a3a74936f
3 changed files with 21 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-12-27 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (set_cursor_from_row): Don't confuse a truncation or
|
||||
continuation glyph on a TTY with an indication of an empty line.
|
||||
(Bug#13277)
|
||||
|
||||
2012-12-27 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* cygw32.c (Fcygwin_convert_file_name_to_windows)
|
||||
|
|
|
@ -317,13 +317,18 @@ struct glyph
|
|||
Lisp string, this is a position in that string. If it is a
|
||||
buffer, this is a position in that buffer. A value of -1
|
||||
together with a null object means glyph is a truncation glyph at
|
||||
the start of a row. */
|
||||
the start of a row. Right truncation and continuation glyphs at
|
||||
the right edge of a row have their position set to the next
|
||||
buffer position that is not shown on this row. Glyphs inserted
|
||||
by redisplay, such as the empty space after the end of a line on
|
||||
TTYs, have this set to -1. */
|
||||
ptrdiff_t charpos;
|
||||
|
||||
/* Lisp object source of this glyph. Currently either a buffer or
|
||||
a string, if the glyph was produced from characters which came from
|
||||
/* Lisp object source of this glyph. Currently either a buffer or a
|
||||
string, if the glyph was produced from characters which came from
|
||||
a buffer or a string; or 0 if the glyph was inserted by redisplay
|
||||
for its own purposes such as padding. */
|
||||
for its own purposes such as padding or truncation/continuation
|
||||
glyphs on TTYs. */
|
||||
Lisp_Object object;
|
||||
|
||||
/* Width in pixels. */
|
||||
|
|
|
@ -14241,7 +14241,12 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
|
|||
CHARPOS is zero or negative. */
|
||||
int empty_line_p =
|
||||
(row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end)
|
||||
&& INTEGERP (glyph->object) && glyph->charpos > 0;
|
||||
&& INTEGERP (glyph->object) && glyph->charpos > 0
|
||||
/* On a TTY, continued and truncated rows also have a glyph at
|
||||
their end whose OBJECT is zero and whose CHARPOS is
|
||||
positive (the continuation and truncation glyphs), but such
|
||||
rows are obviously not "empty". */
|
||||
&& !(row->continued_p || row->truncated_on_right_p);
|
||||
|
||||
if (row->ends_in_ellipsis_p && pos_after == last_pos)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue