[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master fd8f724: * src/xdisp.c (overlay_arrows_changed_
Re: [Emacs-diffs] master fd8f724: * src/xdisp.c (overlay_arrows_changed_p): Fix last change.
Tue, 28 Feb 2017 15:02:35 -0500
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)
> But we only care what happens with these between two successive
> redisplay cycles. What kind of scenario could possibly change that
> variable in more than one buffer?
Here's a situation:
(setq-local overlay-arrow-position (copy-marker 10)))
(setq-local overlay-arrow-position (copy-marker 5)))
after redisplay, what should be the value of
(get 'overlay-arrow-position 'last-arrow-position)
? If it's 5 and we perform a redisplay, will buffer A be refreshed even
if no changes occurred in it?
The way I look at it, this code fundamentally assumes that the variables
on that list are not buffer-local (not only because of the use of
global symbol properties but also because it only considers
the value of those vars in the buffer which happens to be current).
% grep -l local.\*overlay-arrow-position **/*.el
And from my understanding of how this code works, we can both end up
redisplaying unnecessarily, as well as fail to redisplay when needed.