diff options
Diffstat (limited to 'apt-pkg/deb/deblistparser.cc')
-rw-r--r-- | apt-pkg/deb/deblistparser.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index bcfbcccc2..baa1e46ec 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -258,12 +258,19 @@ std::vector<std::string> debListParser::AvailableDescriptionLanguages() { std::vector<std::string> const understood = APT::Configuration::getLanguages(); std::vector<std::string> avail; + static constexpr int prefixLen = 12; + static constexpr int avgLanguageLen = 5; + std::string tagname; + + tagname.reserve(prefixLen + avgLanguageLen); + tagname.assign("Description-"); if (Section.Exists("Description") == true) avail.push_back(""); for (std::vector<std::string>::const_iterator lang = understood.begin(); lang != understood.end(); ++lang) { - std::string const tagname = "Description-" + *lang; - if (Section.Exists(tagname.c_str()) == true) + tagname.resize(prefixLen); + tagname.append(*lang); + if (Section.Exists(tagname) == true) avail.push_back(*lang); } return avail; |