patch 9.2.0761: runtime(netrw): Unix: unable to open '' file
Commit:
https://github.com/vim/vim/commit/86d8af37ba90ced2236afcb3572c6cb2a1594788
Author: Manoj Panda <
manojpa...@gmail.com>
Date: Wed Jul 1 19:46:47 2026 +0000
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 <
manojpa...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim
index 1535644d2..4dc60eefa 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 <
github...@aleeas.com>
" 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 ea3f33cec..896e83ec4 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 \<CR>"
+
+ 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 724eda425..7546d0319 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,
/**/