]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid assertion violations in calculating line-number width
authorEli Zaretskii <eliz@gnu.org>
Fri, 26 Apr 2019 19:40:54 +0000 (22:40 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 26 Apr 2019 19:40:54 +0000 (22:40 +0300)
* src/indent.c (line_number_display_width): Don't use the
window's start marker if it belongs to a different buffer.
(Bug#35429)

src/indent.c

index 1d5d346e63faa3207ac9f21a49bb952b69c15de3..c76e6b7b4bd4697baf53719aa2dc8995819a118f 100644 (file)
@@ -1968,8 +1968,11 @@ line_number_display_width (struct window *w, int *width, int *pixel_width)
         outside the accessible region, in which case we widen the
         buffer temporarily.  It could even be beyond the buffer's end
         (Org mode's display of source code snippets is known to cause
-        that), in which case we just punt and start from point instead.  */
-      if (startpos.charpos > Z)
+        that) or belong to the wrong buffer, in which cases we just
+        punt and start from point instead.  */
+      if (startpos.charpos > Z
+         || !(BUFFERP (w->contents)
+              && XBUFFER (w->contents) == XMARKER (w->start)->buffer))
        SET_TEXT_POS (startpos, PT, PT_BYTE);
       if (startpos.charpos < BEGV || startpos.charpos > ZV)
        {