211 |
;; ------------------------------ |
;; ------------------------------ |
212 |
;; Zip archive configuration |
;; Zip archive configuration |
213 |
|
|
|
(defcustom archive-zip-use-pkzip (memq system-type '(ms-dos windows-nt)) |
|
|
"*If non-nil then pkzip option are used instead of zip options. |
|
|
Only set to true for msdog systems!" |
|
|
:type 'boolean |
|
|
:group 'archive-zip) |
|
|
|
|
214 |
(defcustom archive-zip-extract |
(defcustom archive-zip-extract |
215 |
(if archive-zip-use-pkzip '("pkunzip" "-e" "-o-") '("unzip" "-qq" "-c")) |
(if (locate-file "unzip" nil 'file-executable-p) |
216 |
|
'("unzip" "-qq" "-c") |
217 |
|
(if (locate-file "pkunzip" nil 'file-executable-p) |
218 |
|
'("pkunzip" "-e" "-o-") |
219 |
|
'("unzip" "-qq" "-c"))) |
220 |
"*Program and its options to run in order to extract a zip file member. |
"*Program and its options to run in order to extract a zip file member. |
221 |
Extraction should happen to standard output. Archive and member name will |
Extraction should happen to standard output. Archive and member name will |
222 |
be added. If `archive-zip-use-pkzip' is non-nil then this program is |
be added. If `archive-zip-use-pkzip' is non-nil then this program is |
233 |
;; names. |
;; names. |
234 |
|
|
235 |
(defcustom archive-zip-expunge |
(defcustom archive-zip-expunge |
236 |
(if archive-zip-use-pkzip '("pkzip" "-d") '("zip" "-d" "-q")) |
(if (locate-file "zip" nil 'file-executable-p) |
237 |
|
'("zip" "-d" "-q") |
238 |
|
(if (locate-file "zip" nil 'file-executable-p) |
239 |
|
'("pkzip" "-d") |
240 |
|
'("zip" "-d" "-q"))) |
241 |
"*Program and its options to run in order to delete zip file members. |
"*Program and its options to run in order to delete zip file members. |
242 |
Archive and member names will be added." |
Archive and member names will be added." |
243 |
:type '(list (string :tag "Program") |
:type '(list (string :tag "Program") |
247 |
:group 'archive-zip) |
:group 'archive-zip) |
248 |
|
|
249 |
(defcustom archive-zip-update |
(defcustom archive-zip-update |
250 |
(if archive-zip-use-pkzip '("pkzip" "-u" "-P") '("zip" "-q")) |
(if (locate-file "zip" nil 'file-executable-p) |
251 |
|
'("zip" "-q") |
252 |
|
(if (locate-file "zip" nil 'file-executable-p) |
253 |
|
'("pkzip" "-u" "-P") |
254 |
|
'("zip" "-q"))) |
255 |
"*Program and its options to run in order to update a zip file member. |
"*Program and its options to run in order to update a zip file member. |
256 |
Options should ensure that specified directory will be put into the zip |
Options should ensure that specified directory will be put into the zip |
257 |
file. Archive and member name will be added." |
file. Archive and member name will be added." |
262 |
:group 'archive-zip) |
:group 'archive-zip) |
263 |
|
|
264 |
(defcustom archive-zip-update-case |
(defcustom archive-zip-update-case |
265 |
(if archive-zip-use-pkzip archive-zip-update '("zip" "-q" "-k")) |
(if (locate-file "zip" nil 'file-executable-p) |
266 |
|
'("zip" "-q" "-k") |
267 |
|
(if (locate-file "zip" nil 'file-executable-p) |
268 |
|
'("pkzip" "-u" "-P") |
269 |
|
'("zip" "-q" "-k"))) |
270 |
"*Program and its options to run in order to update a case fiddled zip member. |
"*Program and its options to run in order to update a case fiddled zip member. |
271 |
Options should ensure that specified directory will be put into the zip file. |
Options should ensure that specified directory will be put into the zip file. |
272 |
Archive and member name will be added." |
Archive and member name will be added." |
1647 |
(apply 'vector (nreverse files)))) |
(apply 'vector (nreverse files)))) |
1648 |
|
|
1649 |
(defun archive-zip-extract (archive name) |
(defun archive-zip-extract (archive name) |
1650 |
(if archive-zip-use-pkzip |
(if (equal (car archive-zip-extract) "pkzip") |
1651 |
(archive-*-extract archive name archive-zip-extract) |
(archive-*-extract archive name archive-zip-extract) |
1652 |
(archive-extract-by-stdout archive name archive-zip-extract))) |
(archive-extract-by-stdout archive name archive-zip-extract))) |
1653 |
|
|