adapt SET_EV/SET_EVR magic to haiku for completeness
authorMichael Schroeder <mls@suse.de>
Wed, 17 Apr 2013 12:02:09 +0000 (14:02 +0200)
committerMichael Schroeder <mls@suse.de>
Wed, 17 Apr 2013 12:02:09 +0000 (14:02 +0200)
src/rules.c
src/selection.c

index cb1b421..9307394 100644 (file)
@@ -1608,11 +1608,10 @@ jobtodisablelist(Solver *solv, Id how, Id what, Queue *q)
                {
                  if (pool->disttype != DISTTYPE_DEB)
                    {
-                     const char *evr = pool_id2str(pool, rd->evr);
-                     if (strchr(evr, '-'))
-                       set |= SOLVER_SETEVR;
-                     else
-                       set |= SOLVER_SETEV;
+                     const char *rel = strchr(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
                    set |= SOLVER_SETEVR;
index 9ba6336..8fc1998 100644 (file)
@@ -217,7 +217,12 @@ selection_filter_rel(Pool *pool, Queue *selection, Id relflags, Id relevr)
          if (pool->disttype == DISTTYPE_DEB)
             selection->elements[i] |= SOLVER_SETEVR;   /* debian can't match version only like rpm */
          else
-           selection->elements[i] |= strchr(pool_id2str(pool, relevr), '-') != 0 ? SOLVER_SETEVR : SOLVER_SETEV;
+           {
+             const char *rel =  strchr(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;
+           }
         }
     }
   selection_prune(pool, selection);