summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorArch Librarian <arch@canonical.com>2004-09-20 16:56:53 +0000
committerArch Librarian <arch@canonical.com>2004-09-20 16:56:53 +0000
commitf08fcf34cacb98d46cd8ee85398994db26a80a56 (patch)
treea31ea216ea646c49870aa11dcb651ce4165e1201 /apt-pkg
parent4f3255979a2116ba0ca8e945ee8e06fe823edfc8 (diff)
new tempfile writing mode (WriteTemp) for FileFd class
Author: tausq Date: 2001-03-03 22:36:20 GMT new tempfile writing mode (WriteTemp) for FileFd class
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/contrib/fileutl.cc7
-rw-r--r--apt-pkg/contrib/fileutl.h4
2 files changed, 8 insertions, 3 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc
index 0907f4dcd..fd9b93036 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.35 2001/02/20 07:03:17 jgg Exp $
+// $Id: fileutl.cc,v 1.36 2001/03/03 22:36:20 tausq Exp $
/* ######################################################################
File Utilities
@@ -403,6 +403,11 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms)
case WriteAny:
iFd = open(FileName.c_str(),O_RDWR | O_CREAT,Perms);
break;
+
+ case WriteTemp:
+ unlink(Filename.c_str());
+ iFd = open(FileName.c_str(),O_RDWR | O_CREATE | O_EXCL,Perms);
+ break;
}
if (iFd < 0)
diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h
index 9cf351d0b..74e0d542f 100644
--- a/apt-pkg/contrib/fileutl.h
+++ b/apt-pkg/contrib/fileutl.h
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: fileutl.h,v 1.23 2001/02/20 07:03:17 jgg Exp $
+// $Id: fileutl.h,v 1.24 2001/03/03 22:36:20 tausq Exp $
/* ######################################################################
File Utilities
@@ -38,7 +38,7 @@ class FileFd
string FileName;
public:
- enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny};
+ enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp};
bool Read(void *To,unsigned long Size,bool AllowEof = false);
bool Write(const void *From,unsigned long Size);