aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c41
2 files changed, 33 insertions, 13 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index cbe2d8659b2..193bb739766 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12011-08-08 Eli Zaretskii <eliz@gnu.org>
2
3 * xdisp.c (forward_to_next_line_start): Allow to use the
4 no-display-properties-and-no-overlays under bidi display.
5
12011-08-08 Chong Yidong <cyd@stupidchicken.com> 62011-08-08 Chong Yidong <cyd@stupidchicken.com>
2 7
3 * editfns.c (Fset_time_zone_rule): Document relationship with the 8 * editfns.c (Fset_time_zone_rule): Document relationship with the
diff --git a/src/xdisp.c b/src/xdisp.c
index 6e9474e3c10..2a46fe2dad5 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5532,19 +5532,34 @@ forward_to_next_line_start (struct it *it, int *skipped_p,
5532 5532
5533 xassert (!STRINGP (it->string)); 5533 xassert (!STRINGP (it->string));
5534 5534
5535 /* If we are not bidi-reordering, and there isn't any `display' 5535 /* If there isn't any `display' property in sight, and no
5536 property in sight, and no overlays, we can just use the 5536 overlays, we can just use the position of the newline in
5537 position of the newline in buffer text. */ 5537 buffer text. */
5538 if (!it->bidi_p 5538 if (it->stop_charpos >= limit
5539 && (it->stop_charpos >= limit 5539 || ((pos = Fnext_single_property_change (make_number (start),
5540 || ((pos = Fnext_single_property_change (make_number (start), 5540 Qdisplay, Qnil,
5541 Qdisplay, Qnil, 5541 make_number (limit)),
5542 make_number (limit)), 5542 NILP (pos))
5543 NILP (pos)) 5543 && next_overlay_change (start) == ZV))
5544 && next_overlay_change (start) == ZV))) 5544 {
5545 { 5545 if (!it->bidi_p)
5546 IT_CHARPOS (*it) = limit; 5546 {
5547 IT_BYTEPOS (*it) = CHAR_TO_BYTE (limit); 5547 IT_CHARPOS (*it) = limit;
5548 IT_BYTEPOS (*it) = CHAR_TO_BYTE (limit);
5549 }
5550 else
5551 {
5552 struct bidi_it bprev;
5553
5554 do {
5555 bprev = it->bidi_it;
5556 bidi_move_to_visually_next (&it->bidi_it);
5557 } while (it->bidi_it.charpos != limit);
5558 IT_CHARPOS (*it) = limit;
5559 IT_BYTEPOS (*it) = it->bidi_it.bytepos;
5560 if (bidi_it_prev)
5561 *bidi_it_prev = bprev;
5562 }
5548 *skipped_p = newline_found_p = 1; 5563 *skipped_p = newline_found_p = 1;
5549 } 5564 }
5550 else 5565 else