0
0
mirror of https://github.com/vim/vim.git synced 2025-09-01 21:03:39 -04:00

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 <cb@256bit.org>
This commit is contained in:
Luca Saccarola 2025-02-18 20:11:51 +01:00 committed by Christian Brabandt
parent 44c1c04ddb
commit ee1a24b21d
No known key found for this signature in database
GPG Key ID: F3F92DA383FDDE09

View File

@ -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
" ---------------------------------------------------------------------