X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=emacs%2Fnotmuch-crypto.el;h=c201d0d740360f7ba3ebde66e170ffebbddbe736;hp=9e6f3a9d77a5b26a983ba83dbd21be4690c4866f;hb=HEAD;hpb=0f37509cc7e92f2c09fcd7d7f3e2b477e4f29401 diff --git a/emacs/notmuch-crypto.el b/emacs/notmuch-crypto.el index 9e6f3a9d..a1cf3ddd 100644 --- a/emacs/notmuch-crypto.el +++ b/emacs/notmuch-crypto.el @@ -1,4 +1,4 @@ -;;; notmuch-crypto.el --- functions for handling display of cryptographic metadata +;;; notmuch-crypto.el --- functions for handling display of cryptographic metadata -*- lexical-binding: t -*- ;; ;; Copyright © Jameson Rollins ;; @@ -26,6 +26,8 @@ (declare-function notmuch-show-get-message-id "notmuch-show" (&optional bare)) +;;; Options + (defcustom notmuch-crypto-process-mime t "Whether to process cryptographic MIME parts. @@ -55,6 +57,8 @@ mode." :type 'string :group 'notmuch-crypto) +;;; Faces + (defface notmuch-crypto-part-header '((((class color) (background dark)) @@ -96,8 +100,10 @@ mode." :group 'notmuch-crypto :group 'notmuch-faces) +;;; Functions + (define-button-type 'notmuch-crypto-status-button-type - 'action (lambda (button) (message (button-get button 'help-echo))) + 'action (lambda (button) (message "%s" (button-get button 'help-echo))) 'follow-link t 'help-echo "Set notmuch-crypto-process-mime to process cryptographic mime parts." :supertype 'notmuch-button-type) @@ -113,14 +119,14 @@ mode." (cond ((string= status "good") (let ((fingerprint (concat "0x" (plist-get sigstatus :fingerprint))) - (userid (plist-get sigstatus :userid))) - ;; If userid is present it has full or greater validity. - (if userid - (progn - (setq label (concat "Good signature by: " userid)) - (setq face 'notmuch-crypto-signature-good)) - (setq label (concat "Good signature by key: " fingerprint)) - (setq face 'notmuch-crypto-signature-good-key)) + (email-or-userid (or (plist-get sigstatus :email) + (plist-get sigstatus :userid)))) + ;; If email or userid are present, they have full or greater validity. + (setq label (concat "Good signature by key: " fingerprint)) + (setq face 'notmuch-crypto-signature-good-key) + (when email-or-userid + (setq label (concat "Good signature by: " email-or-userid)) + (setq face 'notmuch-crypto-signature-good)) (setq button-action 'notmuch-crypto-sigstatus-good-callback) (setq help-msg (concat "Click to list key ID 0x" fingerprint ".")))) ((string= status "error") @@ -158,14 +164,14 @@ mode." (goto-char (point-max)) (insert (format "-- Key %s in message %s:\n" fingerprint id)) - (call-process notmuch-crypto-gpg-program nil t t + (notmuch--call-process notmuch-crypto-gpg-program nil t t "--batch" "--no-tty" "--list-keys" fingerprint)) (recenter -1)))) (declare-function notmuch-show-refresh-view "notmuch-show" (&optional reset-state)) (declare-function notmuch-show-get-message-id "notmuch-show" (&optional bare)) -(defun notmuch-crypto--async-key-sentinel (process event) +(defun notmuch-crypto--async-key-sentinel (process _event) "When the user asks for a GPG key to be retrieved asynchronously, handle completion of that task. @@ -218,7 +224,7 @@ corresponding key when the status button is pressed." (with-current-buffer buffer (goto-char (point-max)) (insert (format "--- Retrieving key %s:\n" keyid))) - (let ((p (make-process + (let ((p (notmuch--make-process :name "notmuch GPG key retrieval" :connection-type 'pipe :buffer buffer @@ -234,9 +240,9 @@ corresponding key when the status button is pressed." (with-current-buffer buffer (goto-char (point-max)) (insert (format "--- Retrieving key %s:\n" keyid)) - (call-process notmuch-crypto-gpg-program nil t t "--recv-keys" keyid) + (notmuch--call-process notmuch-crypto-gpg-program nil t t "--recv-keys" keyid) (insert "\n") - (call-process notmuch-crypto-gpg-program nil t t "--list-keys" keyid)) + (notmuch--call-process notmuch-crypto-gpg-program nil t t "--list-keys" keyid)) (recenter -1)) (notmuch-show-refresh-view))))) @@ -259,7 +265,7 @@ corresponding key when the status button is pressed." 'mouse-face 'notmuch-crypto-decryption) (insert "\n")) -;; +;;; _ (provide 'notmuch-crypto)