X-Git-Url: https://git.librecmc.org/?p=oweals%2Fopkg-lede.git;a=blobdiff_plain;f=libopkg%2Fpkg_vec.c;fp=libopkg%2Fpkg_vec.c;h=d37a18505abedcc3f70755674656bb6b3b82d3d5;hp=162c70ff9f0597443f83e4c0b27251cf9a740ba5;hb=2035cbf3a489fd762c4077478602d2022cb537f6;hpb=c723fb3996c89cd433d33fdb20c28527bc050c88 diff --git a/libopkg/pkg_vec.c b/libopkg/pkg_vec.c index 162c70f..d37a185 100644 --- a/libopkg/pkg_vec.c +++ b/libopkg/pkg_vec.c @@ -52,27 +52,29 @@ void pkg_vec_insert_merge(pkg_vec_t * vec, pkg_t * pkg, int set_status) { int i; int found = 0; + char *pkg_version = pkg_get_string(pkg, PKG_VERSION); + char *pkg_architecture = pkg_get_string(pkg, PKG_ARCHITECTURE); + char *vec_architecture; /* look for a duplicate pkg by name, version, and architecture */ for (i = 0; i < vec->len; i++) { + vec_architecture = pkg_get_string(vec->pkgs[i], PKG_ARCHITECTURE); + opkg_msg(DEBUG2, "%s %s arch=%s vs. %s %s arch=%s.\n", - pkg->name, pkg->version, pkg->architecture, - vec->pkgs[i]->name, vec->pkgs[i]->version, - vec->pkgs[i]->architecture); + pkg->name, pkg_version, pkg_architecture, + vec->pkgs[i]->name, pkg_get_string(vec->pkgs[i], PKG_VERSION), + vec_architecture); /* if the name,ver,arch matches, or the name matches and the * package is marked deinstall/hold */ if ((!strcmp(pkg->name, vec->pkgs[i]->name)) && ((pkg->state_want == SW_DEINSTALL && (pkg->state_flag & SF_HOLD)) || ((pkg_compare_versions(pkg, vec->pkgs[i]) == 0) - && - (!strcmp - (pkg->architecture, - vec->pkgs[i]->architecture))))) { + && (!strcmp(pkg_architecture, vec_architecture))))) { found = 1; opkg_msg(DEBUG2, "Duplicate for pkg=%s version=%s arch=%s.\n", - pkg->name, pkg->version, pkg->architecture); + pkg->name, pkg_version, pkg_architecture); break; } } @@ -80,14 +82,14 @@ void pkg_vec_insert_merge(pkg_vec_t * vec, pkg_t * pkg, int set_status) /* we didn't find one, add it */ if (!found) { opkg_msg(DEBUG2, "Adding new pkg=%s version=%s arch=%s.\n", - pkg->name, pkg->version, pkg->architecture); + pkg->name, pkg_version, pkg_architecture); pkg_vec_insert(vec, pkg); return; } /* update the one that we have */ opkg_msg(DEBUG2, "Merging %s %s arch=%s, set_status=%d.\n", - pkg->name, pkg->version, pkg->architecture, set_status); + pkg->name, pkg_version, pkg_architecture, set_status); if (set_status) { /* This is from the status file, * so need to merge with existing database */