diff options
Diffstat (limited to 'apt-private')
-rw-r--r-- | apt-private/private-cacheset.h | 15 | ||||
-rw-r--r-- | apt-private/private-list.cc | 2 |
2 files changed, 11 insertions, 6 deletions
diff --git a/apt-private/private-cacheset.h b/apt-private/private-cacheset.h index d20d00b68..3370bd03a 100644 --- a/apt-private/private-cacheset.h +++ b/apt-private/private-cacheset.h @@ -26,6 +26,7 @@ public: {} const pkgCache::DescFile * CachedDescFile() const { return descFile; } operator pkgCache::VerIterator() const { return iter; } + map_id_t ID() const { return iter->ID; } }; struct VersionSortDescriptionLocality /*{{{*/ @@ -36,17 +37,21 @@ struct VersionSortDescriptionLocality /*{{{*/ pkgCache::DescFile const *A = v_lhs.CachedDescFile(); pkgCache::DescFile const *B = v_rhs.CachedDescFile(); - if (A == nullptr && B == nullptr) - return false; - if (A == nullptr) + { + if (B == nullptr) + return v_lhs.ID() < v_rhs.ID(); return true; - - if (B == nullptr) + } + else if (B == nullptr) return false; if (A->File == B->File) + { + if (A->Offset == B->Offset) + return v_lhs.ID() < v_rhs.ID(); return A->Offset < B->Offset; + } return A->File < B->File; } diff --git a/apt-private/private-list.cc b/apt-private/private-list.cc index 2c9b349a3..7c8c89777 100644 --- a/apt-private/private-list.cc +++ b/apt-private/private-list.cc @@ -129,7 +129,7 @@ bool DoList(CommandLine &Cmd) else ListSingleVersion(CacheFile, records, V, outs, format); output_map.insert(std::make_pair<std::string, std::string>( - V.ParentPkg().Name(), outs.str())); + V.ParentPkg().FullName(), outs.str())); } // FIXME: SORT! and make sorting flexible (alphabetic, by pkg status) |