comparison runtime/autoload/tar.vim @ 819:23f82b5d2814 v7.0c10

updated for version 7.0c10
author vimboss
date Wed, 05 Apr 2006 20:41:53 +0000
parents 91e7d4a7b3b0
children b933657f7c9d
comparison
equal deleted inserted replaced
818:1f929f3ca806 819:23f82b5d2814
1 " tar.vim: Handles browsing tarfiles 1 " tar.vim: Handles browsing tarfiles
2 " AUTOLOAD PORTION 2 " AUTOLOAD PORTION
3 " Date: Dec 24, 2005 3 " Date: Mar 27, 2006
4 " Version: 7 4 " Version: 7
5 " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz> 5 " Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
6 " License: Vim License (see vim's :help license) 6 " License: Vim License (see vim's :help license)
7 " 7 "
8 " Contains many ideas from Michael Toren's <tar.vim> 8 " Contains many ideas from Michael Toren's <tar.vim>
23 set cpo&vim 23 set cpo&vim
24 if exists("g:loaded_tar") 24 if exists("g:loaded_tar")
25 finish 25 finish
26 endif 26 endif
27 let g:loaded_tar= "v7" 27 let g:loaded_tar= "v7"
28 "call Decho("loading autoload/tar.vim")
28 29
29 " --------------------------------------------------------------------- 30 " ---------------------------------------------------------------------
30 " Default Settings: {{{1 31 " Default Settings: {{{1
31 if !exists("g:tar_browseoptions") 32 if !exists("g:tar_browseoptions")
32 let g:tar_browseoptions= "Ptf" 33 let g:tar_browseoptions= "Ptf"
33 endif 34 endif
34 if !exists("g:tar_readoptions") 35 if !exists("g:tar_readoptions")
35 let g:tar_readoptions= "OPxf" 36 let g:tar_readoptions= "OPxf"
37 endif
38 if !exists("g:tar_cmd")
39 let g:tar_cmd= "tar"
36 endif 40 endif
37 if !exists("g:tar_writeoptions") 41 if !exists("g:tar_writeoptions")
38 let g:tar_writeoptions= "uf" 42 let g:tar_writeoptions= "uf"
39 endif 43 endif
40 44
48 " call Dfunc("tar#Browse(tarfile<".a:tarfile.">)") 52 " call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
49 let repkeep= &report 53 let repkeep= &report
50 set report=10 54 set report=10
51 55
52 " sanity checks 56 " sanity checks
53 if !executable("tar") 57 if !executable(g:tar_cmd)
54 echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system' 58 echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
55 call inputsave()|call input("Press <cr> to continue")|call inputrestore() 59 call inputsave()|call input("Press <cr> to continue")|call inputrestore()
56 let &report= repkeep 60 let &report= repkeep
57 " call Dret("tar#Browse") 61 " call Dret("tar#Browse")
58 return 62 return
59 endif 63 endif
60 if !filereadable(a:tarfile) 64 if !filereadable(a:tarfile)
65 " call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
61 if a:tarfile !~# '^\a\+://' 66 if a:tarfile !~# '^\a\+://'
62 " if its an url, don't complain, let url-handlers such as vim do its thing 67 " if its an url, don't complain, let url-handlers such as vim do its thing
63 echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None 68 echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
64 call inputsave()|call input("Press <cr> to continue")|call inputrestore() 69 call inputsave()|call input("Press <cr> to continue")|call inputrestore()
65 endif 70 endif
78 setlocal nobuflisted 83 setlocal nobuflisted
79 setlocal nowrap 84 setlocal nowrap
80 set ft=tar 85 set ft=tar
81 86
82 " give header 87 " give header
88 " call Decho("printing header")
83 exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'" 89 exe "$put ='".'\"'." tar.vim version ".g:loaded_tar."'"
84 exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'" 90 exe "$put ='".'\"'." Browsing tarfile ".a:tarfile."'"
85 exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'" 91 exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
86 0d 92 0d
87 $ 93 $
88 94
89 if a:tarfile =~# '\.\(gz\|tgz\)$' 95 let tarfile= a:tarfile
90 exe "silent r! gzip -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - " 96 if has("win32") && executable("cygpath")
91 elseif a:tarfile =~# '\.bz2$' 97 " assuming cygwin
92 exe "silent r! bzip2 -d -c '".a:tarfile."'| tar -".g:tar_browseoptions." - " 98 let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
99 endif
100 if tarfile =~# '\.\(gz\|tgz\)$'
101 " call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
102 exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
103 elseif tarfile =~# '\.bz2$'
104 " call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - ")
105 exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_browseoptions." - "
93 else 106 else
94 exe "silent r! tar -".g:tar_browseoptions." '".a:tarfile."'" 107 " call Decho("exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'")
95 endif 108 exe "silent r! ".g:tar_cmd." -".g:tar_browseoptions." '".tarfile."'"
96 silent %g@/$@d 109 endif
110 if v:shell_error != 0
111 echohl Error | echo '***error*** (tar#Browse) while browsing; check your g:tar_browseoptions<".g:tar_browseoptions.">"
112 " call Dret("tar#Browse : w:tarfile<".w:tarfile.">")
113 return
114 endif
97 115
98 setlocal noma nomod ro 116 setlocal noma nomod ro
99 noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr> 117 noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
100 118
101 let &report= repkeep 119 let &report= repkeep
119 endif 137 endif
120 138
121 " about to make a new window, need to use w:tarfile 139 " about to make a new window, need to use w:tarfile
122 let tarfile= w:tarfile 140 let tarfile= w:tarfile
123 let curfile= expand("%") 141 let curfile= expand("%")
142 if has("win32") && executable("cygpath")
143 " assuming cygwin
144 let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
145 endif
124 146
125 new 147 new
126 wincmd _ 148 wincmd _
127 let s:tblfile_{winnr()}= curfile 149 let s:tblfile_{winnr()}= curfile
128 " call Decho("exe e tarfile:".tarfile.':'.fname) 150 " if has("unix")
129 exe "e tarfile:".tarfile.':'.fname 151 "" call Decho("exe e tarfile:".tarfile.':'.fname)
152 " exe "e tarfile:".tarfile.':'.fname
153 " elseif has("win32")
154 " call tar#Read("tarfile:".tarfile.':'.fname,1)
155 " endif
156 call tar#Read("tarfile:".tarfile.':'.fname,1)
130 filetype detect 157 filetype detect
131 158
132 let &report= repkeep 159 let &report= repkeep
133 " call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">") 160 " call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
134 endfun 161 endfun
139 " call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")") 166 " call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
140 let repkeep= &report 167 let repkeep= &report
141 set report=10 168 set report=10
142 let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','') 169 let tarfile = substitute(a:fname,'tarfile:\(.\{-}\):.*$','\1','')
143 let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','') 170 let fname = substitute(a:fname,'tarfile:.\{-}:\(.*\)$','\1','')
144 " call Decho("tarfile<".tarfile."> fname<".fname.">") 171 if has("win32") && executable("cygpath")
172 " assuming cygwin
173 let tarfile=substitute(system("cygpath -u ".tarfile),'\n$','','e')
174 endif
175 " call Decho("tarfile<".tarfile.">")
176 " call Decho("fname<".fname.">")
145 177
146 if tarfile =~# '\.\(gz\|tgz\)$' 178 if tarfile =~# '\.\(gz\|tgz\)$'
147 " call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'") 179 " call Decho("exe silent r! gzip -d -c '".tarfile."'| tar -OPxf - '".fname."'")
148 exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" 180 exe "silent r! gzip -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
149 elseif tarfile =~# '\.bz2$' 181 elseif tarfile =~# '\.bz2$'
150 " call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'") 182 " call Decho("exe silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'")
151 exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'" 183 exe "silent r! bzip2 -d -c '".tarfile."'| tar -".g:tar_readoptions." - '".fname."'"
152 else 184 else
153 " call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'") 185 " call Decho("exe silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'")
154 exe "silent r! tar -".g:tar_readoptions." '".tarfile."' '".fname."'" 186 exe "silent r! ".g:tar_cmd." -".g:tar_readoptions." '".tarfile."' '".fname."'"
155 endif 187 endif
156 let w:tarfile= a:fname 188 let w:tarfile= a:fname
157 exe "file tarfile:".fname 189 exe "file tarfile:".fname
158 190
159 " cleanup 191 " cleanup
170 " call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">") 202 " call Dfunc("tar#Write(fname<".a:fname.">) w:tarfile<".w:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
171 let repkeep= &report 203 let repkeep= &report
172 set report=10 204 set report=10
173 205
174 " sanity checks 206 " sanity checks
175 if !executable("tar") 207 if !executable(g:tar_cmd)
176 echohl Error | echo '***error*** (tar#Browse) "tar" not available on your system' 208 echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
177 call inputsave()|call input("Press <cr> to continue")|call inputrestore() 209 call inputsave()|call input("Press <cr> to continue")|call inputrestore()
178 let &report= repkeep 210 let &report= repkeep
179 " call Dret("tar#Write") 211 " call Dret("tar#Write")
180 return 212 return
181 endif 213 endif