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)