* epg.el (epg--list-keys-1): Accept a list of strings as NAME
authorueno <ueno>
Sat, 24 Mar 2007 08:53:15 +0000 (08:53 +0000)
committerueno <ueno>
Sat, 24 Mar 2007 08:53:15 +0000 (08:53 +0000)
argument.
(epg-list-keys): Ditto.

ChangeLog
epg.el

index ce80b30..f0a6c93 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-24  Daiki Ueno  <ueno@unixuser.org>
+
+       * epg.el (epg--list-keys-1): Accept a list of strings as NAME
+       argument.
+       (epg-list-keys): Ditto.
+
 2007-03-21  Daiki Ueno  <ueno@unixuser.org>
 
        * epa-file.el (epa-file-inhibit-auto-save): New user option.
diff --git a/epg.el b/epg.el
index 1b58162..9e2a209 100644 (file)
--- a/epg.el
+++ b/epg.el
@@ -1662,19 +1662,23 @@ This function is for internal use only."
 (defun epg--list-keys-1 (context name mode)
   (let ((args (append (if epg-gpg-home-directory
                          (list "--homedir" epg-gpg-home-directory))
-                     (list "--with-colons" "--no-greeting" "--batch"
+                     '("--with-colons" "--no-greeting" "--batch"
                            "--with-fingerprint"
-                           "--with-fingerprint"
-                           (if (memq mode '(t secret))
-                               "--list-secret-keys"
-                             (if (memq mode '(nil public))
-                                 "--list-keys"
-                               "--list-sigs")))
+                           "--with-fingerprint")
                      (unless (eq (epg-context-protocol context) 'CMS)
-                       '("--fixed-list-mode"))
-                     (if name (list name))))
+                       '("--fixed-list-mode"))))
+       (list-keys-option (if (memq mode '(t secret))
+                             "--list-secret-keys"
+                           (if (memq mode '(nil public))
+                               "--list-keys"
+                             "--list-sigs")))
        (coding-system-for-read 'binary)
        keys string field index)
+    (unless (listp name)
+      (setq name (list name)))
+    (while name
+      (setq args (nconc args (list list-keys-option (car name)))
+           name (cdr name)))
     (with-temp-buffer
       (apply #'call-process
             (if (eq (epg-context-protocol context) 'CMS)
@@ -1715,7 +1719,8 @@ This function is for internal use only."
 If MODE is nil or 'public, only public keyring should be searched.
 If MODE is t or 'secret, only secret keyring should be searched. 
 Otherwise, only public keyring should be searched and the key
-signatures should be included."
+signatures should be included.
+NAME is either a string or a list of strings."
   (let ((lines (epg--list-keys-1 context name mode))
        keys cert pointer pointer-1 index string)
     (while lines