X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-mua.el;h=9d08c2c9bf11d0127612bd96b0186badb152c5b0;hb=a7ba52eb94edaf254e74034ff86d4ac37cb3ed6b;hp=dcddca76794f8e03f6a8f3665e13baf61a9859f4;hpb=96baa2231882e9a9025797b1f9945ba6b2751dd4;p=notmuch diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el index dcddca76..9d08c2c9 100644 --- a/emacs/notmuch-mua.el +++ b/emacs/notmuch-mua.el @@ -40,15 +40,14 @@ ;; -(defcustom notmuch-mua-send-hook '(notmuch-mua-message-send-hook) +(defcustom notmuch-mua-send-hook nil "Hook run before sending messages." :type 'hook :group 'notmuch-send :group 'notmuch-hooks) (defcustom notmuch-mua-compose-in 'current-window - (concat - "Where to create the mail buffer used to compose a new message. + "Where to create the mail buffer used to compose a new message. Possible values are `current-window' (default), `new-window' and `new-frame'. If set to `current-window', the mail buffer will be displayed in the current window, so the old buffer will be @@ -57,18 +56,14 @@ or `new-frame', the mail buffer will be displayed in a new window/frame that will be destroyed when the buffer is killed. You may want to customize `message-kill-buffer-on-exit' accordingly." - (when (< emacs-major-version 24) - " Due to a known bug in Emacs 23, you should not set -this to `new-window' if `message-kill-buffer-on-exit' is -disabled: this would result in an incorrect behavior.")) :group 'notmuch-send :type '(choice (const :tag "Compose in the current window" current-window) (const :tag "Compose mail in a new window" new-window) (const :tag "Compose mail in a new frame" new-frame))) (defcustom notmuch-mua-user-agent-function nil - "Function used to generate a `User-Agent:' string. If this is -`nil' then no `User-Agent:' will be generated." + "Function used to generate a `User-Agent:' string. +If this is `nil' then no `User-Agent:' will be generated." :type '(choice (const :tag "No user agent string" nil) (const :tag "Full" notmuch-mua-user-agent-full) (const :tag "Notmuch" notmuch-mua-user-agent-notmuch) @@ -212,7 +207,7 @@ Typically this is added to `notmuch-mua-send-hook'." "multipart/*") do (notmuch-mua-reply-crypto (plist-get part :content)))) -;; There is a bug in emacs 23's message.el that results in a newline +;; There is a bug in Emacs' message.el that results in a newline ;; not being inserted after the References header, so the next header ;; is concatenated to the end of it. This function fixes the problem, ;; while guarding against the possibility that some current or future @@ -324,17 +319,21 @@ Typically this is added to `notmuch-mua-send-hook'." (message-goto-body) (set-buffer-modified-p nil)) +(defvar notmuch-message-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "C-c C-c") #'notmuch-mua-send-and-exit) + (define-key map (kbd "C-c C-s") #'notmuch-mua-send) + (define-key map (kbd "C-c C-p") #'notmuch-draft-postpone) + (define-key map (kbd "C-x C-s") #'notmuch-draft-save) + map) + "Keymap for `notmuch-message-mode'.") + (define-derived-mode notmuch-message-mode message-mode "Message[Notmuch]" "Notmuch message composition mode. Mostly like `message-mode'." (notmuch-address-setup)) (put 'notmuch-message-mode 'flyspell-mode-predicate 'mail-mode-flyspell-verify) -(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-p") #'notmuch-draft-postpone) -(define-key notmuch-message-mode-map (kbd "C-x C-s") #'notmuch-draft-save) - (defun notmuch-mua-pop-to-buffer (name switch-function) "Pop to buffer NAME, and warn if it already exists and is modified. This function is notmuch adaptation of @@ -390,16 +389,10 @@ modified. This function is notmuch adaptation of (dolist (h other-headers other-headers) (when (stringp (car h)) (setcar h (intern (capitalize (car h)))))))) - (args (list yank-action send-actions)) ;; Cause `message-setup-1' to do things relevant for mail, ;; such as observe `message-default-mail-headers'. (message-this-is-mail t)) - ;; message-setup-1 in Emacs 23 does not accept return-action - ;; argument. Pass it only if it is supplied by the caller. This - ;; will never be the case when we're called by `compose-mail' in - ;; Emacs 23. - (when return-action (nconc args '(return-action))) - (apply 'message-setup-1 headers args)) + (message-setup-1 headers yank-action send-actions return-action)) (notmuch-fcc-header-setup) (message-sort-headers) (message-hide-headers) @@ -519,10 +512,10 @@ the From: address." If PROMPT-FOR-SENDER is non-nil, the user will be prompted for the From: address first. If REPLY-ALL is non-nil, the message will be addressed to all recipients of the source message." - ;; In current emacs (24.3) select-active-regions is set to t by - ;; default. The reply insertion code sets the region to the quoted - ;; message to make it easy to delete (kill-region or C-w). These two - ;; things combine to put the quoted message in the primary selection. + ;; `select-active-regions' is t by default. The reply insertion code + ;; sets the region to the quoted message to make it easy to delete + ;; (kill-region or C-w). These two things combine to put the quoted + ;; message in the primary selection. ;; ;; This is not what the user wanted and is a privacy risk (accidental ;; pasting of the quoted message). We can avoid some of the problems @@ -601,11 +594,6 @@ unencrypted. Really send? ")))) (interactive) (message-kill-buffer)) -(defun notmuch-mua-message-send-hook () - "The default function used for `notmuch-mua-send-hook', this -simply runs the corresponding `message-mode' hook functions." - (run-hooks 'message-send-hook)) - ;; (define-mail-user-agent 'notmuch-user-agent