Function: gnus-summary-save-parts

gnus-summary-save-parts is an interactive and byte-compiled function defined in gnus-sum.el.gz.

Signature

(gnus-summary-save-parts TYPE DIR N &optional REVERSE)

Documentation

Save parts matching TYPE to DIR.

If REVERSE, save parts that do not match TYPE.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-save-parts (type dir n &optional reverse)
  "Save parts matching TYPE to DIR.
If REVERSE, save parts that do not match TYPE."
  (interactive
   (list (completing-read "Save parts of type: "
			  (progn
			    (gnus-summary-select-article nil t)
			    (gnus-eval-in-buffer-window gnus-article-buffer
			      (delete-dups
			       (mapcar (lambda (h)
					 (mm-handle-media-type (cdr h)))
				       gnus-article-mime-handle-alist))))
			  nil nil nil 'gnus-summary-save-parts-type-history)
	 (setq gnus-summary-save-parts-last-directory
	       (read-directory-name "Save to directory: "
                                    gnus-summary-save-parts-last-directory
                                    nil t))
	 current-prefix-arg)
   gnus-summary-mode)
  (gnus-summary-iterate n
    (let ((gnus-display-mime-function nil)
	  gnus-article-prepare-hook
	  gnus-article-decode-hook
	  gnus-display-mime-function
	  gnus-break-pages
	  (gnus-inhibit-treatment t))
      (gnus-summary-select-article))
    (with-current-buffer gnus-article-buffer
      (let ((handles (or gnus-article-mime-handles
			 (mm-dissect-buffer nil gnus-article-loose-mime)
			 (and gnus-article-emulate-mime
			      (mm-uu-dissect))))
	    (gnus-summary-save-parts-counter 1))
	(when handles
	  (gnus-summary-save-parts-1 type dir handles reverse)
	  (unless gnus-article-mime-handles ;; Don't destroy this case.
	    (mm-destroy-parts handles)))))))