annotate runtime/autoload/tar.vim @ 34571:fdd232ab72ea v9.1.0184

patch 9.1.0184: Cursor pos wrong when clicking with conceal and wrap Commit: https://github.com/vim/vim/commit/d0c1b7723f7e73763597af2f97a53d94ab7ed020 Author: zeertzjq <zeertzjq@outlook.com> Date: Sat Mar 16 15:03:33 2024 +0100 patch 9.1.0184: Cursor pos wrong when clicking with conceal and wrap Problem: Cursor position wrong when clicking with conceal and wrap. Solution: Use the virtual column of the last char for ScreenCols[] in boguscols. Remove use of MAXCOL in ScreenCols[]. Rename third argument of wlv_screen_line() to "clear_end" as that's clearer what it does (zeertzjq). related: 14192 closes: #14200 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 16 Mar 2024 15:15:04 +0100
parents 02bd0fe77c68
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
1 " tar.vim: Handles browsing tarfiles
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
2 " AUTOLOAD PORTION
33771
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
3 " Date: Nov 14, 2023
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
4 " Version: 32b (with modifications from the Vim Project)
34375
02bd0fe77c68 runtime(misc): announce adoption of various runtime files
Christian Brabandt <cb@256bit.org>
parents: 34102
diff changeset
5 " Maintainer: This runtime file is looking for a new maintainer.
02bd0fe77c68 runtime(misc): announce adoption of various runtime files
Christian Brabandt <cb@256bit.org>
parents: 34102
diff changeset
6 " Former Maintainer: Charles E Campbell
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
7 " License: Vim License (see vim's :help license)
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
8 "
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
9 " Contains many ideas from Michael Toren's <tar.vim>
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
10 "
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
11 " Copyright: Copyright (C) 2005-2017 Charles E. Campbell {{{1
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
12 " Permission is hereby granted to use and distribute this code,
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
13 " with or without modifications, provided that this copyright
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
14 " notice is copied with it. Like anything else that's free,
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
15 " tar.vim and tarPlugin.vim are provided *as is* and comes
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
16 " with no warranty of any kind, either expressed or implied.
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
17 " By using this plugin, you agree that in no event will the
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
18 " copyright holder be liable for any damages resulting from
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
19 " the use of this software.
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
20 " call inputsave()|call input("Press <cr> to continue")|call inputrestore()
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
21 " ---------------------------------------------------------------------
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
22 " Load Once: {{{1
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
23 if &cp || exists("g:loaded_tar")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
24 finish
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
25 endif
33722
ccde95a374dd runtime(tar): improve the error detection
Christian Brabandt <cb@256bit.org>
parents: 25773
diff changeset
26 let g:loaded_tar= "v32a"
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
27 if v:version < 702
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
28 echohl WarningMsg
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
29 echo "***warning*** this version of tar needs vim 7.2"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
30 echohl Normal
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
31 finish
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
32 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
33 let s:keepcpo= &cpo
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
34 set cpo&vim
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
35 "DechoTabOn
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
36 "call Decho("loading autoload/tar.vim")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
37
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
38 " ---------------------------------------------------------------------
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
39 " Default Settings: {{{1
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
40 if !exists("g:tar_browseoptions")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
41 let g:tar_browseoptions= "Ptf"
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
42 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
43 if !exists("g:tar_readoptions")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
44 let g:tar_readoptions= "OPxf"
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
45 endif
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
46 if !exists("g:tar_cmd")
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
47 let g:tar_cmd= "tar"
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
48 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
49 if !exists("g:tar_writeoptions")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
50 let g:tar_writeoptions= "uf"
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
51 endif
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
52 if !exists("g:tar_delfile")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
53 let g:tar_delfile="--delete -f"
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
54 endif
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
55 if !exists("g:netrw_cygwin")
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
56 if has("win32") || has("win95") || has("win64") || has("win16")
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
57 if &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
58 let g:netrw_cygwin= 1
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
59 else
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
60 let g:netrw_cygwin= 0
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
61 endif
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
62 else
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
63 let g:netrw_cygwin= 0
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
64 endif
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
65 endif
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
66 if !exists("g:tar_copycmd")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
67 if !exists("g:netrw_localcopycmd")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
68 if has("win32") || has("win95") || has("win64") || has("win16")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
69 if g:netrw_cygwin
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
70 let g:netrw_localcopycmd= "cp"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
71 else
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
72 let g:netrw_localcopycmd= "copy"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
73 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
74 elseif has("unix") || has("macunix")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
75 let g:netrw_localcopycmd= "cp"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
76 else
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
77 let g:netrw_localcopycmd= ""
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
78 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
79 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
80 let g:tar_copycmd= g:netrw_localcopycmd
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
81 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
82 if !exists("g:tar_extractcmd")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
83 let g:tar_extractcmd= "tar -xf"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
84 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
85
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
86 " set up shell quoting character
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
87 if !exists("g:tar_shq")
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
88 if exists("+shq") && exists("&shq") && &shq != ""
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
89 let g:tar_shq= &shq
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
90 elseif has("win32") || has("win95") || has("win64") || has("win16")
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
91 if exists("g:netrw_cygwin") && g:netrw_cygwin
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
92 let g:tar_shq= "'"
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
93 else
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
94 let g:tar_shq= '"'
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
95 endif
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
96 else
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
97 let g:tar_shq= "'"
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
98 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
99 " call Decho("g:tar_shq<".g:tar_shq.">")
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
100 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
101
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
102 " ----------------
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
103 " Functions: {{{1
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
104 " ----------------
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
105
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
106 " ---------------------------------------------------------------------
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
107 " tar#Browse: {{{2
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
108 fun! tar#Browse(tarfile)
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
109 " call Dfunc("tar#Browse(tarfile<".a:tarfile.">)")
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
110 let repkeep= &report
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
111 set report=10
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
112
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
113 " sanity checks
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
114 if !executable(g:tar_cmd)
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
115 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
116 " call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
117 echohl Error | echo '***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system'
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
118 let &report= repkeep
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
119 " call Dret("tar#Browse")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
120 return
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
121 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
122 if !filereadable(a:tarfile)
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
123 " call Decho('a:tarfile<'.a:tarfile.'> not filereadable')
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
124 if a:tarfile !~# '^\a\+://'
19116
9b7f90e56753 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 19099
diff changeset
125 " if it's an url, don't complain, let url-handlers such as vim do its thing
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
126 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
127 " call Decho("***error*** (tar#Browse) File not readable<".a:tarfile.">")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
128 echohl Error | echo "***error*** (tar#Browse) File not readable<".a:tarfile.">" | echohl None
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
129 endif
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
130 let &report= repkeep
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
131 " call Dret("tar#Browse : file<".a:tarfile."> not readable")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
132 return
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
133 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
134 if &ma != 1
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
135 set ma
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
136 endif
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
137 let b:tarfile= a:tarfile
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
138
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
139 setlocal noswapfile
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
140 setlocal buftype=nofile
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
141 setlocal bufhidden=hide
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
142 setlocal nobuflisted
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
143 setlocal nowrap
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
144 set ft=tar
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
145
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
146 " give header
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
147 " call Decho("printing header")
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
148 let lastline= line("$")
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
149 call setline(lastline+1,'" tar.vim version '.g:loaded_tar)
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
150 call setline(lastline+2,'" Browsing tarfile '.a:tarfile)
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
151 call setline(lastline+3,'" Select a file with cursor and press ENTER')
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
152 keepj $put =''
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2908
diff changeset
153 keepj sil! 0d
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
154 keepj $
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
155
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
156 let tarfile= a:tarfile
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
157 if has("win32unix") && executable("cygpath")
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
158 " assuming cygwin
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
159 let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
160 endif
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
161 let curlast= line("$")
14668
34fd018452ed Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14637
diff changeset
162
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
163 if tarfile =~# '\.\(gz\)$'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
164 " call Decho("1: exe silent r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
165 exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
166
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
167 elseif tarfile =~# '\.\(tgz\)$' || tarfile =~# '\.\(tbz\)$' || tarfile =~# '\.\(txz\)$' || tarfile =~# '\.\(tzst\)$'
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
168 if has("unix") && executable("file")
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
169 let filekind= system("file ".shellescape(tarfile,1))
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
170 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
171 let filekind= ""
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
172 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
173
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
174 if filekind =~ "bzip2"
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
175 exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
176 elseif filekind =~ "XZ"
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
177 exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
178 elseif filekind =~ "Zstandard"
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
179 exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
180 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
181 exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
182 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
183
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
184 elseif tarfile =~# '\.lrp'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
185 " call Decho("2: exe silent r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - ")
14679
ba010fa2bcba patch 8.1.0352: browsing compressed tar files does not always work
Christian Brabandt <cb@256bit.org>
parents: 14668
diff changeset
186 exe "sil! r! cat -- ".shellescape(tarfile,1)."|gzip -d -c -|".g:tar_cmd." -".g:tar_browseoptions." - "
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2908
diff changeset
187 elseif tarfile =~# '\.\(bz2\|tbz\|tb2\)$'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
188 " call Decho("3: exe silent r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
189 exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
3281
af1e8a1714c2 Update runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2908
diff changeset
190 elseif tarfile =~# '\.\(lzma\|tlz\)$'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
191 " call Decho("3: exe silent r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
192 exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
193 elseif tarfile =~# '\.\(xz\|txz\)$'
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
194 " call Decho("3: exe silent r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - ")
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
195 exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
196 elseif tarfile =~# '\.\(zst\|tzst\)$'
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
197 exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_browseoptions." - "
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
198 else
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
199 if tarfile =~ '^\s*-'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
200 " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
201 let tarfile = substitute(tarfile, '-', './-', '')
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
202 endif
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
203 " call Decho("4: exe silent r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,0))
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
204 exe "sil! r! ".g:tar_cmd." -".g:tar_browseoptions." ".shellescape(tarfile,1)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
205 endif
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
206 if v:shell_error != 0
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
207 redraw!
857
b933657f7c9d updated for version 7.0g01
vimboss
parents: 819
diff changeset
208 echohl WarningMsg | echo "***warning*** (tar#Browse) please check your g:tar_browseoptions<".g:tar_browseoptions.">"
b933657f7c9d updated for version 7.0g01
vimboss
parents: 819
diff changeset
209 " call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
b933657f7c9d updated for version 7.0g01
vimboss
parents: 819
diff changeset
210 return
b933657f7c9d updated for version 7.0g01
vimboss
parents: 819
diff changeset
211 endif
33722
ccde95a374dd runtime(tar): improve the error detection
Christian Brabandt <cb@256bit.org>
parents: 25773
diff changeset
212 "
33771
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
213 " The following should not be neccessary, since in case of errors the
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
214 " previous if statement should have caught the problem (because tar exited
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
215 " with a non-zero exit code).
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
216 " if line("$") == curlast || ( line("$") == (curlast + 1) &&
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
217 " \ getline("$") =~# '\c\<\%(warning\|error\|inappropriate\|unrecognized\)\>' &&
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
218 " \ getline("$") =~ '\s' )
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
219 " redraw!
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
220 " echohl WarningMsg | echo "***warning*** (tar#Browse) ".a:tarfile." doesn't appear to be a tar file" | echohl None
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
221 " keepj sil! %d
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
222 " let eikeep= &ei
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
223 " set ei=BufReadCmd,FileReadCmd
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
224 " exe "r ".fnameescape(a:tarfile)
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
225 " let &ei= eikeep
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
226 " keepj sil! 1d
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
227 " call Dret("tar#Browse : a:tarfile<".a:tarfile.">")
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
228 " return
9968a3af7e7b runtime(tar): comment out strange error condition check
Christian Brabandt <cb@256bit.org>
parents: 33722
diff changeset
229 " endif
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
230
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
231 " set up maps supported for tar
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
232 setlocal noma nomod ro
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
233 noremap <silent> <buffer> <cr> :call <SID>TarBrowseSelect()<cr>
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
234 noremap <silent> <buffer> x :call tar#Extract()<cr>
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
235 if &mouse != ""
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
236 noremap <silent> <buffer> <leftmouse> <leftmouse>:call <SID>TarBrowseSelect()<cr>
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
237 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
238
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
239 let &report= repkeep
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
240 " call Dret("tar#Browse : b:tarfile<".b:tarfile.">")
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
241 endfun
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
242
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
243 " ---------------------------------------------------------------------
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
244 " TarBrowseSelect: {{{2
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
245 fun! s:TarBrowseSelect()
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
246 " call Dfunc("TarBrowseSelect() b:tarfile<".b:tarfile."> curfile<".expand("%").">")
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
247 let repkeep= &report
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
248 set report=10
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
249 let fname= getline(".")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
250 " call Decho("fname<".fname.">")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
251
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
252 if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
253 redraw!
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
254 echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
255 " call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
256 return
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
257 endif
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
258
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
259 " sanity check
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
260 if fname =~ '^"'
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
261 let &report= repkeep
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
262 " call Dret("TarBrowseSelect")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
263 return
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
264 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
265
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
266 " about to make a new window, need to use b:tarfile
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
267 let tarfile= b:tarfile
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
268 let curfile= expand("%")
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
269 if has("win32unix") && executable("cygpath")
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
270 " assuming cygwin
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
271 let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
272 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
273
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
274 " open a new window (tar#Read will read a file into it)
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
275 noswapfile new
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
276 if !exists("g:tar_nomax") || g:tar_nomax == 0
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
277 wincmd _
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
278 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
279 let s:tblfile_{winnr()}= curfile
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
280 call tar#Read("tarfile:".tarfile.'::'.fname,1)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
281 filetype detect
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
282 set nomod
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
283 exe 'com! -buffer -nargs=? -complete=file TarDiff :call tar#Diff(<q-args>,"'.fnameescape(fname).'")'
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
284
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
285 let &report= repkeep
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
286 " call Dret("TarBrowseSelect : s:tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
287 endfun
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
288
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
289 " ---------------------------------------------------------------------
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
290 " tar#Read: {{{2
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
291 fun! tar#Read(fname,mode)
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
292 " call Dfunc("tar#Read(fname<".a:fname.">,mode=".a:mode.")")
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
293 let repkeep= &report
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
294 set report=10
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
295 let tarfile = substitute(a:fname,'tarfile:\(.\{-}\)::.*$','\1','')
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
296 let fname = substitute(a:fname,'tarfile:.\{-}::\(.*\)$','\1','')
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
297 if has("win32unix") && executable("cygpath")
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
298 " assuming cygwin
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
299 let tarfile=substitute(system("cygpath -u ".shellescape(tarfile,0)),'\n$','','e')
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
300 endif
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
301 " call Decho("tarfile<".tarfile.">")
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
302 " call Decho("fname<".fname.">")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
303
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
304 if fname =~ '\.bz2$' && executable("bzcat")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
305 let decmp= "|bzcat"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
306 let doro = 1
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
307 elseif fname =~ '\.t\=gz$' && executable("zcat")
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
308 let decmp= "|zcat"
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
309 let doro = 1
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
310 elseif fname =~ '\.lzma$' && executable("lzcat")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
311 let decmp= "|lzcat"
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
312 let doro = 1
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
313 elseif fname =~ '\.xz$' && executable("xzcat")
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
314 let decmp= "|xzcat"
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
315 let doro = 1
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
316 elseif fname =~ '\.zst$' && executable("zstdcat")
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
317 let decmp= "|zstdcat"
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
318 let doro = 1
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
319 else
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
320 let decmp=""
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
321 let doro = 0
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
322 if fname =~ '\.bz2$\|\.gz$\|\.lzma$\|\.xz$\|\.zip$\|\.Z$'
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
323 setlocal bin
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
324 endif
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
325 endif
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
326
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
327 if exists("g:tar_secure")
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
328 let tar_secure= " -- "
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
329 else
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
330 let tar_secure= " "
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
331 endif
14668
34fd018452ed Update runtime files.
Christian Brabandt <cb@256bit.org>
parents: 14637
diff changeset
332
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
333 if tarfile =~# '\.bz2$'
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
334 exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
335 elseif tarfile =~# '\.\(gz\)$'
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
336 exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
337
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
338 elseif tarfile =~# '\(\.tgz\|\.tbz\|\.txz\)'
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
339 if has("unix") && executable("file")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
340 let filekind= system("file ".shellescape(tarfile,1))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
341 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
342 let filekind= ""
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
343 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
344 if filekind =~ "bzip2"
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
345 exe "sil! r! bzip2 -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
346 elseif filekind =~ "XZ"
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
347 exe "sil! r! xz -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
348 elseif filekind =~ "Zstandard"
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
349 exe "sil! r! zstd --decompress --stdout -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
350 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
351 exe "sil! r! gzip -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
352 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
353
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
354 elseif tarfile =~# '\.lrp$'
14679
ba010fa2bcba patch 8.1.0352: browsing compressed tar files does not always work
Christian Brabandt <cb@256bit.org>
parents: 14668
diff changeset
355 exe "sil! r! cat -- ".shellescape(tarfile,1)." | gzip -d -c - | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
356 elseif tarfile =~# '\.lzma$'
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
357 exe "sil! r! lzma -d -c -- ".shellescape(tarfile,1)."| ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
358 elseif tarfile =~# '\.\(xz\|txz\)$'
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
359 exe "sil! r! xz --decompress --stdout -- ".shellescape(tarfile,1)." | ".g:tar_cmd." -".g:tar_readoptions." - ".tar_secure.shellescape(fname,1).decmp
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
360 else
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
361 if tarfile =~ '^\s*-'
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
362 " A file name starting with a dash is taken as an option. Prepend ./ to avoid that.
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
363 let tarfile = substitute(tarfile, '-', './-', '')
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
364 endif
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
365 " call Decho("8: exe silent r! ".g:tar_cmd." -".g:tar_readoptions.tar_secure.shellescape(tarfile,1)." ".shellescape(fname,1).decmp)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
366 exe "silent r! ".g:tar_cmd." -".g:tar_readoptions.shellescape(tarfile,1)." ".tar_secure.shellescape(fname,1).decmp
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
367 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
368
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
369 if doro
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
370 " because the reverse process of compressing changed files back into the tarball is not currently supported
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
371 setlocal ro
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
372 endif
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
373
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
374 let b:tarfile= a:fname
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1624
diff changeset
375 exe "file tarfile::".fnameescape(fname)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
376
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
377 " cleanup
2908
fd09a9c8468e Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 2535
diff changeset
378 keepj sil! 0d
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
379 set nomod
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
380
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
381 let &report= repkeep
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
382 " call Dret("tar#Read : b:tarfile<".b:tarfile.">")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
383 endfun
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
384
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
385 " ---------------------------------------------------------------------
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
386 " tar#Write: {{{2
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
387 fun! tar#Write(fname)
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
388 " call Dfunc("tar#Write(fname<".a:fname.">) b:tarfile<".b:tarfile."> tblfile_".winnr()."<".s:tblfile_{winnr()}.">")
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
389 let repkeep= &report
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
390 set report=10
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
391
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
392 if !exists("g:tar_secure") && a:fname =~ '^\s*-\|\s\+-'
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
393 redraw!
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
394 echohl WarningMsg | echo '***warning*** (tar#Write) rejecting tarfile member<'.a:fname.'> because of embedded "-"'
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
395 " call Dret('tar#Write : rejecting tarfile member<'.fname.'> because of embedded "-"')
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
396 return
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
397 endif
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
398
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
399 " sanity checks
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 624
diff changeset
400 if !executable(g:tar_cmd)
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
401 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
402 " call Decho('***error*** (tar#Browse) "'.g:tar_cmd.'" not available on your system')
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
403 let &report= repkeep
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
404 " call Dret("tar#Write")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
405 return
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
406 endif
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
407 if !exists("*mkdir")
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
408 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
409 " call Decho("***error*** (tar#Write) sorry, mkdir() doesn't work on your system")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
410 echohl Error | echo "***error*** (tar#Write) sorry, mkdir() doesn't work on your system" | echohl None
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
411 let &report= repkeep
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
412 " call Dret("tar#Write")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
413 return
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
414 endif
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
415
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
416 let curdir= getcwd()
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
417 let tmpdir= tempname()
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
418 " call Decho("orig tempname<".tmpdir.">")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
419 if tmpdir =~ '\.'
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
420 let tmpdir= substitute(tmpdir,'\.[^.]*$','','e')
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
421 endif
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
422 " call Decho("tmpdir<".tmpdir.">")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
423 call mkdir(tmpdir,"p")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
424
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
425 " attempt to change to the indicated directory
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
426 try
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
427 exe "cd ".fnameescape(tmpdir)
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
428 catch /^Vim\%((\a\+)\)\=:E344/
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
429 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
430 " call Decho("***error*** (tar#Write) cannot cd to temporary directory")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
431 echohl Error | echo "***error*** (tar#Write) cannot cd to temporary directory" | Echohl None
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
432 let &report= repkeep
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
433 " call Dret("tar#Write")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
434 return
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
435 endtry
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
436 " call Decho("current directory now: ".getcwd())
446
7472c565592a updated for version 7.0117
vimboss
parents:
diff changeset
437
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
438 " place temporary files under .../_ZIPVIM_/
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
439 if isdirectory("_ZIPVIM_")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
440 call s:Rmdir("_ZIPVIM_")
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
441 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
442 call mkdir("_ZIPVIM_")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
443 cd _ZIPVIM_
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
444 " call Decho("current directory now: ".getcwd())
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
445
2535
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
446 let tarfile = substitute(b:tarfile,'tarfile:\(.\{-}\)::.*$','\1','')
31e51111bd14 Runtime file updates. Fix tar plugin window split.
Bram Moolenaar <bram@vim.org>
parents: 2426
diff changeset
447 let fname = substitute(b:tarfile,'tarfile:.\{-}::\(.*\)$','\1','')
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
448
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
449 " handle compressed archives
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
450 if tarfile =~# '\.bz2'
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
451 call system("bzip2 -d -- ".shellescape(tarfile,0))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
452 let tarfile = substitute(tarfile,'\.bz2','','e')
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
453 let compress= "bzip2 -- ".shellescape(tarfile,0)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
454 " call Decho("compress<".compress.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
455 elseif tarfile =~# '\.gz'
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
456 call system("gzip -d -- ".shellescape(tarfile,0))
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
457 let tarfile = substitute(tarfile,'\.gz','','e')
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
458 let compress= "gzip -- ".shellescape(tarfile,0)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
459 " call Decho("compress<".compress.">")
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
460 elseif tarfile =~# '\.tgz'
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
461 call system("gzip -d -- ".shellescape(tarfile,0))
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
462 let tarfile = substitute(tarfile,'\.tgz','.tar','e')
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
463 let compress= "gzip -- ".shellescape(tarfile,0)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
464 let tgz = 1
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
465 " call Decho("compress<".compress.">")
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
466 elseif tarfile =~# '\.xz'
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
467 call system("xz -d -- ".shellescape(tarfile,0))
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
468 let tarfile = substitute(tarfile,'\.xz','','e')
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
469 let compress= "xz -- ".shellescape(tarfile,0)
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
470 " call Decho("compress<".compress.">")
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
471 elseif tarfile =~# '\.zst'
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
472 call system("zstd --decompress --rm -- ".shellescape(tarfile,0))
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
473 let tarfile = substitute(tarfile,'\.zst','','e')
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
474 let compress= "zstd --rm -- ".shellescape(tarfile,0)
2426
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
475 elseif tarfile =~# '\.lzma'
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
476 call system("lzma -d -- ".shellescape(tarfile,0))
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
477 let tarfile = substitute(tarfile,'\.lzma','','e')
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
478 let compress= "lzma -- ".shellescape(tarfile,0)
e52d87a2bb3e More runtime file updates.
Bram Moolenaar <bram@vim.org>
parents: 2034
diff changeset
479 " call Decho("compress<".compress.">")
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
480 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
481 " call Decho("tarfile<".tarfile.">")
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
482
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
483 if v:shell_error != 0
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
484 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
485 " call Decho("***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
486 echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".tarfile." with ".fname | echohl None
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
487 else
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
488
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
489 " call Decho("tarfile<".tarfile."> fname<".fname.">")
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
490
624
91e7d4a7b3b0 updated for version 7.0178
vimboss
parents: 569
diff changeset
491 if fname =~ '/'
91e7d4a7b3b0 updated for version 7.0178
vimboss
parents: 569
diff changeset
492 let dirpath = substitute(fname,'/[^/]\+$','','e')
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
493 if has("win32unix") && executable("cygpath")
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
494 let dirpath = substitute(system("cygpath ".shellescape(dirpath, 0)),'\n','','e')
624
91e7d4a7b3b0 updated for version 7.0178
vimboss
parents: 569
diff changeset
495 endif
91e7d4a7b3b0 updated for version 7.0178
vimboss
parents: 569
diff changeset
496 call mkdir(dirpath,"p")
91e7d4a7b3b0 updated for version 7.0178
vimboss
parents: 569
diff changeset
497 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
498 if tarfile !~ '/'
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
499 let tarfile= curdir.'/'.tarfile
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
500 endif
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
501 if tarfile =~ '^\s*-'
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
502 " A file name starting with a dash may be taken as an option. Prepend ./ to avoid that.
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
503 let tarfile = substitute(tarfile, '-', './-', '')
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
504 endif
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
505 " call Decho("tarfile<".tarfile."> fname<".fname.">")
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
506
1702
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
507 if exists("g:tar_secure")
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
508 let tar_secure= " -- "
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
509 else
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
510 let tar_secure= " "
5232b9862f23 updated for version 7.2-000
vimboss
parents: 1698
diff changeset
511 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
512 exe "w! ".fnameescape(fname)
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
513 if has("win32unix") && executable("cygpath")
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
514 let tarfile = substitute(system("cygpath ".shellescape(tarfile,0)),'\n','','e')
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
515 endif
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
516
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
517 " delete old file from tarfile
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
518 " call Decho("system(".g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0)." -- ".shellescape(fname,0).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
519 call system(g:tar_cmd." ".g:tar_delfile." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
520 if v:shell_error != 0
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
521 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
522 " call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
523 echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
524 else
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
525
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
526 " update tarfile with new file
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
527 " call Decho(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
528 call system(g:tar_cmd." -".g:tar_writeoptions." ".shellescape(tarfile,0).tar_secure.shellescape(fname,0))
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
529 if v:shell_error != 0
1125
96cd8222a819 updated for version 7.1a
vimboss
parents: 857
diff changeset
530 redraw!
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
531 " call Decho("***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname))
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
532 echohl Error | echo "***error*** (tar#Write) sorry, unable to update ".fnameescape(tarfile)." with ".fnameescape(fname) | echohl None
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
533 elseif exists("compress")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
534 " call Decho("call system(".compress.")")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
535 call system(compress)
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
536 if exists("tgz")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
537 " call Decho("rename(".tarfile.".gz,".substitute(tarfile,'\.tar$','.tgz','e').")")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
538 call rename(tarfile.".gz",substitute(tarfile,'\.tar$','.tgz','e'))
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
539 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
540 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
541 endif
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
542
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
543 " support writing tarfiles across a network
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
544 if s:tblfile_{winnr()} =~ '^\a\+://'
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
545 " call Decho("handle writing <".tarfile."> across network to <".s:tblfile_{winnr()}.">")
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
546 let tblfile= s:tblfile_{winnr()}
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
547 1split|noswapfile enew
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
548 let binkeep= &l:binary
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
549 let eikeep = &ei
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
550 set binary ei=all
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
551 exe "noswapfile e! ".fnameescape(tarfile)
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
552 call netrw#NetWrite(tblfile)
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
553 let &ei = eikeep
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
554 let &l:binary = binkeep
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
555 q!
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
556 unlet s:tblfile_{winnr()}
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
557 endif
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
558 endif
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
559
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
560 " cleanup and restore current directory
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
561 cd ..
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
562 call s:Rmdir("_ZIPVIM_")
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1624
diff changeset
563 exe "cd ".fnameescape(curdir)
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
564 setlocal nomod
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
565
569
bdbdec22a225 updated for version 7.0161
vimboss
parents: 557
diff changeset
566 let &report= repkeep
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
567 " call Dret("tar#Write")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
568 endfun
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
569
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
570 " ---------------------------------------------------------------------
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
571 " tar#Diff: {{{2
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
572 fun! tar#Diff(userfname,fname)
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
573 " call Dfunc("tar#Diff(userfname<".a:userfname."> fname<".a:fname.")")
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
574 let fname= a:fname
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
575 if a:userfname != ""
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
576 let fname= a:userfname
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
577 endif
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
578 if filereadable(fname)
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
579 " sets current file (from tarball) for diff'ing
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
580 " splits window vertically
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
581 " opens original file, sets it for diff'ing
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
582 " sets up b:tardiff_otherbuf variables so each buffer knows about the other (for closing purposes)
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
583 diffthis
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
584 wincmd v
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
585 exe "noswapfile e ".fnameescape(fname)
4339
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
586 diffthis
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
587 else
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
588 redraw!
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
589 echo "***warning*** unable to read file<".fname.">"
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
590 endif
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
591 " call Dret("tar#Diff")
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
592 endfun
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
593
22fa3049e934 Updated runtime files.
Bram Moolenaar <bram@vim.org>
parents: 3281
diff changeset
594 " ---------------------------------------------------------------------
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
595 " tar#Extract: extract a file from a (possibly compressed) tar archive {{{2
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
596 fun! tar#Extract()
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
597 " call Dfunc("tar#Extract()")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
598
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
599 let repkeep= &report
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
600 set report=10
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
601 let fname= getline(".")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
602 " call Decho("fname<".fname.">")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
603
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
604 if !exists("g:tar_secure") && fname =~ '^\s*-\|\s\+-'
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
605 redraw!
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
606 echohl WarningMsg | echo '***warning*** (tar#BrowseSelect) rejecting tarfile member<'.fname.'> because of embedded "-"'
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
607 " call Dret('tar#BrowseSelect : rejecting tarfile member<'.fname.'> because of embedded "-"')
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
608 return
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
609 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
610
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
611 " sanity check
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
612 if fname =~ '^"'
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
613 let &report= repkeep
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
614 " call Dret("TarBrowseSelect")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
615 return
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
616 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
617
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
618 let tarball = expand("%")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
619 " call Decho("tarball<".tarball.">")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
620 let tarbase = substitute(tarball,'\..*$','','')
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
621 " call Decho("tarbase<".tarbase.">")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
622
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
623 let extractcmd= netrw#WinPath(g:tar_extractcmd)
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
624 if filereadable(tarbase.".tar")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
625 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
626 call system(extractcmd." ".shellescape(tarbase).".tar ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
627 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
628 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
629 " call Decho("***error*** ".extractcmd." ".tarbase.".tar ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
630 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
631 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
632 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
633
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
634 elseif filereadable(tarbase.".tgz")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
635 let extractcmd= substitute(extractcmd,"-","-z","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
636 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
637 call system(extractcmd." ".shellescape(tarbase).".tgz ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
638 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
639 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tgz ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
640 " call Decho("***error*** ".extractcmd."t ".tarbase.".tgz ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
641 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
642 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
643 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
644
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
645 elseif filereadable(tarbase.".tar.gz")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
646 let extractcmd= substitute(extractcmd,"-","-z","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
647 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
648 call system(extractcmd." ".shellescape(tarbase).".tar.gz ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
649 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
650 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
651 " call Decho("***error*** ".extractcmd." ".tarbase.".tar.gz ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
652 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
653 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
654 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
655
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
656 elseif filereadable(tarbase.".tbz")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
657 let extractcmd= substitute(extractcmd,"-","-j","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
658 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
659 call system(extractcmd." ".shellescape(tarbase).".tbz ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
660 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
661 echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
662 " call Decho("***error*** ".extractcmd."j ".tarbase.".tbz ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
663 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
664 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
665 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
666
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
667 elseif filereadable(tarbase.".tar.bz2")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
668 let extractcmd= substitute(extractcmd,"-","-j","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
669 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
670 call system(extractcmd." ".shellescape(tarbase).".tar.bz2 ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
671 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
672 echohl Error | echo "***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
673 " call Decho("***error*** ".extractcmd."j ".tarbase.".tar.bz2 ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
674 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
675 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
676 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
677
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
678 elseif filereadable(tarbase.".txz")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
679 let extractcmd= substitute(extractcmd,"-","-J","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
680 " call Decho("system(".extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
681 call system(extractcmd." ".shellescape(tarbase).".txz ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
682 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
683 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
684 " call Decho("***error*** ".extractcmd." ".tarbase.".txz ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
685 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
686 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
687 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
688
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
689 elseif filereadable(tarbase.".tar.xz")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
690 let extractcmd= substitute(extractcmd,"-","-J","")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
691 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname).")")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
692 call system(extractcmd." ".shellescape(tarbase).".tar.xz ".shellescape(fname))
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
693 if v:shell_error != 0
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
694 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!" | echohl NONE
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
695 " call Decho("***error*** ".extractcmd." ".tarbase.".tar.xz ".fname.": failed!")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
696 else
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
697 echo "***note*** successfully extracted ".fname
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
698 endif
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
699
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
700 elseif filereadable(tarbase.".tzst")
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
701 let extractcmd= substitute(extractcmd,"-","--zstd","")
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
702 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname).")")
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
703 call system(extractcmd." ".shellescape(tarbase).".tzst ".shellescape(fname))
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
704 if v:shell_error != 0
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
705 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!" | echohl NONE
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
706 " call Decho("***error*** ".extractcmd." ".tarbase.".tzst ".fname.": failed!")
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
707 else
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
708 echo "***note*** successfully extracted ".fname
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
709 endif
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
710
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
711 elseif filereadable(tarbase.".tar.zst")
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
712 let extractcmd= substitute(extractcmd,"-","--zstd","")
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
713 " call Decho("system(".extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname).")")
34102
e003aedbf9e1 runtime(tar): fix a few problems with the tar plugin
Christian Brabandt <cb@256bit.org>
parents: 33771
diff changeset
714 call system(extractcmd." ".shellescape(tarbase).".tar.zst ".shellescape(fname))
23047
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
715 if v:shell_error != 0
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
716 echohl Error | echo "***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!" | echohl NONE
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
717 " call Decho("***error*** ".extractcmd." ".tarbase.".tar.zst ".fname.": failed!")
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
718 else
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
719 echo "***note*** successfully extracted ".fname
29c5f168c6fd Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 19116
diff changeset
720 endif
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
721 endif
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
722
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
723 " restore option
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
724 let &report= repkeep
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
725
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
726 " call Dret("tar#Extract")
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
727 endfun
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
728
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
729 " ---------------------------------------------------------------------
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
730 " s:Rmdir: {{{2
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
731 fun! s:Rmdir(fname)
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
732 " call Dfunc("Rmdir(fname<".a:fname.">)")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
733 if has("unix")
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
734 call system("/bin/rm -rf -- ".shellescape(a:fname,0))
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
735 elseif has("win32") || has("win95") || has("win64") || has("win16")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
736 if &shell =~? "sh$"
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
737 call system("/bin/rm -rf -- ".shellescape(a:fname,0))
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
738 else
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
739 call system("del /S ".shellescape(a:fname,0))
527
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
740 endif
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
741 endif
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
742 " call Dret("Rmdir")
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
743 endfun
93a822c9e3d2 updated for version 7.0147
vimboss
parents: 446
diff changeset
744
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
745 " ---------------------------------------------------------------------
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
746 " tar#Vimuntar: installs a tarball in the user's .vim / vimfiles directory {{{2
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
747 fun! tar#Vimuntar(...)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
748 " call Dfunc("tar#Vimuntar() a:0=".a:0." a:1<".(exists("a:1")? a:1 : "-n/a-").">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
749 let tarball = expand("%")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
750 " call Decho("tarball<".tarball.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
751 let tarbase = substitute(tarball,'\..*$','','')
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
752 " call Decho("tarbase<".tarbase.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
753 let tarhome = expand("%:p")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
754 if has("win32") || has("win95") || has("win64") || has("win16")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
755 let tarhome= substitute(tarhome,'\\','/','g')
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
756 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
757 let tarhome= substitute(tarhome,'/[^/]*$','','')
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
758 " call Decho("tarhome<".tarhome.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
759 let tartail = expand("%:t")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
760 " call Decho("tartail<".tartail.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
761 let curdir = getcwd()
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
762 " call Decho("curdir <".curdir.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
763 " set up vimhome
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
764 if a:0 > 0 && a:1 != ""
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
765 let vimhome= a:1
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
766 else
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
767 let vimhome= vimball#VimballHome()
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
768 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
769 " call Decho("vimhome<".vimhome.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
770
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
771 " call Decho("curdir<".curdir."> vimhome<".vimhome.">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
772 if simplify(curdir) != simplify(vimhome)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
773 " copy (possibly compressed) tarball to .vim/vimfiles
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
774 " call Decho(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
775 call system(netrw#WinPath(g:tar_copycmd)." ".shellescape(tartail)." ".shellescape(vimhome))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
776 " call Decho("exe cd ".fnameescape(vimhome))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
777 exe "cd ".fnameescape(vimhome)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
778 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
779 " call Decho("getcwd<".getcwd().">")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
780
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
781 " if necessary, decompress the tarball; then, extract it
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
782 if tartail =~ '\.tgz'
19099
1a951a4beee3 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 14679
diff changeset
783 if executable("gunzip")
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
784 silent exe "!gunzip ".shellescape(tartail)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
785 elseif executable("gzip")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
786 silent exe "!gzip -d ".shellescape(tartail)
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1624
diff changeset
787 else
25773
11b656e74444 Update runtime files
Bram Moolenaar <Bram@vim.org>
parents: 23047
diff changeset
788 echoerr "unable to decompress<".tartail."> on this system"
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
789 if simplify(curdir) != simplify(tarhome)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
790 " remove decompressed tarball, restore directory
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
791 " call Decho("delete(".tartail.".tar)")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
792 call delete(tartail.".tar")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
793 " call Decho("exe cd ".fnameescape(curdir))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
794 exe "cd ".fnameescape(curdir)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
795 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
796 " call Dret("tar#Vimuntar")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
797 return
1668
0b796e045c42 updated for version 7.2b-000
vimboss
parents: 1624
diff changeset
798 endif
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
799 else
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
800 call vimball#Decompress(tartail,0)
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
801 endif
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
802 let extractcmd= netrw#WinPath(g:tar_extractcmd)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
803 " call Decho("system(".extractcmd." ".shellescape(tarbase.".tar").")")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
804 call system(extractcmd." ".shellescape(tarbase.".tar"))
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
805
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
806 " set up help
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
807 if filereadable("doc/".tarbase.".txt")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
808 " call Decho("exe helptags ".getcwd()."/doc")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
809 exe "helptags ".getcwd()."/doc"
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
810 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
811
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
812 if simplify(tarhome) != simplify(vimhome)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
813 " remove decompressed tarball, restore directory
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
814 call delete(vimhome."/".tarbase.".tar")
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
815 exe "cd ".fnameescape(curdir)
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
816 endif
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
817
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
818 " call Dret("tar#Vimuntar")
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
819 endfun
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
820
2034
7bc41231fbc7 Update runtime files.
Bram Moolenaar <bram@zimbu.org>
parents: 1702
diff changeset
821 " =====================================================================
557
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
822 " Modelines And Restoration: {{{1
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
823 let &cpo= s:keepcpo
862863033fdd updated for version 7.0158
vimboss
parents: 527
diff changeset
824 unlet s:keepcpo
1624
18ee39301b82 updated for version 7.2a
vimboss
parents: 1125
diff changeset
825 " vim:ts=8 fdm=marker