Function: mm-save-part
mm-save-part is a byte-compiled function defined in mm-decode.el.gz.
Signature
(mm-save-part HANDLE &optional PROMPT)
Documentation
Write HANDLE to a file.
PROMPT overrides the default one used to ask user for a file name.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/mm-decode.el.gz
(defun mm-save-part (handle &optional prompt)
"Write HANDLE to a file.
PROMPT overrides the default one used to ask user for a file name."
(let ((filename (or (mail-content-type-get
(mm-handle-disposition handle) 'filename)
(mail-content-type-get
(mm-handle-type handle) 'name)))
file directory)
(when filename
(setq filename (gnus-map-function mm-file-name-rewrite-functions
(file-name-nondirectory filename))))
(while
(progn
(setq file
(read-file-name
(or prompt
(format-prompt "Save MIME part to" filename))
(or directory mm-default-directory default-directory)
(expand-file-name
(or filename "")
(or directory mm-default-directory default-directory))))
(cond ((or (not file) (equal file ""))
(message "Please enter a file name")
t)
((and (file-directory-p file)
(not filename))
(setq directory file)
(message "Please enter a non-directory file name")
t)
(t nil)))
(sit-for 2)
(discard-input))
(if (file-directory-p file)
(setq file (expand-file-name filename file))
(setq file (expand-file-name
file (or mm-default-directory default-directory))))
(setq mm-default-directory (file-name-directory file))
(and (or (not (file-exists-p file))
(yes-or-no-p (format "File %s already exists; overwrite? "
file)))
(progn
(mm-save-part-to-file handle file)
file))))