PKG_LOCALITY_LOCAL was confusing because the enum is used with -Q, so
all packages are "local".  Also reversed the config->op_q_locality
assignment so that the locality matches the option used.

Signed-off-by: Andrew Gregory <[email protected]>
---
 src/pacman/conf.h   | 2 +-
 src/pacman/pacman.c | 4 ++--
 src/pacman/query.c  | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 45e48c0..c2ed1ca 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -188,7 +188,7 @@ enum {
 /** package locality */
 enum {
        PKG_LOCALITY_UNSET = 0,
-       PKG_LOCALITY_LOCAL = (1 << 0),
+       PKG_LOCALITY_NATIVE = (1 << 0),
        PKG_LOCALITY_FOREIGN = (1 << 1)
 };
 
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 4e91608..578fa99 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -512,11 +512,11 @@ static int parsearg_query(int opt)
                        break;
                case OP_FOREIGN:
                case 'm':
-                       config->op_q_locality |= PKG_LOCALITY_LOCAL;
+                       config->op_q_locality |= PKG_LOCALITY_FOREIGN;
                        break;
                case OP_NATIVE:
                case 'n':
-                       config->op_q_locality |= PKG_LOCALITY_FOREIGN;
+                       config->op_q_locality |= PKG_LOCALITY_NATIVE;
                        break;
                case OP_OWNS:
                case 'o':
diff --git a/src/pacman/query.c b/src/pacman/query.c
index c9c82b9..5f9f681 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -241,7 +241,7 @@ static unsigned short pkg_get_locality(alpm_pkg_t *pkg)
 
        for(j = sync_dbs; j; j = alpm_list_next(j)) {
                if(alpm_db_get_pkg(j->data, pkgname)) {
-                       return PKG_LOCALITY_LOCAL;
+                       return PKG_LOCALITY_NATIVE;
                }
        }
        return PKG_LOCALITY_FOREIGN;
@@ -275,7 +275,7 @@ static int filter(alpm_pkg_t *pkg)
                return 0;
        }
        /* check if this pkg is or isn't in a sync DB */
-       if(config->op_q_locality && config->op_q_locality & 
pkg_get_locality(pkg)) {
+       if(config->op_q_locality && config->op_q_locality != 
pkg_get_locality(pkg)) {
                return 0;
        }
        /* check if this pkg is unrequired */
-- 
1.8.4


Reply via email to