<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gpgme/lang/cpp/src/editinteractor.cpp, branch gpgme-2.1.1</title>
<subtitle>GnuPG Made Easy.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.1</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gpgme/atom?h=gpgme-2.1.1'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/'/>
<updated>2025-02-03T09:55:40Z</updated>
<entry>
<title>cpp,qt: Remove C++ and Qt bindings</title>
<updated>2025-02-03T09:55:40Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2025-02-03T09:49:25Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=763d5f5d6a88ec938b8678ab597e1404af724553'/>
<id>urn:sha1:763d5f5d6a88ec938b8678ab597e1404af724553</id>
<content type='text'>
* README: Update.
* configure.ac: Remove checks, variables and file generations related to
the C++/Qt bindings. Remove cpp and qt* from available_languages and
default_languages.
* lang/Makefile.am (DIST_SUBDIRS): Remove cpp and qt.
* lang/cpp, lang/qt: Remove.
* m4/ax_check_compile_flag.m4, m4/ax_cxx_compile_stdcxx.m4,
m4/ax_gcc_func_attribute.m4, m4/pkg.m4, m4/qt5.m4, m4/qt6.m4: Remove.
--

The C++ and Qt bindings have been moved to separate Git repositories:
gpgmepp and gpgmeqt.

GnuPG-bug-id: 7262
</content>
</entry>
<entry>
<title>cpp: Go with default answer on unknown question by key edit interface</title>
<updated>2024-08-28T14:32:18Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-08-28T14:32:18Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=7579c40124c9b287bb67e974bda46e879e1a1ab1'/>
<id>urn:sha1:7579c40124c9b287bb67e974bda46e879e1a1ab1</id>
<content type='text'>
* lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl):
Send empty string to edit interface if General Error occurred.
--

A General Error is usually returned by the nextState function of the
concrete EditInteractor subclasses if gpg asks an unexpected question
which isn't handled by the edit interactor's state machine. In this
case, it's usually safe to go with the default answer. This makes the
edit interactors much more robust.

GnuPG-bug-id: 7274
</content>
</entry>
<entry>
<title>cpp: Deprecate Error::asString and update users</title>
<updated>2024-07-05T08:05:51Z</updated>
<author>
<name>Ingo Klöcker</name>
<email>dev@ingo-kloecker.de</email>
</author>
<published>2024-07-04T16:03:17Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gpgme/commit/?id=28542b14c4df40c7a54bfcf65d7c725bd99fb3e5'/>
<id>urn:sha1:28542b14c4df40c7a54bfcf65d7c725bd99fb3e5</id>
<content type='text'>
* lang/cpp/src/error.h (Error::asString): Mark as deprecated.
* lang/cpp/src/context.cpp (operator&lt;&lt;),
lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl),
lang/cpp/tests/run-getkey.cpp (main),
lang/cpp/tests/run-keylist.cpp (main),
lang/cpp/tests/run-wkdlookup.cpp (main): Use Error::asStdString instead
of Error::asString.
--

GnuPG-bug-id: 7188
</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>
</feed>
