Fix bug #7128.
xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to NEUTRAL_DIR. (handle_invisible_prop, iterate_out_of_display_property) (next_element_from_buffer): If bidi_it.first_elt is set, call bidi_paragraph_init with NO_DEFAULT_P argument non-zero.
This commit is contained in:
parent
9a2ba07026
commit
af7ef32d8e
2 changed files with 15 additions and 5 deletions
|
@ -1,5 +1,12 @@
|
||||||
2010-09-29 Eli Zaretskii <eliz@gnu.org>
|
2010-09-29 Eli Zaretskii <eliz@gnu.org>
|
||||||
|
|
||||||
|
* xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to
|
||||||
|
NEUTRAL_DIR.
|
||||||
|
(handle_invisible_prop, iterate_out_of_display_property)
|
||||||
|
(next_element_from_buffer): If bidi_it.first_elt is set, call
|
||||||
|
bidi_paragraph_init with NO_DEFAULT_P argument non-zero.
|
||||||
|
(Bug#7128)
|
||||||
|
|
||||||
* print.c (print_object): Fix format string and argument types for
|
* print.c (print_object): Fix format string and argument types for
|
||||||
printing a Lisp_Misc_Marker.
|
printing a Lisp_Misc_Marker.
|
||||||
|
|
||||||
|
|
11
src/xdisp.c
11
src/xdisp.c
|
@ -3831,7 +3831,7 @@ handle_invisible_prop (struct it *it)
|
||||||
skip any text at the beginning, which resets the
|
skip any text at the beginning, which resets the
|
||||||
FIRST_ELT flag. */
|
FIRST_ELT flag. */
|
||||||
bidi_paragraph_init (it->paragraph_embedding,
|
bidi_paragraph_init (it->paragraph_embedding,
|
||||||
&it->bidi_it, 0);
|
&it->bidi_it, 1);
|
||||||
}
|
}
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -5152,7 +5152,7 @@ iterate_out_of_display_property (struct it *it)
|
||||||
of a new paragraph, next_element_from_buffer may not have a
|
of a new paragraph, next_element_from_buffer may not have a
|
||||||
chance to do that. */
|
chance to do that. */
|
||||||
if (it->bidi_it.first_elt && it->bidi_it.charpos < ZV)
|
if (it->bidi_it.first_elt && it->bidi_it.charpos < ZV)
|
||||||
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 0);
|
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 1);
|
||||||
/* prev_stop can be zero, so check against BEGV as well. */
|
/* prev_stop can be zero, so check against BEGV as well. */
|
||||||
while (it->bidi_it.charpos >= BEGV
|
while (it->bidi_it.charpos >= BEGV
|
||||||
&& it->prev_stop <= it->bidi_it.charpos
|
&& it->prev_stop <= it->bidi_it.charpos
|
||||||
|
@ -5584,7 +5584,10 @@ reseat_1 (struct it *it, struct text_pos pos, int set_stop_p)
|
||||||
it->string_from_display_prop_p = 0;
|
it->string_from_display_prop_p = 0;
|
||||||
it->face_before_selective_p = 0;
|
it->face_before_selective_p = 0;
|
||||||
if (it->bidi_p)
|
if (it->bidi_p)
|
||||||
|
{
|
||||||
it->bidi_it.first_elt = 1;
|
it->bidi_it.first_elt = 1;
|
||||||
|
it->bidi_it.paragraph_dir = NEUTRAL_DIR;
|
||||||
|
}
|
||||||
|
|
||||||
if (set_stop_p)
|
if (set_stop_p)
|
||||||
{
|
{
|
||||||
|
@ -6675,7 +6678,7 @@ next_element_from_buffer (struct it *it)
|
||||||
{
|
{
|
||||||
/* If we are at the beginning of a line, we can produce the
|
/* If we are at the beginning of a line, we can produce the
|
||||||
next element right away. */
|
next element right away. */
|
||||||
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 0);
|
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 1);
|
||||||
bidi_move_to_visually_next (&it->bidi_it);
|
bidi_move_to_visually_next (&it->bidi_it);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -6689,7 +6692,7 @@ next_element_from_buffer (struct it *it)
|
||||||
IT_BYTEPOS (*it) = CHAR_TO_BYTE (IT_CHARPOS (*it));
|
IT_BYTEPOS (*it) = CHAR_TO_BYTE (IT_CHARPOS (*it));
|
||||||
it->bidi_it.charpos = IT_CHARPOS (*it);
|
it->bidi_it.charpos = IT_CHARPOS (*it);
|
||||||
it->bidi_it.bytepos = IT_BYTEPOS (*it);
|
it->bidi_it.bytepos = IT_BYTEPOS (*it);
|
||||||
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 0);
|
bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 1);
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
/* Now return to buffer position where we were asked to
|
/* Now return to buffer position where we were asked to
|
||||||
|
|
Loading…
Add table
Reference in a new issue