cpp: Fix version info comparison
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<): Fix logic. * lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>): New. * NEWS: Mention added API -- This fixes a logic error that 2.2.0 < 2.1.19 would return true.
This commit is contained in:
parent
47f61df070
commit
58d7bcead3
5
NEWS
5
NEWS
@ -12,8 +12,9 @@ Noteworthy changes in version 1.10.0 (unreleased)
|
||||
GPGME_DELETE_FORCE NEW.
|
||||
gpgme_op_conf_dir NEW.
|
||||
gpgme_set_ctx_flag EXTENDED: New flag 'auto-key-retrieve'.
|
||||
cpp: DecryptionResult::isDeVs NEW.
|
||||
cpp: Signature::isDeVs NEW.
|
||||
cpp: DecryptionResult::isDeVs NEW.
|
||||
cpp: Signature::isDeVs NEW.
|
||||
cpp: EngineInfo::Version::operator> NEW.
|
||||
py: DecryptResult EXTENDED: New boolean field 'is_de_vs'.
|
||||
py: Signature EXTENDED: New boolean field 'is_de_vs'.
|
||||
py: GpgError EXTENDED: Partial results in 'results'.
|
||||
|
@ -71,13 +71,13 @@ public:
|
||||
|
||||
bool operator < (const Version& other)
|
||||
{
|
||||
if (major < other.major)
|
||||
return true;
|
||||
if (minor < other.minor)
|
||||
return true;
|
||||
if (patch < other.patch)
|
||||
return true;
|
||||
return false;
|
||||
if (major > other.major ||
|
||||
(major == other.major && minor > other.minor) ||
|
||||
(major == other.major && minor == other.minor && patch > other.patch) ||
|
||||
(major >= other.major && minor >= other.minor && patch >= other.patch)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool operator < (const char* other)
|
||||
@ -85,6 +85,15 @@ public:
|
||||
return operator<(Version(other));
|
||||
}
|
||||
|
||||
bool operator > (const char* other)
|
||||
{
|
||||
return !operator<(Version(other));
|
||||
}
|
||||
|
||||
bool operator > (const Version & other)
|
||||
{
|
||||
return !operator<(other);
|
||||
}
|
||||
bool operator == (const Version& other)
|
||||
{
|
||||
return major == other.major
|
||||
|
Loading…
Reference in New Issue
Block a user