Mercurial > emacs
diff src/bidi.c @ 107624:552007beee69
Finish and debug display of invisible text.
xdisp.c (handle_invisible_prop): If we are `reseat'ed, init the
paragraph direction and set the `reversed_p' flag in the IT's
glyph row. Fix exit conditions of the loop that skips invisible
text. Update IT->prev_stop after skipping invisible text. Check
for additional overlays at IT->stop_charpos, not at start_pos.
Clean up the mess with setting the glyph row reversed_p flag.
dispnew.c (prepare_desired_row): Preserve the reversed_p flag.
bidi.c (bidi_cache_find): Use bidi_copy_it instead of copying
the whole struct (which includes uninitialized parts).
(bidi_init_it): Don't initialize bidi_it->paragraph_dir.
xdisp.c (display_line): Remove misplaced setting of
row->reversed_p flags. Copy the reversed_p flag to the next glyph
row.
(next_element_from_buffer): Check bidi_it.paragraph_dir rather
than level_stack[0].level. Reset the reversed_p flag for non-R2L
paragraphs.
| author | Eli Zaretskii <eliz@gnu.org> |
|---|---|
| date | Mon, 25 Jan 2010 12:29:38 -0500 |
| parents | 297c59e52ecf |
| children | 6e29ba4351e0 |
line wrap: on
line diff
--- a/src/bidi.c Sat Jan 23 03:49:15 2010 -0500 +++ b/src/bidi.c Mon Jan 25 12:29:38 2010 -0500 @@ -715,7 +715,7 @@ { bidi_dir_t current_scan_dir = bidi_it->scan_dir; - *bidi_it = bidi_cache[i]; + bidi_copy_it (bidi_it, &bidi_cache[i]); bidi_cache_last_idx = i; /* Don't let scan direction from from the cached state override the current scan direction. */ @@ -971,7 +971,6 @@ bidi_set_paragraph_end (bidi_it); bidi_it->new_paragraph = 1; bidi_it->separator_limit = -1; - bidi_it->paragraph_dir = NEUTRAL_DIR; bidi_it->type = NEUTRAL_B; bidi_it->type_after_w1 = UNKNOWN_BT; bidi_it->orig_type = UNKNOWN_BT;
