winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit db37875c50f759485cfb63f1969e95b3e6e63d3a
parent b5a1b64a40e83947f33bd3a767f4b394bd7ee26f
Author: yao-msft <50888816+yao-msft@users.noreply.github.com>
Date:   Tue, 16 Mar 2021 10:17:26 -0700

Fix failure in indexing when duplicate PackageName or Publisher values exist in multiple localizations (#798)


Diffstat:
Msrc/AppInstallerRepositoryCore/Microsoft/Schema/1_2/Interface_1_2.cpp | 12++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/AppInstallerRepositoryCore/Microsoft/Schema/1_2/Interface_1_2.cpp b/src/AppInstallerRepositoryCore/Microsoft/Schema/1_2/Interface_1_2.cpp @@ -17,7 +17,11 @@ namespace AppInstaller::Repository::Microsoft::Schema::V1_2 { if (localization.Contains(Manifest::Localization::PackageName)) { - out.emplace_back(normalizer.NormalizeName(Utility::FoldCase(localization.Get<Manifest::Localization::PackageName>())).Name()); + Utility::NormalizedString value = normalizer.NormalizeName(Utility::FoldCase(localization.Get<Manifest::Localization::PackageName>())).Name(); + if (std::find(out.begin(), out.end(), value) == out.end()) + { + out.emplace_back(std::move(value)); + } } } @@ -25,7 +29,11 @@ namespace AppInstaller::Repository::Microsoft::Schema::V1_2 { if (localization.Contains(Manifest::Localization::Publisher)) { - out.emplace_back(normalizer.NormalizePublisher(Utility::FoldCase(localization.Get<Manifest::Localization::Publisher>()))); + Utility::NormalizedString value = normalizer.NormalizePublisher(Utility::FoldCase(localization.Get<Manifest::Localization::Publisher>())); + if (std::find(out.begin(), out.end(), value) == out.end()) + { + out.emplace_back(std::move(value)); + } } }