pkgman: Use natural sorting in "search" output.

Fixes #18676.
This commit is contained in:
Augustin Cavalier
2023-12-23 23:05:08 -05:00
parent 0387c6accb
commit 45b72f4c60
+7 -1
View File
@@ -17,6 +17,8 @@
#include <algorithm> #include <algorithm>
#include <set> #include <set>
#include <Locale.h>
#include <package/solver/SolverPackage.h> #include <package/solver/SolverPackage.h>
#include <TextTable.h> #include <TextTable.h>
@@ -91,11 +93,13 @@ struct PackageComparator {
fSystemRepository(systemRepository), fSystemRepository(systemRepository),
fHomeRepository(homeRepository) fHomeRepository(homeRepository)
{ {
BLocale::Default()->GetCollator(&fCollator);
fCollator.SetNumericSorting(true);
} }
int operator()(const BSolverPackage* a, const BSolverPackage* b) const int operator()(const BSolverPackage* a, const BSolverPackage* b) const
{ {
int cmp = a->Name().Compare(b->Name()); int cmp = fCollator.Compare(a->Name().String(), b->Name().String());
if (cmp != 0) if (cmp != 0)
return cmp; return cmp;
@@ -119,6 +123,8 @@ struct PackageComparator {
private: private:
const BSolverRepository* fSystemRepository; const BSolverRepository* fSystemRepository;
const BSolverRepository* fHomeRepository; const BSolverRepository* fHomeRepository;
BCollator fCollator;
}; };