]> git.saurik.com Git - apt.git/commitdiff
add APT::Sources::Use-Deb822 to allow disabling the deb822 parser
authorMichael Vogt <mvo@debian.org>
Mon, 9 Dec 2013 07:30:01 +0000 (08:30 +0100)
committerMichael Vogt <mvo@debian.org>
Mon, 9 Dec 2013 07:30:01 +0000 (08:30 +0100)
apt-pkg/sourcelist.cc

index 714918bc1ac9b59f011957a8e29bff6a1f98ae1e..0bbb2bd3f8a151f5df8053f0cb2b274a836becf2 100644 (file)
@@ -239,7 +239,8 @@ bool pkgSourceList::Read(string File)
 /* */
 bool pkgSourceList::ReadAppend(string File)
 {
-   if (ParseFileDeb822(File))
+   if (_config->FindB("APT::Sources::Use-Deb822", true) == true)
+      if (ParseFileDeb822(File))
          return true;
    return ParseFileOldStyle(File);
 }
@@ -305,19 +306,23 @@ bool pkgSourceList::ParseFileOldStyle(string File)
 /* */
 bool pkgSourceList::ParseFileDeb822(string File)
 {
-   // FIXME: proper error handling so that we do not error for good old-style
-   //        sources
+
+   pkgTagSection Tags;
+   map<string, string> Options;
+   unsigned int i=0;
+
+   // see if we can read the file
+   _error->PushToStack();
    FileFd Fd(File, FileFd::ReadOnly);
+   pkgTagFile Sources(&Fd);
    if (_error->PendingError() == true)
    {
+      _error->RevertToStack();
       return false;
    }
-
-   pkgTagSection Tags;
-   map<string, string> Options;
-   unsigned int i=0;
+   _error->MergeWithStack();
    
-   pkgTagFile Sources(&Fd);
+   // read step by step
    while (Sources.Step(Tags) == true)
    {
       if(!Tags.Exists("Type"))