diff options
author | Richard Hughes <richard@hughsie.com> | 2015-03-04 10:21:51 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2015-03-04 10:21:51 +0000 |
commit | e23ea1641a6e1dea9c61a4da3a7862d31cf5c3e0 (patch) | |
tree | 6ead42d18e632730f0b46d3b21d43b092b290f37 | |
parent | 6a75be8747ae649b21a8bab5b949fce44683581b (diff) | |
download | appstream-glib-e23ea1641a6e1dea9c61a4da3a7862d31cf5c3e0.tar.gz |
Sort releases in newest-to-oldest order
-rw-r--r-- | libappstream-glib/as-app.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libappstream-glib/as-app.c b/libappstream-glib/as-app.c index 31d4efa..6bc9d74 100644 --- a/libappstream-glib/as-app.c +++ b/libappstream-glib/as-app.c @@ -2890,6 +2890,18 @@ as_app_ptr_array_sort_cb (gconstpointer a, gconstpointer b) } /** + * as_app_releases_sort_cb: + **/ +static gint +as_app_releases_sort_cb (gconstpointer a, gconstpointer b) +{ + AsRelease **rel1 = (AsRelease **) a; + AsRelease **rel2 = (AsRelease **) b; + return g_strcmp0 (as_release_get_version (*rel2), + as_release_get_version (*rel1)); +} + +/** * as_app_list_sort_cb: **/ static gint @@ -3212,6 +3224,7 @@ as_app_node_insert (AsApp *app, GNode *parent, AsNodeContext *ctx) /* <releases> */ if (priv->releases->len > 0 && api_version >= 0.6) { + g_ptr_array_sort (priv->releases, as_app_releases_sort_cb); node_tmp = as_node_insert (node_app, "releases", NULL, 0, NULL); for (i = 0; i < priv->releases->len && i < 3; i++) { rel = g_ptr_array_index (priv->releases, i); |