Haiku: The notation for the pre-release version part changed
authorIngo Weinhold <ingo_weinhold@gmx.de>
Thu, 18 Apr 2013 14:11:01 +0000 (16:11 +0200)
committerIngo Weinhold <ingo_weinhold@gmx.de>
Thu, 18 Apr 2013 16:10:44 +0000 (18:10 +0200)
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.

ext/testcase.c
src/evr.c
src/rules.c
src/selection.c

index 6c699e1..72f9dc8 100644 (file)
@@ -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);
index 4351a6f..e8fd12d 100644 (file)
--- 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));
index b191268..317dc77 100644 (file)
@@ -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
index df09b5f..8ec633f 100644 (file)
@@ -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;
            }
         }