diff options
author | Arch Librarian <arch@canonical.com> | 2004-09-20 16:57:31 +0000 |
---|---|---|
committer | Arch Librarian <arch@canonical.com> | 2004-09-20 16:57:31 +0000 |
commit | f604cf55e27db1121895a84a525f305a78a3dad9 (patch) | |
tree | d049f8efc18eceed369f7df04792aa511c804480 /apt-pkg/contrib/fileutl.cc | |
parent | 5d622d510f558981275d6004ec015013dea9cdbf (diff) |
Tag file can read from unseekable objects
Author: jgg
Date: 2001-04-22 05:42:52 GMT
Tag file can read from unseekable objects
Diffstat (limited to 'apt-pkg/contrib/fileutl.cc')
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index db878064d..97dcb82b8 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: fileutl.cc,v 1.37 2001/03/03 22:45:59 tausq Exp $ +// $Id: fileutl.cc,v 1.38 2001/04/22 05:42:52 jgg Exp $ /* ###################################################################### File Utilities @@ -431,10 +431,13 @@ FileFd::~FileFd() // --------------------------------------------------------------------- /* We are carefull to handle interruption by a signal while reading gracefully. */ -bool FileFd::Read(void *To,unsigned long Size,bool AllowEof) +bool FileFd::Read(void *To,unsigned long Size,unsigned long *Actual) { int Res; errno = 0; + if (Actual != 0) + *Actual = 0; + do { Res = read(iFd,To,Size); @@ -448,6 +451,8 @@ bool FileFd::Read(void *To,unsigned long Size,bool AllowEof) To = (char *)To + Res; Size -= Res; + if (Actual != 0) + *Actual += Res; } while (Res > 0 && Size > 0); @@ -455,7 +460,7 @@ bool FileFd::Read(void *To,unsigned long Size,bool AllowEof) return true; // Eof handling - if (AllowEof == true) + if (Actual != 0) { Flags |= HitEof; return true; |