X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/0179cfa83cf0042235eda41db7f35c420781c63e..cc0a4c82b3c132abba9b9ec35fd61bc8b45a1b80:/apt-pkg/indexfile.cc diff --git a/apt-pkg/indexfile.cc b/apt-pkg/indexfile.cc index dfd482c04..b1435d32c 100644 --- a/apt-pkg/indexfile.cc +++ b/apt-pkg/indexfile.cc @@ -137,14 +137,19 @@ std::string IndexTarget::Option(OptionKeys const EnumKey) const /*{{{*/ APT_CASE(ARCHITECTURE); APT_CASE(BASE_URI); APT_CASE(REPO_URI); + APT_CASE(IDENTIFIER); APT_CASE(TARGET_OF); APT_CASE(CREATED_BY); + APT_CASE(FALLBACK_OF); APT_CASE(PDIFFS); APT_CASE(DEFAULTENABLED); APT_CASE(COMPRESSIONTYPES); APT_CASE(SOURCESENTRY); APT_CASE(BY_HASH); APT_CASE(KEEPCOMPRESSEDAS); + APT_CASE(ALLOW_INSECURE); + APT_CASE(ALLOW_WEAK); + APT_CASE(ALLOW_DOWNGRADE_TO_INSECURE); #undef APT_CASE case FILENAME: return _config->FindDir("Dir::State::lists") + URItoFileName(URI); case EXISTING_FILENAME: @@ -168,7 +173,7 @@ std::string IndexTarget::Option(OptionKeys const EnumKey) const /*{{{*/ /*}}}*/ bool IndexTarget::OptionBool(OptionKeys const EnumKey) const /*{{{*/ { - return StringToBool(Option(EnumKey)); + return StringToBool(Option(EnumKey), false); } /*}}}*/ std::string IndexTarget::Format(std::string format) const /*{{{*/ @@ -267,7 +272,9 @@ std::string pkgDebianIndexTargetFile::GetProgressDescription() const pkgDebianIndexRealFile::pkgDebianIndexRealFile(std::string const &pFile, bool const Trusted) :/*{{{*/ pkgDebianIndexFile(Trusted), d(NULL) { - if (pFile == "/nonexistent/stdin") + if (pFile.empty()) + ; + else if (pFile == "/nonexistent/stdin") File = pFile; else File = flAbsPath(pFile); @@ -308,7 +315,7 @@ std::string pkgDebianIndexRealFile::GetProgressDescription() const } bool pkgDebianIndexRealFile::OpenListFile(FileFd &Pkg, std::string const &FileName)/*{{{*/ { - if (Pkg.Open(FileName, FileFd::ReadOnly, FileFd::None) == false) + if (Pkg.Open(FileName, FileFd::ReadOnly, FileFd::Extension) == false) return _error->Error("Problem opening %s",FileName.c_str()); return true; } @@ -323,12 +330,18 @@ pkgDebianIndexFile::~pkgDebianIndexFile() pkgCacheListParser * pkgDebianIndexFile::CreateListParser(FileFd &Pkg) { if (Pkg.IsOpen() == false) - return NULL; + return nullptr; _error->PushToStack(); pkgCacheListParser * const Parser = new debListParser(&Pkg); bool const newError = _error->PendingError(); _error->MergeWithStack(); - return newError ? NULL : Parser; + if (newError) + { + delete Parser; + return nullptr; + } + else + return Parser; } bool pkgDebianIndexFile::Merge(pkgCacheGenerator &Gen,OpProgress * const Prog) {