aboutsummaryrefslogtreecommitdiffstats
path: root/src/dispnew.c
diff options
context:
space:
mode:
authorEli Zaretskii2009-12-31 16:09:28 -0500
committerEli Zaretskii2009-12-31 16:09:28 -0500
commit90fcfd71cf705476cf64f7314a57eea8ac9bc8db (patch)
tree7d1d9fc759b527be6fad0a343559bc356db51b44 /src/dispnew.c
parenta88bbf05709b0ac38669479a80465f7334fa62b2 (diff)
downloademacs-90fcfd71cf705476cf64f7314a57eea8ac9bc8db.tar.gz
emacs-90fcfd71cf705476cf64f7314a57eea8ac9bc8db.zip
Retrospective commit from 2009-08-12.
An (unsuccessful) attempt to solve the issue with row->start and row->end. xdisp.c (set_iterator_to_next, reseat, reseat_1) (reseat_at_next_visible_line_start): Accept additional argument force_logical_p; all callers changed. If force_logical_p is non-zero, force iteration in buffer's logical order even in bidi buffers. dispnew.c (direct_output_for_insert): Call set_iterator_to_next with additional argument zero. dispextern.h (set_iterator_to_next): Now accepts an additional argument.
Diffstat (limited to 'src/dispnew.c')
-rw-r--r--src/dispnew.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/dispnew.c b/src/dispnew.c
index d8cab59dbe9..d74462d31b8 100644
--- a/src/dispnew.c
+++ b/src/dispnew.c
@@ -1760,6 +1760,8 @@ check_matrix_invariants (w)
1760 1760
1761 /* Check that end position of `row' is equal to start position 1761 /* Check that end position of `row' is equal to start position
1762 of next row. */ 1762 of next row. */
1763 /* WARNING: This assumption is blatantly incorrect when we are
1764 reordering bdirectional text for display!! */
1763 if (next->enabled_p && MATRIX_ROW_DISPLAYS_TEXT_P (next)) 1765 if (next->enabled_p && MATRIX_ROW_DISPLAYS_TEXT_P (next))
1764 { 1766 {
1765 xassert (MATRIX_ROW_END_CHARPOS (row) 1767 xassert (MATRIX_ROW_END_CHARPOS (row)
@@ -3500,6 +3502,8 @@ direct_output_for_insert (g)
3500 || !display_completed 3502 || !display_completed
3501 /* Give up if buffer appears in two places. */ 3503 /* Give up if buffer appears in two places. */
3502 || buffer_shared > 1 3504 || buffer_shared > 1
3505 /* Give up if we need to reorder bidirectional text. */
3506 || !NILP (current_buffer->bidi_display_reordering)
3503 /* Give up if currently displaying a message instead of the 3507 /* Give up if currently displaying a message instead of the
3504 minibuffer contents. */ 3508 minibuffer contents. */
3505 || (EQ (selected_window, minibuf_window) 3509 || (EQ (selected_window, minibuf_window)
@@ -3608,7 +3612,7 @@ direct_output_for_insert (g)
3608 3612
3609 delta += 1; 3613 delta += 1;
3610 delta_bytes += it.len; 3614 delta_bytes += it.len;
3611 set_iterator_to_next (&it, 1); 3615 set_iterator_to_next (&it, 1, 0);
3612 } 3616 }
3613 3617
3614 /* Give up if we hit the right edge of the window. We would have 3618 /* Give up if we hit the right edge of the window. We would have
@@ -3626,7 +3630,7 @@ direct_output_for_insert (g)
3626 { 3630 {
3627 if (it2.c == '\t') 3631 if (it2.c == '\t')
3628 return 0; 3632 return 0;
3629 set_iterator_to_next (&it2, 1); 3633 set_iterator_to_next (&it2, 1, 0);
3630 } 3634 }
3631 3635
3632 /* Number of new glyphs produced. */ 3636 /* Number of new glyphs produced. */