X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/578bfd0aed2ec993f4ad85fa6a7094a852261422..ad00ae81eb9e1f5384f8fe32879d483c72bbdace:/apt-pkg/contrib/fileutl.cc?ds=inline diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 6048ff0bb..6f515fd67 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.1 1998/07/02 02:58:13 jgg Exp $ +// $Id: fileutl.cc,v 1.5 1998/07/15 05:56:43 jgg Exp $ /* ###################################################################### File Utilities @@ -14,8 +14,11 @@ ##################################################################### */ /*}}}*/ // Include Files /*{{{*/ -#include -#include +#ifdef __GNUG__ +#pragma implementation "apt-pkg/fileutl.h" +#endif +#include +#include #include #include @@ -110,7 +113,7 @@ string SafeGetCWD() /* The most commonly used open mode combinations are given with Mode */ File::File(string FileName,OpenMode Mode, unsigned long Perms) { - Flags = 0; + Flags = AutoClose; switch (Mode) { case ReadOnly: @@ -202,9 +205,10 @@ bool File::Close() { bool Res = true; if ((Flags & AutoClose) == AutoClose) - if (close(iFd) != 0) + if (iFd >= 0 && close(iFd) != 0) Res &= _error->Errno("close","Problem closing the file"); - + iFd = -1; + if ((Flags & Fail) == Fail && (Flags & DelOnFail) == DelOnFail && FileName.empty() == false) if (unlink(FileName.c_str()) != 0)