Function: mml-insert-mime-headers

mml-insert-mime-headers is a byte-compiled function defined in mml.el.gz.

Signature

(mml-insert-mime-headers CONT TYPE CHARSET ENCODING FLOWED)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mml.el.gz
(defun mml-insert-mime-headers (cont type charset encoding flowed)
  (let (parameters id disposition description)
    (setq parameters
	  (mml-parameter-string
	   cont mml-content-type-parameters))
    (when (or charset
	      parameters
	      flowed
	      (not (equal type mml-generate-default-type))
	      mml-insert-mime-headers-always)
      (when (consp charset)
	(error
	 "Can't encode a part with several charsets"))
      (insert "Content-Type: " type)
      (when charset
	(mml-insert-parameter
	 (mail-header-encode-parameter "charset" (symbol-name charset))))
      (when flowed
	(mml-insert-parameter "format=flowed"))
      (when parameters
	(mml-insert-parameter-string
	 cont mml-content-type-parameters))
      (insert "\n"))
    (when (setq id (cdr (assq 'id cont)))
      (insert "Content-ID: " id "\n"))
    (setq parameters
	  (mml-parameter-string
	   cont mml-content-disposition-parameters))
    (when (or (setq disposition (cdr (assq 'disposition cont)))
	      parameters)
      (insert "Content-Disposition: "
	      (or disposition
		  (mml-content-disposition type (cdr (assq 'filename cont)))))
      (when parameters
	(let ((cont (copy-sequence cont)))
	  ;; Set the file name to what's specified by the user.
	  (when-let ((recipient-filename (cdr (assq 'recipient-filename cont))))
	    (setcdr cont
		    (cons (cons 'filename recipient-filename)
			  (cdr cont))))
	  (mml-insert-parameter-string
	   cont mml-content-disposition-parameters)))
      (insert "\n"))
    (unless (eq encoding '7bit)
      (insert (format "Content-Transfer-Encoding: %s\n" encoding)))
    (when (setq description (cdr (assq 'description cont)))
      (insert "Content-Description: "
	      ;; The current buffer is unibyte, so do the description
	      ;; encoding in a temporary buffer.
	      (with-temp-buffer
		(insert description "\n")
		(mail-encode-encoded-word-region (point-min) (point-max))
		(buffer-string))))))