~ubuntu-branches/ubuntu/vivid/vim/vivid

« back to all changes in this revision

Viewing changes to runtime/autoload/zip.vim

  • Committer: Bazaar Package Importer
  • Author(s): Soren Hansen
  • Date: 2008-11-05 11:37:43 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20081105113743-9i4urcsm3n44mhqe
Tags: 2:7.2.025-2ubuntu1
* Merge from debian unstable, remaining changes:
  - runtime/syntax/debcontrol.vim:
    + Add "metapackages" to the list of valid sections.
  - runtime/syntax/debchangelog.vim:
    + Add "jaunty" to the list of valid suites.
  - Drop vim-lesstif package and lesstif2-dev build-dependency.
  - Enable Python interpreter on basic builds.
  - Create a .pot file for translations.
  - Disable autoindent, line-wrapping, and backup files by default.
  - runtime/syntax/debsources.vim:
    + Add "jaunty" to debsourcesDistrKeyword
  - runtime/syntax/grub.vim:
    + Add Ubuntu-specific 'quiet' keyword.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
" zip.vim: Handles browsing zipfiles
2
2
"            AUTOLOAD PORTION
3
 
" Date:         Jun 12, 2008
4
 
" Version:      18
 
3
" Date:         Jul 30, 2008
 
4
" Version:      22
5
5
" Maintainer:   Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
6
6
" License:      Vim License  (see vim's :help license)
7
7
" Copyright:    Copyright (C) 2005-2008 Charles E. Campbell, Jr. {{{1
22
22
 finish
23
23
endif
24
24
 
25
 
let g:loaded_zip     = "v18"
 
25
let g:loaded_zip     = "v22"
26
26
let s:zipfile_escape = ' ?&;\'
27
27
let s:ERROR          = 2
28
28
let s:WARNING        = 1
58
58
  set report=10
59
59
 
60
60
  " sanity checks
 
61
  if !exists("*fnameescape")
 
62
   if &verbose > 1
 
63
    echoerr "the zip plugin is not available (your vim doens't support fnameescape())"
 
64
   endif
 
65
   return
 
66
  endif
61
67
  if !executable(g:zip_unzipcmd)
62
68
   redraw!
63
69
   echohl Error | echo "***error*** (zip#Browse) unzip not available on your system"
91
97
  set ft=tar
92
98
 
93
99
  " give header
94
 
  exe "$put ='".'\"'." zip.vim version ".g:loaded_zip."'"
95
 
  exe "$put ='".'\"'." Browsing zipfile ".a:zipfile."'"
96
 
  exe "$put ='".'\"'." Select a file with cursor and press ENTER"."'"
 
100
  let lastline= line("$")
 
101
  call setline(lastline+1,'" zip.vim version '.g:loaded_zip)
 
102
  call setline(lastline+2,'" Browsing zipfile '.a:zipfile)
 
103
  call setline(lastline+3,'" Select a file with cursor and press ENTER')
97
104
  $put =''
98
105
  0d
99
106
  $
100
107
 
101
 
"  call Decho("exe silent r! ".g:zip_unzipcmd." -l ".s:QuoteFileDir(a:zipfile))
102
 
  exe "silent r! ".g:zip_unzipcmd." -l ".s:QuoteFileDir(a:zipfile)
 
108
"  call Decho("exe silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1))
 
109
  exe "silent r! ".g:zip_unzipcmd." -l -- ".s:Escape(a:zipfile,1)
103
110
  if v:shell_error != 0
104
111
   redraw!
105
 
   echohl WarningMsg | echo "***warning*** (zip#Browse) ".a:zipfile." is not a zip file" | echohl None
 
112
   echohl WarningMsg | echo "***warning*** (zip#Browse) ".fnameescape(a:zipfile)." is not a zip file" | echohl None
106
113
"   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
107
114
   silent %d
108
115
   let eikeep= &ei
109
116
   set ei=BufReadCmd,FileReadCmd
110
 
   exe "r ".a:zipfile
 
117
   exe "r ".fnameescape(a:zipfile)
111
118
   let &ei= eikeep
112
119
   1d
113
120
"   call Dret("zip#Browse")
166
173
   wincmd _
167
174
  endif
168
175
  let s:zipfile_{winnr()}= curfile
169
 
"  call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape))
170
 
  exe "e zipfile:".escape(zipfile,s:zipfile_escape).'::'.escape(fname,s:zipfile_escape)
 
176
"  call Decho("exe e ".fnameescape("zipfile:".zipfile.'::'.fname))
 
177
  exe "e ".fnameescape("zipfile:".zipfile.'::'.fname)
171
178
  filetype detect
172
179
 
173
180
  let &report= repkeep
192
199
"  call Decho("zipfile<".zipfile.">")
193
200
"  call Decho("fname  <".fname.">")
194
201
 
195
 
"  call Decho("exe r! ".g:zip_unzipcmd." -p ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
196
 
  exe "silent r! ".g:zip_unzipcmd." -p ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname)
 
202
"  call Decho("exe r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1))
 
203
  exe "silent r! ".g:zip_unzipcmd." -p -- ".s:Escape(zipfile,1)." ".s:Escape(fname,1)
197
204
 
198
205
  " cleanup
199
206
  0d
266
273
  if fname =~ '/'
267
274
   let dirpath = substitute(fname,'/[^/]\+$','','e')
268
275
   if executable("cygpath")
269
 
    let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
 
276
    let dirpath = substitute(system("cygpath ".s:Escape(dirpath,0)),'\n','','e')
270
277
   endif
271
278
"   call Decho("mkdir(dirpath<".dirpath.">,p)")
272
279
   call mkdir(dirpath,"p")
276
283
  endif
277
284
"  call Decho("zipfile<".zipfile."> fname<".fname.">")
278
285
 
279
 
  exe "w! ".escape(fname,s:zipfile_escape)
 
286
  exe "w! ".fnameescape(fname)
280
287
  if executable("cygpath")
281
 
   let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
 
288
   let zipfile = substitute(system("cygpath ".s:Escape(zipfile,0)),'\n','','e')
282
289
  endif
283
290
 
284
291
  if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
285
292
    let fname = substitute(fname, '[', '[[]', 'g')
286
293
  endif
287
294
 
288
 
"  call Decho(g:zip_zipcmd." -u ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
289
 
  call system(g:zip_zipcmd." -u ".s:QuoteFileDir(zipfile)." ".s:QuoteFileDir(fname))
 
295
"  call Decho(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
 
296
  call system(g:zip_zipcmd." -u ".s:Escape(fnamemodify(zipfile,":p"),0)." ".s:Escape(fname,0))
290
297
  if v:shell_error != 0
291
298
   redraw!
292
299
   echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
300
307
   let binkeep= &binary
301
308
   let eikeep = &ei
302
309
   set binary ei=all
303
 
   exe "e! ".zipfile
 
310
   exe "e! ".fnameescape(zipfile)
304
311
   call netrw#NetWrite(netzipfile)
305
312
   let &ei     = eikeep
306
313
   let &binary = binkeep
320
327
endfun
321
328
 
322
329
" ---------------------------------------------------------------------
323
 
" QuoteFileDir: {{{2
324
 
fun! s:QuoteFileDir(fname)
325
 
"  call Dfunc("QuoteFileDir(fname<".a:fname.">)")
326
 
  if has("*shellescape")
327
 
   let qnameq= shellescape(a:fname)
 
330
" s:Escape: {{{2
 
331
fun! s:Escape(fname,isfilt)
 
332
"  call Dfunc("QuoteFileDir(fname<".a:fname."> isfilt=".a:isfilt.")")
 
333
  if exists("*shellescape")
 
334
   if a:isfilt
 
335
    let qnameq= shellescape(a:fname,1)
 
336
   else
 
337
    let qnameq= shellescape(a:fname)
 
338
   endif
328
339
  else
329
340
   let qnameq= g:zip_shq.escape(a:fname,g:zip_shq).g:zip_shq
330
341
  endif
337
348
fun! s:ChgDir(newdir,errlvl,errmsg)
338
349
"  call Dfunc("ChgDir(newdir<".a:newdir."> errlvl=".a:errlvl."  errmsg<".a:errmsg.">)")
339
350
 
340
 
  if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
341
 
   let newdir= escape(a:newdir,' ')
342
 
  else
343
 
   let newdir= escape(a:newdir,'\ ')
344
 
  endif
345
 
 
346
351
  try
347
 
   exe "cd ".newdir
 
352
   exe "cd ".fnameescape(a:newdir)
348
353
  catch /^Vim\%((\a\+)\)\=:E344/
349
354
   redraw!
350
355
   if a:errlvl == s:NOTE
364
369
endfun
365
370
 
366
371
" ---------------------------------------------------------------------
367
 
" Rmdir: {{{2
 
372
" s:Rmdir: {{{2
368
373
fun! s:Rmdir(fname)
369
374
"  call Dfunc("Rmdir(fname<".a:fname.">)")
370
375
  if (has("win32") || has("win95") || has("win64") || has("win16")) && &shell !~? 'sh$'
371
 
   call system("rmdir /S/Q ".s:QuoteFileDir(a:fname))
 
376
   call system("rmdir /S/Q ".s:Escape(a:fname,0))
372
377
  else
373
 
   call system("/bin/rm -rf ".s:QuoteFileDir(a:fname))
 
378
   call system("/bin/rm -rf ".s:Escape(a:fname,0))
374
379
  endif
375
380
"  call Dret("Rmdir")
376
381
endfun