patch 9.2.0037: netrw: need better tests for absolute paths

Commit: 
https://github.com/vim/vim/commit/bd1dc5b1a652e9f2ba45e3695ea2d83e81992c88
Author: Miguel Barro <[email protected]>
Date:   Sat Feb 21 10:23:36 2026 +0000

    patch 9.2.0037: netrw: need better tests for absolute paths
    
    Problem:  netrw: need better tests for absolute paths
    Solution: Use absolutepath(), instead of regex test (Miguel Barro).
    
    closes: #19477
    
    Signed-off-by: Guybrush <[email protected]>
    Signed-off-by: Christian Brabandt <[email protected]>

diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim 
b/runtime/pack/dist/opt/netrw/autoload/netrw.vim
index 4f0d7b3b5..51e05f2b1 100644
--- a/runtime/pack/dist/opt/netrw/autoload/netrw.vim
+++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim
@@ -19,6 +19,7 @@
 " 2025 Dec 26 by Vim Project fix use of g:netrw_cygwin #19015
 " 2026 Jan 19 by Vim Project do not create swapfiles #18854
 " 2026 Feb 15 by Vim Project fix global variable initialization for MS-Windows 
#19287
+" 2026 Feb 21 by Vim Project better absolute path detection on MS-Windows 
#19477
 " 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
@@ -3239,7 +3240,7 @@ function s:NetrwFile(fname)
         endif
 
         if !g:netrw_cygwin && has("win32")
-            if fname =~ '^\' || fname =~ '^ :\'
+            if isabsolutepath(fname)
                 " windows, but full path given
                 let ret= fname
             else
diff --git a/src/testdir/test_plugin_netrw.vim 
b/src/testdir/test_plugin_netrw.vim
index 09109b471..23a060227 100644
--- a/src/testdir/test_plugin_netrw.vim
+++ b/src/testdir/test_plugin_netrw.vim
@@ -113,7 +113,6 @@ function Test_NetrwMarkFileCopy_SameDir(dir = $HOME, 
symlink = 0) abort
     endif
 endfunction
 
-
 " Test file copy operations via s:NetrwMarkFileMove()
 function Test_NetrwMarkFileMove(source_dir, target_dir, marked_files) abort
     " set up
@@ -128,6 +127,12 @@ function Test_NetrwMarkFileMove(source_dir, target_dir, 
marked_files) abort
     bw
 endfunction
 
+" Test how netrw fixes paths according with settings
+" (g:netrw_keepdir, g:netrw_cygwin, tree style ...)
+function Test_NetrwFile(fname) abort
+    return s:NetrwFile(a:fname)
+endfunction
+
 " }}}
 END
 
@@ -303,6 +308,30 @@ func Test_netrw_wipe_empty_buffer_fastpath()
   unlet! netrw_fastbrowse
 endfunction
 
+" Test UNC paths on windows
+func Test_netrw_check_UNC_paths()
+  CheckMSWindows
+
+  let test_paths = [
+  \ '\Server2\Share\Test\Foo.txt',
+  \ '//Server2/Share/Test/Foo.txt',
+  \ '\Server2\Share\Test\',
+  \ '//Server2/Share/Test/',
+  \ '\wsl.localhost\Ubuntu\home\user\_vimrc',
+  \ '//wsl.localhost/Ubuntu/home/user/_vimrc',
+  \ '\wsl.localhost\Ubuntu\home\user',
+  \ '//wsl.localhost/Ubuntu/home/user']
+
+  " The paths must be interpreted as absolute ones
+  for path in test_paths
+    call assert_equal(
+    \   path,
+    \   Test_NetrwFile(path),
+    \   $"UNC path: {path} missinterpreted")
+  endfor
+
+endfunction
+
 " ---------------------------------
 " Testing file management functions
 " ---------------------------------
diff --git a/src/version.c b/src/version.c
index d38a46661..0ced1173e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -734,6 +734,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    37,
 /**/
     36,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1vtkFR-005fXr-NW%40256bit.org.

Raspunde prin e-mail lui