summaryrefslogtreecommitdiff
path: root/apt-pkg/aptconfiguration.cc
diff options
context:
space:
mode:
authorMichael Vogt <egon@debian-devbox>2012-03-06 18:10:02 +0100
committerMichael Vogt <egon@debian-devbox>2012-03-06 18:10:02 +0100
commit7296e47e10687e554a4756f65e9c842f88e696e3 (patch)
treece9c6f63729900dcf0d221c2aaafbfef91f34ed4 /apt-pkg/aptconfiguration.cc
parente2625f67efae93c2c8affff41ce3e5fb9a507f30 (diff)
parentde31189fca11b7de937a64de90bcc050b76f9181 (diff)
merged from lp:~donkult/apt/experimental
Diffstat (limited to 'apt-pkg/aptconfiguration.cc')
-rw-r--r--apt-pkg/aptconfiguration.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc
index b5ad74831..4324f0e63 100644
--- a/apt-pkg/aptconfiguration.cc
+++ b/apt-pkg/aptconfiguration.cc
@@ -376,7 +376,7 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
dup2(nullfd, STDIN_FILENO);
dup2(external[1], STDOUT_FILENO);
dup2(nullfd, STDERR_FILENO);
- execv(Args[0], (char**) &Args[0]);
+ execvp(Args[0], (char**) &Args[0]);
_error->WarningE("getArchitecture", "Can't detect foreign architectures supported by dpkg!");
_exit(100);
}
@@ -392,7 +392,9 @@ std::vector<std::string> const Configuration::getArchitectures(bool const &Cache
if (arch[0] != '\0') {
char const* archend = arch;
for (; isspace(*archend) == 0 && *archend != '\0'; ++archend);
- archs.push_back(string(arch, (archend - arch)));
+ string a(arch, (archend - arch));
+ if (std::find(archs.begin(), archs.end(), a) == archs.end())
+ archs.push_back(a);
}
arch = strtok(NULL, " ");
}