]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/indexfile.cc
implement CopyFile without using FileFd::Size()
[apt.git] / apt-pkg / indexfile.cc
index b8189326044b0849b931b11d5fe58371e8ae5d23..db57faf07db852b3e6e2ef2d67162d337305be68 100644 (file)
@@ -19,6 +19,7 @@
 #include <apt-pkg/pkgcachegen.h>
 #include <apt-pkg/cacheiterators.h>
 #include <apt-pkg/srcrecords.h>
+#include <apt-pkg/strutl.h>
 #include <apt-pkg/progress.h>
 #include <apt-pkg/macros.h>
 
@@ -144,11 +145,14 @@ std::string IndexTarget::Option(OptionKeys const EnumKey) const           /*{{{*/
       APT_CASE(TARGET_OF);
       APT_CASE(CREATED_BY);
       APT_CASE(PDIFFS);
+      APT_CASE(DEFAULTENABLED);
+      APT_CASE(COMPRESSIONTYPES);
+      APT_CASE(SOURCESENTRY);
 #undef APT_CASE
       case FILENAME: return _config->FindDir("Dir::State::lists") + URItoFileName(URI);
       case EXISTING_FILENAME:
         std::string const filename = Option(FILENAME);
-        std::vector<std::string> const types = APT::Configuration::getCompressionTypes();
+        std::vector<std::string> const types = VectorizeString(Option(COMPRESSIONTYPES), ' ');
         for (std::vector<std::string>::const_iterator t = types.begin(); t != types.end(); ++t)
         {
            if (t->empty())
@@ -208,7 +212,7 @@ std::string pkgDebianIndexTargetFile::IndexFileName() const                 /*{{{*/
    if (FileExists(s))
       return s;
 
-   std::vector<std::string> types = APT::Configuration::getCompressionTypes();
+   std::vector<std::string> const types = VectorizeString(Target.Option(IndexTarget::COMPRESSIONTYPES), ' ');
    for (std::vector<std::string>::const_iterator t = types.begin(); t != types.end(); ++t)
    {
       std::string p = s + '.' + *t;