diff options
author | Ingo Klöcker <[email protected]> | 2022-05-04 12:31:03 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-05-04 12:31:03 +0000 |
commit | 3519d6117332f25b601c9c0636878baf4e8cf55b (patch) | |
tree | 4ebaf707422f19184384c84d7d7eb87b6fd1850c /lang/cpp/src | |
parent | core: Handle import status lines during keylist operation (diff) | |
download | gpgme-3519d6117332f25b601c9c0636878baf4e8cf55b.tar.gz gpgme-3519d6117332f25b601c9c0636878baf4e8cf55b.zip |
cpp: Allow retrieving import result of key listing with locate mode
* lang/cpp/src/context_p.h (enum Context::Private::Operation): Add
value KeyListWithImport.
* lang/cpp/src/context.cpp (Context::startKeyListing, Context::nextKey):
Set lastop to KeyListWithImport if keylist mode includes Locate.
--
Adding Import to lastop for keylist operations that perform a locate
allows retrieving the import result with Context::importResult.
GnuPG-bug-id: 5951
Diffstat (limited to 'lang/cpp/src')
-rw-r--r-- | lang/cpp/src/context.cpp | 12 | ||||
-rw-r--r-- | lang/cpp/src/context_p.h | 1 |
2 files changed, 10 insertions, 3 deletions
diff --git a/lang/cpp/src/context.cpp b/lang/cpp/src/context.cpp index 568e0458..61b3e0e2 100644 --- a/lang/cpp/src/context.cpp +++ b/lang/cpp/src/context.cpp @@ -535,19 +535,25 @@ const char *Context::getSender () Error Context::startKeyListing(const char *pattern, bool secretOnly) { - d->lastop = Private::KeyList; + d->lastop = (((keyListMode() & GpgME::Locate) == GpgME::Locate) + ? Private::KeyListWithImport + : Private::KeyList); return Error(d->lasterr = gpgme_op_keylist_start(d->ctx, pattern, int(secretOnly))); } Error Context::startKeyListing(const char *patterns[], bool secretOnly) { - d->lastop = Private::KeyList; + d->lastop = (((keyListMode() & GpgME::Locate) == GpgME::Locate) + ? Private::KeyListWithImport + : Private::KeyList); return Error(d->lasterr = gpgme_op_keylist_ext_start(d->ctx, patterns, int(secretOnly), 0)); } Key Context::nextKey(GpgME::Error &e) { - d->lastop = Private::KeyList; + d->lastop = (((keyListMode() & GpgME::Locate) == GpgME::Locate) + ? Private::KeyListWithImport + : Private::KeyList); gpgme_key_t key = nullptr; e = Error(d->lasterr = gpgme_op_keylist_next(d->ctx, &key)); return Key(key, false); diff --git a/lang/cpp/src/context_p.h b/lang/cpp/src/context_p.h index 491e7f77..8782609c 100644 --- a/lang/cpp/src/context_p.h +++ b/lang/cpp/src/context_p.h @@ -53,6 +53,7 @@ public: KeyGen = 0x080, KeyList = 0x100, + KeyListWithImport = KeyList | Import, // gpgme_keylist_result_t and gpgme_import_result_t TrustList = 0x200, // no gpgme_trustlist_result_t, but nevertheless... Edit = 0x400, // no gpgme_edit_result_t, but nevertheless... |