Function: nnmail-process-mmdf-mail-format
nnmail-process-mmdf-mail-format is a byte-compiled function defined in
nnmail.el.gz.
Signature
(nnmail-process-mmdf-mail-format FUNC ARTNUM-FUNC &optional JUNK-FUNC)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmail.el.gz
(defun nnmail-process-mmdf-mail-format (func artnum-func &optional junk-func)
(let ((delim "^\^A\^A\^A\^A$")
(case-fold-search t)
(count 0)
start message-id end)
(goto-char (point-min))
(if (not (and (re-search-forward delim nil t)
(forward-line 1)))
;; Possibly wrong format?
(error "Error, unknown mail format! (Possibly corrupted.)")
;; Carry on until the bitter end.
(while (not (eobp))
(setq start (point))
;; Find the end of the head.
(narrow-to-region
start
(if (search-forward "\n\n" nil t)
(1- (point))
;; This will never happen, but just to be on the safe side --
;; if there is no head-body delimiter, we search a bit manually.
(while (and (looking-at "From \\|[^ \t]+:")
(not (eobp)))
(forward-line 1))
(point)))
;; Find the Message-ID header.
(goto-char (point-min))
(if (re-search-forward "^Message-ID[ \t]*:[ \n\t]*\\(<[^>]+>\\)" nil t)
(setq message-id (match-string 1))
;; There is no Message-ID here, so we create one.
(save-excursion
(when (re-search-backward "^Message-ID[ \t]*:" nil t)
(beginning-of-line)
(insert "Original-")))
(forward-line 1)
(insert "Message-ID: " (setq message-id (nnmail-message-id)) "\n"))
(run-hooks 'nnmail-prepare-incoming-header-hook)
;; Find the end of this article.
(goto-char (point-max))
(widen)
(if (re-search-forward delim nil t)
(beginning-of-line)
(goto-char (point-max)))
;; Allow the backend to save the article.
(save-excursion
(save-restriction
(narrow-to-region start (point))
(goto-char (point-min))
(incf count)
(nnmail-check-duplication message-id func artnum-func junk-func)
(setq end (point-max))))
(goto-char end)
(forward-line 2)))
count))