Function: gnus-mime-display-part

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

Signature

(gnus-mime-display-part HANDLE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-art.el.gz
(defun gnus-mime-display-part (handle)
  (cond
   ;; Maybe a broken MIME message.
   ((null handle))
   ;; Single part.
   ((not (stringp (car handle)))
    (gnus-mime-display-single handle))
   ;; User-defined multipart
   ((cdr (assoc (car handle) gnus-mime-multipart-functions))
    (funcall (cdr (assoc (car handle) gnus-mime-multipart-functions))
	     handle))
   ;; multipart/alternative
   ((and (equal (car handle) "multipart/alternative")
	 (not (or gnus-mime-display-multipart-as-mixed
		  gnus-mime-display-multipart-alternative-as-mixed)))
    (let ((id (1+ (length gnus-article-mime-handle-alist))))
      (push (cons id handle) gnus-article-mime-handle-alist)
      (gnus-mime-display-alternative (cdr handle) nil nil id)))
   ;; multipart/related
   ((and (equal (car handle) "multipart/related")
	 (not (or gnus-mime-display-multipart-as-mixed
		  gnus-mime-display-multipart-related-as-mixed)))
    (gnus-mime-display-part (cadr handle)))
   ((equal (car handle) "multipart/signed")
    (gnus-add-wash-type 'signed)
    (gnus-mime-display-security handle))
   ((equal (car handle) "multipart/encrypted")
    (gnus-add-wash-type 'encrypted)
    (gnus-mime-display-security handle))
   ;; pkcs7-mime handling:
   ;;
   ;; although not really multipart these are structured internally by
   ;; mm-dissect-buffer like multipart to not discard the decryption
   ;; and verification results
   ;;
   ;; application/pkcs7-mime
   ((and (equal (car handle) "application/pkcs7-mime")
         (equal (mm-handle-multipart-ctl-parameter handle 'protocol)
                "application/pkcs7-mime_signed-data"))
    (gnus-add-wash-type 'signed)
    (gnus-mime-display-security handle))
   ((and (equal (car handle) "application/pkcs7-mime")
         (equal (mm-handle-multipart-ctl-parameter handle 'protocol)
                "application/pkcs7-mime_enveloped-data"))
    (gnus-add-wash-type 'encrypted)
    (gnus-mime-display-security handle))
   ;; application/x-pkcs7-mime
   ((and (equal (car handle) "application/x-pkcs7-mime")
         (equal (mm-handle-multipart-ctl-parameter handle 'protocol)
                "application/x-pkcs7-mime_signed-data"))
    (gnus-add-wash-type 'signed)
    (gnus-mime-display-security handle))
   ((and (equal (car handle) "application/x-pkcs7-mime")
         (equal (mm-handle-multipart-ctl-parameter handle 'protocol)
                "application/x-pkcs7-mime_enveloped-data"))
    (gnus-add-wash-type 'encrypted)
    (gnus-mime-display-security handle))
   ;; Other multiparts are handled like multipart/mixed.
   (t
    (gnus-mime-display-mixed (cdr handle)))))