mirror of
https://github.com/neovim/neovim.git
synced 2025-09-12 14:28:18 +00:00
vim-patch:7.4.2347
Problem: Crash when closing a buffer while Visual mode is active.
(Dominique Pelle)
Solution: Adjust the position before computing the number of lines.
When closing the current buffer stop Visual mode.
c4a908e836
This commit is contained in:
@@ -438,6 +438,13 @@ void close_buffer(win_T *win, buf_T *buf, int action, int abort_if_last)
|
||||
/* Remember if we are closing the current buffer. Restore the number of
|
||||
* windows, so that autocommands in buf_freeall() don't get confused. */
|
||||
bool is_curbuf = (buf == curbuf);
|
||||
|
||||
// When closing the current buffer stop Visual mode before freeing
|
||||
// anything.
|
||||
if (is_curbuf) {
|
||||
end_visual_mode();
|
||||
}
|
||||
|
||||
buf->b_nwindows = nwindows;
|
||||
|
||||
buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
|
||||
@@ -1075,6 +1082,11 @@ do_buffer (
|
||||
}
|
||||
}
|
||||
|
||||
// When closing the current buffer stop Visual mode.
|
||||
if (buf == curbuf) {
|
||||
end_visual_mode();
|
||||
}
|
||||
|
||||
/*
|
||||
* If deleting the last (listed) buffer, make it empty.
|
||||
* The last (listed) buffer cannot be unloaded.
|
||||
|
Reference in New Issue
Block a user