Function: mm-extern-cache-contents

mm-extern-cache-contents is an autoloaded and byte-compiled function defined in mm-extern.el.gz.

Signature

(mm-extern-cache-contents HANDLE)

Documentation

Put the external-body part of HANDLE into its cache.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mm-extern.el.gz
;;;###autoload
(defun mm-extern-cache-contents (handle)
  "Put the external-body part of HANDLE into its cache."
  (let* ((access-type (cdr (assq 'access-type
				 (cdr (mm-handle-type handle)))))
	 (func (cdr (assq (intern
			   (downcase
			    (or access-type
				(error "Couldn't find access type"))))
			  mm-extern-function-alist)))
	 handles)
    (unless func
      (error "Access type (%s) is not supported" access-type))
    (mm-with-part handle
      (goto-char (point-max))
      (insert "\n\n")
      ;; It should be just a single MIME handle.
      (setq handles (mm-dissect-buffer t)))
    (unless (bufferp (car handles))
      (mm-destroy-parts handles)
      (error "Multipart external body is not supported"))
    (with-current-buffer (mm-handle-buffer handles)
      (let (good)
	(unwind-protect
	    (progn
	      (funcall func handle)
	      (setq good t))
	  (unless good
	    (mm-destroy-parts handles))))
      (mm-handle-set-cache handle handles))
    (setq gnus-article-mime-handles
	  (mm-merge-handles gnus-article-mime-handles handles))))