diff options
author | Daniel Hartwig <mandyke@gmail.com> | 2012-06-28 14:35:22 +0800 |
---|---|---|
committer | Daniel Hartwig <mandyke@gmail.com> | 2012-06-28 14:35:22 +0800 |
commit | 6273f167cb14e5334bba0cc3cc2657091bdae0c3 (patch) | |
tree | 8a3ab865c1928605945f786806ae9df37635b623 | |
parent | 8abd4ac9a7765d761116b56541df92006a2b322b (diff) | |
download | aptitude-6273f167cb14e5334bba0cc3cc2657091bdae0c3.tar.gz |
Improve arch-qualified pkg names with versions command
-rw-r--r-- | src/cmdline/cmdline_versions.cc | 16 |
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 |