runtime(tar): remove dependency on netrw#WinPath, include mapping doc
Commit:
https://github.com/vim/vim/commit/470317f78b110b4559cecb26039b5f93447c1bf0
Author: Christian Brabandt <[email protected]>
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 <[email protected]>
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 [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/vim_dev/E1u54iB-006iJH-TV%40256bit.org.