From: Manoj Panda Date: Wed, 1 Jul 2026 19:46:47 +0000 (+0000) Subject: patch 9.2.0761: runtime(netrw): Unix: unable to open '\' file X-Git-Tag: v9.2.0761^0 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=86d8af37ba90ced2236afcb3572c6cb2a1594788;p=thirdparty%2Fvim.git patch 9.2.0761: runtime(netrw): Unix: unable to open '\' file Problem: runtime(netrw): Unix: unable to open '\' file Solution: Adjust directory pattern (Manoj Panda) closes: #20685 Signed-off-by: Manoj Panda Signed-off-by: Christian Brabandt --- diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim index 1535644d27..4dc60eefa1 100644 --- a/runtime/pack/dist/opt/netrw/autoload/netrw.vim +++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim @@ -1,7 +1,7 @@ " Creator: Charles E Campbell " Previous Maintainer: Luca Saccarola " Maintainer: This runtime file is looking for a new maintainer. -" Last Change: 2026 Jun 28 +" Last Change: 2026 Jul 01 " 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 @@ -3862,7 +3862,7 @@ function s:NetrwBrowseChgDir(islocal, newdir, cursor, ...) endif " set up o/s-dependent directory recognition pattern - let dirpat = has("amiga") ? '[\/:]$' : '[\/]$' + let dirpat = has("amiga") || has('win32') ? '[\/:]$' : '/$' if newdir !~ dirpat && !(a:islocal && isdirectory(s:NetrwFile(netrw#fs#ComposePath(dirname, newdir)))) " ------------------------------ diff --git a/src/testdir/test_plugin_netrw.vim b/src/testdir/test_plugin_netrw.vim index ea3f33cece..896e83ec46 100644 --- a/src/testdir/test_plugin_netrw.vim +++ b/src/testdir/test_plugin_netrw.vim @@ -878,4 +878,27 @@ func Test_netrw_forward_slashes() bw! endfunc +" Selecting a file whose name is a single backslash +func Test_netrw_open_backslash_file() + CheckUnix + + let dir = getcwd() . '/Xbslash' + let fname = dir . '/\' + call mkdir(dir, 'p') + call writefile(['backslash file content'], fname) + call assert_true(filereadable(fname)) + + " list the directory and move onto the '\' entry + exe 'Explore ' .. dir + call assert_true(search('^\\$', 'w') > 0) + + " open it + exe "normal \" + + call assert_equal('\', expand('%:t')) + call assert_equal(['backslash file content'], getline(1, '$')) + + bw! +endfunc + " vim:ts=8 sts=2 sw=2 et diff --git a/src/version.c b/src/version.c index 724eda4251..7546d03195 100644 --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 761, /**/ 760, /**/