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.