diff options
author | Marcus Brinkmann <[email protected]> | 2017-08-11 17:13:44 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2017-08-11 17:13:44 +0000 |
commit | a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf (patch) | |
tree | 047fb190d1210a568692163ce2bc3de6e90ee045 /src/engine-gpg.c | |
parent | doc: Clarify import keys operation. (diff) | |
download | gpgme-a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf.tar.gz gpgme-a0cc6e01a8900b34cf231d8b5335ef3f85d01fdf.zip |
g10: Add new delete operations that allow more flags.
* NEWS: Document new interfaces.
* doc/gpgme.texi: Document new interfaces.
* src/gpgme.h.in (GPGME_DELETE_ALLOW_SECRET, GPGME_DELETE_FORCE,
gpgme_op_delete_ext_start, gpgme_op_delete_ext): New.
* src/delete.c (delete_start): Change allow_secret argument to flags.
(gpgme_op_delete_ext, gpgme_op_delete_ext_start): New functions.
* src/engine-backend.h (delete): Change allow_secret argument to flags.
* src/engine.c (_gpgme_engine_op_delete): Likewise.
* src/engine.h (_gpgme_engine_op_delete): Likewise (for prototype).
* src/engine-gpgsm.c (gpgsm_delete): Likewise.
* src/engine-gpg.c (gpg_delete): Likewise. Implement GPGME_DELETE_FORCE.
* src/gpgme.def (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
* src/libgpgme.vers (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New.
Signed-off-by: Marcus Brinkmann <[email protected]>
GnuPG-bug-id: 2916
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r-- | src/engine-gpg.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 0c3a63ee..c749c972 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1628,13 +1628,18 @@ gpg_decrypt (void *engine, } static gpgme_error_t -gpg_delete (void *engine, gpgme_key_t key, int allow_secret) +gpg_delete (void *engine, gpgme_key_t key, unsigned int flags) { engine_gpg_t gpg = engine; - gpgme_error_t err; + gpgme_error_t err = 0; + int allow_secret = flags & GPGME_DELETE_ALLOW_SECRET; + int force = flags & GPGME_DELETE_FORCE; - err = add_arg (gpg, allow_secret ? "--delete-secret-and-public-key" - : "--delete-key"); + if (force) + err = add_arg (gpg, "--yes"); + if (!err) + err = add_arg (gpg, allow_secret ? "--delete-secret-and-public-key" + : "--delete-key"); if (!err) err = add_arg (gpg, "--"); if (!err) |