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);
}
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;
}
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)
{