David Kastrup <[EMAIL PROTECTED]> writes: > 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.
True. This can happen if PT is invisible text or in text that is replaced by an image. I guess it is related to a bug that I still have to investigate (see below). I think you can safely disable the xassert with #if 0 for now. The bug reveals itself like this: Suppose you have a window with this context abc [ ] [IMAGE]xyz [ ] def Now, if you place the cursor at 'z' and hit C-a, it moves to 'x'. Also, M-: (bolp) returns t at that position. I haven't fully debugged this, but it seems to happen when the text overlayed by the IMAGE includes or ends with a newline. -- Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel