diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-05-06 09:23:22 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-06 09:23:22 +0800 |
| commit | cfa803d8954519f7c23f7349ca3647f7b99d246d (patch) | |
| tree | 37f953b35b9087f7b712b2a3c19867cdb5ebb708 /runtime/lua/vim/provider/python.lua | |
| parent | 60d069d4223271d6c1bd03fb5d103e7bd085319c (diff) | |
| download | rneovim-cfa803d8954519f7c23f7349ca3647f7b99d246d.tar.gz rneovim-cfa803d8954519f7c23f7349ca3647f7b99d246d.tar.bz2 rneovim-cfa803d8954519f7c23f7349ca3647f7b99d246d.zip | |
vim-patch:9.2.0446: runtime(netrw): off-by-one bug in s:NetrwUnMarkFile() (#39620)
Problem: off-by-one bug in s:NetrwUnMarkFile()
Solution: Correctly loop through all buffers to unlet all variables
(J. Paulo Seibt)
When the function loops through buffers to clear s:netrwmarkfilelist_#
and s:netrwmarkfilemtch_#, it skips the last one at bufnr('$'), messing
up mark highlights and causing other functions that operate on those
arrays (like delete or rename) to target stale marked files.
The bufnr() help page says that bufnr("$") returns the highest buffer
number of existing buffers, so while ibuf < bufnr("$") does not clear
the last buffer-local arrays.
To reproduce:
Just opening a fresh Vim and running :Ex opens a netrw buffer at the
highest number. Then, typing mu after marking some files triggers the
mark highlight bug, and finally typing D would act like calling the
delete function against the previous marked files, as the buffer-local
arrays where not touched by s:NetrwUnMarkFile.
closes: vim/vim#20129
https://github.com/vim/vim/commit/7ccc273a4cb6012e5afbdb94d0f2597bc01fe2fd
Co-authored-by: J. Paulo Seibt <jpseibt@gmail.com>
Diffstat (limited to 'runtime/lua/vim/provider/python.lua')
0 files changed, 0 insertions, 0 deletions