+2011-06-11 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_iterator_to_next): Advance string position
+ correctly when padding it with blanks.
+
2011-06-11 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (next_element_from_buffer): Improve commentary for when
case GET_FROM_C_STRING:
/* Current display element of IT is from a C string. */
- if (!it->bidi_p)
+ if (!it->bidi_p
+ /* If the string position is beyond string_nchars, it means
+ next_element_from_c_string is padding the string with
+ blanks, in which case we bypass the bidi iterator,
+ because it cannot deal with such virtual characters. */
+ || IT_CHARPOS (*it) >= it->string_nchars)
{
IT_BYTEPOS (*it) += it->len;
IT_CHARPOS (*it) += 1;
}
else
{
- if (!it->bidi_p)
+ if (!it->bidi_p
+ /* If the string position is beyond string_nchars, it
+ means next_element_from_string is padding the string
+ with blanks, in which case we bypass the bidi
+ iterator, because it cannot deal with such virtual
+ characters. */
+ || IT_STRING_CHARPOS (*it) >= it->string_nchars)
{
IT_STRING_BYTEPOS (*it) += it->len;
IT_STRING_CHARPOS (*it) += 1;