core/vim/xz.patch

194 lines
10 KiB
Diff
Raw Normal View History

2010-05-22 06:07:29 +08:00
diff -uNr vim72/autoload/getscript.vim vim72-xz/autoload/getscript.vim
--- vim72/autoload/getscript.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/autoload/getscript.vim 2010-05-16 22:41:34.930283754 +0200
@@ -557,6 +557,11 @@
exe "silent !gunzip ".shellescape(sname)
let sname= substitute(sname,'\.gz$','','')
" call Decho("decompress: new sname<".sname."> after gunzip")
+ elseif sname =~ '\.xz$'
+" call Decho("decompress: attempt to unxz ".sname)
+ exe "silent !unxz ".shellescape(sname)
+ let sname= substitute(sname,'\.xz$','','')
+" call Decho("decompress: new sname<".sname."> after unxz")
else
" call Decho("no decompression needed")
endif
diff -uNr vim72/autoload/netrw.vim vim72-xz/autoload/netrw.vim
--- vim72/autoload/netrw.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/autoload/netrw.vim 2010-05-16 22:40:28.007276216 +0200
@@ -163,7 +163,7 @@
endif
" Default values - d-g ---------- {{{3
call s:NetrwInit("g:netrw_dirhist_cnt" , 0)
-call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf"}')
+call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".xz" : "unxz", ".zip" : "unzip", ".tar" : "tar -xf" }')
call s:NetrwInit("g:netrw_dirhistmax" , 10)
call s:NetrwInit("g:netrw_fastbrowse" , 1)
call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
@@ -920,7 +920,7 @@
unlet b:netrw_method
unlet b:netrw_fname
endif
- if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't'
+ if s:FileReadable(tmpfile) && tmpfile !~ '.tar.xz$' && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't'
" call Decho("cleanup by deleting tmpfile<".tmpfile.">")
call s:NetrwDelete(tmpfile)
endif
@@ -1387,6 +1387,9 @@
elseif rfile =~ '\.tar\.bz2'
" call Decho("handling remote bz2-compressed tar file")
call tar#Browse(tfile)
+ elseif rfile =~ '\.tar\.xz'
+" call Decho("handling remote xz-compressed tar file")
+ call tar#Browse(tfile)
else
" call Decho("edit temporary file")
e!
@@ -2312,7 +2315,7 @@
exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)
exe "sil keepalt doau BufReadPre ".fnameescape(s:fname)
silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path)
- if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz'
+ if s:path !~ '.tar.xz' && s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz'
" netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error
exe "sil keepalt doau BufReadPost ".fnameescape(s:fname)
endif
@@ -4390,7 +4393,7 @@
" using g:netrw_compress_suffix to know which to
" do. By default:
" g:netrw_compress = "gzip"
-" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"}
+" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".xz" : "unxz", ".zip" : "unzip" , ".tar" : "tar -xf"}
fun! s:NetrwMarkFileCompress(islocal)
" call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")")
let svpos = netrw#NetrwSavePosn()
@@ -7868,7 +7871,7 @@
if a:fname != ""
if a:fname =~ '\.[^./]\+$'
" call Decho("using fname<".a:fname.">'s suffix")
- if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2'
+ if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2' || a:fname =~ '.tar.xz'
let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
else
let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
diff -uNr vim72/autoload/tar.vim vim72-xz/autoload/tar.vim
--- vim72/autoload/tar.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/autoload/tar.vim 2010-05-16 22:43:47.552260967 +0200
@@ -164,6 +164,9 @@
elseif tarfile =~# '\.lzma$'
" call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
exe "silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
+ elseif tarfile =~# '\.xz$'
+" call Decho("3: exe silent r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
+ exe "silent r! xz -d -c -- ".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.
@@ -265,10 +268,13 @@
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$\|\.zip$\|\.Z$'
+ if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
setlocal bin
endif
endif
@@ -290,6 +296,9 @@
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 "silent r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
+ elseif tarfile =~# '\.xz$'
+" call Decho("7: exe silent r! xz -d -c ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp)
+ exe "silent r! xz -d -c -- ".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.
@@ -393,6 +402,11 @@
let tarfile = substitute(tarfile,'\.lzma','','e')
let compress= "lzma -- ".shellescape(tarfile,0)
" 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 =~# '\.tgz'
call system("gzip -d -- ".shellescape(tarfile,0))
let tarfile = substitute(tarfile,'\.tgz','.tar','e')
diff -uNr vim72/autoload/vimball.vim vim72-xz/autoload/vimball.vim
--- vim72/autoload/vimball.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/autoload/vimball.vim 2010-05-16 22:45:32.614510143 +0200
@@ -505,6 +505,26 @@
exe "e ".escape(fname,' \')
if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
+ elseif expand("%") =~ '.*\.xz' && executable("unxz")
+ " handle *.xz with unxz
+ silent exe "!unxz ".shellescape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,"(vimball#Decompress) unxz may have failed with <".a:fname.">")
+ endif
+ let fname= substitute(a:fname,'\.xz$','','')
+ exe "e ".escape(fname,' \')
+ if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
+
+ elseif expand("%") =~ '.*\.xz' && executable("xz")
+ " handle *.xz with xz -d
+ silent exe "!xz -d ".shellescape(a:fname)
+ if v:shell_error != 0
+ call vimball#ShowMesg(s:WARNING,'(vimball#Decompress) "xz -d" may have failed with <'.a:fname.">")
+ endif
+ let fname= substitute(a:fname,'\.xz$','','')
+ exe "e ".escape(fname,' \')
+ if a:0 == 0| call vimball#ShowMesg(s:USAGE,"Source this file to extract it! (:so %)") | endif
+
elseif expand("%") =~ '.*\.zip' && executable("unzip")
" handle *.zip with unzip
silent exe "!unzip ".shellescape(a:fname)
diff -uNr vim72/filetype.vim vim72-xz/filetype.vim
--- vim72/filetype.vim 2010-05-16 22:34:09.000000000 +0200
+++ vim72-xz/filetype.vim 2010-05-16 22:47:29.343285870 +0200
@@ -37,7 +37,7 @@
" Pattern used to match file names which should not be inspected.
" Currently finds compressed files.
if !exists("g:ft_ignore_pat")
- let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|zip\|tgz\)$'
+ let g:ft_ignore_pat = '\.\(Z\|gz\|bz2\|xz\|zip\|tgz\)$'
endif
" Function used for patterns that end in a star: don't set the filetype if the
diff -uNr vim72/plugin/tarPlugin.vim vim72-xz/plugin/tarPlugin.vim
--- vim72/plugin/tarPlugin.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/plugin/tarPlugin.vim 2010-05-16 22:46:39.220270785 +0200
@@ -39,8 +39,9 @@
au BufReadCmd *.lrp call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tar.bz2 call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tar.Z call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
+ au BufReadCmd *.tar.xz call tar#Browse(expand("<amatch>"))
au BufReadCmd *.tgz call tar#Browse(expand("<amatch>"))
- au BufReadCmd *.tar.lzma call tar#Browse(expand("<amatch>"))
augroup END
com! -nargs=? -complete=file Vimuntar call tar#Vimuntar(<q-args>)
diff -uNr vim72/plugin/vimballPlugin.vim vim72-xz/plugin/vimballPlugin.vim
--- vim72/plugin/vimballPlugin.vim 2010-05-16 22:33:59.000000000 +0200
+++ vim72-xz/plugin/vimballPlugin.vim 2010-05-16 22:47:07.425260844 +0200
@@ -26,8 +26,8 @@
com! -na=? -complete=dir UseVimball call vimball#Vimball(1,<f-args>)
com! -na=0 VimballList call vimball#Vimball(0)
com! -na=* -complete=dir RmVimball call vimball#SaveSettings()|call vimball#RmVimball(<f-args>)|call vimball#RestoreSettings()
-au SourceCmd *.vba.gz,*.vba.bz2,*.vba.zip call vimball#Decompress(expand("<amatch>"))|call vimball#Vimball(1)
-au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ma ff=unix noma |endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
+au SourceCmd *.vba.gz,*.vba.bz2,*.vba.xz,*.vba.zip call vimball#Decompress(expand("<amatch>"))|call vimball#Vimball(1)
+au BufEnter *.vba,*.vba.gz,*.vba.bz2,*.vba.xz,*.vba.zip setlocal bt=nofile fmr=[[[,]]] fdm=marker|if &ff != 'unix'| setlocal ma ff=unix noma |endif|call vimball#ShowMesg(0,"Source this file to extract it! (:so %)")
" =====================================================================
" Restoration And Modelines: {{{1