@@ -1484,6 +1484,27 @@ rb_s_gpgme_op_delete (VALUE dummy, VALUE vctx, VALUE vkey, VALUE vallow_secret)
1484
1484
return LONG2NUM (err );
1485
1485
}
1486
1486
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
+
1487
1508
static VALUE
1488
1509
rb_s_gpgme_op_delete_start (VALUE dummy , VALUE vctx , VALUE vkey ,
1489
1510
VALUE vallow_secret )
@@ -2547,6 +2568,8 @@ Init_gpgme_n (void)
2547
2568
rb_s_gpgme_op_import_result , 1 );
2548
2569
rb_define_module_function (mGPGME , "gpgme_op_delete" ,
2549
2570
rb_s_gpgme_op_delete , 3 );
2571
+ rb_define_module_function (mGPGME , "gpgme_op_delete_ext" ,
2572
+ rb_s_gpgme_op_delete_ext , 3 );
2550
2573
rb_define_module_function (mGPGME , "gpgme_op_delete_start" ,
2551
2574
rb_s_gpgme_op_delete_start , 3 );
2552
2575
rb_define_module_function (mGPGME , "gpgme_op_edit" ,
@@ -3156,4 +3179,13 @@ Init_gpgme_n (void)
3156
3179
rb_define_const (mGPGME , "GPGME_EXPORT_MODE_PKCS12" ,
3157
3180
INT2FIX (GPGME_EXPORT_MODE_PKCS12 ));
3158
3181
#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
3159
3190
}
3191
+
0 commit comments