X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/f3bf50a6441eb93751258bf7abdf21395a7befe1..4f00fb2f265f5230c7d138b52854c0886092c0ab:/apt-pkg/deb/debversion.cc?ds=sidebyside diff --git a/apt-pkg/deb/debversion.cc b/apt-pkg/deb/debversion.cc index d4be0f07e..aeee61929 100644 --- a/apt-pkg/deb/debversion.cc +++ b/apt-pkg/deb/debversion.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: debversion.cc,v 1.6 2003/01/27 00:05:59 jgg Exp $ +// $Id: debversion.cc,v 1.8 2003/09/10 23:39:49 mdz Exp $ /* ###################################################################### Debian Version - Versioning system for Debian @@ -48,9 +48,15 @@ int debVersioningSystem::CmpFragment(const char *A,const char *AEnd, if (A >= AEnd && B >= BEnd) return 0; if (A >= AEnd) + { + if (*B == '~') return 1; return -1; + } if (B >= BEnd) + { + if (*A == '~') return -1; return 1; + } /* Iterate over the whole string What this does is to spilt the whole string into groups of @@ -65,8 +71,8 @@ int debVersioningSystem::CmpFragment(const char *A,const char *AEnd, { int first_diff = 0; - while ((lhs != AEnd && !isdigit(*lhs)) || - (rhs != BEnd && !isdigit(*rhs)) ) + while (lhs != AEnd && rhs != BEnd && + (!isdigit(*lhs) || !isdigit(*rhs))) { int vc = order(*lhs); int rc = order(*rhs); @@ -101,11 +107,17 @@ int debVersioningSystem::CmpFragment(const char *A,const char *AEnd, // lhs is shorter if (lhs == AEnd) + { + if (*rhs == '~') return 1; return -1; + } // rhs is shorter if (rhs == BEnd) + { + if (*lhs == '~') return -1; return 1; + } // Shouldnt happen return 1;