summaryrefslogtreecommitdiff
path: root/src/indent.c
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2019-04-26 22:40:54 +0300
committerEli Zaretskii <eliz@gnu.org>2019-04-26 22:40:54 +0300
commit86b6e91091ba14edb4811427fec8fe194f6520d4 (patch)
tree3188f302545557e0924a224d6296e73f94cfcdb3 /src/indent.c
parent82fc8ca6ba179596928db614ab903e44968ef44e (diff)
downloademacs-86b6e91091ba14edb4811427fec8fe194f6520d4.tar.gz
Avoid assertion violations in calculating line-number width
* src/indent.c (line_number_display_width): Don't use the window's start marker if it belongs to a different buffer. (Bug#35429)
Diffstat (limited to 'src/indent.c')
-rw-r--r--src/indent.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/indent.c b/src/indent.c
index 1d5d346e63f..c76e6b7b4bd 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -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)
{