/*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; }