[PATCH v2] emacs: Support a message-mode switch function in notmuch-mua
Jani Nikula
jani at nikula.org
Tue Oct 18 11:58:02 PDT 2011
Hi Thomas -
AFAICT :options is not meaningful for a function type. I think you should
use choice type for this instead. This allows sensible documentation for
the choices in the customization interface too.
I sent a patch earlier to fix a similar issue [1], please have a look at
that for an example. (Unfortunately, it hasn't been applied, like many
other emacs patches by me and others. I hope yours will make it. I've
given up trying until I see some progress in that front.)
[1] http://permalink.gmane.org/gmane.mail.notmuch.general/5602
BR,
Jani.
On Tue, 11 Oct 2011, Thomas Jost wrote:
> ---
> emacs/notmuch-mua.el | 21 +++++++++++++++++++--
> 1 files changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
> index 8824b08..639407f 100644
> --- a/emacs/notmuch-mua.el
> +++ b/emacs/notmuch-mua.el
> @@ -31,6 +31,20 @@
> :group 'notmuch
> :type 'hook)
>
> +(defcustom notmuch-mua-switch-function nil
> + "Function used to switch to and display a new mail buffer. If
> +this is `nil' then the buffer will be displayed in the current
> +window. Other common values are `switch-to-buffer-other-frame'
> +and `switch-to-buffer-other-window'. If you change this, you may
> +also want to change `message-sent-hook' accordingly:
> + (setq notmuch-muas-witch-function 'switch-to-buffer-other-frame)
> + (add-hook 'message-sent-hook '(delete-frame))"
> + :group 'notmuch
> + :type 'function
> + :options '(nil
> + switch-to-buffer-other-frame
> + switch-to-buffer-other-window))
> +
> (defcustom notmuch-mua-user-agent-function 'notmuch-mua-user-agent-full
> "Function used to generate a `User-Agent:' string. If this is
> `nil' then no `User-Agent:' will be generated."
> @@ -99,7 +113,8 @@ list."
> ((same-window-regexps '("\\*mail .*")))
> (notmuch-mua-mail (mail-header 'to headers)
> (mail-header 'subject headers)
> - (message-headers-to-generate headers t '(to subject))))
> + (message-headers-to-generate headers t '(to subject))
> + nil notmuch-mua-switch-function))
> ;; insert the message body - but put it in front of the signature
> ;; if one is present
> (goto-char (point-max))
> @@ -112,6 +127,8 @@ list."
> (message-goto-body))
>
> (defun notmuch-mua-forward-message ()
> + (when notmuch-mua-switch-function
> + (funcall notmuch-mua-switch-function (current-buffer)))
> (message-forward)
>
> (when notmuch-mua-user-agent-function
> @@ -199,7 +216,7 @@ the From: address first."
> (let ((other-headers
> (when (or prompt-for-sender notmuch-always-prompt-for-sender)
> (list (cons 'from (notmuch-mua-prompt-for-sender))))))
> - (notmuch-mua-mail nil nil other-headers)))
> + (notmuch-mua-mail nil nil other-headers nil notmuch-mua-switch-function)))
>
> (defun notmuch-mua-new-forward-message (&optional prompt-for-sender)
> "Invoke the notmuch message forwarding window.
>
More information about the notmuch
mailing list