/*HAVE_GPGME_OP_EXPORT_KEYS*/
static VALUE
rb_s_gpgme_op_import_result (VALUE dummy, VALUE vctx)
{
gpgme_ctx_t ctx;
gpgme_import_result_t result;
gpgme_import_status_t status;
VALUE vresult, vimports;
UNWRAP_GPGME_CTX(vctx, ctx);
if (!ctx)
rb_raise (rb_eArgError, "released ctx");
result = gpgme_op_import_result (ctx);
vresult = rb_class_new_instance (0, NULL, cImportResult);
rb_iv_set (vresult, "@considered", INT2NUM(result->considered));
rb_iv_set (vresult, "@no_user_id", INT2NUM(result->no_user_id));
rb_iv_set (vresult, "@imported", INT2NUM(result->imported));
rb_iv_set (vresult, "@imported_rsa", INT2NUM(result->imported_rsa));
rb_iv_set (vresult, "@unchanged", INT2NUM(result->unchanged));
rb_iv_set (vresult, "@new_user_ids", INT2NUM(result->new_user_ids));
rb_iv_set (vresult, "@new_sub_keys", INT2NUM(result->new_sub_keys));
rb_iv_set (vresult, "@new_signatures", INT2NUM(result->new_signatures));
rb_iv_set (vresult, "@new_revocations", INT2NUM(result->new_revocations));
rb_iv_set (vresult, "@secret_read", INT2NUM(result->secret_read));
rb_iv_set (vresult, "@secret_imported", INT2NUM(result->secret_imported));
rb_iv_set (vresult, "@secret_unchanged", INT2NUM(result->secret_unchanged));
rb_iv_set (vresult, "@not_imported", INT2NUM(result->not_imported));
vimports = rb_ary_new ();
rb_iv_set (vresult, "@imports", vimports);
for (status = result->imports; status;
status = status->next)
{
VALUE vstatus =
rb_class_new_instance (0, NULL, cImportStatus);
rb_iv_set (vstatus, "@fpr", rb_str_new2 (status->fpr));
rb_iv_set (vstatus, "@result", LONG2NUM(status->result));
rb_iv_set (vstatus, "@status", UINT2NUM(status->status));
rb_ary_push (vimports, vstatus);
}
return vresult;
}