X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=libopkg%2Fpkg_vec.c;h=a9e2e73f8b96700ea35988a986d470258904ef49;hb=34571bad205b44dc153a84b32e170e2726cd05d0;hp=ce098bc367456e38e437a8e4d55b1d63601cd778;hpb=18740e62c08705f7aed12f1ec74c5c41361d8c3c;p=project%2Fopkg-lede.git diff --git a/libopkg/pkg_vec.c b/libopkg/pkg_vec.c index ce098bc..a9e2e73 100644 --- a/libopkg/pkg_vec.c +++ b/libopkg/pkg_vec.c @@ -140,12 +140,24 @@ int pkg_vec_mark_if_matches(pkg_vec_t * vec, const char *pattern) 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; }