Function: message-setup-1
message-setup-1 is a byte-compiled function defined in message.el.gz.
Signature
(message-setup-1 HEADERS &optional YANK-ACTION ACTIONS RETURN-ACTION)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/message.el.gz
(defun message-setup-1 (headers &optional yank-action actions return-action)
(dolist (action actions)
;; FIXME: Use functions rather than expressions!
(add-to-list 'message-send-actions
`(apply #',(car action) ',(cdr action))))
(setq message-return-action return-action)
(setq message-reply-buffer
(if (and (consp yank-action)
(eq (car yank-action) 'insert-buffer))
(nth 1 yank-action)
yank-action))
(goto-char (point-min))
;; Insert all the headers.
(mail-header-format
(let ((h headers)
(alist message-header-format-alist))
(while h
(unless (assq (caar h) message-header-format-alist)
(push (list (caar h)) alist))
(pop h))
alist)
headers)
(delete-region (point) (progn (forward-line -1) (point)))
(when message-default-headers
(insert
(if (functionp message-default-headers)
(funcall message-default-headers)
message-default-headers))
(or (bolp) (insert ?\n)))
(insert (concat mail-header-separator "\n"))
(forward-line -1)
;; If a crash happens while replying, the auto-save file would *not*
;; have a `References:' header if `message-generate-headers-first'
;; was nil. Therefore, always generate it first. (And why not
;; include the `In-Reply-To' header as well.)
(let ((message-generate-headers-first
(if (eq message-generate-headers-first t)
t
(append message-generate-headers-first '(References In-Reply-To)))))
(when (message-news-p)
(when message-default-news-headers
(insert message-default-news-headers)
(or (bolp) (insert ?\n)))
(message-generate-headers
(message-headers-to-generate
(append message-required-news-headers
message-required-headers)
message-generate-headers-first
'(Lines Subject))))
(when (message-mail-p)
(when message-default-mail-headers
(insert message-default-mail-headers)
(or (bolp) (insert ?\n)))
(message-generate-headers
(message-headers-to-generate
(append message-required-mail-headers
message-required-headers)
message-generate-headers-first
'(Lines Subject)))))
(run-hooks 'message-signature-setup-hook)
(message-insert-signature)
(save-restriction
(message-narrow-to-headers)
(run-hooks 'message-header-setup-hook))
(setq buffer-undo-list nil)
;; Gnus posting styles are applied via buffer-local `message-setup-hook'
;; values.
(run-hooks 'message-setup-hook)
;; Do this last to give it precedence over posting styles, etc.
(when (message-mail-p)
(save-restriction
(message-narrow-to-headers)
(if message-alternative-emails
(message-use-alternative-email-as-from))))
(message-position-point)
;; Allow correct handling of `message-checksum' in `message-yank-original':
(set-buffer-modified-p nil)
(undo-boundary)
;; rmail-start-mail expects message-mail to return t (Bug#9392)
t)