fix: proper null padded version comparison

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
This commit is contained in:
Rachel Powers
2023-01-18 10:11:53 -07:00
committed by Edgars Cīrulis
parent 9934537e19
commit 7ed993b54e
2 changed files with 36 additions and 8 deletions

View File

@ -15,9 +15,9 @@ bool Version::operator<(const Version &other) const
const int size = qMax(m_sections.size(), other.m_sections.size());
for (int i = 0; i < size; ++i)
{
const Section sec1 = (i >= m_sections.size()) ? Section("0") : m_sections.at(i);
const Section sec1 = (i >= m_sections.size()) ? Section("") : m_sections.at(i);
const Section sec2 =
(i >= other.m_sections.size()) ? Section("0") : other.m_sections.at(i);
(i >= other.m_sections.size()) ? Section("") : other.m_sections.at(i);
if (sec1 != sec2)
{
return sec1 < sec2;
@ -35,9 +35,9 @@ bool Version::operator>(const Version &other) const
const int size = qMax(m_sections.size(), other.m_sections.size());
for (int i = 0; i < size; ++i)
{
const Section sec1 = (i >= m_sections.size()) ? Section("0") : m_sections.at(i);
const Section sec1 = (i >= m_sections.size()) ? Section("") : m_sections.at(i);
const Section sec2 =
(i >= other.m_sections.size()) ? Section("0") : other.m_sections.at(i);
(i >= other.m_sections.size()) ? Section("") : other.m_sections.at(i);
if (sec1 != sec2)
{
return sec1 > sec2;
@ -55,9 +55,9 @@ bool Version::operator==(const Version &other) const
const int size = qMax(m_sections.size(), other.m_sections.size());
for (int i = 0; i < size; ++i)
{
const Section sec1 = (i >= m_sections.size()) ? Section("0") : m_sections.at(i);
const Section sec1 = (i >= m_sections.size()) ? Section("") : m_sections.at(i);
const Section sec2 =
(i >= other.m_sections.size()) ? Section("0") : other.m_sections.at(i);
(i >= other.m_sections.size()) ? Section("") : other.m_sections.at(i);
if (sec1 != sec2)
{
return false;
@ -103,8 +103,11 @@ QDebug operator<<(QDebug debug, const Version& v)
debug.nospace() << "Version{ string: " << v.toString() << ", sections: [ ";
bool first = true;
for (auto s : v.m_sections) {
debug.nospace() << s.m_fullString << ", ";
if (!first) debug.nospace() << ", ";
debug.nospace() << s.m_fullString;
first = false;
}
debug.nospace() << " ]" << " }";