Commit 21fce5ab authored by Eli Zaretskii's avatar Eli Zaretskii

Retrospective commit from 2009-11-07.

More fixes for iteration near ZV.

 bidi.c (bidi_paragraph_init): Don't overstep end of buffer.
 Treat end of buffer as a NEUTRAL_B character.
 (bidi_resolve_explicit): Don't special-case ZV when bidi_it->type
 is NEUTRAL_B, since bidi_set_paragraph_end no longer sets the
 new_paragraph flag.
parent 93ba079d
2009-11-07 Eli Zaretskii <eliz@gnu.org>
* bidi.c (bidi_paragraph_init): Don't overstep end of buffer.
Treat end of buffer as a NEUTRAL_B character.
(bidi_resolve_explicit): Don't special-case ZV when bidi_it->type
is NEUTRAL_B, since bidi_set_paragraph_end no longer sets the
new_paragraph flag.
2009-10-31 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_line): Always extend reversed_p rows to the end
......
......@@ -927,6 +927,12 @@ bidi_paragraph_init (bidi_dir_t dir, struct bidi_it *bidi_it)
{
if (type == NEUTRAL_B && bidi_at_paragraph_end (pos, bytepos) >= -1)
break;
if (bytepos >= ZV_BYTE)
{
/* Pretend there's a paragraph separator at end of buffer. */
type = NEUTRAL_B;
break;
}
FETCH_CHAR_ADVANCE (ch, pos, bytepos);
}
if (type == STRONG_R || type == STRONG_AL) /* P3 */
......@@ -1289,11 +1295,7 @@ bidi_resolve_explicit (struct bidi_it *bidi_it)
if (bidi_it->type == NEUTRAL_B) /* X8 */
{
/* End of buffer does _not_ indicate a new paragraph is coming.
Otherwise, each character inserted at EOB will be processed
as starting a new paragraph. */
if (bidi_it->bytepos < ZV_BYTE)
bidi_set_paragraph_end (bidi_it);
bidi_set_paragraph_end (bidi_it);
/* This is needed by bidi_resolve_weak below, and in L1. */
bidi_it->type_after_w1 = bidi_it->type;
bidi_check_type (bidi_it->type_after_w1);
......
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