From f6459e646f6fa45c34d1f13f37173ea4b92ffd5f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 2 Jan 2016 13:27:02 +0100 Subject: properly parse comments in apt_preferences and deb822-style sources apt_preferences and deb822-style sources used the specialized class pkgUserTagSection to deal with comments before/after a given stanza, but it couldn't deal with comments in the stanza at all. codesearch suggests that nobody else does and a vastely superior way of working with potentially commented files is implemented now, so we can officially discourage the use of the old incomplete hack class. --- apt-pkg/policy.cc | 4 ++-- apt-pkg/sourcelist.cc | 4 ++-- apt-pkg/tagfile.h | 4 +--- 3 files changed, 5 insertions(+), 7 deletions(-) (limited to 'apt-pkg') diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index d442e5c90..b36f4d4b7 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -438,11 +438,11 @@ bool ReadPinFile(pkgPolicy &Plcy,string File) return true; FileFd Fd(File,FileFd::ReadOnly); - pkgTagFile TF(&Fd); + pkgTagFile TF(&Fd, pkgTagFile::SUPPORT_COMMENTS); if (Fd.IsOpen() == false || Fd.Failed()) return false; - pkgUserTagSection Tags; + pkgTagSection Tags; while (TF.Step(Tags) == true) { // can happen when there are only comments in a record diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index 6773b069f..82d2ed3c6 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -418,16 +418,16 @@ bool pkgSourceList::ParseFileOldStyle(std::string const &File) /* Returns: the number of stanzas parsed*/ bool pkgSourceList::ParseFileDeb822(string const &File) { - pkgUserTagSection Tags; unsigned int i = 1; // see if we can read the file FileFd Fd(File, FileFd::ReadOnly); - pkgTagFile Sources(&Fd); + pkgTagFile Sources(&Fd, pkgTagFile::SUPPORT_COMMENTS); if (Fd.IsOpen() == false || Fd.Failed()) return _error->Error(_("Malformed stanza %u in source list %s (type)"),i,File.c_str()); // read step by step + pkgTagSection Tags; while (Sources.Step(Tags) == true) { if(Tags.Exists("Types") == false) diff --git a/apt-pkg/tagfile.h b/apt-pkg/tagfile.h index 2f26846ef..460cf2cd6 100644 --- a/apt-pkg/tagfile.h +++ b/apt-pkg/tagfile.h @@ -140,9 +140,7 @@ class pkgTagSection }; -/* For user generated file the parser should be a bit more relaxed in exchange - for being a bit slower to allow comments and new lines all over the place */ -class pkgUserTagSection : public pkgTagSection +class APT_DEPRECATED_MSG("Use pkgTagFile with the SUPPORT_COMMENTS flag instead") pkgUserTagSection : public pkgTagSection { virtual void TrimRecord(bool BeforeRecord, const char* &End) APT_OVERRIDE; }; -- cgit v1.2.3