xdisp.c (set_cursor_from_row): When looping over a display string,
don't overstep the end of the glyph row.
+2010-04-27 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Fix a crash when a display string
+ is continued to the next line.
+
2010-04-25 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (set_cursor_from_row): Don't return zero if cursor was
cursor = glyph;
for (glyph += incr;
- EQ (glyph->object, str);
+ (row->reversed_p ? glyph > stop : glyph < stop)
+ && EQ (glyph->object, str);
glyph += incr)
{
Lisp_Object cprop;
/* If we reached the end of the line, and END was from a string,
the cursor is not on this line. */
if (cursor == NULL
- && glyph == end
- && STRINGP ((glyph - incr)->object)
+ && (row->reversed_p ? glyph <= end : glyph >= end)
+ && STRINGP (end->object)
&& row->continued_p)
return 0;
}