]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/deb/deblistparser.cc
Simulator fix
[apt.git] / apt-pkg / deb / deblistparser.cc
index 7587760b51e993f9a6f95679c89057e4ec015ee0..8b778a7260491bf0f2df4ee53c4dbed07768e279 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: deblistparser.cc,v 1.6 1998/07/12 23:58:52 jgg Exp $
+// $Id: deblistparser.cc,v 1.10 1998/08/09 00:51:35 jgg Exp $
 /* ######################################################################
    
    Package Cache Generator - Generator for the cache structure.
@@ -21,7 +21,7 @@
 // ListParser::debListParser - Constructor                             /*{{{*/
 // ---------------------------------------------------------------------
 /* */
-debListParser::debListParser(File &File) : Tags(File)
+debListParser::debListParser(FileFd &File) : Tags(File)
 {
 }
                                                                        /*}}}*/
@@ -133,16 +133,13 @@ string debListParser::Version()
 bool debListParser::NewVersion(pkgCache::VerIterator Ver)
 {
    // Parse the section
-   if ((Ver->Section = UniqFindTagWrite("Section")) == 0)
-      return _error->Warning("Missing Section tag");
+   Ver->Section = UniqFindTagWrite("Section");
    
    // Archive Size
-   if ((Ver->Size = (unsigned)FindTagI("Size")) == 0)
-      return _error->Error("Unparsable Size field");
+   Ver->Size = (unsigned)FindTagI("Size");
    
    // Unpacked Size (in K)
-   if ((Ver->InstalledSize = (unsigned)FindTagI("Installed-Size")) == 0)
-      return _error->Error("Unparsable Installed-Size field");
+   Ver->InstalledSize = (unsigned)FindTagI("Installed-Size");
    Ver->InstalledSize *= 1024;
 
    // Priority
@@ -162,7 +159,7 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver)
 
    if (ParseDepends(Ver,"Depends",pkgCache::Dep::Depends) == false)
       return false;
-   if (ParseDepends(Ver,"PreDepends",pkgCache::Dep::PreDepends) == false)
+   if (ParseDepends(Ver,"Pre-Depends",pkgCache::Dep::PreDepends) == false)
       return false;
    if (ParseDepends(Ver,"Suggests",pkgCache::Dep::Suggests) == false)
       return false;
@@ -170,7 +167,7 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver)
       return false;
    if (ParseDepends(Ver,"Conflicts",pkgCache::Dep::Conflicts) == false)
       return false;
-   if (ParseDepends(Ver,"Replaces",pkgCache::Dep::Depends) == false)
+   if (ParseDepends(Ver,"Replaces",pkgCache::Dep::Replaces) == false)
       return false;
 
    if (ParseProvides(Ver) == false)
@@ -187,8 +184,7 @@ bool debListParser::UsePackage(pkgCache::PkgIterator Pkg,
                               pkgCache::VerIterator Ver)
 {
    if (Pkg->Section == 0)
-      if ((Pkg->Section = UniqFindTagWrite("Section")) == 0)
-        return false;
+      Pkg->Section = UniqFindTagWrite("Section");
    if (HandleFlag("Essential",Pkg->Flags,pkgCache::Flag::Essential) == false)
       return false;
    if (HandleFlag("Immediate-Configure",Pkg->Flags,pkgCache::Flag::ImmediateConf) == false)
@@ -426,13 +422,16 @@ bool debListParser::ParseDepends(pkgCache::VerIterator Ver,
    string Version;
    unsigned int Op;
 
-   while ((Start = ParseDepends(Start,Stop,Package,Version,Op)) != Stop)
+   while (1)
    {
+      Start = ParseDepends(Start,Stop,Package,Version,Op);
       if (Start == 0)
         return _error->Error("Problem parsing dependency %s",Tag);
-
+      
       if (NewDepends(Ver,Package,Version,Op,Type) == false)
         return false;
+      if (Start == Stop)
+        break;
    }
    return true;
 }