while (part1 + 1 < s1 && *part1 == '0')
part1++;
- while (part2 + 1 < s1 && *part2 == '0')
+ while (part2 + 1 < s2 && *part2 == '0')
part2++;
len1 = s1 - part1;
int cmp;
/* find pre-release separator */
- while (pre1 != q1 && *pre1 != '-')
+ while (pre1 != q1 && *pre1 != '~')
pre1++;
- while (pre2 != q2 && *pre2 != '-')
+ while (pre2 != q2 && *pre2 != '~')
pre2++;
/* compare main versions */
if (pre2 == q2)
return -1;
- return solv_cmp_version_part_haiku(pre1 + 1, q1, pre2 + 1, q2);
+ cmp = solv_cmp_version_part_haiku(pre1 + 1, q1, pre2 + 1, q2);
+ return cmp == 0 ? 0 : cmp < 0 ? -1 : 1; /* must return -1, 0, or 1 */
}
#endif /* HAIKU */
-
-
-/*
+
+
+/*
* the solv_vercmp variant your system uses.
*/
int
for (s2 = evr2, r2 = 0; *s2; s2++)
if (*s2 == '-')
r2 = s2;
-
r = 0;
if (mode != EVRCMP_MATCH || (evr1 != (r1 ? r1 : s1) && evr2 != (r2 ? r2 : s2)))
r = solv_vercmp(evr1, r1 ? r1 : s1, evr2, r2 ? r2 : s2);