doc/
authorMarcus Brinkmann <mb@g10code.com>
Tue, 20 Aug 2002 13:38:40 +0000 (13:38 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Tue, 20 Aug 2002 13:38:40 +0000 (13:38 +0000)
2002-08-20  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.texi (Importing Keys): Document gpgme_op_import_ext.

gpgme/
2002-08-20  Marcus Brinkmann  <marcus@g10code.de>

* gpgme.h: Add prototype for gpgme_op_import_ext.
* import.c (struct import_result_s): New member `nr_considered'.
Rename `any_imported' to `nr_imported'.
(import_status_handler): Increment nr_imported.  Set nr_considered
if appropriate.
(gpgme_op_import_ext): New function.
(gpgme_op_import): Implement in terms of gpgme_op_import_ext.

doc/ChangeLog
doc/gpgme.texi
gpgme/ChangeLog
gpgme/gpgme.h
gpgme/import.c

index 30d81ed415a4922b818dcb7bb0ff4c2037023863..aa45097bf695b1704ccbe22dbf0a0bcd6e233cf1 100644 (file)
@@ -1,3 +1,7 @@
+2002-08-20  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.texi (Importing Keys): Document gpgme_op_import_ext.
+
 2002-08-14  Werner Koch  <wk@gnupg.org>
 
        * gpgme.texi (Information About Keys): Changed GPGME_ATTR_TYPE.
index a408f8ffa0d165873c463a0123efc6d88b6fc028..904160a4e03313c4d085aea033374c785c5595ab 100644 (file)
@@ -1932,6 +1932,13 @@ started successfully, @code{GPGME_Invalid_Value} if @var{keydata} if
 @code{GPGME_No_Data} if @var{keydata} is an empty data buffer.
 @end deftypefun
 
+@deftypefun GpgmeError gpgme_op_import_ext (@w{GpgmeCtx @var{ctx}}, @w{GpgmeData @var{keydata}}, @w{int *@var{nr}})
+The function @code{gpgme_op_import_ext} is like
+@code{gpgme_op_import}, but also returns the number of processed keys
+in @var{nr}.  This is the same as the @code{count} information in the
+detailed results available with @code{gpgme_get_op_info}.
+@end deftypefun
+
 
 @node Deleting Keys
 @subsection Deleting Keys
index 2e6f1165070d360f1c38d5f50cfab2f831fc1bb9..2a2de0650a64508d31e8936f8f0bc608ef50d485 100644 (file)
@@ -1,3 +1,13 @@
+2002-08-20  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpgme.h: Add prototype for gpgme_op_import_ext.
+       * import.c (struct import_result_s): New member `nr_considered'.
+       Rename `any_imported' to `nr_imported'.
+       (import_status_handler): Increment nr_imported.  Set nr_considered
+       if appropriate.
+       (gpgme_op_import_ext): New function.
+       (gpgme_op_import): Implement in terms of gpgme_op_import_ext.
+
 2002-08-20  Werner Koch  <wk@gnupg.org>
 
        * vasprintf.c (int_vasprintf): Hack to handle NULL passed for %s.
index 826375efbae03806fa65b6113d572946d85ae034..ed82ecfe7a5d82fa5a2448ce2a70f0c7c868d498 100644 (file)
@@ -663,6 +663,7 @@ GpgmeError gpgme_op_verify (GpgmeCtx ctx,
 /* Import the key in KEYDATA into the keyring.  */
 GpgmeError gpgme_op_import_start (GpgmeCtx ctx, GpgmeData keydata);
 GpgmeError gpgme_op_import (GpgmeCtx ctx, GpgmeData keydata);
+GpgmeError gpgme_op_import_ext (GpgmeCtx ctx, GpgmeData keydata, int *nr);
 
 /* Export the keys listed in RECP into KEYDATA.  */
 GpgmeError gpgme_op_export_start (GpgmeCtx ctx, GpgmeRecipients recp,
index e157363810e64dd38c5c9cce0bfc5c9e6371a929..a550f864b24e221f87603c4491de9c6c9e8fd25c 100644 (file)
@@ -32,7 +32,8 @@
 
 struct import_result_s
 {
-  int any_imported;
+  int nr_imported;
+  int nr_considered;
   GpgmeData xmlinfo;
 };
 
@@ -160,8 +161,12 @@ import_status_handler (GpgmeCtx ctx, GpgmeStatusCode code, char *args)
       break;
 
     case GPGME_STATUS_IMPORTED:
-      ctx->result.import->any_imported = 1;
+      ctx->result.import->nr_imported++;
+      append_xml_impinfo (&ctx->result.import->xmlinfo, code, args);
+      break;
+
     case GPGME_STATUS_IMPORT_RES:
+      ctx->result.import->nr_considered = strtol (args, 0, 0);
       append_xml_impinfo (&ctx->result.import->xmlinfo, code, args);
       break;
 
@@ -217,19 +222,31 @@ gpgme_op_import_start (GpgmeCtx ctx, GpgmeData keydata)
  * gpgme_op_import:
  * @c: Context 
  * @keydata: Data object
+ * @nr: Will contain number of considered keys.
  * 
  * Import all key material from @keydata into the key database.
  * 
  * Return value: 0 on success or an error code.
  **/
 GpgmeError
-gpgme_op_import (GpgmeCtx ctx, GpgmeData keydata)
+gpgme_op_import_ext (GpgmeCtx ctx, GpgmeData keydata, int *nr)
 {
   GpgmeError err = _gpgme_op_import_start (ctx, 1, keydata);
   if (!err)
     err = _gpgme_wait_one (ctx);
-  if (!err && (!ctx->result.import || !ctx->result.import->any_imported))
-    err = -1; /* Nothing at all imported. */
+  if (!err && nr)
+    {
+      if (ctx->result.import)
+       *nr = ctx->result.import->nr_considered;
+      else
+       *nr = 0;
+    }
   return err;
 }
 
+GpgmeError
+gpgme_op_import (GpgmeCtx ctx, GpgmeData keydata)
+{
+  return gpgme_op_import_ext (ctx, keydata, 0);
+}
+