]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/srcrecords.cc
follow the googletest merge in build-depends
[apt.git] / apt-pkg / srcrecords.cc
index 942f1156999f8e2aed5e0cf80f52237cebc1282d..a76604a8d2eded0a78558a91788f889fa6040a50 100644 (file)
@@ -39,11 +39,14 @@ pkgSrcRecords::pkgSrcRecords(pkgSourceList &List) : d(NULL), Files(0)
       for (std::vector<pkgIndexFile *>::const_iterator J = Indexes->begin();
           J != Indexes->end(); ++J)
       {
       for (std::vector<pkgIndexFile *>::const_iterator J = Indexes->begin();
           J != Indexes->end(); ++J)
       {
-         Parser* P = (*J)->CreateSrcParser();
-        if (_error->PendingError() == true)
-            return;
-         if (P != 0)
-            Files.push_back(P);
+        _error->PushToStack();
+        Parser* P = (*J)->CreateSrcParser();
+        bool const newError = _error->PendingError();
+        _error->MergeWithStack();
+        if (newError)
+           return;
+        if (P != 0)
+           Files.push_back(P);
       }
    }
    
       }
    }
    
@@ -93,8 +96,6 @@ const pkgSrcRecords::Parser* pkgSrcRecords::Step()
    // Step to the next record, possibly switching files
    while ((*Current)->Step() == false)
    {
    // Step to the next record, possibly switching files
    while ((*Current)->Step() == false)
    {
-      if (_error->PendingError() == true)
-         return 0;
       ++Current;
       if (Current == Files.end())
          return 0;
       ++Current;
       if (Current == Files.end())
          return 0;
@@ -115,10 +116,6 @@ pkgSrcRecords::Parser *pkgSrcRecords::Find(const char *Package,bool const &SrcOn
       if(Step() == 0)
          return 0;
 
       if(Step() == 0)
          return 0;
 
-      // IO error somehow
-      if (_error->PendingError() == true)
-        return 0;
-
       // Source name hit
       if ((*Current)->Package() == Package)
         return *Current;
       // Source name hit
       if ((*Current)->Package() == Package)
         return *Current;
@@ -142,7 +139,9 @@ const char *pkgSrcRecords::Parser::BuildDepType(unsigned char const &Type)
    const char *fields[] = {"Build-Depends",
                           "Build-Depends-Indep",
                           "Build-Conflicts",
    const char *fields[] = {"Build-Depends",
                           "Build-Depends-Indep",
                           "Build-Conflicts",
-                          "Build-Conflicts-Indep"};
+                          "Build-Conflicts-Indep",
+                          "Build-Depends-Arch",
+                          "Build-Conflicts-Arch"};
    if (unlikely(Type >= sizeof(fields)/sizeof(fields[0])))
       return "";
    return fields[Type];
    if (unlikely(Type >= sizeof(fields)/sizeof(fields[0])))
       return "";
    return fields[Type];