summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2013-12-09 08:30:01 +0100
committerMichael Vogt <mvo@debian.org>2013-12-09 08:30:01 +0100
commitfce9f472046344d15d4f4df281a003d837cf4177 (patch)
tree42e1b4fa4101b179afaca0922168c74eafe36052 /apt-pkg
parent1fa78a8a3730633be662df07f7aec8f4c3dcc766 (diff)
add APT::Sources::Use-Deb822 to allow disabling the deb822 parser
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/sourcelist.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc
index 714918bc1..0bbb2bd3f 100644
--- a/apt-pkg/sourcelist.cc
+++ b/apt-pkg/sourcelist.cc
@@ -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"))