if (D != 0) {
builtin.push_back("none");
for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) {
- string const name = Ent->d_name;
+ string const name = SubstVar(Ent->d_name, "%5f", "_");
size_t const foundDash = name.rfind("-");
size_t const foundUnderscore = name.rfind("_", foundDash);
if (foundDash == string::npos || foundUnderscore == string::npos ||
* doc/*.xml:
- add a few translator notes and reword some paragraphs to ensure that
translators and users alike can better understand them (Closes: #669409)
+ * apt-pkg/aptconfiguration.cc:
+ - longcode Translation files are saved with encoded underscore,
+ so make sure to pick these files up as well for Acquire::Languages
[ Raphael Geissert ]
* apt-pkg/acquire*.cc:
#include <iostream>
#define equals(x,y) assertEquals(y, x, __LINE__)
+#define equalsNot(x,y) assertEqualsNot(y, x, __LINE__)
template < typename X, typename Y >
void OutputAssertEqual(X expect, char const* compare, Y get, unsigned long const &line) {
OutputAssertEqual(expect, "==", get, line);
}
+template < typename X, typename Y >
+void assertEqualsNot(X expect, Y get, unsigned long const &line) {
+ if (expect != get)
+ return;
+ OutputAssertEqual(expect, "!=", get, line);
+}
+
void assertEquals(unsigned int const &expect, int const &get, unsigned long const &line) {
if (get < 0)
OutputAssertEqual(expect, "==", get, line);
OutputAssertEqualOr3(expect1, expect2, expect3, "==", get, line);
}
+#define equalsOr4(v,w,x,y,z) assertEqualsOr4(w, x, y, z, v, __LINE__)
+
+template < typename X, typename Y >
+void OutputAssertEqualOr4(X expect1, X expect2, X expect3, X expect4, char const* compare, Y get, unsigned long const &line) {
+ std::cerr << "Test FAILED: »" << expect1 << "« or »" << expect2 << "« or »" << expect3 << "« or »" << expect4 << "« " << compare << " »" << get << "« at line " << line << std::endl;
+}
+
+template < typename X, typename Y >
+void assertEqualsOr4(X expect1, X expect2, X expect3, X expect4, Y get, unsigned long const &line) {
+ if (expect1 == get || expect2 == get || expect3 == get || expect4 == get)
+ return;
+ OutputAssertEqualOr4(expect1, expect2, expect3, expect4, "==", get, line);
+}
// simple helper to quickly output a vectors
template < typename X >
_config->Set("Dir::State::lists", argv[1]);
vec = APT::Configuration::getLanguages(true, false, env);
- equals(vec.size(), 7);
+ equals(vec.size(), 8);
equals(vec[0], "de_DE");
equals(vec[1], "de");
equals(vec[2], "en");
equals(vec[3], "none");
- equalsOr3(vec[4], "pt", "tr", "ast_DE");
- equalsOr3(vec[5], "tr", "pt", "ast_DE");
- equalsOr3(vec[6], "tr", "pt", "ast_DE");
+ equalsOr4(vec[4], "pt", "tr", "ast_DE", "tlh_DE");
+ equalsOr4(vec[5], "tr", "pt", "ast_DE", "tlh_DE");
+ equalsOr4(vec[6], "tr", "pt", "ast_DE", "tlh_DE");
+ equalsOr4(vec[7], "tr", "pt", "ast_DE", "tlh_DE");
+ equalsNot(vec[4], vec[5]);
+ equalsNot(vec[4], vec[6]);
+ equalsNot(vec[4], vec[7]);
+ equalsNot(vec[5], vec[6]);
+ equalsNot(vec[5], vec[7]);
+ equalsNot(vec[6], vec[7]);
_config->Set("Acquire::Languages", "none");
vec = APT::Configuration::getLanguages(true, false, env);
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \
"${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" \
- "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE"
+ "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE" \
+ "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tlh%5fDE"
elif [ $name = "HashSums${EXT}" ]; then
TMP="$(readlink -f "./${0}")"
echo -n "Testing with ${NAME} "