Commit 56cd55c8 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Fix bug #9530 on a TTY.

 src/xdisp.c (display_line): Record maximum and minimum buffer
 positions even if no glyphs were produced (e.g., by a zero-width
 stretch).  Fixes bug#9530 on a TTY.  Under word-wrap, don't record
 buffer positions that will be removed from the glyph row because
 they don't fit.
parent 3aace4e4
2011-09-18 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_line): Record maximum and minimum buffer
positions even if no glyphs were produced (e.g., by a zero-width
stretch). Fixes bug#9530 on a TTY. Under word-wrap, don't record
buffer positions that will be removed from the glyph row because
they don't fit.
2011-09-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xdisp.c (expose_window): Save original value of phys_cursor_on_p
......
......@@ -18704,11 +18704,6 @@ display_line (struct it *it)
it->current_x = new_x;
it->continuation_lines_width += new_x;
++it->hpos;
/* Record the maximum and minimum buffer
positions seen so far in glyphs that will be
displayed by this row. */
if (it->bidi_p)
RECORD_MAX_MIN_POS (it);
if (i == nglyphs - 1)
{
/* If line-wrap is on, check if a previous
......@@ -18723,6 +18718,11 @@ display_line (struct it *it)
|| IT_DISPLAYING_WHITESPACE (it)))
goto back_to_wrap;
/* Record the maximum and minimum buffer
positions seen so far in glyphs that will be
displayed by this row. */
if (it->bidi_p)
RECORD_MAX_MIN_POS (it);
set_iterator_to_next (it, 1);
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
{
......@@ -18740,6 +18740,8 @@ display_line (struct it *it)
}
}
}
else if (it->bidi_p)
RECORD_MAX_MIN_POS (it);
}
else if (CHAR_GLYPH_PADDING_P (*glyph)
&& !FRAME_WINDOW_P (it->f))
......@@ -18870,6 +18872,10 @@ display_line (struct it *it)
xassert (it->first_visible_x <= it->last_visible_x);
}
}
/* Even if this display element produced no glyphs at all,
we want to record its position. */
if (it->bidi_p && nglyphs == 0)
RECORD_MAX_MIN_POS (it);
row->ascent = max (row->ascent, it->max_ascent);
row->height = max (row->height, it->max_ascent + it->max_descent);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment