1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-10 09:43:26 -08:00

mml.el (mml-inhibit-compute-boundary): New internal variable.

(mml-compute-boundary): Don't check collision if it is non-nil.
 (mml-compute-boundary-1): Use mml-generate-mime-1 to encode part before checking collision.
This commit is contained in:
Katsumi Yamaoka 2011-09-22 04:43:36 +00:00
parent a5166359b9
commit 58ea99d174
2 changed files with 29 additions and 25 deletions

View file

@ -1,3 +1,10 @@
2011-09-22 Katsumi Yamaoka <yamaoka@jpl.org>
* mml.el (mml-inhibit-compute-boundary): New internal variable.
(mml-compute-boundary): Don't check collision if it is non-nil.
(mml-compute-boundary-1): Use mml-generate-mime-1 to encode part
before checking collision.
2011-09-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
* message.el (message-indent-citation): Really make sure there's a

View file

@ -461,6 +461,7 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
(defvar mml-boundary nil)
(defvar mml-base-boundary "-=-=")
(defvar mml-multipart-number 0)
(defvar mml-inhibit-compute-boundary nil)
(defun mml-generate-mime ()
"Generate a MIME message based on the current MML document."
@ -710,34 +711,30 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
"Return a unique boundary that does not exist in CONT."
(let ((mml-boundary (funcall mml-boundary-function
(incf mml-multipart-number))))
;; This function tries again and again until it has found
;; a unique boundary.
(while (not (catch 'not-unique
(mml-compute-boundary-1 cont))))
(unless mml-inhibit-compute-boundary
;; This function tries again and again until it has found
;; a unique boundary.
(while (not (catch 'not-unique
(mml-compute-boundary-1 cont)))))
mml-boundary))
(defun mml-compute-boundary-1 (cont)
(let (filename)
(cond
((member (car cont) '(part mml))
(with-temp-buffer
(cond
((cdr (assq 'buffer cont))
(insert-buffer-substring (cdr (assq 'buffer cont))))
((and (setq filename (cdr (assq 'filename cont)))
(not (equal (cdr (assq 'nofile cont)) "yes")))
(mm-insert-file-contents filename nil nil nil nil t))
(t
(insert (cdr (assq 'contents cont)))))
(goto-char (point-min))
(when (re-search-forward (concat "^--" (regexp-quote mml-boundary))
nil t)
(setq mml-boundary (funcall mml-boundary-function
(incf mml-multipart-number)))
(throw 'not-unique nil))))
((eq (car cont) 'multipart)
(mapc 'mml-compute-boundary-1 (cddr cont))))
t))
(cond
((member (car cont) '(part mml))
(mm-with-multibyte-buffer
(let ((mml-inhibit-compute-boundary t)
(mml-multipart-number 0)
mml-sign-alist mml-encrypt-alist)
(mml-generate-mime-1 cont))
(goto-char (point-min))
(when (re-search-forward (concat "^--" (regexp-quote mml-boundary))
nil t)
(setq mml-boundary (funcall mml-boundary-function
(incf mml-multipart-number)))
(throw 'not-unique nil))))
((eq (car cont) 'multipart)
(mapc 'mml-compute-boundary-1 (cddr cont))))
t)
(defun mml-make-boundary (number)
(concat (make-string (% number 60) ?=)