From: Ingo Weinhold Date: Thu, 18 Apr 2013 14:11:01 +0000 (+0200) Subject: Haiku: The notation for the pre-release version part changed X-Git-Tag: BASE-SuSE-Code-12_3-Branch~22^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6881184db997deb4d5bc0ff9f5c1402bf359391e;p=thirdparty%2Flibsolv.git Haiku: The notation for the pre-release version part changed Instead of using '-' as the separator for the pre-release '~' is used now. This allows to drop code in a few places where Haiku had to be special-cased before. --- diff --git a/ext/testcase.c b/ext/testcase.c index 6c699e19..72f9dc8b 100644 --- a/ext/testcase.c +++ b/ext/testcase.c @@ -981,9 +981,6 @@ testcase_write_testtags(Repo *repo, FILE *fp) evr = pool_id2str(pool, s->evr); arch = pool_id2str(pool, s->arch); release = strrchr(evr, '-'); - /* haikus releases start numeric */ - if (release && pool->disttype == DISTTYPE_HAIKU && (release[1] < '0' || release[1] > '9')) - release = evr + strlen(evr); if (!release) release = evr + strlen(evr); fprintf(fp, "=Pkg: %s %.*s %s %s\n", name, (int)(release - evr), evr, *release && release[1] ? release + 1 : "-", arch); diff --git a/src/evr.c b/src/evr.c index 4351a6f9..e8fd12d8 100644 --- a/src/evr.c +++ b/src/evr.c @@ -268,9 +268,9 @@ solv_vercmp_haiku(const char *s1, const char *q1, const char *s2, const char *q2 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 */ @@ -390,14 +390,6 @@ pool_evrcmp_str(const Pool *pool, const char *evr1, const char *evr2, int mode) for (s2 = evr2, r2 = 0; *s2; s2++) if (*s2 == '-') r2 = s2; - if (pool->disttype == DISTTYPE_HAIKU) - { - /* make sure it's really a release, releases always are numeric */ - if (r1 && (r1[1] < '0' || r1[1] > '9')) - r1 = 0; - if (r2 && (r2[1] < '0' || r2[1] > '9')) - r2 = 0; - } 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); @@ -497,12 +489,6 @@ pool_evrmatch(const Pool *pool, Id evrid, const char *epoch, const char *version for (s1 = evr1, r1 = 0; *s1; s1++) if (*s1 == '-') r1 = s1; - if (pool->disttype == DISTTYPE_HAIKU) - { - /* make sure it's really a release, releases always are numeric */ - if (r1 && (r1[1] < '0' || r1[1] > '9')) - r1 = 0; - } if (version) { r = solv_vercmp(evr1, r1 ? r1 : s1, version, version + strlen(version)); diff --git a/src/rules.c b/src/rules.c index b191268b..317dc773 100644 --- a/src/rules.c +++ b/src/rules.c @@ -1609,8 +1609,6 @@ jobtodisablelist(Solver *solv, Id how, Id what, Queue *q) if (pool->disttype != DISTTYPE_DEB) { const char *rel = strrchr(pool_id2str(pool, rd->evr), '-'); - if (rel && pool->disttype == DISTTYPE_HAIKU && (rel[1] < '0' || rel[1] > '9')) - rel = 0; set |= rel ? SOLVER_SETEVR : SOLVER_SETEV; } else diff --git a/src/selection.c b/src/selection.c index df09b5f1..8ec633fc 100644 --- a/src/selection.c +++ b/src/selection.c @@ -219,8 +219,6 @@ selection_filter_rel(Pool *pool, Queue *selection, Id relflags, Id relevr) else { const char *rel = strrchr(pool_id2str(pool, relevr), '-'); - if (rel && pool->disttype == DISTTYPE_HAIKU && (rel[1] < '0' || rel[1] > '9')) - rel = 0; selection->elements[i] |= rel ? SOLVER_SETEVR : SOLVER_SETEV; } }