From ae8b6a0252b54d60a876eefbbafecc627190ce6c Mon Sep 17 00:00:00 2001 From: Alayan Date: Thu, 24 Oct 2019 16:54:26 +0200 Subject: [PATCH] Minor simplifications --- src/graphics/graphics_restrictions.cpp | 118 +++++++++---------------- 1 file changed, 43 insertions(+), 75 deletions(-) diff --git a/src/graphics/graphics_restrictions.cpp b/src/graphics/graphics_restrictions.cpp index 5cb8434a6..b8d4d0e86 100644 --- a/src/graphics/graphics_restrictions.cpp +++ b/src/graphics/graphics_restrictions.cpp @@ -102,9 +102,6 @@ GraphicsRestrictionsType getTypeForName(const std::string &name) class Version { private: - /** The array containing the version number. */ - std::vector m_version; - // ---------------------------------------------------------------------------- /** Searches for the first number in the string, then converts the rest of the * string into a tuple. E.g. "Build 12.34.56" --> [12,34,56]. @@ -120,6 +117,8 @@ private: } // convertVersionString public: + /** The array containing the version number. */ + std::vector m_version; // ------------------------------------------------------------------------ /** Dummy default constructor. */ Version() {} @@ -268,68 +267,47 @@ public: { return !this->operator==(other); } // operator!= - // ------------------------------------------------------------------------ - /** If *this < other. */ - bool operator< (const Version &other) const - { - unsigned int min_n = (unsigned int)std::min(m_version.size(), other.m_version.size()); - for (unsigned int i = 0; i other.m_version[i]) return false; - if (m_version[i] < other.m_version[i]) return true; - } - if (m_version.size() >= other.m_version.size()) - return false; - else - return true; - } // operator< - // ------------------------------------------------------------------------ - /** If *this <= other. */ - bool operator<= (const Version &other) const - { - unsigned int min_n = (unsigned int)std::min(m_version.size(), other.m_version.size()); - for (unsigned int i = 0; i other.m_version[i]) return false; - if (m_version[i] < other.m_version[i]) return true; - } - if (m_version.size() > other.m_version.size()) - return false; - else - return true; - } // operator<= - // ------------------------------------------------------------------------ - /** If *this > other. */ - bool operator> (const Version &other) const - { - unsigned int min_n = (unsigned int)std::min(m_version.size(), other.m_version.size()); - for (unsigned int i = 0; i other.m_version[i]) return true; - if (m_version[i] < other.m_version[i]) return false; - } - if (m_version.size() > other.m_version.size()) - return true; - else - return false; - } // operator> - // ------------------------------------------------------------------------ - /** If *this >= other. */ - bool operator>= (const Version &other) const - { - unsigned int min_n = (unsigned int)std::min(m_version.size(), other.m_version.size()); - for (unsigned int i = 0; i other.m_version[i]) return true; - if (m_version[i] < other.m_version[i]) return false; - } - if (m_version.size() >= other.m_version.size()) - return true; - else - return false; - } // operator>= }; // class Version + +// ------------------------------------------------------------------------ +/** Compares two version numbers. If left < right. */ +bool operator< (const Version &left, const Version &right) +{ + unsigned int min_n = (unsigned int)std::min(left.m_version.size(), right.m_version.size()); + for (unsigned int i = 0; i right.m_version[i]) return false; + if (left.m_version[i] < right.m_version[i]) return true; + } + return (left.m_version.size() < right.m_version.size()); +} // operator< +// ------------------------------------------------------------------------ +/** Compares two version numbers. If left > right. */ +bool operator> (const Version &left, const Version &right) +{ + unsigned int min_n = (unsigned int)std::min(left.m_version.size(), right.m_version.size()); + for (unsigned int i = 0; i right.m_version[i]) return true; + if (left.m_version[i] < right.m_version[i]) return false; + } + return (left.m_version.size() > right.m_version.size()); +} // operator> +// ------------------------------------------------------------------------ +/** Compares two version numbers. If left <= right. */ +bool operator<= (const Version &left, const Version &right) +{ + return !(left > right); +} // operator<= + +// ------------------------------------------------------------------------ +/** Compares two version numbers. If *this >= other. */ +bool operator>= (const Version &left, const Version &right) +{ + return !(left < right); +} // operator>= + // ============================================================================ class Rule : public NoCopy { @@ -371,33 +349,23 @@ public: m_card_test = CARD_IGNORE; if (rule->get("is", &m_card_name)) - { m_card_test = CARD_IS; - } else if (rule->get("contains", &m_card_name)) - { m_card_test = CARD_CONTAINS; - } rule->get("os", &m_os); rule->get("vendor", &m_vendor); std::string s; - + if (rule->get("version", &s) && s.size() > 1) - { addVersion(s); - } - + if (rule->get("version2", &s) && s.size() > 1) - { addVersion(s); - } if (rule->get("disable", &s)) - { m_disable_options = StringUtils::split(s, ' '); - } } // Rule // ------------------------------------------------------------------------