diff options
author | Daniel Hartwig <mandyke@gmail.com> | 2012-03-27 16:42:50 +0800 |
---|---|---|
committer | Daniel Hartwig <mandyke@gmail.com> | 2012-03-27 16:42:50 +0800 |
commit | 0de15d45b6d4b8750f192f626dac2e17c2abd3bd (patch) | |
tree | 95a399bf4f241af50178ce8494e4b6c2c9cf1565 | |
parent | e1772941b9bd291ec8f71eab4ae9080e127308cc (diff) | |
download | aptitude-0de15d45b6d4b8750f192f626dac2e17c2abd3bd.tar.gz |
?architecture generates match titles
-rw-r--r-- | src/generic/apt/matching/match.cc | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/src/generic/apt/matching/match.cc b/src/generic/apt/matching/match.cc index 9556aee0..44430ab7 100644 --- a/src/generic/apt/matching/match.cc +++ b/src/generic/apt/matching/match.cc @@ -907,8 +907,9 @@ namespace aptitude { pkgCache::VerIterator ver(target.get_version_iterator(cache)); - if(p->get_architecture_architecture() == ver.Arch()) - return match::make_atomic(p); + if(p->get_architecture_architecture().empty() == true || + p->get_architecture_architecture() == ver.Arch()) + return match::make_atomic(p, ver.Arch()); else return NULL; } @@ -1163,12 +1164,16 @@ namespace aptitude break; case pattern::foreign_architecture: - if(target.get_has_version() && - aptitude::apt::is_foreign_arch(target.get_version_iterator(cache))) - return match::make_atomic(p); - else + if(!target.get_has_version()) return NULL; - break; + + { + pkgCache::VerIterator ver(target.get_version_iterator(cache)); + if(aptitude::apt::is_foreign_arch(ver)) + return match::make_atomic(p, ver.Arch()); + else + return NULL; + } case pattern::garbage: if(!target.get_has_version()) @@ -1250,12 +1255,16 @@ namespace aptitude break; case pattern::native_architecture: - if(target.get_has_version() && - aptitude::apt::is_native_arch(target.get_version_iterator(cache))) - return match::make_atomic(p); - else + if(!target.get_has_version()) return NULL; - break; + + { + pkgCache::VerIterator ver(target.get_version_iterator(cache)); + if(aptitude::apt::is_native_arch(ver)) + return match::make_atomic(p, ver.Arch()); + else + return NULL; + } case pattern::new_tp: if(!target.get_has_version()) |