Subject: Re: bug#12170: save-excursion fails boundary case with recenter

From: Eli Zaretskii <[email-masked]>
Date: Sat, 11 Aug 2012 19:49:41 +0300

> Date: Sat, 11 Aug 2012 19:31:53 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > Date: Sat, 11 Aug 2012 18:05:14 +0200
> > From: martin rudalics <[email-masked]>
> > CC: [email-masked], [email-masked]
> > 
> > So the difference should be in one of the four assignments
> > 
> >    w->start_at_line_beg = 0;
> >    w->update_mode_line = 1;
> >    w->last_modified = 0;
> >    w->last_overlay_modified = 0;
> > 
> > and I'd obviously vote for the first one.  Interesting side-effect.
> 
> FWIW, there are only 2 places in redisplay that look at
> w->start_at_line_beg, but neither your nor Bill's recipe don't
> exercise the code of either of these two places.

As another FWIW, running the recipe with save-window-excursion shows
that set-window-configuration called after the body tries to set the
window start at position 1 and the window point at position 67.  But
the last position in a 33-line window that starts at position 1 is 33,
so these two values cannot be satisfied at once.