Function: mh-insert-identity

mh-insert-identity is an autoloaded, interactive and byte-compiled function defined in mh-identity.el.gz.

Signature

(mh-insert-identity IDENTITY &optional MAYBE-INSERT)

Documentation

Insert fields specified by given IDENTITY.

In a program, do not insert fields if MAYBE-INSERT is non-nil, mh-identity-default is non-nil, and fields have already been inserted.

See mh-identity-list.

Key Bindings

Source Code

;; Defined in /usr/src/emacs/lisp/mh-e/mh-identity.el.gz
;;;###mh-autoload
(defun mh-insert-identity (identity &optional maybe-insert)
  "Insert fields specified by given IDENTITY.

In a program, do not insert fields if MAYBE-INSERT is non-nil,
`mh-identity-default' is non-nil, and fields have already been
inserted.

See `mh-identity-list'."
  (interactive
   (list (completing-read
          "Identity: "
          (if mh-identity-local
              (cons '("None")
                    (mapcar #'list (mapcar #'car mh-identity-list)))
            (mapcar #'list (mapcar #'car mh-identity-list)))
          nil t)
         nil))

  (when (or (not maybe-insert)
            (and (boundp 'mh-identity-default)
                 mh-identity-default
                 (not mh-identity-local)))
    (save-excursion
      ;;First remove old settings, if any.
      (when mh-identity-local
        (let ((pers-list (cadr (assoc mh-identity-local mh-identity-list))))
          (while pers-list
            (let* ((field (caar pers-list))
                   (handler (mh-identity-field-handler field)))
              (funcall handler field 'remove))
            (setq pers-list (cdr pers-list)))))
      ;; Then insert the replacement
      (when (not (equal "None" identity))
        (let ((pers-list (cadr (assoc identity mh-identity-list))))
          (while pers-list
            (let* ((field (caar pers-list))
                   (value (cdar pers-list))
                   (handler (mh-identity-field-handler field)))
              (funcall handler field 'add value))
            (setq pers-list (cdr pers-list))))))
    ;; Remember what is in use in this buffer
    (if (equal "None" identity)
        (setq mh-identity-local nil)
      (setq mh-identity-local identity))))