summaryrefslogtreecommitdiffstats
path: root/autoload/tar.vim
diff options
context:
space:
mode:
Diffstat (limited to 'autoload/tar.vim')
-rw-r--r--autoload/tar.vim630
1 files changed, 0 insertions, 630 deletions
diff --git a/autoload/tar.vim b/autoload/tar.vim
deleted file mode 100644
index 2289c697..00000000
--- a/autoload/tar.vim
+++ /dev/null
@@ -1,630 +0,0 @@
-if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1
-
-" tar.vim: Handles browsing tarfiles
-" AUTOLOAD PORTION
-" Date: Apr 17, 2013
-" Version: 29
-" Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
-" License: Vim License (see vim's :help license)
-"
-" Contains many ideas from Michael Toren's <tar.vim>
-"
-" Copyright: Copyright (C) 2005-2011 Charles E. Campbell {{{1
-" Permission is hereby granted to use and distribute this code,
-" with or without modifications, provided that this copyright
-" notice is copied with it. Like anything else that's free,
-" tar.vim and tarPlugin.vim are provided *as is* and comes
-" with no warranty of any kind, either expressed or implied.
-" By using this plugin, you agree that in no event will the
-" copyright holder be liable for any damages resulting from
-" the use of this software.
-" call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if &cp || exists("g:loaded_tar")
- finish
-endif
-let g:loaded_tar= "v29"
-if v:version < 702
- echohl WarningMsg
- echo "***warning*** this version of tar needs vim 7.2"
- echohl Normal
- finish
-endif
-let s:keepcpo= &cpo
-set cpo&vim
-"DechoTabOn
-"call Decho("loading autoload/tar.vim")
-
-" ---------------------------------------------------------------------
-" Default Settings: {{{1
-if !exists("g:tar_browseoptions")
- let g:tar_browseoptions= "Ptf"
-endif
-if !exists("g:tar_readoptions")
- let g:tar_readoptions= "OPxf"
-endif
-if !exists("g:tar_cmd")
- let g:tar_cmd= "tar"
-endif
-if !exists("g:tar_writeoptions")
- let g:tar_writeoptions= "uf"
-endif
-if !exists("g:netrw_cygwin")
- if has("win32") || has("win95") || has("win64") || has("win16")
- if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
- let g:netrw_cygwin= 1
- else
- let g:netrw_cygwin= 0
- endif
- else
- let g:netrw_cygwin= 0
- endif
-endif
-if !exists("g:tar_copycmd")
- if !exists("g:netrw_localcopycmd")
- if has("win32") || has("win95") || has("win64") || has("win16")
- if g:netrw_cygwin
- let g:netrw_localcopycmd= "cp"
- else
- let g:netrw_localcopycmd= "copy"
- endif
- elseif has("unix") || has("macunix")
- let g:netrw_localcopycmd= "cp"
- else
- let g:netrw_localcopycmd= ""
- endif
- endif
- let g:tar_copycmd= g:netrw_localcopycmd
-endif
-if !exists("g:tar_extractcmd")
- let g:tar_extractcmd= "tar -xf"
-endif
-
-" set up shell quoting character
-if !exists("g:tar_shq")
- if exists("+shq") && exists("&shq") && &shq != ""
- let g:tar_shq= &shq
- elseif has("win32") || has("win95") || has("win64") || has("win16")
- if exists("g:netrw_cygwin") && g:netrw_cygwin
- let g:tar_shq= "'"
- else
- let g:tar_shq= '"'
- endif
- else
- let g:tar_shq= "'"
- endif
-" call Decho("g:tar_shq<".g:tar_shq.">")
-endif
-
-" ----------------
-" Functions: {{{1
-" ----------------
-
-" ---------------------------------------------------------------------
-" tar#Browse: {{{2
-fun! tar#Browse(tarfile)
-" call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
- let repkeep= &report
- set report=10
-
- " sanity checks
- if !executable(g:tar_cmd)
- redraw!
- echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
- let &report= repkeep
-" call Dret("tar#Browse")
- return
- endif
- if !filereadable(a:tarfile)
-" call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
- if a:tarfile !~# '^\a\+://'
- " if it's an url, don't complain, let url-handlers such as vim do its thing
- redraw!
- echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
- endif
- let &report= repkeep
-" call Dret("tar#Browse : file<".a:tarfile."> not readable")
- return
- endif
- if &ma != 1
- set ma
- endif
- let b:tarfile= a:tarfile
-
- setlocal noswapfile
- setlocal buftype=nofile
- setlocal bufhidden=hide
- setlocal nobuflisted
- setlocal nowrap
- set ft=tar
-
- " give header
-" call Decho("printing header")
- 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')
- keepj $put =''
- keepj sil! 0d
- keepj $
-
- let tarfile= a:tarfile
- if has("win32unix") && executable("cygpath")
- " assuming cygwin
- let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
- endif
- let curlast= line("$")
- if tarfile =~# '\.\(gz\|tgz\)$'
-" call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
- exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
- elseif tarfile =~# '\.lrp'
-" call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
- exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
- elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
-" call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
- exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
- elseif tarfile =~# '\.\(lzma\|tlz\)$'
-" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
- exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
- elseif tarfile =~# '\.\(xz\|txz\)$'
-" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
- exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
- else
- if tarfile =~ '^\s*-'
- " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
- let tarfile = substitute(tarfile, '-', './-', '')
- endif
-" call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
- exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
- endif
- if v:shell_error != 0
- redraw!
- echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
-" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
- return
- endif
- if line("$") == curlast || ( line("$") == (curlast + 1) && getline("$") =~ '\c\%(warning\|error\|inappropriate\|unrecognized\)')
- redraw!
- echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
- keepj sil! %d
- let eikeep= &ei
- set ei=BufReadCmd,FileReadCmd
- exe "r ".fnameescape(a:tarfile)
- let &ei= eikeep
- keepj sil! 1d
-" call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
- return
- endif
-
- setlocal noma nomod ro
- noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
-
- let &report= repkeep
-" call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
-endfun
-
-" ---------------------------------------------------------------------
-" TarBrowseSelect: {{{2
-fun! s:TarBrowseSelect()
-" call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
- let repkeep= &report
- set report=10
- let fname= getline(".")
-" call Decho("fname<".fname.">")
-
- if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
- redraw!
- echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
-" call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
- return
- endif
-
- " sanity check
- if fname =~ '^"'
- let &report= repkeep
-" call Dret("TarBrowseSelect")
- return
- endif
-
- " about to make a new window, need to use b:tarfile
- let tarfile= b:tarfile
- let curfile= expand("%")
- if has("win32unix") && executable("cygpath")
- " assuming cygwin
- let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
- endif
-
- new
- if !exists("g:tar_nomax") || g:tar_nomax == 0
- wincmd _
- endif
- let s:tblfile_{winnr()}= curfile
- call tar#Read("tarfile:".tarfile.'::'.fname,1)
- filetype detect
- set nomod
- exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
-
- let &report= repkeep
-" call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
-endfun
-
-" ---------------------------------------------------------------------
-" tar#Read: {{{2
-fun! tar#Read(fname,mode)
-" call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
- let repkeep= &report
- set report=10
- let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
- let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
- if has("win32unix") && executable("cygpath")
- " assuming cygwin
- let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
- endif
-" call Decho("tarfile<".tarfile.">")
-" call Decho("fname<".fname.">")
-
- if fname =~ '\.bz2$' && executable("bzcat")
- let decmp= "|bzcat"
- let doro = 1
- elseif fname =~ '\.gz$' && executable("zcat")
- let decmp= "|zcat"
- let doro = 1
- elseif fname =~ '\.lzma$' && executable("lzcat")
- let decmp= "|lzcat"
- let doro = 1
- elseif fname =~ '\.xz$' && executable("xzcat")
- let decmp= "|xzcat"
- let doro = 1
- else
- let decmp=""
- let doro = 0
- if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
- setlocal bin
- endif
- endif
-
- if exists("g:tar_secure")
- let tar_secure= " -- "
- else
- let tar_secure= " "
- endif
- if tarfile =~# '\.bz2$'
-" call Decho("7: exe silent r! bzip2 -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
- exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
- elseif tarfile =~# '\.\(gz\|tgz\)$'
-" call Decho("5: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd.' -'.g:tar_readoptions.' - '.tar_secure.shellescape(fname,1))
- exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
- elseif tarfile =~# '\.lrp$'
-" call Decho("6: exe silent r! cat ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
- exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
- elseif tarfile =~# '\.lzma$'
-" call Decho("7: exe silent r! lzma -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
- exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
- elseif tarfile =~# '\.\(xz\|txz\)$'
-" call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
- exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
- else
- if tarfile =~ '^\s*-'
- " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
- let tarfile = substitute(tarfile, '-', './-', '')
- endif
-" call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
- exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
- endif
-
- if doro
- " because the reverse process of compressing changed files back into the tarball is not currently supported
- setlocal ro
- endif
-
- let b:tarfile= a:fname
- exe "file tarfile::".fnameescape(fname)
-
- " cleanup
- keepj sil! 0d
- set nomod
-
- let &report= repkeep
-" call Dret("tar#Read : b:tarfile<".b:tarfile.">")
-endfun
-
-" ---------------------------------------------------------------------
-" tar#Write: {{{2
-fun! tar#Write(fname)
-" call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
- let repkeep= &report
- set report=10
-
- if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
- redraw!
- echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
-" call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
- return
- endif
-
- " sanity checks
- if !executable(g:tar_cmd)
- redraw!
- echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
- let &report= repkeep
-" call Dret("tar#Write")
- return
- endif
- if !exists("*mkdir")
- redraw!
- echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
- let &report= repkeep
-" call Dret("tar#Write")
- return
- endif
-
- let curdir= getcwd()
- let tmpdir= tempname()
-" call Decho("orig tempname<".tmpdir.">")
- if tmpdir =~ '\.'
- let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
- endif
-" call Decho("tmpdir<".tmpdir.">")
- call mkdir(tmpdir,"p")
-
- " attempt to change to the indicated directory
- try
- exe "cd ".fnameescape(tmpdir)
- catch /^Vim\%((\a\+)\)\=:E344/
- redraw!
- echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
- let &report= repkeep
-" call Dret("tar#Write")
- return
- endtry
-" call Decho("current directory now: ".getcwd())
-
- " place temporary files under .../_ZIPVIM_/
- if isdirectory("_ZIPVIM_")
- call s:Rmdir("_ZIPVIM_")
- endif
- call mkdir("_ZIPVIM_")
- cd _ZIPVIM_
-" call Decho("current directory now: ".getcwd())
-
- let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
- let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
-
- " handle compressed archives
- if tarfile =~# '\.bz2'
- call system("bzip2 -d -- ".shellescape(tarfile,0))
- let tarfile = substitute(tarfile,'\.bz2','','e')
- let compress= "bzip2 -- ".shellescape(tarfile,0)
-" call Decho("compress<".compress.">")
- elseif tarfile =~# '\.gz'
- call system("gzip -d -- ".shellescape(tarfile,0))
- let tarfile = substitute(tarfile,'\.gz','','e')
- let compress= "gzip -- ".shellescape(tarfile,0)
-" call Decho("compress<".compress.">")
- elseif tarfile =~# '\.tgz'
- call system("gzip -d -- ".shellescape(tarfile,0))
- let tarfile = substitute(tarfile,'\.tgz','.tar','e')
- let compress= "gzip -- ".shellescape(tarfile,0)
- let tgz = 1
-" call Decho("compress<".compress.">")
- elseif tarfile =~# '\.xz'
- call system("xz -d -- ".shellescape(tarfile,0))
- let tarfile = substitute(tarfile,'\.xz','','e')
- let compress= "xz -- ".shellescape(tarfile,0)
-" call Decho("compress<".compress.">")
- elseif tarfile =~# '\.lzma'
- call system("lzma -d -- ".shellescape(tarfile,0))
- let tarfile = substitute(tarfile,'\.lzma','','e')
- let compress= "lzma -- ".shellescape(tarfile,0)
-" call Decho("compress<".compress.">")
- endif
-" call Decho("tarfile<".tarfile.">")
-
- if v:shell_error != 0
- redraw!
- echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
- else
-
-" call Decho("tarfile<".tarfile."> fname<".fname.">")
-
- if fname =~ '/'
- let dirpath = substitute(fname,'/[^/]\+$','','e')
- if has("win32unix") && executable("cygpath")
- let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
- endif
- call mkdir(dirpath,"p")
- endif
- if tarfile !~ '/'
- let tarfile= curdir.'/'.tarfile
- endif
- if tarfile =~ '^\s*-'
- " A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
- let tarfile = substitute(tarfile, '-', './-', '')
- endif
-" call Decho("tarfile<".tarfile."> fname<".fname.">")
-
- if exists("g:tar_secure")
- let tar_secure= " -- "
- else
- let tar_secure= " "
- endif
- exe "w! ".fnameescape(fname)
- if has("win32unix") && executable("cygpath")
- let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
- endif
-
- " delete old file from tarfile
-" call Decho("system(".g:tar_cmd." --delete -f ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
- call system(g:tar_cmd." --delete -f ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
- if v:shell_error != 0
- redraw!
- echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
- else
-
- " update tarfile with new file
-" call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
- call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
- if v:shell_error != 0
- redraw!
- echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
- elseif exists("compress")
-" call Decho("call system(".compress.")")
- call system(compress)
- if exists("tgz")
-" call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
- call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
- endif
- endif
- endif
-
- " support writing tarfiles across a network
- if s:tblfile_{winnr()} =~ '^\a\+://'
-" call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
- let tblfile= s:tblfile_{winnr()}
- 1split|enew
- let binkeep= &l:binary
- let eikeep = &ei
- set binary ei=all
- exe "e! ".fnameescape(tarfile)
- call netrw#NetWrite(tblfile)
- let &ei = eikeep
- let &l:binary = binkeep
- q!
- unlet s:tblfile_{winnr()}
- endif
- endif
-
- " cleanup and restore current directory
- cd ..
- call s:Rmdir("_ZIPVIM_")
- exe "cd ".fnameescape(curdir)
- setlocal nomod
-
- let &report= repkeep
-" call Dret("tar#Write")
-endfun
-
-" ---------------------------------------------------------------------
-" tar#Diff: {{{2
-fun! tar#Diff(userfname,fname)
-" call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
- let fname= a:fname
- if a:userfname != ""
- let fname= a:userfname
- endif
- if filereadable(fname)
- " sets current file (from tarball) for diff'ing
- " splits window vertically
- " opens original file, sets it for diff'ing
- " sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
- diffthis
- wincmd v
- exe "e ".fnameescape(fname)
- diffthis
- else
- redraw!
- echo "***warning*** unable to read file<".fname.">"
- endif
-" call Dret("tar#Diff")
-endfun
-
-" ---------------------------------------------------------------------
-" s:Rmdir: {{{2
-fun! s:Rmdir(fname)
-" call Dfunc("Rmdir(fname<".a:fname.">)")
- if has("unix")
- call system("/bin/rm -rf -- ".shellescape(a:fname,0))
- elseif has("win32") || has("win95") || has("win64") || has("win16")
- if &shell =~? "sh$"
- call system("/bin/rm -rf -- ".shellescape(a:fname,0))
- else
- call system("del /S ".shellescape(a:fname,0))
- endif
- endif
-" call Dret("Rmdir")
-endfun
-
-" ---------------------------------------------------------------------
-" tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
-fun! tar#Vimuntar(...)
-" call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
- let tarball = expand("%")
-" call Decho("tarball<".tarball.">")
- let tarbase = substitute(tarball,'\..*$','','')
-" call Decho("tarbase<".tarbase.">")
- let tarhome = expand("%:p")
- if has("win32") || has("win95") || has("win64") || has("win16")
- let tarhome= substitute(tarhome,'\\','/','g')
- endif
- let tarhome= substitute(tarhome,'/[^/]*$','','')
-" call Decho("tarhome<".tarhome.">")
- let tartail = expand("%:t")
-" call Decho("tartail<".tartail.">")
- let curdir = getcwd()
-" call Decho("curdir <".curdir.">")
- " set up vimhome
- if a:0 > 0 && a:1 != ""
- let vimhome= a:1
- else
- let vimhome= vimball#VimballHome()
- endif
-" call Decho("vimhome<".vimhome.">")
-
-" call Decho("curdir<".curdir."> vimhome<".vimhome.">")
- if simplify(curdir) != simplify(vimhome)
- " copy (possibly compressed) tarball to .vim/vimfiles
-" call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
- call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
-" call Decho("exe cd ".fnameescape(vimhome))
- exe "cd ".fnameescape(vimhome)
- endif
-" call Decho("getcwd<".getcwd().">")
-
- " if necessary, decompress the tarball; then, extract it
- if tartail =~ '\.tgz'
- if executable("gunzip")
- silent exe "!gunzip ".shellescape(tartail)
- elseif executable("gzip")
- silent exe "!gzip -d ".shellescape(tartail)
- else
- echoerr "unable to decompress<".tartail."> on this sytem"
- if simplify(curdir) != simplify(tarhome)
- " remove decompressed tarball, restore directory
-" call Decho("delete(".tartail.".tar)")
- call delete(tartail.".tar")
-" call Decho("exe cd ".fnameescape(curdir))
- exe "cd ".fnameescape(curdir)
- endif
-" call Dret("tar#Vimuntar")
- return
- endif
- else
- call vimball#Decompress(tartail,0)
- endif
- let extractcmd= netrw#WinPath(g:tar_extractcmd)
-" call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
- call system(extractcmd." ".shellescape(tarbase.".tar"))
-
- " set up help
- if filereadable("doc/".tarbase.".txt")
-" call Decho("exe helptags ".getcwd()."/doc")
- exe "helptags ".getcwd()."/doc"
- endif
-
- if simplify(tarhome) != simplify(vimhome)
- " remove decompressed tarball, restore directory
- call delete(vimhome."/".tarbase.".tar")
- exe "cd ".fnameescape(curdir)
- endif
-
-" call Dret("tar#Vimuntar")
-endfun
-
-" =====================================================================
-" Modelines And Restoration: {{{1
-let &cpo= s:keepcpo
-unlet s:keepcpo
-" vim:ts=8 fdm=marker
-
-endif