|
|
@@ -461,7 +461,7 @@ const char *debListParser::ConvertRelation(const char *I,unsigned int &Op)
|
|
|
*
|
|
|
* The complete architecture, consisting of <kernel>-<cpu>.
|
|
|
*/
|
|
|
-static string CompleteArch(std::string& arch) {
|
|
|
+static string CompleteArch(std::string const &arch) {
|
|
|
if (arch == "armel") return "linux-arm";
|
|
|
if (arch == "armhf") return "linux-arm";
|
|
|
if (arch == "lpia") return "linux-i386";
|
|
|
@@ -500,9 +500,13 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
|
|
|
Package.assign(Start,I - Start);
|
|
|
|
|
|
// We don't want to confuse library users which can't handle MultiArch
|
|
|
+ string const arch = _config->Find("APT::Architecture");
|
|
|
if (StripMultiArch == true) {
|
|
|
size_t const found = Package.rfind(':');
|
|
|
- if (found != string::npos)
|
|
|
+ if (found != string::npos &&
|
|
|
+ (strcmp(Package.c_str() + found, ":any") == 0 ||
|
|
|
+ strcmp(Package.c_str() + found, ":native") == 0 ||
|
|
|
+ strcmp(Package.c_str() + found + 1, arch.c_str()) == 0))
|
|
|
Package = Package.substr(0,found);
|
|
|
}
|
|
|
|
|
|
@@ -543,7 +547,6 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
|
|
|
|
|
|
if (ParseArchFlags == true)
|
|
|
{
|
|
|
- string arch = _config->Find("APT::Architecture");
|
|
|
string completeArch = CompleteArch(arch);
|
|
|
|
|
|
// Parse an architecture
|