@@ -1484,6 +1484,27 @@ rb_s_gpgme_op_delete (VALUE dummy, VALUE vctx, VALUE vkey, VALUE vallow_secret)
14841484 return LONG2NUM (err );
14851485}
14861486
1487+ /* This method was added in 1.9.1. */
1488+ #if defined(GPGME_VERSION_NUMBER ) && GPGME_VERSION_NUMBER >= 0x010901
1489+ static VALUE
1490+ rb_s_gpgme_op_delete_ext (VALUE dummy , VALUE vctx , VALUE vkey , VALUE vflags )
1491+ {
1492+ gpgme_ctx_t ctx ;
1493+ gpgme_key_t key ;
1494+ gpgme_error_t err ;
1495+
1496+ CHECK_KEYLIST_NOT_IN_PROGRESS (vctx );
1497+
1498+ UNWRAP_GPGME_CTX (vctx , ctx );
1499+ if (!ctx )
1500+ rb_raise (rb_eArgError , "released ctx" );
1501+ UNWRAP_GPGME_KEY (vkey , key );
1502+
1503+ err = gpgme_op_delete_ext (ctx , key , NUM2INT (vflags ));
1504+ return LONG2NUM (err );
1505+ }
1506+ #endif
1507+
14871508static VALUE
14881509rb_s_gpgme_op_delete_start (VALUE dummy , VALUE vctx , VALUE vkey ,
14891510 VALUE vallow_secret )
@@ -2547,6 +2568,8 @@ Init_gpgme_n (void)
25472568 rb_s_gpgme_op_import_result , 1 );
25482569 rb_define_module_function (mGPGME , "gpgme_op_delete" ,
25492570 rb_s_gpgme_op_delete , 3 );
2571+ rb_define_module_function (mGPGME , "gpgme_op_delete_ext" ,
2572+ rb_s_gpgme_op_delete_ext , 3 );
25502573 rb_define_module_function (mGPGME , "gpgme_op_delete_start" ,
25512574 rb_s_gpgme_op_delete_start , 3 );
25522575 rb_define_module_function (mGPGME , "gpgme_op_edit" ,
@@ -3156,4 +3179,13 @@ Init_gpgme_n (void)
31563179 rb_define_const (mGPGME , "GPGME_EXPORT_MODE_PKCS12" ,
31573180 INT2FIX (GPGME_EXPORT_MODE_PKCS12 ));
31583181#endif
3182+
3183+ /* These flags were added in 1.9.1. */
3184+ #if defined(GPGME_VERSION_NUMBER ) && GPGME_VERSION_NUMBER >= 0x010901
3185+ rb_define_const (mGPGME , "GPGME_DELETE_ALLOW_SECRET" ,
3186+ INT2FIX (GPGME_DELETE_ALLOW_SECRET ));
3187+ rb_define_const (mGPGME , "GPGME_DELETE_FORCE" ,
3188+ INT2FIX (GPGME_DELETE_FORCE ));
3189+ #endif
31593190}
3191+
0 commit comments