Browse Source

* apt-pkg/contrib/fileutl.{h,cc}:

- implement a ModificationTime method for FileFd
debian/1.8.y
David Kalnischkies 11 years ago
parent
commit
76a763e1f8
  1. 14
      apt-pkg/contrib/fileutl.cc
  2. 1
      apt-pkg/contrib/fileutl.h
  3. 19
      apt-pkg/deb/debindexfile.cc
  4. 7
      apt-pkg/edsp/edspindexfile.cc
  5. 5
      debian/changelog

14
apt-pkg/contrib/fileutl.cc

@ -1106,6 +1106,20 @@ unsigned long long FileFd::Size()
return size;
}
/*}}}*/
// FileFd::ModificationTime - Return the time of last touch /*{{{*/
// ---------------------------------------------------------------------
/* */
time_t FileFd::ModificationTime()
{
struct stat Buf;
if (fstat(iFd,&Buf) != 0)
{
_error->Errno("fstat","Unable to determine the modification time of file %s", FileName.c_str());
return 0;
}
return Buf.st_mtime;
}
/*}}}*/
// FileFd::Close - Close the file if the close flag is set /*{{{*/
// ---------------------------------------------------------------------
/* */

1
apt-pkg/contrib/fileutl.h

@ -78,6 +78,7 @@ class FileFd
unsigned long long Tell();
unsigned long long Size();
unsigned long long FileSize();
time_t ModificationTime();
/* You want to use 'unsigned long long' if you are talking about a file
to be able to support large files (>2 or >4 GB) properly.

19
apt-pkg/deb/debindexfile.cc

@ -319,12 +319,8 @@ bool debPackagesIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
// Store the IMS information
pkgCache::PkgFileIterator File = Gen.GetCurFile();
pkgCacheGenerator::Dynamic<pkgCache::PkgFileIterator> DynFile(File);
// FIXME: Get this info from FileFd instead
struct stat St;
if (fstat(Pkg.Fd(),&St) != 0)
return _error->Errno("fstat","Failed to stat");
File->Size = St.st_size;
File->mtime = St.st_mtime;
File->Size = Pkg.FileSize();
File->mtime = Pkg.ModificationTime();
if (Gen.MergeList(Parser) == false)
return _error->Error("Problem with MergeList %s",PackageFile.c_str());
@ -522,11 +518,8 @@ bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
// Store the IMS information
pkgCache::PkgFileIterator TransFile = Gen.GetCurFile();
struct stat TransSt;
if (fstat(Trans.Fd(),&TransSt) != 0)
return _error->Errno("fstat","Failed to stat");
TransFile->Size = TransSt.st_size;
TransFile->mtime = TransSt.st_mtime;
TransFile->Size = Trans.FileSize();
TransFile->mtime = Trans.ModificationTime();
if (Gen.MergeList(TransParser) == false)
return _error->Error("Problem with MergeList %s",TranslationFile.c_str());
@ -608,8 +601,8 @@ bool debStatusIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
struct stat St;
if (fstat(Pkg.Fd(),&St) != 0)
return _error->Errno("fstat","Failed to stat");
CFile->Size = St.st_size;
CFile->mtime = St.st_mtime;
CFile->Size = Pkg.FileSize();
CFile->mtime = Pkg.ModificationTime();
CFile->Archive = Gen.WriteUniqString("now");
if (Gen.MergeList(Parser) == false)

7
apt-pkg/edsp/edspindexfile.cc

@ -49,11 +49,8 @@ bool edspIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
// Store the IMS information
pkgCache::PkgFileIterator CFile = Gen.GetCurFile();
struct stat St;
if (fstat(Pkg.Fd(),&St) != 0)
return _error->Errno("fstat","Failed to stat");
CFile->Size = St.st_size;
CFile->mtime = St.st_mtime;
CFile->Size = Pkg.FileSize();
CFile->mtime = Pkg.ModificationTime();
CFile->Archive = Gen.WriteUniqString("edsp::scenario");
if (Gen.MergeList(Parser) == false)

5
debian/changelog

@ -1,4 +1,3 @@
apt (0.8.16~exp9) UNRELEASED; urgency=low
[ Julian Andres Klode ]
@ -30,8 +29,10 @@ apt (0.8.16~exp9) UNRELEASED; urgency=low
resolver as it's basically the same for the user, so no need to choose
* cmdline/apt-config.cc:
- dump the APT::Compressor settings correctly and completely
* apt-pkg/contrib/fileutl.{h,cc}:
- implement a ModificationTime method for FileFd
-- David Kalnischkies <kalnischkies@gmail.com> Sat, 10 Dec 2011 17:34:50 +0100
-- David Kalnischkies <kalnischkies@gmail.com> Sat, 10 Dec 2011 20:02:29 +0100
apt (0.8.16~exp8) experimental; urgency=low

Loading…
Cancel
Save