From fe09abec099fb3ab0e8c21f6ba90de8ecc6a016e Mon Sep 17 00:00:00 2001 From: ticktock35 Date: Mon, 15 Dec 2008 00:31:22 -0500 Subject: adding list_upgradable opkg: refactory the upgradable list git-svn-id: http://opkg.googlecode.com/svn/trunk@164 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/opkg.c') diff --git a/libopkg/opkg.c b/libopkg/opkg.c index 35ddb89..60475f3 100644 --- a/libopkg/opkg.c +++ b/libopkg/opkg.c @@ -929,47 +929,33 @@ opkg_list_packages (opkg_t *opkg, opkg_package_callback_t callback, void *user_d int opkg_list_upgradable_packages (opkg_t *opkg, opkg_package_callback_t callback, void *user_data) { - pkg_vec_t *all; - int i; + pkg_vec_t *all; + int i; - opkg_assert (opkg); - opkg_assert (callback); + opkg_assert (opkg); + opkg_assert (callback); - /* ensure all data is valid */ - pkg_info_preinstall_check (opkg->conf); + /* ensure all data is valid */ + pkg_info_preinstall_check (opkg->conf); - all = pkg_vec_alloc (); - pkg_hash_fetch_available (&opkg->conf->pkg_hash, all); - for (i = 0; i < all->len; i++) - { - pkg_t *old, *new; - int cmp; - opkg_package_t *package; + all = opkg_upgrade_all_list_get (opkg->conf); + for (i = 0; i < all->len; i++) + { + pkg_t *old, *new; + opkg_package_t *package; - old = all->pkgs[i]; - - if (old->state_status != SS_INSTALLED) - continue; + old = all->pkgs[i]; - new = pkg_hash_fetch_best_installation_candidate_by_name(opkg->conf, old->name, NULL); - if (new == NULL) { - /* XXX: Notice: Assuming locally install package is up to date */ - continue; - } - - cmp = pkg_compare_versions(old, new); + new = pkg_hash_fetch_best_installation_candidate_by_name(opkg->conf, old->name, NULL); - if (cmp < 0) - { - package = old_pkg_to_new (new); - callback (opkg, package, user_data); - opkg_package_free (package); + package = old_pkg_to_new (new); + callback (opkg, package, user_data); + opkg_package_free (package); } - } - pkg_vec_free (all); + pkg_vec_free (all); - return 0; + return 0; } opkg_package_t* -- cgit v0.9.1