Function: org-odt--zip-extract

org-odt--zip-extract is a byte-compiled function defined in ox-odt.el.gz.

Signature

(org-odt--zip-extract ARCHIVE MEMBERS TARGET)

Source Code

;; Defined in /usr/src/emacs/lisp/org/ox-odt.el.gz
;;;; Library wrappers

(defun org-odt--zip-extract (archive members target)
  (when (atom members) (setq members (list members)))
  (require 'arc-mode)
  (dolist (member members)
    (let* ((--quote-file-name
	    ;; This is shamelessly stolen from `archive-zip-extract'.
	    (lambda (name)
	      (if (or (not (memq system-type '(windows-nt ms-dos)))
		      (and (boundp 'w32-quote-process-args)
			   (null w32-quote-process-args)))
		  (shell-quote-argument name)
		name)))
	   (target (funcall --quote-file-name target))
	   (archive (expand-file-name archive))
	   (archive-zip-extract
	    (list "unzip" "-qq" "-o" "-d" target))
	   exit-code command-output)
      (setq command-output
	    (with-temp-buffer
	      (setq exit-code (archive-zip-extract archive member))
	      (buffer-string)))
      (unless (zerop exit-code)
	(warn command-output)
	(error "Extraction failed")))))