deps.c: split _alpm_depcmp into _alpm_depcmp_provides
This allows to reuse the provision checker for a simple list of provisions without a package. Signed-off-by: Florian Pritz <bluewind@xinu.at>
This commit is contained in:
parent
b275e5184e
commit
13c9745302
2 changed files with 15 additions and 7 deletions
|
@ -416,17 +416,18 @@ int _alpm_depcmp_literal(alpm_pkg_t *pkg, alpm_depend_t *dep)
|
|||
return dep_vercmp(pkg->version, dep->mod, dep->version);
|
||||
}
|
||||
|
||||
int _alpm_depcmp(alpm_pkg_t *pkg, alpm_depend_t *dep)
|
||||
/**
|
||||
* @param dep dependency to check agains the provision list
|
||||
* @param provisions provision list
|
||||
* @return 1 if provider is found, 0 otherwise
|
||||
*/
|
||||
int _alpm_depcmp_provides(alpm_depend_t *dep, alpm_list_t *provisions)
|
||||
{
|
||||
int satisfy = 0;
|
||||
alpm_list_t *i;
|
||||
int satisfy = _alpm_depcmp_literal(pkg, dep);
|
||||
|
||||
if(satisfy) {
|
||||
return satisfy;
|
||||
}
|
||||
|
||||
/* check provisions, name and version if available */
|
||||
for(i = alpm_pkg_get_provides(pkg); i && !satisfy; i = i->next) {
|
||||
for(i = provisions; i && !satisfy; i = i->next) {
|
||||
alpm_depend_t *provision = i->data;
|
||||
|
||||
if(dep->mod == ALPM_DEP_MOD_ANY) {
|
||||
|
@ -444,6 +445,12 @@ int _alpm_depcmp(alpm_pkg_t *pkg, alpm_depend_t *dep)
|
|||
return satisfy;
|
||||
}
|
||||
|
||||
int _alpm_depcmp(alpm_pkg_t *pkg, alpm_depend_t *dep)
|
||||
{
|
||||
return _alpm_depcmp_literal(pkg, dep)
|
||||
|| _alpm_depcmp_provides(dep, alpm_pkg_get_provides(pkg));
|
||||
}
|
||||
|
||||
alpm_depend_t *_alpm_splitdep(const char *depstring)
|
||||
{
|
||||
alpm_depend_t *depend;
|
||||
|
|
|
@ -37,6 +37,7 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs, alpm_pkg_t
|
|||
alpm_list_t **data);
|
||||
alpm_depend_t *_alpm_splitdep(const char *depstring);
|
||||
int _alpm_depcmp_literal(alpm_pkg_t *pkg, alpm_depend_t *dep);
|
||||
int _alpm_depcmp_provides(alpm_depend_t *dep, alpm_list_t *provisions);
|
||||
int _alpm_depcmp(alpm_pkg_t *pkg, alpm_depend_t *dep);
|
||||
|
||||
#endif /* _ALPM_DEPS_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue