diff --git a/src/ChangeLog b/src/ChangeLog index 242752cd777..6e54c45453c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2011-04-11 Eli Zaretskii + + * xdisp.c (redisplay_window): Don't try to determine the character + position of the scroll margin if the window start point w->startp + is outside the buffer's accessible region. (Bug#8468) + 2011-04-10 Eli Zaretskii Fix write-region and its subroutines for buffers > 2GB. diff --git a/src/xdisp.c b/src/xdisp.c index b0d4b2308a9..fc9771b6a7e 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -14252,7 +14252,14 @@ redisplay_window (Lisp_Object window, int just_this_one_p) /* If there is a scroll margin at the top of the window, find its character position. */ - if (margin) + if (margin + /* Cannot call start_display if startp is not in the + accessible region of the buffer. This can happen when we + have just switched to a different buffer and/or changed + its restriction. In that case, startp is initialized to + the character position 1 (BEG) because we did not yet + have chance to display the buffer even once. */ + && BEGV <= CHARPOS (startp) && CHARPOS (startp) <= ZV) { struct it it1;