Fix last change for bug#9212.

This commit is contained in:
Eli Zaretskii 2011-08-01 20:59:35 +03:00
parent 525d5e6efa
commit ffc21858b7

View file

@ -5730,29 +5730,36 @@ reseat_at_next_visible_line_start (struct it *it, int on_newline_p)
{
if (IT_STRING_CHARPOS (*it) > 0)
{
--IT_STRING_CHARPOS (*it);
--IT_STRING_BYTEPOS (*it);
if (it->bidi_p)
if (!it->bidi_p)
{
--IT_STRING_CHARPOS (*it);
--IT_STRING_BYTEPOS (*it);
}
else
{
/* We need to restore the bidi iterator to the state
it had on the newline. */
it had on the newline, and resync the IT's
position with that. */
it->bidi_it = bidi_it_prev;
xassert (IT_STRING_CHARPOS (*it) == it->bidi_it.charpos
&& IT_STRING_BYTEPOS (*it) == it->bidi_it.bytepos);
IT_STRING_CHARPOS (*it) = it->bidi_it.charpos;
IT_STRING_BYTEPOS (*it) = it->bidi_it.bytepos;
}
}
}
else if (IT_CHARPOS (*it) > BEGV)
{
--IT_CHARPOS (*it);
--IT_BYTEPOS (*it);
if (it->bidi_p)
if (!it->bidi_p)
{
--IT_CHARPOS (*it);
--IT_BYTEPOS (*it);
}
else
{
/* We need to restore the bidi iterator to the state it
had on the newline. */
had on the newline and resync IT with that. */
it->bidi_it = bidi_it_prev;
xassert (IT_CHARPOS (*it) == it->bidi_it.charpos
&& IT_BYTEPOS (*it) == it->bidi_it.bytepos);
IT_CHARPOS (*it) = it->bidi_it.charpos;
IT_BYTEPOS (*it) = it->bidi_it.bytepos;
}
reseat (it, it->current.pos, 0);
}