Re: [PATCH v2] emacs: Support a message-mode switch function in notmuch-mua

Subject: Re: [PATCH v2] emacs: Support a message-mode switch function in notmuch-mua

Date: Tue, 18 Oct 2011 21:58:02 +0300 (EEST)

To: Thomas Jost

Cc: notmuch@notmuchmail.org

From: Jani Nikula


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.
>

Thread: