* engine-gpgsm.c (_gpgme_gpgsm_op_keylist)
authorWerner Koch <wk@gnupg.org>
Tue, 21 May 2002 15:14:35 +0000 (15:14 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 21 May 2002 15:14:35 +0000 (15:14 +0000)
(_gpgme_gpgsm_op_keylist_ext):  Pass the keylist mode to gpgsm.

* configure.ac (NEED_GPGSM_VERSION): We need gpgsm 0.3.7.

ChangeLog
configure.ac
gpgme/ChangeLog
gpgme/engine-gpgsm.c

index 100a98e..00aa55b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2002-05-21  Werner Koch  <wk@gnupg.org>
+
+       * configure.ac (NEED_GPGSM_VERSION): We need gpgsm 0.3.7.
+
 2002-05-03  Werner Koch  <wk@gnupg.org>
 
        Released 0.3.6.
index b61ddb1..3e160e1 100644 (file)
@@ -31,7 +31,7 @@ LIBGPGME_LT_CURRENT=8
 LIBGPGME_LT_AGE=2
 LIBGPGME_LT_REVISION=0
 NEED_GPG_VERSION=1.0.7
-NEED_GPGSM_VERSION=0.3.6
+NEED_GPGSM_VERSION=0.3.7
 ##############################################
 AC_PREREQ(2.52)
 AC_REVISION($Revision$)
index fc03015..bf78bfa 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-21  Werner Koch  <wk@gnupg.org>
+
+       * engine-gpgsm.c (_gpgme_gpgsm_op_keylist)
+       (_gpgme_gpgsm_op_keylist_ext):  Pass the keylist mode to gpgsm.
+
 2002-05-10  Werner Koch  <wk@gnupg.org>
 
        * key.h (gpgme_key_s): Add OTRUST.
index bb2e553..8d831a3 100644 (file)
@@ -713,10 +713,18 @@ _gpgme_gpgsm_op_keylist (GpgsmObject gpgsm, const char *pattern,
                         int secret_only, int keylist_mode)
 {
   char *line;
+  GpgmeError err;
 
   if (!pattern)
     pattern = "";
 
+  if (asprintf (&line, "OPTION list-mode=%d", (keylist_mode & 3)) < 0)
+    return mk_error (Out_Of_Core);
+  err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx, line);
+  free (line);
+  if (err)
+    return err;
+
   /* Length is "LISTSECRETKEYS " + p + '\0'.  */
   line = xtrymalloc (15 + strlen (pattern) + 1);
   if (!line)
@@ -753,6 +761,13 @@ _gpgme_gpgsm_op_keylist_ext (GpgsmObject gpgsm, const char *pattern[],
   if (reserved)
     return mk_error (Invalid_Value);
 
+  if (asprintf (&line, "OPTION list-mode=%d", (keylist_mode & 3)) < 0)
+    return mk_error (Out_Of_Core);
+  err = gpgsm_assuan_simple_command (gpgsm->assuan_ctx, line);
+  free (line);
+  if (err)
+    return err;
+
   if (pattern && *pattern)
     {
       const char **pat = pattern;