|
|
@@ -670,7 +670,6 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms)
|
|
|
break;
|
|
|
|
|
|
case WriteAtomic:
|
|
|
- case WriteEmpty:
|
|
|
{
|
|
|
Flags |= Replace;
|
|
|
char *name = strdup((FileName + ".XXXXXX").c_str());
|
|
|
@@ -680,6 +679,14 @@ bool FileFd::Open(string FileName,OpenMode Mode, unsigned long Perms)
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ case WriteEmpty:
|
|
|
+ {
|
|
|
+ struct stat Buf;
|
|
|
+ if (lstat(FileName.c_str(),&Buf) == 0 && S_ISLNK(Buf.st_mode))
|
|
|
+ unlink(FileName.c_str());
|
|
|
+ iFd = open(FileName.c_str(),O_RDWR | O_CREAT | O_TRUNC,Perms);
|
|
|
+ break;
|
|
|
+ }
|
|
|
|
|
|
case WriteExists:
|
|
|
iFd = open(FileName.c_str(),O_RDWR);
|