Function: rmail-mime-insert-multipart

rmail-mime-insert-multipart is a byte-compiled function defined in rmailmm.el.gz.

Signature

(rmail-mime-insert-multipart ENTITY)

Documentation

Presentation handler for a multipart MIME entity.

Source Code

;; Defined in /usr/src/emacs/lisp/mail/rmailmm.el.gz
(defun rmail-mime-insert-multipart (entity)
  "Presentation handler for a multipart MIME entity."
  (let ((current (aref (rmail-mime-entity-display entity) 0))
	(new (aref (rmail-mime-entity-display entity) 1))
	(header (rmail-mime-entity-header entity))
	;; (tagline (rmail-mime-entity-tagline entity))
	;; (body (rmail-mime-entity-body entity))
	(beg (point))
	(segment (rmail-mime-entity-segment (point) entity)))
    ;; header
    (if (eq (rmail-mime-display-header current)
	    (rmail-mime-display-header new))
	(goto-char (aref segment 2))
      (if (rmail-mime-display-header current)
	  (delete-char (- (aref segment 2) (aref segment 1))))
      (if (rmail-mime-display-header new)
	  (rmail-mime-insert-header header)))
    ;; tagline
    (if (eq (rmail-mime-display-tagline current)
	    (rmail-mime-display-tagline new))
	(if (or (not (rmail-mime-display-tagline current))
		(eq (rmail-mime-display-body current)
		    (rmail-mime-display-body new)))
	    (forward-char (- (aref segment 3) (aref segment 2)))
	  (rmail-mime-update-tagline entity))
      (if (rmail-mime-display-tagline current)
	  (delete-char (- (aref segment 3) (aref segment 2))))
      (if (rmail-mime-display-tagline new)
	  (rmail-mime-insert-tagline entity)))

    (put-text-property beg (point) 'rmail-mime-entity entity)

    ;; body
    (if (eq (rmail-mime-display-body current)
	    (rmail-mime-display-body new))
	(forward-char (- (aref segment 4) (aref segment 3)))
      (dolist (child (rmail-mime-entity-children entity))
	(rmail-mime-insert child)))
    entity))