When replace-buffer-contents fails to do a non-destructive replacement within the allotted time/cost, it basically follows the fast strategy, except unlike the fast strategy, it doesn't try to prevent the window from jumping.
So in addition to doing the window adjustment in the fast strategy, we can also do it for the safe strategy when it fails and returns nil.
When
replace-buffer-contents
fails to do a non-destructive replacement within the allotted time/cost, it basically follows thefast
strategy, except unlike thefast
strategy, it doesn't try to prevent the window from jumping.So in addition to doing the window adjustment in the
fast
strategy, we can also do it for thesafe
strategy when it fails and returnsnil
.