From 512de91f9a8da8f491e09653eb4b5bdd0a027198 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Fri, 4 Nov 2016 12:29:32 +0100 Subject: [PATCH] cpp: Add more EngineInfo::Version ctors * lang/cpp/src/engineinfo.h (EngineInfo::Version::Version(const char*)), (EngineInfo::Version::Version()): New. --- NEWS | 2 ++ lang/cpp/src/engineinfo.h | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/NEWS b/NEWS index e43aa30d..4d2a110e 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,8 @@ Noteworthy changes in version 1.7.2 (unreleased) gpgme_query_swdb_result_t NEW. qt: DN NEW. qt: DN::Attribute NEW. + cpp: EngineInfo::Version::Version(const char*) NEW. + cpp: EngineInfo::Version::Version() NEW. Noteworthy changes in version 1.7.1 (2016-10-18) diff --git a/lang/cpp/src/engineinfo.h b/lang/cpp/src/engineinfo.h index 72e125c3..aa6fccaf 100644 --- a/lang/cpp/src/engineinfo.h +++ b/lang/cpp/src/engineinfo.h @@ -40,6 +40,12 @@ public: struct Version { int major, minor, patch; + Version() + { + major = 0; + minor = 0; + patch = 0; + } Version(const std::string& version) { @@ -51,6 +57,16 @@ public: } } + Version(const char *version) + { + if (!version || + std::sscanf(version, "%d.%d.%d", &major, &minor, &patch) != 3) { + major = 0; + minor = 0; + patch = 0; + } + } + bool operator < (const Version& other) { if (major < other.major)