aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src/editinteractor.cpp
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2022-12-08 14:20:14 +0000
committerIngo Klöcker <[email protected]>2022-12-08 14:31:21 +0000
commitc419376b85ff4a489f3bf7ad97ed656495792523 (patch)
tree1d0f0bd460a4861488c499306b926fbbd2db1779 /lang/cpp/src/editinteractor.cpp
parentqt: Write path values with Unix directory separators (diff)
downloadgpgme-c419376b85ff4a489f3bf7ad97ed656495792523.tar.gz
gpgme-c419376b85ff4a489f3bf7ad97ed656495792523.zip
cpp: Handle statuses that need no response in the base edit interactor
* 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
Diffstat (limited to 'lang/cpp/src/editinteractor.cpp')
-rw-r--r--lang/cpp/src/editinteractor.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lang/cpp/src/editinteractor.cpp b/lang/cpp/src/editinteractor.cpp
index 08cb1bc9..707bf8b9 100644
--- a/lang/cpp/src/editinteractor.cpp
+++ b/lang/cpp/src/editinteractor.cpp
@@ -96,7 +96,13 @@ public:
// advance to next state based on input:
const unsigned int oldState = ei->state;
- ei->state = ei->q->nextState(status, args, err);
+
+ if (ei->q->needsNoResponse(status)) {
+ // keep state
+ } else {
+ ei->state = ei->q->nextState(status, args, err);
+ }
+
if (ei->debug) {
std::fprintf(ei->debug, "EditInteractor: %u -> nextState( %s, %s ) -> %u\n",
oldState, status_to_string(status), args ? args : "<null>", ei->state);