summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2011-10-05 22:45:22 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2011-10-05 22:45:22 +0200
commit7cb28948317e0d326c8663ec3c9ce995d5bf65e8 (patch)
tree42df84085ed6eaa11a035ae731a6ee545e2687ea /apt-pkg
parent0fffbc8ce4cb6357f59db63db5571f46a668a66b (diff)
* 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)
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/aptconfiguration.cc6
-rw-r--r--apt-pkg/deb/debmetaindex.cc8
2 files changed, 10 insertions, 4 deletions
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<std::string> 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<std::string> 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<std::string> 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<string>::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 <apt-pkg/error.h>
#include <set>
+#include <algorithm>
using namespace std;
@@ -201,7 +202,11 @@ vector <struct IndexTarget *>* debReleaseIndex::ComputeIndexTargets() const {
}
}
- std::vector<std::string> const lang = APT::Configuration::getLanguages(true);
+ std::vector<std::string> lang = APT::Configuration::getLanguages(true);
+ std::vector<std::string>::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 <struct IndexTarget *>* debReleaseIndex::ComputeIndexTargets() const {
s != sections.end(); ++s) {
for (std::vector<std::string>::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);