aboutsummaryrefslogtreecommitdiffstats
path: root/lang/cpp/src/editinteractor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lang/cpp/src/editinteractor.cpp')
-rw-r--r--lang/cpp/src/editinteractor.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/lang/cpp/src/editinteractor.cpp b/lang/cpp/src/editinteractor.cpp
index e411adac..753c2b09 100644
--- a/lang/cpp/src/editinteractor.cpp
+++ b/lang/cpp/src/editinteractor.cpp
@@ -29,6 +29,7 @@
#include "editinteractor.h"
#include "callbacks.h"
#include "error.h"
+#include "util.h"
#include <gpgme.h>
@@ -256,6 +257,20 @@ void EditInteractor::setDebugChannel(std::FILE *debug)
d->debug = debug;
}
+GpgME::Error EditInteractor::parseStatusError(const char *args)
+{
+ Error err;
+
+ const auto fields = split(args, ' ');
+ if (fields.size() >= 2) {
+ err = Error{static_cast<unsigned int>(std::stoul(fields[1]))};
+ } else {
+ err = Error::fromCode(GPG_ERR_GENERAL);
+ }
+
+ return err;
+}
+
static const char *const status_strings[] = {
"EOF",
/* mkstatus processing starts here */