With -fno-crossjumping, the real assert came to light. It is xdisp.c in line 6122:
/* The function move_it_vertically_backward may move over more than the specified y-distance. If it->w is small, e.g. a mini-buffer window, we may end up in front of the window's display area. Start displaying at the start of the line containing PT in this case. */ if (it.current_y <= 0) { init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); move_it_vertically_backward (&it, 0); xassert (IT_CHARPOS (it) <= PT); it.current_y = 0; } I suppose that the reseat_1 in move_it_vertically_backward will move forward again. Something like that. -- David Kastrup, Kriemhildstr. 15, 44793 Bochum _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel