1a5792f58SBram Moolenaar" tar.vim: Handles browsing tarfiles 2a5792f58SBram Moolenaar" AUTOLOAD PORTION 3*910f66f9SBram Moolenaar" Date: Mar 27, 2006 41cbe5f73SBram Moolenaar" Version: 7 5a5792f58SBram Moolenaar" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> 6a5792f58SBram Moolenaar" License: Vim License (see vim's :help license) 787e25fdfSBram Moolenaar" 8a5792f58SBram Moolenaar" Contains many ideas from Michael Toren's <tar.vim> 987e25fdfSBram Moolenaar" 10a5792f58SBram Moolenaar" Copyright: Copyright (C) 2005 Charles E. Campbell, Jr. {{{1 11a5792f58SBram Moolenaar" Permission is hereby granted to use and distribute this code, 12a5792f58SBram Moolenaar" with or without modifications, provided that this copyright 13a5792f58SBram Moolenaar" notice is copied with it. Like anything else that's free, 14a5792f58SBram Moolenaar" tarPlugin.vim is provided *as is* and comes with no warranty 15a5792f58SBram Moolenaar" of any kind, either expressed or implied. By using this 16a5792f58SBram Moolenaar" plugin, you agree that in no event will the copyright 17a5792f58SBram Moolenaar" holder be liable for any damages resulting from the use 18a5792f58SBram Moolenaar" of this software. 1987e25fdfSBram Moolenaar 20ab194816SBram Moolenaar" --------------------------------------------------------------------- 21a5792f58SBram Moolenaar" Initialization: {{{1 22a5792f58SBram Moolenaarlet s:keepcpo= &cpo 23a5792f58SBram Moolenaarset cpo&vim 24a5792f58SBram Moolenaarif exists("g:loaded_tar") 25a5792f58SBram Moolenaar finish 26a5792f58SBram Moolenaarendif 271cbe5f73SBram Moolenaarlet g:loaded_tar= "v7" 28*910f66f9SBram Moolenaar"call Decho("loading autoload/tar.vim") 2987e25fdfSBram Moolenaar 30a5792f58SBram Moolenaar" --------------------------------------------------------------------- 31a5792f58SBram Moolenaar" Default Settings: {{{1 32a5792f58SBram Moolenaarif !exists("g:tar_browseoptions") 33a5792f58SBram Moolenaar let g:tar_browseoptions= "Ptf" 34a5792f58SBram Moolenaarendif 35a5792f58SBram Moolenaarif !exists("g:tar_readoptions") 36a5792f58SBram Moolenaar let g:tar_readoptions= "OPxf" 37a5792f58SBram Moolenaarendif 38*910f66f9SBram Moolenaarif !exists("g:tar_cmd") 39*910f66f9SBram Moolenaar let g:tar_cmd= "tar" 40*910f66f9SBram Moolenaarendif 41a5792f58SBram Moolenaarif !exists("g:tar_writeoptions") 42a5792f58SBram Moolenaar let g:tar_writeoptions= "uf" 43a5792f58SBram Moolenaarendif 44a5792f58SBram Moolenaar 45a5792f58SBram Moolenaar" ---------------- 46a5792f58SBram Moolenaar" Functions: {{{1 47a5792f58SBram Moolenaar" ---------------- 48a5792f58SBram Moolenaar 49a5792f58SBram Moolenaar" --------------------------------------------------------------------- 50a5792f58SBram Moolenaar" tar#Browse: {{{2 51a5792f58SBram Moolenaarfun! tar#Browse(tarfile) 52a5792f58SBram Moolenaar" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)") 53bba577a2SBram Moolenaar let repkeep= &report 54bba577a2SBram Moolenaar set report=10 55a5792f58SBram Moolenaar 56a5792f58SBram Moolenaar " sanity checks 57*910f66f9SBram Moolenaar if !executable(g:tar_cmd) 58*910f66f9SBram Moolenaar echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' 59a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 60bba577a2SBram Moolenaar let &report= repkeep 61a5792f58SBram Moolenaar" call Dret("tar#Browse") 6287e25fdfSBram Moolenaar return 6387e25fdfSBram Moolenaar endif 64a5792f58SBram Moolenaar if !filereadable(a:tarfile) 65*910f66f9SBram Moolenaar" call Decho('a:tarfile<'.a:tarfile.'> not filereadable') 66a5792f58SBram Moolenaar if a:tarfile !~# '^\a\+://' 67a5792f58SBram Moolenaar " if its an url, don't complain, let url-handlers such as vim do its thing 68a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None 69a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 7087e25fdfSBram Moolenaar endif 71bba577a2SBram Moolenaar let &report= repkeep 72a5792f58SBram Moolenaar" call Dret("tar#Browse : file<".a:tarfile."> not readable") 7387e25fdfSBram Moolenaar return 7487e25fdfSBram Moolenaar endif 75a5792f58SBram Moolenaar if &ma != 1 76a5792f58SBram Moolenaar set ma 7787e25fdfSBram Moolenaar endif 78a5792f58SBram Moolenaar let w:tarfile= a:tarfile 79a5792f58SBram Moolenaar 80a5792f58SBram Moolenaar setlocal noswapfile 81a5792f58SBram Moolenaar setlocal buftype=nofile 82a5792f58SBram Moolenaar setlocal bufhidden=hide 83a5792f58SBram Moolenaar setlocal nobuflisted 84a5792f58SBram Moolenaar setlocal nowrap 85a5792f58SBram Moolenaar set ft=tar 86a5792f58SBram Moolenaar 87a5792f58SBram Moolenaar " give header 88*910f66f9SBram Moolenaar" call Decho("printing header") 89a5792f58SBram Moolenaar exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'" 90a5792f58SBram Moolenaar exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'" 91a5792f58SBram Moolenaar exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'" 92a5792f58SBram Moolenaar 0d 93a5792f58SBram Moolenaar $ 94a5792f58SBram Moolenaar 95*910f66f9SBram Moolenaar let tarfile= a:tarfile 96*910f66f9SBram Moolenaar if has("win32") && executable("cygpath") 97*910f66f9SBram Moolenaar " assuming cygwin 98*910f66f9SBram Moolenaar let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') 99a5792f58SBram Moolenaar endif 100*910f66f9SBram Moolenaar if tarfile =~# '\.\(gz\|tgz\)$' 101*910f66f9SBram Moolenaar" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ") 102*910f66f9SBram Moolenaar exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - " 103*910f66f9SBram Moolenaar elseif tarfile =~# '\.bz2$' 104*910f66f9SBram Moolenaar" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ") 105*910f66f9SBram Moolenaar exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - " 106*910f66f9SBram Moolenaar else 107*910f66f9SBram Moolenaar" call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'") 108*910f66f9SBram Moolenaar exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'" 109*910f66f9SBram Moolenaar endif 110*910f66f9SBram Moolenaar if v:shell_error != 0 111*910f66f9SBram Moolenaar echohl Error | echo '***error*** (tar#Browse) while browsing; check your g:tar_browseoptions<".g:tar_browseoptions.">" 112*910f66f9SBram Moolenaar" call Dret("tar#Browse : w:tarfile<".w:tarfile.">") 113*910f66f9SBram Moolenaar return 114*910f66f9SBram Moolenaar endif 115a5792f58SBram Moolenaar 116a5792f58SBram Moolenaar setlocal noma nomod ro 117a5792f58SBram Moolenaar noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr> 118a5792f58SBram Moolenaar 119bba577a2SBram Moolenaar let &report= repkeep 120a5792f58SBram Moolenaar" call Dret("tar#Browse : w:tarfile<".w:tarfile.">") 121ab194816SBram Moolenaarendfun 12287e25fdfSBram Moolenaar 123ab194816SBram Moolenaar" --------------------------------------------------------------------- 124a5792f58SBram Moolenaar" TarBrowseSelect: {{{2 125a5792f58SBram Moolenaarfun! s:TarBrowseSelect() 126a5792f58SBram Moolenaar" call Dfunc("TarBrowseSelect() w:tarfile<".w:tarfile."> curfile<".expand("%").">") 127bba577a2SBram Moolenaar let repkeep= &report 128bba577a2SBram Moolenaar set report=10 129a5792f58SBram Moolenaar let fname= getline(".") 130a5792f58SBram Moolenaar" call Decho("fname<".fname.">") 131a5792f58SBram Moolenaar 132a5792f58SBram Moolenaar " sanity check 133a5792f58SBram Moolenaar if fname =~ '^"' 134bba577a2SBram Moolenaar let &report= repkeep 135a5792f58SBram Moolenaar" call Dret("TarBrowseSelect") 136a5792f58SBram Moolenaar return 137a5792f58SBram Moolenaar endif 138a5792f58SBram Moolenaar 139a5792f58SBram Moolenaar " about to make a new window, need to use w:tarfile 140a5792f58SBram Moolenaar let tarfile= w:tarfile 141a5792f58SBram Moolenaar let curfile= expand("%") 142*910f66f9SBram Moolenaar if has("win32") && executable("cygpath") 143*910f66f9SBram Moolenaar " assuming cygwin 144*910f66f9SBram Moolenaar let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') 145*910f66f9SBram Moolenaar endif 146a5792f58SBram Moolenaar 147a5792f58SBram Moolenaar new 148a5792f58SBram Moolenaar wincmd _ 149a5792f58SBram Moolenaar let s:tblfile_{winnr()}= curfile 150*910f66f9SBram Moolenaar" if has("unix") 151*910f66f9SBram Moolenaar"" call Decho("exe e tarfile:".tarfile.':'.fname) 152*910f66f9SBram Moolenaar" exe "e tarfile:".tarfile.':'.fname 153*910f66f9SBram Moolenaar" elseif has("win32") 154*910f66f9SBram Moolenaar" call tar#Read("tarfile:".tarfile.':'.fname,1) 155*910f66f9SBram Moolenaar" endif 156*910f66f9SBram Moolenaar call tar#Read("tarfile:".tarfile.':'.fname,1) 157a5792f58SBram Moolenaar filetype detect 158a5792f58SBram Moolenaar 159bba577a2SBram Moolenaar let &report= repkeep 160a5792f58SBram Moolenaar" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">") 161a5792f58SBram Moolenaarendfun 162a5792f58SBram Moolenaar 163a5792f58SBram Moolenaar" --------------------------------------------------------------------- 164a5792f58SBram Moolenaar" tar#Read: {{{2 165a5792f58SBram Moolenaarfun! tar#Read(fname,mode) 166a5792f58SBram Moolenaar" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")") 167bba577a2SBram Moolenaar let repkeep= &report 168bba577a2SBram Moolenaar set report=10 169a5792f58SBram Moolenaar let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','') 170a5792f58SBram Moolenaar let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','') 171*910f66f9SBram Moolenaar if has("win32") && executable("cygpath") 172*910f66f9SBram Moolenaar " assuming cygwin 173*910f66f9SBram Moolenaar let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e') 174*910f66f9SBram Moolenaar endif 175*910f66f9SBram Moolenaar" call Decho("tarfile<".tarfile.">") 176*910f66f9SBram Moolenaar" call Decho("fname<".fname.">") 177a5792f58SBram Moolenaar 178a5792f58SBram Moolenaar if tarfile =~# '\.\(gz\|tgz\)$' 179a5792f58SBram Moolenaar" call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'") 180a5792f58SBram Moolenaar exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" 1811cbe5f73SBram Moolenaar elseif tarfile =~# '\.bz2$' 182a5792f58SBram Moolenaar" call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'") 183a5792f58SBram Moolenaar exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" 184a5792f58SBram Moolenaar else 185a5792f58SBram Moolenaar" call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'") 186*910f66f9SBram Moolenaar exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." '".tarfile."' '".fname."'" 187a5792f58SBram Moolenaar endif 188a5792f58SBram Moolenaar let w:tarfile= a:fname 189a5792f58SBram Moolenaar exe "file tarfile:".fname 190a5792f58SBram Moolenaar 191a5792f58SBram Moolenaar " cleanup 192a5792f58SBram Moolenaar 0d 193a5792f58SBram Moolenaar set nomod 194a5792f58SBram Moolenaar 195bba577a2SBram Moolenaar let &report= repkeep 196a5792f58SBram Moolenaar" call Dret("tar#Read : w:tarfile<".w:tarfile.">") 197a5792f58SBram Moolenaarendfun 198a5792f58SBram Moolenaar 199a5792f58SBram Moolenaar" --------------------------------------------------------------------- 200a5792f58SBram Moolenaar" tar#Write: {{{2 201a5792f58SBram Moolenaarfun! tar#Write(fname) 202a5792f58SBram Moolenaar" call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">") 203bba577a2SBram Moolenaar let repkeep= &report 204bba577a2SBram Moolenaar set report=10 205a5792f58SBram Moolenaar 206ab194816SBram Moolenaar " sanity checks 207*910f66f9SBram Moolenaar if !executable(g:tar_cmd) 208*910f66f9SBram Moolenaar echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system' 209a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 210bba577a2SBram Moolenaar let &report= repkeep 211ab194816SBram Moolenaar" call Dret("tar#Write") 212ab194816SBram Moolenaar return 213ab194816SBram Moolenaar endif 214ab194816SBram Moolenaar if !exists("*mkdir") 215a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None 216a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 217bba577a2SBram Moolenaar let &report= repkeep 218ab194816SBram Moolenaar" call Dret("tar#Write") 219ab194816SBram Moolenaar return 220ab194816SBram Moolenaar endif 221ab194816SBram Moolenaar 222ab194816SBram Moolenaar let curdir= getcwd() 223ab194816SBram Moolenaar let tmpdir= tempname() 224ab194816SBram Moolenaar" call Decho("orig tempname<".tmpdir.">") 225ab194816SBram Moolenaar if tmpdir =~ '\.' 226ab194816SBram Moolenaar let tmpdir= substitute(tmpdir,'\.[^.]*$','','e') 227ab194816SBram Moolenaar endif 228ab194816SBram Moolenaar" call Decho("tmpdir<".tmpdir.">") 229ab194816SBram Moolenaar call mkdir(tmpdir,"p") 230ab194816SBram Moolenaar 231ab194816SBram Moolenaar " attempt to change to the indicated directory 232ab194816SBram Moolenaar try 233ab194816SBram Moolenaar exe "cd ".escape(tmpdir,' \') 234ab194816SBram Moolenaar catch /^Vim\%((\a\+)\)\=:E344/ 235a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None 236a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 237bba577a2SBram Moolenaar let &report= repkeep 238ab194816SBram Moolenaar" call Dret("tar#Write") 239ab194816SBram Moolenaar return 240ab194816SBram Moolenaar endtry 241ab194816SBram Moolenaar" call Decho("current directory now: ".getcwd()) 242ab194816SBram Moolenaar 243a5792f58SBram Moolenaar " place temporary files under .../_ZIPVIM_/ 244a5792f58SBram Moolenaar if isdirectory("_ZIPVIM_") 245a5792f58SBram Moolenaar call s:Rmdir("_ZIPVIM_") 246ab194816SBram Moolenaar endif 247a5792f58SBram Moolenaar call mkdir("_ZIPVIM_") 248a5792f58SBram Moolenaar cd _ZIPVIM_ 249ab194816SBram Moolenaar" call Decho("current directory now: ".getcwd()) 250ab194816SBram Moolenaar 251a5792f58SBram Moolenaar let tarfile = substitute(w:tarfile,'tarfile:\(.\{-}\):.*$','\1','') 252a5792f58SBram Moolenaar let fname = substitute(w:tarfile,'tarfile:.\{-}:\(.*\)$','\1','') 253a5792f58SBram Moolenaar 254a5792f58SBram Moolenaar " handle compressed archives 255a5792f58SBram Moolenaar if tarfile =~# '\.gz' 256a5792f58SBram Moolenaar call system("gzip -d ".tarfile) 257a5792f58SBram Moolenaar let tarfile = substitute(tarfile,'\.gz','','e') 258a5792f58SBram Moolenaar let compress= "gzip '".tarfile."'" 259a5792f58SBram Moolenaar elseif tarfile =~# '\.tgz' 260a5792f58SBram Moolenaar call system("gzip -d ".tarfile) 261a5792f58SBram Moolenaar let tarfile = substitute(tarfile,'\.tgz','.tar','e') 262a5792f58SBram Moolenaar let compress= "gzip '".tarfile."'" 263a5792f58SBram Moolenaar let tgz = 1 264a5792f58SBram Moolenaar elseif tarfile =~# '\.bz2' 265a5792f58SBram Moolenaar call system("bzip2 -d ".tarfile) 266a5792f58SBram Moolenaar let tarfile = substitute(tarfile,'\.bz2','','e') 267a5792f58SBram Moolenaar let compress= "bzip2 '".tarfile."'" 268a5792f58SBram Moolenaar endif 269a5792f58SBram Moolenaar 270a5792f58SBram Moolenaar if v:shell_error != 0 271a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None 272a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 273a5792f58SBram Moolenaar else 274a5792f58SBram Moolenaar 275a5792f58SBram Moolenaar" call Decho("tarfile<".tarfile."> fname<".fname.">") 276a5792f58SBram Moolenaar 2771cbe5f73SBram Moolenaar if fname =~ '/' 278a5792f58SBram Moolenaar let dirpath = substitute(fname,'/[^/]\+$','','e') 2791cbe5f73SBram Moolenaar if executable("cygpath") 2801cbe5f73SBram Moolenaar let dirpath = substitute(system("cygpath ".dirpath),'\n','','e') 2811cbe5f73SBram Moolenaar endif 2821cbe5f73SBram Moolenaar call mkdir(dirpath,"p") 2831cbe5f73SBram Moolenaar endif 284a5792f58SBram Moolenaar if tarfile !~ '/' 285a5792f58SBram Moolenaar let tarfile= curdir.'/'.tarfile 286a5792f58SBram Moolenaar endif 287a5792f58SBram Moolenaar" call Decho("tarfile<".tarfile."> fname<".fname.">") 288a5792f58SBram Moolenaar 289a5792f58SBram Moolenaar exe "w! ".fname 290ab194816SBram Moolenaar if executable("cygpath") 291ab194816SBram Moolenaar let tarfile = substitute(system("cygpath ".tarfile),'\n','','e') 292ab194816SBram Moolenaar endif 293ab194816SBram Moolenaar 294a5792f58SBram Moolenaar " delete old file from tarfile 295a5792f58SBram Moolenaar" call Decho("tar --delete -f '".tarfile."' '".fname."'") 296a5792f58SBram Moolenaar call system("tar --delete -f '".tarfile."' '".fname."'") 297ab194816SBram Moolenaar if v:shell_error != 0 298a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None 299a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 300ab194816SBram Moolenaar else 301a5792f58SBram Moolenaar 302a5792f58SBram Moolenaar " update tarfile with new file 303a5792f58SBram Moolenaar" call Decho("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'") 304a5792f58SBram Moolenaar call system("tar -".g:tar_writeoptions." '".tarfile."' '".fname."'") 305a5792f58SBram Moolenaar if v:shell_error != 0 306a5792f58SBram Moolenaar echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None 307a5792f58SBram Moolenaar call inputsave()|call input("Press <cr> to continue")|call inputrestore() 308a5792f58SBram Moolenaar elseif exists("compress") 309a5792f58SBram Moolenaar" call Decho("call system(".compress.")") 310a5792f58SBram Moolenaar call system(compress) 311a5792f58SBram Moolenaar if exists("tgz") 312a5792f58SBram Moolenaar" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")") 313a5792f58SBram Moolenaar call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e')) 314a5792f58SBram Moolenaar endif 315a5792f58SBram Moolenaar endif 316a5792f58SBram Moolenaar endif 317a5792f58SBram Moolenaar 318a5792f58SBram Moolenaar " support writing tarfiles across a network 319a5792f58SBram Moolenaar if s:tblfile_{winnr()} =~ '^\a\+://' 320a5792f58SBram Moolenaar" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">") 321a5792f58SBram Moolenaar let tblfile= s:tblfile_{winnr()} 322a5792f58SBram Moolenaar 1split|enew 323a5792f58SBram Moolenaar let binkeep= &binary 324a5792f58SBram Moolenaar let eikeep = &ei 325a5792f58SBram Moolenaar set binary ei=all 326a5792f58SBram Moolenaar exe "e! ".tarfile 327a5792f58SBram Moolenaar call netrw#NetWrite(tblfile) 328a5792f58SBram Moolenaar let &ei = eikeep 329a5792f58SBram Moolenaar let &binary = binkeep 330a5792f58SBram Moolenaar q! 331a5792f58SBram Moolenaar unlet s:tblfile_{winnr()} 332a5792f58SBram Moolenaar endif 333ab194816SBram Moolenaar endif 334ab194816SBram Moolenaar 335ab194816SBram Moolenaar " cleanup and restore current directory 336ab194816SBram Moolenaar cd .. 337a5792f58SBram Moolenaar call s:Rmdir("_ZIPVIM_") 338ab194816SBram Moolenaar exe "cd ".escape(curdir,' \') 339ab194816SBram Moolenaar setlocal nomod 340ab194816SBram Moolenaar 341bba577a2SBram Moolenaar let &report= repkeep 342ab194816SBram Moolenaar" call Dret("tar#Write") 343ab194816SBram Moolenaarendfun 344ab194816SBram Moolenaar 345ab194816SBram Moolenaar" --------------------------------------------------------------------- 346a5792f58SBram Moolenaar" Rmdir: {{{2 347ab194816SBram Moolenaarfun! s:Rmdir(fname) 348ab194816SBram Moolenaar" call Dfunc("Rmdir(fname<".a:fname.">)") 349ab194816SBram Moolenaar if has("unix") 350ab194816SBram Moolenaar call system("/bin/rm -rf ".a:fname) 351ab194816SBram Moolenaar elseif has("win32") || has("win95") || has("win64") || has("win16") 352ab194816SBram Moolenaar if &shell =~? "sh$" 353ab194816SBram Moolenaar call system("/bin/rm -rf ".a:fname) 354ab194816SBram Moolenaar else 355ab194816SBram Moolenaar call system("del /S ".a:fname) 356ab194816SBram Moolenaar endif 357ab194816SBram Moolenaar endif 358ab194816SBram Moolenaar" call Dret("Rmdir") 359ab194816SBram Moolenaarendfun 360ab194816SBram Moolenaar 361a5792f58SBram Moolenaar" ------------------------------------------------------------------------ 362a5792f58SBram Moolenaar" Modelines And Restoration: {{{1 363a5792f58SBram Moolenaarlet &cpo= s:keepcpo 364a5792f58SBram Moolenaarunlet s:keepcpo 365a5792f58SBram Moolenaar" vim:ts=8 fdm=marker 366