diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim index 1deda534d2..6226c5b51f 100644 --- a/runtime/pack/dist/opt/netrw/autoload/netrw.vim +++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim @@ -25,6 +25,7 @@ " 2026 Apr 01 by Vim Project use fnameescape() with netrw#FileUrlEdit() " 2026 Apr 05 by Vim Project Fix netrw#RFC2396() #19913 " 2026 Apr 15 by Vim Project Add missing escape() +" 2026 Apr 19 by Vim Project expand ~ on Windows #20003 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, " with or without modifications, provided that this copyright @@ -530,8 +531,8 @@ function netrw#Explore(indx,dosplit,style,...) NetrwKeepj norm! 0 if a:0 > 0 - if a:1 =~ '^\~' && (has("unix") || g:netrw_cygwin) - let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),'')) + if a:1 =~ '^\~' && (has("unix") || has("win32") || g:netrw_cygwin) + let dirname= simplify(substitute(a:1,'^\~',escape(expand("$HOME"),'\&~'),'')) elseif a:1 == '.' let dirname= simplify(exists("b:netrw_curdir")? b:netrw_curdir : getcwd()) if dirname !~ '/$' diff --git a/test/old/testdir/test_plugin_netrw.vim b/test/old/testdir/test_plugin_netrw.vim index c33b3c307e..83b2d969f6 100644 --- a/test/old/testdir/test_plugin_netrw.vim +++ b/test/old/testdir/test_plugin_netrw.vim @@ -616,4 +616,10 @@ func Test_netrw_RFC2396() call assert_equal('a b', netrw#RFC2396(fname)) endfunc +func Test_netrw_Home_tilde() + Explore ~ + call assert_match('Netrw Directory Listing', getline(2)) + bw! +endfunc + " vim:ts=8 sts=2 sw=2 et