@@ -112,25 +112,41 @@ namespace Nickvision::Update
112112
113113 bool Version::operator <(const Version& compare) const
114114 {
115- if (m_major < compare.m_major )
115+ if (m_major > compare.m_major )
116+ {
117+ return false ;
118+ }
119+ else if (m_major < compare.m_major )
116120 {
117121 return true ;
118122 }
119123 else
120124 {
121- if (m_minor < compare.m_minor )
125+ if (m_minor > compare.m_minor )
126+ {
127+ return false ;
128+ }
129+ else if (m_minor < compare.m_minor )
122130 {
123131 return true ;
124132 }
125133 else
126134 {
127- if (m_build < compare.m_build )
135+ if (m_build > compare.m_build )
136+ {
137+ return false ;
138+ }
139+ else if (m_build < compare.m_build )
128140 {
129141 return true ;
130142 }
131143 else
132144 {
133- if (!m_dev.empty () && compare.m_dev .empty ()) // dev < stable
145+ if (m_dev.empty () && !compare.m_dev .empty ())
146+ {
147+ return false ;
148+ }
149+ else if (!m_dev.empty () && compare.m_dev .empty ())
134150 {
135151 return true ;
136152 }
@@ -142,33 +158,49 @@ namespace Nickvision::Update
142158
143159 bool Version::operator <=(const Version& compare) const
144160 {
145- return operator > (compare) || operator ==(compare);
161+ return operator < (compare) || operator ==(compare);
146162 }
147163
148164 bool Version::operator >(const Version& compare) const
149165 {
150- if (m_major > compare.m_major )
166+ if (m_major > compare.m_major )
151167 {
152168 return true ;
153169 }
170+ else if (m_major < compare.m_major )
171+ {
172+ return false ;
173+ }
154174 else
155175 {
156- if (m_minor > compare.m_minor )
176+ if (m_minor > compare.m_minor )
157177 {
158178 return true ;
159179 }
180+ else if (m_minor < compare.m_minor )
181+ {
182+ return false ;
183+ }
160184 else
161185 {
162- if (m_build > compare.m_build )
186+ if (m_build > compare.m_build )
163187 {
164188 return true ;
165189 }
190+ else if (m_build < compare.m_build )
191+ {
192+ return false ;
193+ }
166194 else
167195 {
168- if (m_dev.empty () && !compare.m_dev .empty ()) // stable > dev
196+ if (m_dev.empty () && !compare.m_dev .empty ())
169197 {
170198 return true ;
171199 }
200+ else if (!m_dev.empty () && compare.m_dev .empty ())
201+ {
202+ return false ;
203+ }
172204 }
173205 }
174206 }
@@ -177,7 +209,7 @@ namespace Nickvision::Update
177209
178210 bool Version::operator >=(const Version& compare) const
179211 {
180- return operator < (compare) || operator ==(compare);
212+ return operator > (compare) || operator ==(compare);
181213 }
182214
183215 bool Version::operator ==(const Version& compare) const
0 commit comments