<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/lang/cpp/src/editinteractor.cpp, branch ikloecker/t7110-nested-bindings-packages</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=ikloecker%2Ft7110-nested-bindings-packages</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=ikloecker%2Ft7110-nested-bindings-packages'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2024-06-11T12:23:40Z</updated>
<entry>
<title>cpp: Don't include config.h</title>
<updated>2024-06-11T12:23:40Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-05-27T09:44:41Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e64dd7ee510cfd41cefc1ff3c6204ebe0fe1f567'/>
<id>urn:sha1:e64dd7ee510cfd41cefc1ff3c6204ebe0fe1f567</id>
<content type='text'>
* lang/cpp/src/*.cpp, lang/cpp/tests/*.cpp: Remove config.h include.
--

The C++ binding sources don't need anything from config.h.

GnuPG-bug-id: 7110
</content>
</entry>
<entry>
<title>cpp: Handle smart card op failure status messages</title>
<updated>2024-04-05T13:08:01Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-04-05T13:08:01Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e4a95746ada20d41161c3cdfb36d5167e2712098'/>
<id>urn:sha1:e4a95746ada20d41161c3cdfb36d5167e2712098</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (parse_sc_op_failure): New.
(CallbackHelper::edit_interactor_callback_impl): Parse failure code on
GPGME_STATUS_SC_OP_FAILURE status.
(sc_op_failure_to_error): New.
--

This converts a SC_OP_FAILURE status message logged by gpg to a
corresponding error. Unfortunately, GPG_ERR_BAD_PIN and
GPG_ERR_BAD_RESET_CODE are mapped to the same SC_OP_FAILURE code, so
that we had to choose one.

GnuPG-bug-id: 6971
</content>
</entry>
<entry>
<title>cpp: Handle status errors in the base edit interactor</title>
<updated>2022-12-08T14:31:37Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-12-08T14:27:22Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=e7953dcf1376631719c73d9fa34bcb96752d3794'/>
<id>urn:sha1:e7953dcf1376631719c73d9fa34bcb96752d3794</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Handle status errors.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Remove handling of
status errors.
--

With this change status errors are handled for all interactors. In
particular, this makes all edit interactors handle canceled password
prompts correctly.

GnuPG-bug-id: 6305
</content>
</entry>
<entry>
<title>cpp: Handle statuses that need no response in the base edit interactor</title>
<updated>2022-12-08T14:31:21Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-12-08T14:20:14Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=c419376b85ff4a489f3bf7ad97ed656495792523'/>
<id>urn:sha1:c419376b85ff4a489f3bf7ad97ed656495792523</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl): Do
not call nextState() if status needs no response.
* lang/cpp/src/gpgaddexistingsubkeyeditinteractor.cpp
(GpgAddExistingSubkeyEditInteractor::Private::nextState),
lang/cpp/src/gpgadduserideditinteractor.cpp
(GpgAddUserIDEditInteractor::nextState),
lang/cpp/src/gpggencardkeyinteractor.cpp
(GpgGenCardKeyInteractor::nextState),
lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState),
lang/cpp/src/gpgsetexpirytimeeditinteractor.cpp
(GpgSetExpiryTimeEditInteractor::nextState),
lang/cpp/src/gpgsetownertrusteditinteractor.cpp
(GpgSetOwnerTrustEditInteractor::nextState),
lang/cpp/src/gpgsignkeyeditinteractor.cpp
(GpgSignKeyEditInteractor::nextState): Remove handling of statuses that
need no response.
--

This change removes superfluous code duplication.

GnuPG-bug-id: 6305
</content>
</entry>
<entry>
<title>cpp: Handle canceling of an edit operation</title>
<updated>2022-04-05T08:17:39Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-04-04T11:25:30Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=28cdbfdccb347e1ef15f794d4afd36f9275f073c'/>
<id>urn:sha1:28cdbfdccb347e1ef15f794d4afd36f9275f073c</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp
(CallbackHelper::edit_interactor_callback_impl): Check for error _or_
canceled state.
--

Without this canceling an edit operation resulted in a "General error".

GnuPG-bug-id: 5904
</content>
</entry>
<entry>
<title>cpp: Return actual error if revocation fails</title>
<updated>2022-04-05T08:15:07Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2022-04-04T11:15:37Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=db532eca8ebd64536985e7a40af22e803e3b3df9'/>
<id>urn:sha1:db532eca8ebd64536985e7a40af22e803e3b3df9</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp, lang/cpp/src/editinteractor.h
(EditInteractor::parseStatusError): New.
* lang/cpp/src/gpgrevokekeyeditinteractor.cpp
(GpgRevokeKeyEditInteractor::Private::nextState): Handle status
error.
--

With this change the interactor returns a proper error like "Bad
Passphrase" or "Empty Passphrase" instead of an unspecific "General
Error" if a status error occurred.

GnuPG-bug-id: 5904
</content>
</entry>
<entry>
<title>cpp: Do not close stdout/stderr when destroying EditInteractor</title>
<updated>2021-05-06T08:14:44Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2021-05-05T16:52:18Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=58a217b108e4c4c92306542bf9f2995254809ffb'/>
<id>urn:sha1:58a217b108e4c4c92306542bf9f2995254809ffb</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private): Initialize
members 'state' and 'debug' in-class. Add member 'debugNeedsClosing'.
(EditInteractor::Private::Private): Remove members initializers.
Remember if 'debug' needs to be closed.
(EditInteractor::Private::~Private): Only close 'debug' if it needs to
be closed.
--

This fixes the problem that after destroying an edit interactor all
debug output went to /dev/null instead of stderr (or stdout) if one
enabled debugging of the edit interactors with GPGMEPP_INTERACTOR_DEBUG
set to stderr (or stdout).
</content>
</entry>
<entry>
<title>cpp: Use cstdlib getenv for portability</title>
<updated>2020-08-06T07:50:16Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@gnupg.org</email>
</author>
<published>2020-08-06T07:50:16Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=0676d41ef57db4da469aa9b733f8965606b667ec'/>
<id>urn:sha1:0676d41ef57db4da469aa9b733f8965606b667ec</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
Use std::getenv.

--
This should fix compiling on MacOS X

GnuPG-Bug-Id: T5013
</content>
</entry>
<entry>
<title>cpp: Add env var to control editinteractor debug</title>
<updated>2019-11-01T11:00:18Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@gnupg.org</email>
</author>
<published>2019-11-01T11:00:18Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=a4d5394b4607382d846e8c156439ac182f9945d7'/>
<id>urn:sha1:a4d5394b4607382d846e8c156439ac182f9945d7</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (EditInteractor::Private::Private):
Read "GPGMEPP_INTERACTOR_DEBUG" env var.
(EditInteractor::Private::~Private): Close debug file.

--
While it was possible for the application to control the
debug through setDebugChannel it is often times helpful
to just debug without changing the application using
GPGME
</content>
</entry>
<entry>
<title>qt,cpp: Consistently use nullptr and override</title>
<updated>2018-12-03T11:25:00Z</updated>
<author>
<name>Andre Heinecke</name>
<email>aheinecke@intevation.de</email>
</author>
<published>2018-12-03T11:20:33Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=1d31420650bfa7ca1d1503cc7431b3360e86022c'/>
<id>urn:sha1:1d31420650bfa7ca1d1503cc7431b3360e86022c</id>
<content type='text'>
* lang/cpp/src/Makefile.am, lang/qt/src/Makefile.am (AM_CPPFLAGS):
Add suggest-override and zero-as-null-pointer-constant warnings.

* lang/cpp/src/*, lang/qt/src/*: Consistenly use nullptr and override.

--
This was especially important for the headers so that downstream
users of GpgME++ or QGpgME do not get flooded by warnings if
they have these warnings enabled.

It also improves compiler errors/warnings in case of accidental
mistakes.
</content>
</entry>
</feed>
