Function: gnus-display-mime

gnus-display-mime is a byte-compiled function defined in gnus-art.el.gz.

Signature

(gnus-display-mime &optional IHANDLES)

Documentation

Display the MIME parts.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-display-mime (&optional ihandles)
  "Display the MIME parts."
  (save-excursion
    (save-selected-window
      (let ((window (get-buffer-window gnus-article-buffer))
	    (point (point)))
	(when window
	  (select-window window)
	  ;; We have to do this since selecting the window
	  ;; may change the point.  So we set the window point.
	  (set-window-point window point)))
      (let ((handles ihandles)
	    (inhibit-read-only t))
	(cond (handles)
	      ((setq handles (mm-dissect-buffer nil gnus-article-loose-mime))
	       (when gnus-article-emulate-mime
		 (mm-uu-dissect-text-parts handles)))
	      (gnus-article-emulate-mime
	       (setq handles (mm-uu-dissect))))
	(when (and (not ihandles)
		   (not gnus-displaying-mime))
	  ;; Top-level call; we clean up.
	  (when gnus-article-mime-handles
	    (mm-destroy-parts gnus-article-mime-handles)
	    (setq gnus-article-mime-handle-alist nil));; A trick.
	  (setq gnus-article-mime-handles handles)
	  ;; We allow users to glean info from the handles.
	  (when gnus-article-mime-part-function
	    (gnus-mime-part-function handles)))
	(if (and handles
		 (or (not (stringp (car handles)))
		     (cdr handles)))
	    (progn
	      (when (and (not ihandles)
			 (not gnus-displaying-mime))
		;; Clean up for mime parts.
		(article-goto-body)
		(delete-region (point) (point-max)))
	      (let ((gnus-displaying-mime t))
		(gnus-mime-display-part handles)))
	  (save-restriction
	    (article-goto-body)
	    (narrow-to-region (point) (point-max))
	    (gnus-treat-article nil 1 1 "text/plain")
	    (widen)))
	(unless ihandles
	  ;; Highlight the headers.
	  (save-excursion
	    (save-restriction
	      (article-goto-body)
	      (narrow-to-region (point-min) (point))
	      (gnus-article-save-original-date
	       (gnus-treat-article 'head)))))))
    ;; Cope with broken MIME messages.
    (goto-char (point-max))
    (unless (bolp)
      (insert "\n"))))