From 7cb28948317e0d326c8663ec3c9ce995d5bf65e8 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 5 Oct 2011 22:45:22 +0200 Subject: * apt-pkg/deb/debmetaindex.cc: - none is a separator, not a language: no need for Index (Closes: #624218) * apt-pkg/aptconfiguration.cc: - do not builtin languages only if none is forced (Closes: #643787) --- apt-pkg/aptconfiguration.cc | 6 ++++-- apt-pkg/deb/debmetaindex.cc | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'apt-pkg') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index a0566e05e..7441b452c 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -142,7 +142,7 @@ std::vector const Configuration::getLanguages(bool const &All, for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) { string const name = Ent->d_name; size_t const foundDash = name.rfind("-"); - size_t const foundUnderscore = name.rfind("_"); + size_t const foundUnderscore = name.rfind("_", foundDash); if (foundDash == string::npos || foundUnderscore == string::npos || foundDash <= foundUnderscore || name.substr(foundUnderscore+1, foundDash-(foundUnderscore+1)) != "Translation") @@ -153,7 +153,7 @@ std::vector const Configuration::getLanguages(bool const &All, // Skip unusual files, like backups or that alike string::const_iterator s = c.begin(); for (;s != c.end(); ++s) { - if (isalpha(*s) == 0) + if (isalpha(*s) == 0 && *s != '_') break; } if (s != c.end()) @@ -234,6 +234,8 @@ std::vector const Configuration::getLanguages(bool const &All, codes = environment; } else if (forceLang != "none") codes.push_back(forceLang); + else //if (forceLang == "none") + builtin.clear(); allCodes = codes; for (std::vector::const_iterator b = builtin.begin(); b != builtin.end(); ++b) diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index c509c29c7..5d3a80aa5 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -13,6 +13,7 @@ #include #include +#include using namespace std; @@ -201,7 +202,11 @@ vector * debReleaseIndex::ComputeIndexTargets() const { } } - std::vector const lang = APT::Configuration::getLanguages(true); + std::vector lang = APT::Configuration::getLanguages(true); + std::vector::iterator lend = std::remove(lang.begin(), lang.end(), "none"); + if (lend != lang.end()) + lang.erase(lend); + if (lang.empty() == true) return IndexTargets; @@ -213,7 +218,6 @@ vector * debReleaseIndex::ComputeIndexTargets() const { s != sections.end(); ++s) { for (std::vector::const_iterator l = lang.begin(); l != lang.end(); ++l) { - if (*l == "none") continue; IndexTarget * Target = new OptionalIndexTarget(); Target->ShortDesc = "Translation-" + *l; Target->MetaKey = TranslationIndexURISuffix(l->c_str(), *s); -- cgit v1.2.3