fix(cmd): :update writes new file buffers only for real files #35939

Problem: :update should write new file buffers, but previous fix
affected special buffer types (acwrite, nofile, etc.).

Solution: Add bt_nofilename() check to only write new files for
buffers representing real filesystem paths.
This commit is contained in:
glepnir
2025-09-28 11:28:05 +08:00
committed by GitHub
parent 03032d1f73
commit fcf752476a
4 changed files with 17 additions and 2 deletions

View File

@@ -258,4 +258,15 @@ describe(':update', function()
eq(1, eval('g:write_pre'))
eq(1, eval('g:write_post'))
end)
it('does not write acwrite buffer when unchanged', function()
command('file remote://test')
command('setlocal buftype=acwrite')
command('let g:triggered = 0 | autocmd BufWriteCmd remote://* let g:triggered = 1')
command('update')
eq(0, eval('g:triggered'))
command('call setline(1, ["hello"])')
command('update')
eq(1, eval('g:triggered'))
end)
end)