+2010-11-19 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Display cursor after all the
+ glyphs that come from an overlay. Don't overstep the last glyph
+ when skipping glyphs from an overlay. (Bug#6687)
+
2010-11-18 Dan Nicolaescu <dann@ics.uci.edu>
* alloc.c (refill_memory_reserve): Move declaration ...
cursor on that character's glyph. */
EMACS_INT strpos = glyph->charpos;
- cursor = glyph;
+ if (tem)
+ cursor = glyph;
for (glyph += incr;
(row->reversed_p ? glyph > stop : glyph < stop)
&& EQ (glyph->object, str);
cursor = glyph;
break;
}
- if (glyph->charpos < strpos)
+ if (tem && glyph->charpos < strpos)
{
strpos = glyph->charpos;
cursor = glyph;
}
/* This string is not what we want; skip all of the
glyphs that came from it. */
- do
- glyph += incr;
while ((row->reversed_p ? glyph > stop : glyph < stop)
- && EQ (glyph->object, str));
+ && EQ (glyph->object, str))
+ glyph += incr;
}
else
glyph += incr;