X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/c1a2237722820dcd5e387dda5a88085cf62e68b9..a4edf53b885ce8559115eaf2c4836ec1f76b07ec:/apt-pkg/pkgcachegen.cc diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index ccb6bedd4..7cf332b68 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: pkgcachegen.cc,v 1.24 1998/12/07 07:26:21 jgg Exp $ +// $Id: pkgcachegen.cc,v 1.26 1998/12/14 03:39:15 jgg Exp $ /* ###################################################################### Package Cache Generator - Generator for the cache structure. @@ -188,6 +188,8 @@ bool pkgCacheGenerator::NewFileVer(pkgCache::VerIterator &Ver, VF->Size = List.Size(); if (Cache.HeaderP->MaxVerFileSize < VF->Size) Cache.HeaderP->MaxVerFileSize = VF->Size; + Cache.HeaderP->VerFileCount++; + return true; } /*}}}*/ @@ -295,6 +297,7 @@ bool pkgCacheGenerator::ListParser::NewProvides(pkgCache::VerIterator Ver, unsigned long Provides = Owner->Map.Allocate(sizeof(pkgCache::Provides)); if (Provides == 0) return false; + Cache.HeaderP->ProvidesCount++; // Fill it in pkgCache::PrvIterator Prv(Cache,Cache.ProvideP + Provides,Cache.PkgP); @@ -635,8 +638,8 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) for (pkgSourceList::const_iterator I = List.begin(); I != List.end(); I++) { string File = ListDir + URItoFileName(I->PackagesURI()); - - if (stat(File.c_str(),&Buf) != 0) + + if (FileExists(File) == false) continue; FileFd Pkg(File,FileFd::ReadOnly); @@ -652,6 +655,16 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress) if (Gen.MergeList(Parser) == false) return _error->Error("Problem with MergeList %s",File.c_str()); + + // Check the release file + string RFile = ListDir + URItoFileName(I->ReleaseURI()); + if (FileExists(RFile) == true) + { + FileFd Rel(RFile,FileFd::ReadOnly); + if (_error->PendingError() == true) + return false; + Parser.LoadReleaseInfo(Gen.GetCurFile(),Rel); + } } // Write the src cache