Mercurial > emacs
comparison src/xdisp.c @ 107590:ebdfe4d01cff
Retrospective commit from 2009-09-20.
Handle positions at BEGV and ZV. Mor initialization cleanups.
xdisp.c (reseat_1): Handle position < BEGV.
bidi.c (bidi_paragraph_init): Set bidi_it->ch_len. Handle ZV.
(bidi_init_it): Don't initialize bidi_it->ch_len.
(bidi_resolve_explicit_1): Abort if bidi_it->ch_len was not
initialized.
(bidi_at_paragraph_end, bidi_resolve_explicit_1)
(bidi_resolve_weak, bidi_level_of_next_char): Handle bytepos at
ZV_BYTE.
(bidi_resolve_explicit_1): Handle position < BEGV.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Thu, 31 Dec 2009 16:31:54 -0500 |
parents | 84267baa779b |
children | 86eec24bee2c |
comparison
equal
deleted
inserted
replaced
107589:84267baa779b | 107590:ebdfe4d01cff |
---|---|
5539 bidi_paragraph_init (L2R, &it->bidi_it); | 5539 bidi_paragraph_init (L2R, &it->bidi_it); |
5540 /* With bidi reordering, the first character to display might | 5540 /* With bidi reordering, the first character to display might |
5541 not be the character at POS. We need to find the next | 5541 not be the character at POS. We need to find the next |
5542 character in visual order starting from the preceding | 5542 character in visual order starting from the preceding |
5543 character. */ | 5543 character. */ |
5544 if ((it->bidi_it.charpos = CHARPOS (pos) - 1) > 1) | 5544 if ((it->bidi_it.charpos = CHARPOS (pos) - 1) >= BEGV) |
5545 { | 5545 { |
5546 it->bidi_it.bytepos = CHAR_TO_BYTE (CHARPOS (pos) - 1); | 5546 it->bidi_it.bytepos = CHAR_TO_BYTE (CHARPOS (pos) - 1); |
5547 it->bidi_it.ch_len = CHAR_BYTES (CHARPOS (pos) - 1); | 5547 it->bidi_it.ch_len = CHAR_BYTES (FETCH_CHAR (it->bidi_it.bytepos)); |
5548 } | 5548 } |
5549 else | 5549 else |
5550 it->bidi_it.bytepos = 0; | 5550 it->bidi_it.bytepos = 0; /* signal bidi.c not to move */ |
5551 bidi_get_next_char_visually (&it->bidi_it); | 5551 bidi_get_next_char_visually (&it->bidi_it); |
5552 SET_TEXT_POS (pos, it->bidi_it.charpos, it->bidi_it.bytepos); | 5552 SET_TEXT_POS (pos, it->bidi_it.charpos, it->bidi_it.bytepos); |
5553 it->current.pos = it->position = pos; | 5553 it->current.pos = it->position = pos; |
5554 } | 5554 } |
5555 | 5555 |