runtime(tar): remove dependency on netrw#WinPath, include mapping doc

Commit: 
https://github.com/vim/vim/commit/470317f78b110b4559cecb26039b5f93447c1bf0
Author: Christian Brabandt <c...@256bit.org>
Date:   Wed Apr 16 17:13:28 2025 +0200

    runtime(tar): remove dependency on netrw#WinPath, include mapping doc
    
    related: https://github.com/vim/vim/issues/17124
    
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/autoload/tar.vim b/runtime/autoload/tar.vim
index 4aab91566..499036ef9 100644
--- a/runtime/autoload/tar.vim
+++ b/runtime/autoload/tar.vim
@@ -14,6 +14,7 @@
 "   2025 Mar 02 by Vim Project: escape the filename before using :read
 "   2025 Mar 02 by Vim Project: determine the compression using readblob()
 "                               instead of shelling out to file(1)
+"   2025 Apr 16 by Vim Project: decouple from netrw by adding s:WinPath()
 "
 "      Contains many ideas from Michael Toren's <tar.vim>
 "
@@ -146,7 +147,7 @@ fun! tar#Browse(tarfile)
   let lastline= line("$")
   call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
   call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
-  call setline(lastline+3,'" Select a file with cursor and press ENTER')
+  call setline(lastline+3,'" Select a file with cursor and press ENTER, "x" to 
extract a file')
   keepj $put =''
   keepj sil! 0d
   keepj $
@@ -615,7 +616,7 @@ fun! tar#Extract()
   let tarball = expand("%")
   let tarbase = substitute(tarball,'\..*$','','')
 
-  let extractcmd= netrw#WinPath(g:tar_extractcmd)
+  let extractcmd= s:WinPath(g:tar_extractcmd)
   if filereadable(tarbase.".tar")
    call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
    if v:shell_error != 0
@@ -765,6 +766,25 @@ fun! s:Header(fname)
   return "unknown"
 endfun
 
+" ---------------------------------------------------------------------
+" s:WinPath: {{{2
+fun! s:WinPath(path)
+  if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && 
has("win32")
+    " remove cygdrive prefix, if present
+    let path = substitute(a:path, '/cygdrive/\(.\)', ' :', '')
+    " remove trailing slash (Win95)
+    let path = substitute(path, '\(\\|/\)$', '', 'g')
+    " remove escaped spaces
+    let path = substitute(path, '\ ', ' ', 'g')
+    " convert slashes to backslashes
+    let path = substitute(path, '/', '\', 'g')
+  else
+    let path = a:path
+  endif
+
+  return path
+endfun
+
 " ---------------------------------------------------------------------
 " tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
 fun! tar#Vimuntar(...)
@@ -786,7 +806,7 @@ fun! tar#Vimuntar(...)
 
   if simplify(curdir) != simplify(vimhome)
    " copy (possibly compressed) tarball to .vim/vimfiles
-   call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." 
".shellescape(vimhome))
+   call system(s:WinPath(g:tar_copycmd)." ".shellescape(tartail)." 
".shellescape(vimhome))
    exe "cd ".fnameescape(vimhome)
   endif
 
@@ -808,7 +828,7 @@ fun! tar#Vimuntar(...)
   else
    call vimball#Decompress(tartail,0)
   endif
-  let extractcmd= netrw#WinPath(g:tar_extractcmd)
+  let extractcmd= s:WinPath(g:tar_extractcmd)
   call system(extractcmd." ".shellescape(tarbase.".tar"))
 
   " set up help
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index 5b317d608..6d49928dc 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*pi_tar.txt*   For Vim version 9.1.  Last change: 2024 May 11
+*pi_tar.txt*   For Vim version 9.1.  Last change: 2025 Mar 16
 
                       +====================+
                       | Tar File Interface |
@@ -74,6 +74,15 @@ Copyright 2005-2017:                                 
*tar-copyright*
        let g:loaded_tarPlugin= 1
        let g:loaded_tar      = 1
 <
+                                                       *tar-mappings*
+   MAPPINGS~
+
+   The following (buffer-local) mappings are available in a tar buffer:
+
+       <CR>            Open selected file for editing, any changes will be
+                       written back to the archive.
+       <LeftMouse>     same as <CR>
+       x               Extract selected file.
 
 ==============================================================================
 3. Options                                             *tar-options*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 8c7b81adb..415b67589 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -10681,6 +10681,7 @@ tar-contents    pi_tar.txt      /*tar-contents*
 tar-copyright  pi_tar.txt      /*tar-copyright*
 tar-history    pi_tar.txt      /*tar-history*
 tar-manual     pi_tar.txt      /*tar-manual*
+tar-mappings   pi_tar.txt      /*tar-mappings*
 tar-options    pi_tar.txt      /*tar-options*
 tar-usage      pi_tar.txt      /*tar-usage*
 tcl    if_tcl.txt      /*tcl*

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1u54iB-006iJH-TV%40256bit.org.

Raspunde prin e-mail lui