summaryrefslogtreecommitdiffstats
path: root/runtime/autoload/zip.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/autoload/zip.vim')
-rw-r--r--runtime/autoload/zip.vim31
1 files changed, 18 insertions, 13 deletions
diff --git a/runtime/autoload/zip.vim b/runtime/autoload/zip.vim
index 99bdd7960e..6790f4ff4e 100644
--- a/runtime/autoload/zip.vim
+++ b/runtime/autoload/zip.vim
@@ -75,11 +75,15 @@ fun! zip#Browse(zipfile)
0d
$
-" call Decho("exe silent r! unzip -l '".escape(a:zipfile,s:zipfile_escape)."'")
- exe "silent r! unzip -l ".escape(a:zipfile,s:zipfile_escape)
+" call Decho("exe silent r! unzip -l '".a:zipfile."'")
+ exe "silent r! unzip -l '".a:zipfile."'"
+" call Decho("line 6: ".getline(6))
+ let namecol= stridx(getline(6),'Name') + 1
+" call Decho("namecol=".namecol)
+ 4,$g/^\s*----/d
+ 4,$g/^\s*\a/d
$d
- silent 4,$v/^\s\+\d\+\s\{0,5}\d/d
- silent 4,$s/^\%(.*\)\s\+\(\S\)/\1/
+ exe 'silent 4,$s/^.*\%'.namecol.'c//'
setlocal noma nomod ro
noremap <silent> <buffer> <cr> :call <SID>ZipBrowseSelect()<cr>
@@ -114,15 +118,15 @@ fun! s:ZipBrowseSelect()
" get zipfile to the new-window
let zipfile= substitute(w:zipfile,'.zip$','','e')
- let curfile= escape(expand("%"),s:zipfile_escape)
+ let curfile= expand("%")
" call Decho("zipfile<".zipfile.">")
" call Decho("curfile<".curfile.">")
new
wincmd _
let s:zipfile_{winnr()}= curfile
-" call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname)
- exe "e zipfile:".escape(zipfile,s:zipfile_escape).':'.fname
+" call Decho("exe e zipfile:".escape(zipfile,s:zipfile_escape).':'.escape(fname,s:zipfile_escape))
+ exe "e zipfile:".escape(zipfile,s:zipfile_escape).':'.escape(fname,s:zipfile_escape)
filetype detect
let &report= repkeep
@@ -140,8 +144,8 @@ fun! zip#Read(fname,mode)
let fname = substitute(a:fname,'zipfile:.\{-}:\([^\\].*\)$','\1','')
" call Decho("zipfile<".zipfile."> fname<".fname.">")
-" call Decho("exe r! unzip -p '".escape(zipfile,s:zipfile_escape)."' ".fname)
- exe "r! unzip -p ".escape(zipfile,s:zipfile_escape)." ".fname
+" call Decho("exe r! unzip -p '".zipfile."' '".fname."'")
+ exe "silent r! unzip -p '".zipfile."' '".fname."'"
" cleanup
0d
@@ -154,7 +158,7 @@ endfun
" ---------------------------------------------------------------------
" zip#Write: {{{2
fun! zip#Write(fname)
-" call Dfunc("zip#Write(fname<".a:fname.") zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
+" call Dfunc("zip#Write(fname<".a:fname.">) zipfile_".winnr()."<".s:zipfile_{winnr()}.">")
let repkeep= &report
set report=10
@@ -211,6 +215,7 @@ fun! zip#Write(fname)
if executable("cygpath")
let dirpath = substitute(system("cygpath ".dirpath),'\n','','e')
endif
+" call Decho("mkdir(dirpath<".dirpath.">,p)")
call mkdir(dirpath,"p")
endif
if zipfile !~ '/'
@@ -218,13 +223,13 @@ fun! zip#Write(fname)
endif
" call Decho("zipfile<".zipfile."> fname<".fname.">")
- exe "w! ".fname
+ exe "w! ".escape(fname,s:zipfile_escape)
if executable("cygpath")
let zipfile = substitute(system("cygpath ".zipfile),'\n','','e')
endif
-" call Decho("zip -u ".zipfile.".zip ".fname)
- call system("zip -u ".zipfile.".zip ".fname)
+" call Decho("zip -u '".zipfile.".zip' '".fname."'")
+ call system("zip -u '".zipfile.".zip' '".fname."'")
if v:shell_error != 0
echohl Error | echo "***error*** (zip#Write) sorry, unable to update ".zipfile." with ".fname | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()