Function: mm-encode-content-transfer-encoding

mm-encode-content-transfer-encoding is a byte-compiled function defined in mm-encode.el.gz.

Signature

(mm-encode-content-transfer-encoding ENCODING &optional TYPE)

Documentation

Encode the current buffer with ENCODING for MIME type TYPE.

ENCODING can be: nil (do nothing); one of quoted-printable, base64;
7bit, 8bit or binary (all do nothing); a function to do the encoding.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/mm-encode.el.gz
(defun mm-encode-content-transfer-encoding (encoding &optional type)
  "Encode the current buffer with ENCODING for MIME type TYPE.
ENCODING can be: nil (do nothing); one of `quoted-printable', `base64';
`7bit', `8bit' or `binary' (all do nothing); a function to do the encoding."
  (cond
   ((eq encoding 'quoted-printable)
    ;; This used to try to make a multibyte buffer unibyte.  That's
    ;; completely wrong, since you'd get QP-encoded emacs-mule.  If
    ;; this gets run on multibyte text it's an error that needs
    ;; fixing, and the encoding function will signal an error.
    ;; Likewise base64 below.
    (quoted-printable-encode-region (point-min) (point-max) t))
   ((eq encoding 'base64)
    (when (string-match "\\`text/" type)
      (goto-char (point-min))
      (while (search-forward "\n" nil t)
	(replace-match "\r\n" t t)))
    (base64-encode-region (point-min) (point-max)))
   ((memq encoding '(7bit 8bit binary))
    ;; Do nothing.
    )
   ((null encoding)
    ;; Do nothing.
    )
   ;; Fixme: Ignoring errors here looks bogus.
   ((functionp encoding)
    (ignore-errors (funcall encoding (point-min) (point-max))))
   (t
    (error "Unknown encoding %s" encoding))))