Mercurial > vim
diff src/evalbuffer.c @ 31255:87ff5e71d3c2 v9.0.0961
patch 9.0.0961: using deletebufline() may jump to another window
Commit: https://github.com/vim/vim/commit/3da8597fc07505c0f8839b0834aafe1c10ffb456
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 27 19:45:49 2022 +0000
patch 9.0.0961: using deletebufline() may jump to another window
Problem: Using deletebufline() may jump to another window.
Solution: Do not use a window where the buffer was only in the past.
(closes #11594)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 27 Nov 2022 21:00:05 +0100 |
parents | 7831da568864 |
children | d8e7d725a666 |
line wrap: on
line diff
--- a/src/evalbuffer.c +++ b/src/evalbuffer.c @@ -109,9 +109,12 @@ find_win_for_curbuf(void) { wininfo_T *wip; + // The b_wininfo list should have the windows that recently contained the + // buffer, going over this is faster than going over all the windows. + // Do check the buffer is still there. FOR_ALL_BUF_WININFO(curbuf, wip) { - if (wip->wi_win != NULL) + if (wip->wi_win != NULL && wip->wi_win->w_buffer == curbuf) { curwin = wip->wi_win; break;