X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Frepo.c;h=f7eb125c3142062af6f199e8f36535c84de6ec0c;hb=0996af64d6d7a6900b78a835c05945a86e589a28;hp=bfac9f3678c64b49578d1310ee7536967186d81b;hpb=336a60ce0be198f8a0aa910a8ec0c27737f2a346;p=platform%2Fupstream%2Flibsolv.git diff --git a/src/repo.c b/src/repo.c index bfac9f3..f7eb125 100644 --- a/src/repo.c +++ b/src/repo.c @@ -784,6 +784,19 @@ repo_search_md(Repo *repo, Id p, Id keyname, struct matchdata *md) continue; if (keyname && !repodata_precheck_keyname(data, keyname)) continue; + if (keyname == SOLVABLE_FILELIST && !(md->flags & SEARCH_COMPLETE_FILELIST)) + { + /* do not search filelist extensions */ + if (data->state != REPODATA_AVAILABLE) + continue; + if (!repodata_precheck_keyname(data, REPOSITORY_EXTERNAL)) + continue; + for (j = 0; j < data->nkeys; j++) + if (data->keys[j].name == REPOSITORY_EXTERNAL) + break; + if (j == data->nkeys) + continue; + } if (data->state == REPODATA_STUB) { if (keyname) @@ -805,13 +818,6 @@ repo_search_md(Repo *repo, Id p, Id keyname, struct matchdata *md) repodata_search(data, p, keyname, md->flags, repo_matchvalue, md); if (md->stop > SEARCH_NEXT_KEY) break; - if (keyname == SOLVABLE_FILELIST) - { - if (!(md->flags & SEARCH_COMPLETE_FILELIST)) - break; - if (md->matcher.match && (md->flags & (SEARCH_STRINGMASK|SEARCH_NOCASE)) == SEARCH_STRING && repodata_filelistfilter_matches(data, md->matcher.match)) - break; - } } }