Fixed.
[elisp/epg.git] / epa.el
diff --git a/epa.el b/epa.el
index c3c8aed..07e6697 100644 (file)
--- a/epa.el
+++ b/epa.el
              (goto-char (point-min))
              (let (keys key)
                (while (re-search-forward "^\\*" nil t)
-                 (if (setq key (get-text-property (match-beginning 0) 'epa-key))
+                 (if (setq key (get-text-property (match-beginning 0)
+                                                  'epa-key))
                      (setq keys (cons key keys))))
                (nreverse keys))))
        (if (get-buffer-window epa-keys-buffer)
 (defun epa-decrypt-file (file)
   (interactive "fFile: ")
   (let* ((default-name (file-name-sans-extension file))
-        (plain (read-file-name
-                (concat "To file (default "
-                        (file-name-nondirectory default-name)
-                        ") ")
-                (file-name-directory default-name)
-                default-name))
+        (plain (expand-file-name
+                (read-file-name
+                 (concat "To file (default "
+                         (file-name-nondirectory default-name)
+                         ") ")
+                 (file-name-directory default-name)
+                 default-name)))
         (context (epg-make-context)))
     (message "Decrypting %s..." (file-name-nondirectory file))
     (epg-decrypt-file context file plain)
   (interactive "fFile: ")
   (let* ((context (epg-make-context))
         (plain (if (equal (file-name-extension file) "sig")
-                   (file-name-sans-extension file))))
+                   (file-name-sans-extension file)))
+        signature)
     (message "Verifying %s..." (file-name-nondirectory file))
     (epg-verify-file context file plain)
+    (setq signature (reverse (epg-context-result-for context 'verify)))
+    (with-output-to-temp-buffer "*epa-verify-file*"
+      (set-buffer standard-output)
+      (while signature
+       (insert (format "%s: %s %s %s\n"
+                       (epg-signature-status (car signature))
+                       (epg-signature-key-id (car signature))
+                       (epg-signature-user-id (car signature))
+                       (epg-signature-validity (car signature))))
+       (setq signature (cdr signature))))
+    (shrink-window-if-larger-than-buffer
+     (get-buffer-window "*epa-verify-file*"))
     (message "Verifying %s...done" (file-name-nondirectory file))))
 
 (defun epa-sign-file (file detached)
   (let ((signature (concat file (if detached ".sig" ".gpg")))
        (context (epg-make-context)))
     (message "Signing %s..." (file-name-nondirectory file))
-    (epg-sign-file context file signature)
+    (epg-sign-file context file signature (if detached 'detached))
     (message "Signing %s...done" (file-name-nondirectory file))))
 
 (defun epa-encrypt-file (file recipients)