diff options
author | Eli Zaretskii <eliz@gnu.org> | 2010-03-28 11:18:10 -0400 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2010-03-28 11:18:10 -0400 |
commit | c0546589ab9573047bb0d6cb82e27fe29221b71a (patch) | |
tree | cb3ca8a0384a635a036bbf5ec577907a7ad1d660 /src/bidi.c | |
parent | e7dbdb6dfc3ffdc25f8d32a43683500f596d9784 (diff) | |
download | emacs-c0546589ab9573047bb0d6cb82e27fe29221b71a.tar.gz |
Fix glyph_row reversed_p flag in empty lines between paragraphs.
bidi.c (bidi_get_next_char_visually): Improve commentary.
dispextern.h (PRODUCE_GLYPHS): Set the reversed_p flag in the
iterator's glyph_row here.
xdisp.c (handle_invisible_prop, set_iterator_to_next)
(next_element_from_buffer): Don't set the reversed_p flag in the
iterator's glyph_row here.
Diffstat (limited to 'src/bidi.c')
-rw-r--r-- | src/bidi.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/bidi.c b/src/bidi.c index 5c0169071ff..8089bf811a6 100644 --- a/src/bidi.c +++ b/src/bidi.c @@ -1901,7 +1901,7 @@ bidi_get_next_char_visually (struct bidi_it *bidi_it) /* Reordering of resolved levels (clause L2) is implemented by jumping to the other edge of the level and flipping direction of - scanning the buffer whenever we find a level change. */ + scanning the text whenever we find a level change. */ if (new_level != old_level) { int ascending = new_level > old_level; @@ -1959,7 +1959,9 @@ bidi_get_next_char_visually (struct bidi_it *bidi_it) paragraph direction, if needed. We do this at the newline before the paragraph separator, because the next character might not be the first character of the next paragraph, due to the bidi - reordering. */ + reordering, whereas we _must_ know the paragraph base direction + _before_ we process the paragraph's text, since the base + direction affects the reordering. */ if (bidi_it->scan_dir == 1 && bidi_it->orig_type == NEUTRAL_B && bidi_it->bytepos < ZV_BYTE) |