emacs: Handle switch-function argument of notmuch-mua-mail

notmuch-mua-mail ignored the switch-function argument and always used
the function returned by notmuch-mua-get-switch-function instead. In
order to support standard emacs interfaces (compose-mail in this
case), this commit changes notmuch-mua-mail to use the switch-function
argument if it is non-nil and notmuch-mua-get-switch-function
otherwise.
This commit is contained in:
Michal Sojka 2016-01-02 17:47:45 +01:00 committed by David Bremner
parent 332b593775
commit 1de4d5bb0d

View file

@ -278,7 +278,7 @@ Note that these functions use `mail-citation-hook' if that is non-nil."
(define-key notmuch-message-mode-map (kbd "C-c C-c") #'notmuch-mua-send-and-exit) (define-key notmuch-message-mode-map (kbd "C-c C-c") #'notmuch-mua-send-and-exit)
(define-key notmuch-message-mode-map (kbd "C-c C-s") #'notmuch-mua-send) (define-key notmuch-message-mode-map (kbd "C-c C-s") #'notmuch-mua-send)
(defun notmuch-mua-pop-to-buffer (name) (defun notmuch-mua-pop-to-buffer (name switch-function)
"Pop to buffer NAME, and warn if it already exists and is "Pop to buffer NAME, and warn if it already exists and is
modified. This function is notmuch addaptation of modified. This function is notmuch addaptation of
`message-pop-to-buffer'." `message-pop-to-buffer'."
@ -291,7 +291,7 @@ modified. This function is notmuch addaptation of
(progn (progn
(gnus-select-frame-set-input-focus (window-frame window)) (gnus-select-frame-set-input-focus (window-frame window))
(select-window window)) (select-window window))
(funcall (notmuch-mua-get-switch-function) buffer) (funcall switch-function buffer)
(set-buffer buffer)) (set-buffer buffer))
(when (and (buffer-modified-p) (when (and (buffer-modified-p)
(not (prog1 (not (prog1
@ -299,7 +299,7 @@ modified. This function is notmuch addaptation of
"Message already being composed; erase? ") "Message already being composed; erase? ")
(message nil)))) (message nil))))
(error "Message being composed"))) (error "Message being composed")))
(funcall (notmuch-mua-get-switch-function) name) (funcall switch-function name)
(set-buffer name)) (set-buffer name))
(erase-buffer) (erase-buffer)
(notmuch-message-mode))) (notmuch-message-mode)))
@ -319,7 +319,8 @@ modified. This function is notmuch addaptation of
(push (cons 'From (concat (push (cons 'From (concat
(notmuch-user-name) " <" (notmuch-user-primary-email) ">")) other-headers)) (notmuch-user-name) " <" (notmuch-user-primary-email) ">")) other-headers))
(notmuch-mua-pop-to-buffer (message-buffer-name "mail" to)) (notmuch-mua-pop-to-buffer (message-buffer-name "mail" to)
(or switch-function (notmuch-mua-get-switch-function)))
(let ((headers (let ((headers
;; The following sexp is copied from `message-mail' ;; The following sexp is copied from `message-mail'
(nconc (nconc