#include "opkg.h"
#include "opkg_conf.h"
-#include "args.h"
#include "opkg_install.h"
#include "opkg_configure.h"
int
opkg_new()
{
- args_t args;
-
- args_init(&args);
-
- if (opkg_conf_init(&args))
+ if (opkg_conf_init())
goto err0;
- args_deinit(&args);
-
if (pkg_hash_load_feeds())
goto err1;
return result;
}
+static int
+pkg_compare_names_and_version(const void *a0, const void *b0)
+{
+ const pkg_t *a = *(const pkg_t **)a0;
+ const pkg_t *b = *(const pkg_t **)b0;
+ int ret;
+
+ ret = strcmp(a->name, b->name);
+
+ if (ret == 0)
+ ret = pkg_compare_versions(a, b);
+
+ return ret;
+}
int
opkg_list_packages(opkg_package_callback_t callback, void *user_data)
all = pkg_vec_alloc();
pkg_hash_fetch_available(all);
+
+ pkg_vec_sort(all, pkg_compare_names_and_version);
+
for (i = 0; i < all->len; i++) {
pkg_t *pkg;