]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(netrw): fix s:NetrwHome() regression
authorLuca Saccarola <github.e41mv@aleeas.com>
Tue, 18 Feb 2025 19:11:51 +0000 (20:11 +0100)
committerChristian Brabandt <cb@256bit.org>
Tue, 18 Feb 2025 19:11:51 +0000 (20:11 +0100)
If $MYVIMDIR is unset netrw creates a directory called '$MYVIMDIR' in
the current directory

fixes: #16609

Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/pack/dist/opt/netrw/autoload/netrw.vim

index 215ab618fffb6a8003f13bf43ae27857086ed156..71310028fcf0354f8a9778968929960101eb6600 100644 (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
+
+    " Normalize directory if on Windows
+    if has("win32")
+        let home = substitute(home, '/', '\\', 'g')
+    endif
 
-  let g:netrw_home = home
-  return home
+    let g:netrw_home = home
+    return home
 endfunction
 
 " ---------------------------------------------------------------------