This omits the finding of matching provisions and only checks the
package itself against the provided dep.

Signed-off-by: Dan McGee <[email protected]>
---
 lib/libalpm/deps.c |   23 +++++++++++++----------
 lib/libalpm/deps.h |    1 +
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index de9ae44..48e8e77 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -368,20 +368,23 @@ static int dep_vercmp(const char *version1, alpm_depmod_t 
mod,
        return equal;
 }
 
+int _alpm_depcmp_literal(alpm_pkg_t *pkg, alpm_depend_t *dep)
+{
+       if(pkg->name_hash != dep->name_hash
+                       || strcmp(pkg->name, dep->name) != 0) {
+               /* skip more expensive checks */
+               return 0;
+       }
+       return dep_vercmp(pkg->version, dep->mod, dep->version);
+}
+
 int _alpm_depcmp(alpm_pkg_t *pkg, alpm_depend_t *dep)
 {
        alpm_list_t *i;
-       int satisfy = 0;
+       int satisfy = _alpm_depcmp_literal(pkg, dep);
 
-       /* check (pkg->name, pkg->version) */
-       if(pkg->name_hash != dep->name_hash) {
-               /* skip more expensive checks */
-       } else {
-               satisfy = (strcmp(pkg->name, dep->name) == 0
-                               && dep_vercmp(pkg->version, dep->mod, 
dep->version));
-               if(satisfy) {
-                       return satisfy;
-               }
+       if(satisfy) {
+               return satisfy;
        }
 
        /* check provisions, name and version if available */
diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h
index 6ef4cbb..29e69eb 100644
--- a/lib/libalpm/deps.h
+++ b/lib/libalpm/deps.h
@@ -36,6 +36,7 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t 
*localpkgs, alpm_pkg_t
                alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t 
*remove,
                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(alpm_pkg_t *pkg, alpm_depend_t *dep);
 
 #endif /* _ALPM_DEPS_H */
-- 
1.7.6


Reply via email to