-;;; mm-encode.el --- Functions for encoding MIME things
-;; Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+;;; mm-encode.el --- Functions for encoding MIME things
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
(eval-and-compile
(autoload 'mm-body-7-or-8 "mm-bodies"))
-(defvar mm-content-transfer-encoding-defaults
+(defcustom mm-content-transfer-encoding-defaults
'(("text/x-patch" 8bit)
("text/.*" qp-or-base64)
("message/rfc822" 8bit)
("application/emacs-lisp" 8bit)
+ ("application/x-emacs-lisp" 8bit)
("application/x-patch" 8bit)
(".*" base64))
"Alist of regexps that match MIME types and their encodings.
If the encoding is `qp-or-base64', then either quoted-printable
-or base64 will be used, depending on what is more efficient.")
+or base64 will be used, depending on what is more efficient."
+ :type '(repeat (list (regexp :tag "MIME type")
+ (choice :tag "encoding"
+ (const 7bit)
+ (const 8bit)
+ (const qp-or-base64)
+ (const quoted-printable)
+ (const base64))))
+ :group 'mime)
(defvar mm-use-ultra-safe-encoding nil
"If non-nil, use encodings aimed at Procrustean bed survival.
((functionp encoding)
(ignore-errors (funcall encoding (point-min) (point-max))))
(t
- (message "Unknown encoding %s; defaulting to 8bit" encoding))))
+ (message "Unknown encoding %s; treating it as 8bit" encoding))))
(defun mm-encode-buffer (type)
"Encode the buffer which contains data of TYPE.
(bits (mm-body-7-or-8)))
;; We force buffers that are 7bit to be unencoded, no matter
;; what the preferred encoding is.
- (when (eq bits '7bit)
+ ;; Only if the buffers don't contain lone lines.
+ (when (and (eq bits '7bit) (not (mm-long-lines-p 76)))
(setq encoding bits))
(mm-encode-content-transfer-encoding encoding mime-type)
encoding))
(while rules
(when (string-match (caar rules) type)
(throw 'found
- (let ((encoding
+ (let ((encoding
(if (eq (cadr (car rules)) 'qp-or-base64)
(mm-qp-or-base64)
(cadr (car rules)))))