summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hartwig <mandyke@gmail.com>2012-06-28 14:35:22 +0800
committerDaniel Hartwig <mandyke@gmail.com>2012-06-28 14:35:22 +0800
commit6273f167cb14e5334bba0cc3cc2657091bdae0c3 (patch)
tree8a3ab865c1928605945f786806ae9df37635b623
parent8abd4ac9a7765d761116b56541df92006a2b322b (diff)
downloadaptitude-6273f167cb14e5334bba0cc3cc2657091bdae0c3.tar.gz
Improve arch-qualified pkg names with versions command
-rw-r--r--src/cmdline/cmdline_versions.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/cmdline/cmdline_versions.cc b/src/cmdline/cmdline_versions.cc
index ba6df3fa..936ddd59 100644
--- a/src/cmdline/cmdline_versions.cc
+++ b/src/cmdline/cmdline_versions.cc
@@ -597,7 +597,21 @@ int cmdline_versions(int argc, char *argv[], const char *status_fname,
cw::util::ref_ptr<m::pattern> m;
const pkgCache::PkgIterator pkg = (*apt_cache_file)->FindPkg(arg);
if(pkg.end() == false)
- m = m::pattern::make_exact_name(pkg.Name());
+ {
+ std::string name(arg);
+ const std::string::size_type archfound = name.find_last_of(':');
+ if(archfound != std::string::npos)
+ {
+ const std::string arch = name.substr(archfound + 1);
+ name.erase(archfound);
+ m = m::pattern::make_and(m::pattern::make_exact_name(pkg.Name()),
+ m::pattern::make_architecture(arch));
+ }
+ else
+ {
+ m = m::pattern::make_exact_name(pkg.Name());
+ }
+ }
else if(m::is_pattern(arg) == true)
m = m::parse(arg);
else