Mercurial > vim
comparison runtime/autoload/gzip.vim @ 1592:e06e177de52a v7.1.305
updated for version 7.1-305
author | vimboss |
---|---|
date | Thu, 29 May 2008 20:41:57 +0000 |
parents | 4e90dc161511 |
children | 0b796e045c42 |
comparison
equal
deleted
inserted
replaced
1591:c19f6b8d0393 | 1592:e06e177de52a |
---|---|
1 " Vim autoload file for editing compressed files. | 1 " Vim autoload file for editing compressed files. |
2 " Maintainer: Bram Moolenaar <Bram@vim.org> | 2 " Maintainer: Bram Moolenaar <Bram@vim.org> |
3 " Last Change: 2007 May 10 | 3 " Last Change: 2008 May 29 |
4 | 4 |
5 " These functions are used by the gzip plugin. | 5 " These functions are used by the gzip plugin. |
6 | 6 |
7 " Function to check that executing "cmd [-f]" works. | 7 " Function to check that executing "cmd [-f]" works. |
8 " The result is cached in s:have_"cmd" for speed. | 8 " The result is cached in s:have_"cmd" for speed. |
71 | 71 |
72 " when filtering the whole buffer, it will become empty | 72 " when filtering the whole buffer, it will become empty |
73 let empty = line("'[") == 1 && line("']") == line("$") | 73 let empty = line("'[") == 1 && line("']") == line("$") |
74 let tmp = tempname() | 74 let tmp = tempname() |
75 let tmpe = tmp . "." . expand("<afile>:e") | 75 let tmpe = tmp . "." . expand("<afile>:e") |
76 if exists('*fnameescape') | |
77 let tmp_esc = fnameescape(tmp) | |
78 let tmpe_esc = fnameescape(tmpe) | |
79 else | |
80 let tmp_esc = escape(tmp, ' ') | |
81 let tmpe_esc = escape(tmpe, ' ') | |
82 endif | |
76 " write the just read lines to a temp file "'[,']w tmp.gz" | 83 " write the just read lines to a temp file "'[,']w tmp.gz" |
77 execute "silent '[,']w " . escape(tmpe, ' ') | 84 execute "silent '[,']w " . tmpe_esc |
78 " uncompress the temp file: call system("gzip -dn tmp.gz") | 85 " uncompress the temp file: call system("gzip -dn tmp.gz") |
79 call system(a:cmd . " " . s:escape(tmpe)) | 86 call system(a:cmd . " " . s:escape(tmpe)) |
80 if !filereadable(tmp) | 87 if !filereadable(tmp) |
81 " uncompress didn't work! Keep the compressed file then. | 88 " uncompress didn't work! Keep the compressed file then. |
82 echoerr "Error: Could not read uncompressed file" | 89 echoerr "Error: Could not read uncompressed file" |
93 " read in the uncompressed lines "'[-1r tmp" | 100 " read in the uncompressed lines "'[-1r tmp" |
94 " Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options. | 101 " Use ++edit if the buffer was empty, keep the 'ff' and 'fenc' options. |
95 setlocal nobin | 102 setlocal nobin |
96 if exists(":lockmarks") | 103 if exists(":lockmarks") |
97 if empty | 104 if empty |
98 execute "silent lockmarks " . l . "r ++edit " . tmp | 105 execute "silent lockmarks " . l . "r ++edit " . tmp_esc |
99 else | 106 else |
100 execute "silent lockmarks " . l . "r " . tmp | 107 execute "silent lockmarks " . l . "r " . tmp_esc |
101 endif | 108 endif |
102 else | 109 else |
103 execute "silent " . l . "r " . tmp | 110 execute "silent " . l . "r " . tmp_esc |
104 endif | 111 endif |
105 | 112 |
106 " if buffer became empty, delete trailing blank line | 113 " if buffer became empty, delete trailing blank line |
107 if empty | 114 if empty |
108 silent $delete _ | 115 silent $delete _ |
109 1 | 116 1 |
110 endif | 117 endif |
111 " delete the temp file and the used buffers | 118 " delete the temp file and the used buffers |
112 call delete(tmp) | 119 call delete(tmp) |
113 silent! exe "bwipe " . tmp | 120 silent! exe "bwipe " . tmp_esc |
114 silent! exe "bwipe " . tmpe | 121 silent! exe "bwipe " . tmpe_esc |
115 endif | 122 endif |
116 | 123 |
117 " Restore saved option values. | 124 " Restore saved option values. |
118 let &pm = pm_save | 125 let &pm = pm_save |
119 let &cpo = cpo_save | 126 let &cpo = cpo_save |
122 let &l:fen = fen_save | 129 let &l:fen = fen_save |
123 endif | 130 endif |
124 | 131 |
125 " When uncompressed the whole buffer, do autocommands | 132 " When uncompressed the whole buffer, do autocommands |
126 if ok && empty | 133 if ok && empty |
134 if exists('*fnameescape') | |
135 let fname = fnameescape(expand("%:r")) | |
136 else | |
137 let fname = escape(expand("%:r"), " \t\n*?[{`$\\%#'\"|!<") | |
138 endif | |
127 if &verbose >= 8 | 139 if &verbose >= 8 |
128 execute "doau BufReadPost " . expand("%:r") | 140 execute "doau BufReadPost " . fname |
129 else | 141 else |
130 execute "silent! doau BufReadPost " . expand("%:r") | 142 execute "silent! doau BufReadPost " . fname |
131 endif | 143 endif |
132 endif | 144 endif |
133 endfun | 145 endfun |
134 | 146 |
135 " After writing compressed file: Compress written file with "cmd" | 147 " After writing compressed file: Compress written file with "cmd" |