]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Don't special case release-less provides in sort_by_common_dep any more
authorMichael Schroeder <mls@suse.de>
Thu, 8 Dec 2016 13:49:31 +0000 (14:49 +0100)
committerMichael Schroeder <mls@suse.de>
Thu, 8 Dec 2016 13:49:31 +0000 (14:49 +0100)
Instead use EVRCMP_MATCH_RELEASE, but leave the special handling of
the -2 return code intact.

src/policy.c

index 7ed52d98fd96d3ed0616072b3ed567e45e8ce6d9..8b4c2e4bd8022143c3ed40b1093f9ebd8269a061 100644 (file)
@@ -981,23 +981,7 @@ sort_by_name_evr_sortcmp(const void *ap, const void *bp, void *dp)
     return 0;
   a = aa[2] < 0 ? -aa[2] : aa[2];
   b = bb[2] < 0 ? -bb[2] : bb[2];
-  if (pool->disttype != DISTTYPE_DEB && a != b)
-    {
-      /* treat release-less versions different */
-      const char *as = pool_id2str(pool, a);
-      const char *bs = pool_id2str(pool, b);
-      if (strchr(as, '-'))
-       {
-         if (!strchr(bs, '-'))
-           return -2;
-       }
-      else
-       {
-         if (strchr(bs, '-'))
-           return 2;
-       }
-    }
-  r = pool_evrcmp(pool, b, a, EVRCMP_COMPARE);
+  r = pool_evrcmp(pool, b, a, pool->disttype != DISTTYPE_DEB ? EVRCMP_MATCH_RELEASE : EVRCMP_COMPARE);
   if (!r && (aa[2] < 0 || bb[2] < 0))
     {
       if (bb[2] >= 0)
@@ -1005,9 +989,7 @@ sort_by_name_evr_sortcmp(const void *ap, const void *bp, void *dp)
       if (aa[2] >= 0)
        return -1;
     }
-  if (r)
-    return r < 0 ? -1 : 1;
-  return 0;
+  return r;
 }
 
 /* common end of sort_by_srcversion and sort_by_common_dep */