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

From: Stefan Monnier <[email-masked]>
Date: Fri, 10 Aug 2012 13:07:12 -0400

>> Knowing which to do when is not obvious, but IIUC if window-start has
>> not been changed, then the redisplay assumes that it is free to change
>> (window-)point, whereas otherwise it will assume that it should not
>> change (window-)point but can instead change window-start.

> IIUC redisplay_window respects the window start position specified in
> w->start provided w->force_start or w->frozen_window_start_p hold.
> Scrolling, recentering, and things like `move-to-window-line' set the
> former (frozen_window_start_p seems purely internal).  The question is
> whether these should prevail subsequent point movement or, subsequent
> point movement should prevail and reset these flags.

Point movement can't convenient reset those flags because it's very
frequent (so speed matters) and because those flags are about windows,
whereas point movement is only indirectly related to windows (and only
if the selected window happens to display the current buffer).

        Stefan