From ee1a24b21d10903ee4369d1df514af9eb4c400a6 Mon Sep 17 00:00:00 2001 From: Luca Saccarola Date: Tue, 18 Feb 2025 20:11:51 +0100 Subject: [PATCH] runtime(netrw): fix s:NetrwHome() regression If $MYVIMDIR is unset netrw creates a directory called '$MYVIMDIR' in the current directory fixes: #16609 Signed-off-by: Christian Brabandt --- .../pack/dist/opt/netrw/autoload/netrw.vim | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim index 215ab618ff..71310028fc 100644 --- a/runtime/pack/dist/opt/netrw/autoload/netrw.vim +++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim @@ -5297,30 +5297,32 @@ endfun " --------------------------------------------------------------------- " s:NetrwHome: this function determines a "home" for saving bookmarks and history {{{2 function! s:NetrwHome() - if has('nvim') - let home = netrw#own#PathJoin(stdpath('state'), 'netrw') - elseif exists("g:netrw_home") - let home = expand(g:netrw_home) - else - let home = expand("$MYVIMDIR")->substitute("/$", "", "") - endif - - " insure that the home directory exists - if g:netrw_dirhistmax > 0 && !isdirectory(s:NetrwFile(home)) - if exists("g:netrw_mkdir") - call system(g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home))) + if has('nvim') + let home = netrw#own#PathJoin(stdpath('state'), 'netrw') + elseif exists('g:netrw_home') + let home = expand(g:netrw_home) + elseif exists('$MYVIMDIR') + let home = expand('$MYVIMDIR')->substitute('/$', '', '') else - call mkdir(home) + let home = netrw#own#PathJoin(expand('~'), '.vim') endif - endif - " Normalize directory if on Windows - if has("win32") - let home = substitute(home, '/', '\\', 'g') - endif + " insure that the home directory exists + if g:netrw_dirhistmax > 0 && !isdirectory(s:NetrwFile(home)) + if exists("g:netrw_mkdir") + call system(g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home))) + else + call mkdir(home) + endif + endif - let g:netrw_home = home - return home + " Normalize directory if on Windows + if has("win32") + let home = substitute(home, '/', '\\', 'g') + endif + + let g:netrw_home = home + return home endfunction " ---------------------------------------------------------------------