emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/autocrypt c9d7c13f0d 36/94: Translate mu4e implementati


From: ELPA Syncer
Subject: [elpa] externals/autocrypt c9d7c13f0d 36/94: Translate mu4e implementation to methods
Date: Sun, 26 Mar 2023 07:57:59 -0400 (EDT)

branch: externals/autocrypt
commit c9d7c13f0d2c9329b444952a791dc6873cf1a1cd
Author: Philip K <philipk@posteo.net>
Commit: Philip K <philipk@posteo.net>

    Translate mu4e implementation to methods
---
 autocrypt-mu4e.el | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/autocrypt-mu4e.el b/autocrypt-mu4e.el
index ad092ab123..e4854eae5e 100644
--- a/autocrypt-mu4e.el
+++ b/autocrypt-mu4e.el
@@ -24,28 +24,41 @@
 
 (require 'mu4e)
 
-;;;###autoload
-(cl-defmethod autocrypt-mode-hook ((_mode (derived-mode mu4e-main-mode)))
-  "Return the hook to install autocrypt."
-  'gnus-view-mode-hook)
+;;; XXX: mu4e seems to share no common mode, and the `derived-mode'
+;;;       specializer supports only one mode (currently). Therefore
+;;;       the method definitions have to be duplicated.
 
-(defun autocrypt-mu4e-install ()
+(cl-defmethod autocrypt-install ((_mode (derived-mode mu4e-main-mode)))
   "Install autocrypt hooks for mu4e."
   (add-hook 'mu4e-view-mode-hook #'autocrypt-process-header)
   (add-hook 'mu4e-compose-mode-hook #'autocrypt-compose-setup))
 
-(defun autocrypt-mu4e-uninstall ()
+(cl-defmethod autocrypt-uninstall ((_mode (derived-mode mu4e-main-mode)))
   "Remove autocrypt hooks for mu4e."
   (remove-hook 'mu4e-view-mode-hook #'autocrypt-process-header)
   (remove-hook 'mu4e-compose-mode-hook #'autocrypt-compose-setup))
 
-(defun autocrypt-mu4e-header (field)
-  "Ask mu4e to return header FIELD."
+(cl-defmethod autocrypt-get-header ((_mode (derived-mode mu4e-main-mode))
+                                    header)
+  "Ask mu4e to return HEADER."
   (save-window-excursion
     (with-current-buffer (mu4e-view-raw-message)
       (prog1 (mail-fetch-field field)
         (kill-buffer (current-buffer))))))
 
+(cl-defmethod autocrypt-install ((_mode (derived-mode mu4e-view-mode)))
+  "Install autocrypt hooks for mu4e."
+  (autocrypt-install 'mu4e-main-mode))
+
+(cl-defmethod autocrypt-uninstall ((_mode (derived-mode mu4e-view-mode)))
+  "Remove autocrypt hooks for mu4e."
+  (autocrypt-uninstall 'mu4e-main-mode))
+
+(cl-defmethod autocrypt-get-header ((_mode (derived-mode mu4e-view-mode))
+                                    header)
+  "Ask mu4e to return HEADER."
+  (autocrypt-get-header 'mu4e-main-mode header))
+
 (provide 'autocrypt-mu4e)
 
 ;;; autocrypt-mu4e.el ends here



reply via email to

[Prev in Thread] Current Thread [Next in Thread]