int i;
int found = 0;
char *pkg_version = pkg_get_string(pkg, PKG_VERSION);
- char *pkg_architecture = pkg_get_string(pkg, PKG_ARCHITECTURE);
+ char *pkg_architecture = pkg_get_architecture(pkg);
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);
+ vec_architecture = pkg_get_architecture(vec->pkgs[i]);
opkg_msg(DEBUG2, "%s %s arch=%s vs. %s %s arch=%s.\n",
pkg->name, pkg_version, pkg_architecture,
pkg_t **pkgs = vec->pkgs;
int npkgs = vec->len;
int i;
+ abstract_pkg_t **providers, *provider;
+
for (i = 0; i < npkgs; i++) {
pkg_t *pkg = pkgs[i];
if (fnmatch(pattern, pkg->name, 0) == 0) {
pkg->state_flag |= SF_MARKED;
matching_count++;
}
+ else {
+ providers = pkg_get_ptr(pkg, PKG_PROVIDES);
+ while (providers && *providers) {
+ provider = *providers++;
+ if (fnmatch(pattern, provider->name, 0) == 0) {
+ pkg->state_flag |= SF_MARKED;
+ matching_count++;
+ }
+ }
+ }
}
return matching_count;
}
return 0;
}
-void abstract_pkg_vec_sort(pkg_vec_t * vec, compare_fcn_t compar)
+void abstract_pkg_vec_sort(abstract_pkg_vec_t * vec, compare_fcn_t compar)
{
qsort(vec->pkgs, vec->len, sizeof(pkg_t *), compar);
}