]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-mua.el
emacs: define notmuch-message-mode-map explicitly
[notmuch] / emacs / notmuch-mua.el
index dc1f518caf03c784b134cf6728ae04ac7a068e14..616b625ca979d5787cfeb610462febc80908fab1 100644 (file)
@@ -40,7 +40,7 @@
 
 ;;
 
-(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
@@ -275,8 +275,8 @@ Typically this is added to `notmuch-mua-send-hook'."
        (narrow-to-region (point) (point-max))
        (goto-char (point-max))
        (if (re-search-backward message-signature-separator nil t)
-           (if message-signature-insert-empty-line
-               (forward-line -1))
+           (when message-signature-insert-empty-line
+             (forward-line -1))
          (goto-char (point-max))))
       (let ((from (plist-get original-headers :From))
            (date (plist-get original-headers :Date))
@@ -324,20 +324,24 @@ 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 addaptation of
+modified. This function is notmuch adaptation of
 `message-pop-to-buffer'."
   (let ((buffer (get-buffer name)))
     (if (and buffer
@@ -388,7 +392,8 @@ modified. This function is notmuch addaptation of
          ;; https://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00337.html
          ;; We need to convert any string input, eg from rmail-start-mail.
          (dolist (h other-headers other-headers)
-           (if (stringp (car h)) (setcar h (intern (capitalize (car h))))))))
+           (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'.
@@ -424,19 +429,6 @@ the From: header is already filled in by notmuch."
 
 (defvar notmuch-mua-sender-history nil)
 
-;; Workaround: Running `ido-completing-read' in emacs 23.1, 23.2 and 23.3
-;; without some explicit initialization fill freeze the operation.
-;; Hence, we advice `ido-completing-read' to ensure required initialization
-;; is done.
-(if (and (= emacs-major-version 23) (< emacs-minor-version 4))
-    (defadvice ido-completing-read (before notmuch-ido-mode-init activate)
-      (ido-init-completion-maps)
-      (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup)
-      (add-hook 'choose-completion-string-functions
-               'ido-choose-completion-string)
-      (ad-disable-advice 'ido-completing-read 'before 'notmuch-ido-mode-init)
-      (ad-activate 'ido-completing-read)))
-
 (defun notmuch-mua-prompt-for-sender ()
   "Prompt for a sender from the user's configured identities."
   (if notmuch-identities
@@ -613,11 +605,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