]> git.notmuchmail.org Git - notmuch/blobdiff - emacs/notmuch-crypto.el
emacs: Declare function notmuch-show-get-message-id
[notmuch] / emacs / notmuch-crypto.el
index 9b615a0f20e515dd5f2a0532f282dd2e0a868d4d..c201d0d740360f7ba3ebde66e170ffebbddbe736 100644 (file)
@@ -24,6 +24,8 @@
 (require 'epg)
 (require 'notmuch-lib)
 
+(declare-function notmuch-show-get-message-id "notmuch-show" (&optional bare))
+
 (defcustom notmuch-crypto-process-mime t
   "Should cryptographic MIME parts be processed?
 
@@ -149,17 +151,21 @@ by user FROM."
       (insert "\n"))))
 
 (defun notmuch-crypto-sigstatus-good-callback (button)
-  (let* ((sigstatus (button-get button :notmuch-sigstatus))
+  (let* ((id (notmuch-show-get-message-id))
+        (sigstatus (button-get button :notmuch-sigstatus))
         (fingerprint (concat "0x" (plist-get sigstatus :fingerprint)))
         (buffer (get-buffer-create "*notmuch-crypto-gpg-out*"))
         (window (display-buffer buffer)))
     (with-selected-window window
       (with-current-buffer buffer
        (goto-char (point-max))
+       (insert (format "-- Key %s in message %s:\n"
+                       fingerprint id))
        (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)
   "When the user asks for a GPG key to be retrieved
@@ -211,25 +217,25 @@ corresponding key when the status button is pressed."
        (progn
          (notmuch-crypto--set-button-label
           button (format "Retrieving key %s asynchronously..." keyid))
+         (with-current-buffer buffer
+           (goto-char (point-max))
+           (insert (format "--- Retrieving key %s:\n" keyid)))
          (let ((p (make-process :name "notmuch GPG key retrieval"
+                                :connection-type 'pipe
                                 :buffer buffer
+                                :stderr buffer
                                 :command (list notmuch-crypto-gpg-program "--recv-keys" keyid)
-                                :connection-type 'pipe
-                                :sentinel #'notmuch-crypto--async-key-sentinel
-                                ;; Create the process stopped so that
-                                ;; we have time to store the key id,
-                                ;; etc. on it.
-                                :stop t)))
+                                :sentinel #'notmuch-crypto--async-key-sentinel)))
            (process-put p :gpg-key-id keyid)
            (process-put p :notmuch-show-buffer (current-buffer))
            (process-put p :notmuch-show-point (point))
-           (message "Getting the GPG key %s asynchronously..." keyid)
-           (continue-process p)))
+           (message "Getting the GPG key %s asynchronously..." keyid)))
 
       (let ((window (display-buffer buffer)))
        (with-selected-window window
          (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)
            (insert "\n")
            (call-process notmuch-crypto-gpg-program nil t t "--list-keys" keyid))