Mercurial > vim
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 |