diff options
author | Ingo Klöcker <[email protected]> | 2022-12-08 14:20:14 +0000 |
---|---|---|
committer | Ingo Klöcker <[email protected]> | 2022-12-08 14:31:21 +0000 |
commit | c419376b85ff4a489f3bf7ad97ed656495792523 (patch) | |
tree | 1d0f0bd460a4861488c499306b926fbbd2db1779 /lang/cpp/src/editinteractor.cpp | |
parent | qt: Write path values with Unix directory separators (diff) | |
download | gpgme-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.cpp | 8 |
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); |