summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalev Lember <klember@redhat.com>2019-01-04 12:54:38 +0100
committerKalev Lember <klember@redhat.com>2019-01-04 12:57:19 +0100
commit425d551d2f357335aaa5adcee311579a2aec6acb (patch)
tree6e4da1fad7c200aad3626981c41b204f50f77c6a
parent83915db0b30f7093ee8250110bd3a4ff6a96d7f0 (diff)
downloadappstream-glib-425d551d2f357335aaa5adcee311579a2aec6acb.tar.gz
Use as_utils_vercmp_full internally
This fixes, among other things, appdata validation when the version goes from 9.5 to 10, or 0.9 to 1. This partially fixes https://github.com/hughsie/appstream-glib/issues/270 We're still failing to correctly compare "Build 9.5" to "Build 10".
-rw-r--r--client/as-util.c2
-rw-r--r--libappstream-builder/asb-package.c4
-rw-r--r--libappstream-glib/as-app-validate.c2
-rw-r--r--libappstream-glib/as-release.c2
-rw-r--r--libappstream-glib/as-require.c12
5 files changed, 11 insertions, 11 deletions
diff --git a/client/as-util.c b/client/as-util.c
index 52916ee..f2f337e 100644
--- a/client/as-util.c
+++ b/client/as-util.c
@@ -4248,7 +4248,7 @@ as_util_vercmp (AsUtilPrivate *priv, gchar **values, GError **error)
}
/* compare */
- rc = as_utils_vercmp (values[0], values[1]);
+ rc = as_utils_vercmp_full (values[0], values[1], AS_VERSION_COMPARE_FLAG_NONE);
if (rc == G_MAXINT) {
g_set_error_literal (error,
AS_ERROR,
diff --git a/libappstream-builder/asb-package.c b/libappstream-builder/asb-package.c
index 0b62b74..dd794ab 100644
--- a/libappstream-builder/asb-package.c
+++ b/libappstream-builder/asb-package.c
@@ -1158,12 +1158,12 @@ asb_package_compare (AsbPackage *pkg1, AsbPackage *pkg2)
return 1;
/* check version */
- rc = as_utils_vercmp (priv1->version, priv2->version);
+ rc = as_utils_vercmp_full (priv1->version, priv2->version, AS_VERSION_COMPARE_FLAG_NONE);
if (rc != 0)
return rc;
/* check release */
- rc = as_utils_vercmp (priv1->release, priv2->release);
+ rc = as_utils_vercmp_full (priv1->release, priv2->release, AS_VERSION_COMPARE_FLAG_NONE);
if (rc != 0)
return rc;
diff --git a/libappstream-glib/as-app-validate.c b/libappstream-glib/as-app-validate.c
index 628a527..a9ad2ca 100644
--- a/libappstream-glib/as-app-validate.c
+++ b/libappstream-glib/as-app-validate.c
@@ -944,7 +944,7 @@ as_app_validate_releases (AsApp *app, AsAppValidateHelper *helper, GError **erro
const gchar *version_old = as_release_get_version (release_old);
if (version == NULL || version_old == NULL)
continue;
- if (as_utils_vercmp (version, version_old) > 0) {
+ if (as_utils_vercmp_full (version, version_old, AS_VERSION_COMPARE_FLAG_NONE) > 0) {
ai_app_validate_add (helper,
AS_PROBLEM_KIND_TAG_INVALID,
"<release> versions are not in order "
diff --git a/libappstream-glib/as-release.c b/libappstream-glib/as-release.c
index 9c6ec59..e4d58c6 100644
--- a/libappstream-glib/as-release.c
+++ b/libappstream-glib/as-release.c
@@ -249,7 +249,7 @@ as_release_vercmp (AsRelease *rel1, AsRelease *rel2)
return 1;
/* fall back to the version strings */
- val = as_utils_vercmp (priv2->version, priv1->version);
+ val = as_utils_vercmp_full (priv2->version, priv1->version, AS_VERSION_COMPARE_FLAG_NONE);
if (val != G_MAXINT)
return val;
diff --git a/libappstream-glib/as-require.c b/libappstream-glib/as-require.c
index 4604e79..11a1dc3 100644
--- a/libappstream-glib/as-require.c
+++ b/libappstream-glib/as-require.c
@@ -369,27 +369,27 @@ as_require_version_compare (AsRequire *require,
switch (priv->compare) {
case AS_REQUIRE_COMPARE_EQ:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc == 0;
break;
case AS_REQUIRE_COMPARE_NE:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc != 0;
break;
case AS_REQUIRE_COMPARE_LT:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc < 0;
break;
case AS_REQUIRE_COMPARE_GT:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc > 0;
break;
case AS_REQUIRE_COMPARE_LE:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc <= 0;
break;
case AS_REQUIRE_COMPARE_GE:
- rc = as_utils_vercmp (version, priv->version);
+ rc = as_utils_vercmp_full (version, priv->version, AS_VERSION_COMPARE_FLAG_NONE);
ret = rc >= 0;
break;
case AS_REQUIRE_COMPARE_GLOB: