1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fix File OpenOrCreate

This commit is contained in:
disarray2077 2021-08-01 17:30:40 -03:00
parent 3a1c0a3452
commit a71962a5a8
6 changed files with 14 additions and 3 deletions

View file

@ -178,7 +178,7 @@ namespace System.IO
case .Open: case .Open:
createKind = .OpenExisting; createKind = .OpenExisting;
case .OpenOrCreate: case .OpenOrCreate:
createKind = .CreateAlways; createKind = .OpenAlways;
case .Truncate: case .Truncate:
createKind = .CreateAlways; createKind = .CreateAlways;
createFlags |= .Truncate; createFlags |= .Truncate;
@ -337,7 +337,7 @@ namespace System.IO
case .Open: case .Open:
createKind = .OpenExisting; createKind = .OpenExisting;
case .OpenOrCreate: case .OpenOrCreate:
createKind = .CreateAlways; createKind = .OpenAlways;
case .Truncate: case .Truncate:
createKind = .CreateAlways; createKind = .CreateAlways;
createFlags |= .Truncate; createFlags |= .Truncate;

View file

@ -271,6 +271,7 @@ namespace System
CreateAlways, CreateAlways,
CreateIfNotExists, CreateIfNotExists,
OpenExisting, OpenExisting,
OpenAlways,
}; };
public enum BfpFileCreateFlags : int32 public enum BfpFileCreateFlags : int32

View file

@ -344,6 +344,7 @@ enum BfpFileCreateKind
BfpFileCreateKind_CreateAlways, BfpFileCreateKind_CreateAlways,
BfpFileCreateKind_CreateIfNotExists, BfpFileCreateKind_CreateIfNotExists,
BfpFileCreateKind_OpenExisting, BfpFileCreateKind_OpenExisting,
BfpFileCreateKind_OpenAlways
}; };
enum BfpFileCreateFlags enum BfpFileCreateFlags

View file

@ -1858,6 +1858,10 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_Create(const char* inName, BfpFileCreat
} }
return result; return result;
}; };
// POSIX doesn't need the OpenAlways kind.
if (createKind == BfpFileCreateKind_OpenAlways)
createKind = BfpFileCreateKind_CreateAlways;
BfpFile* bfpFile = NULL; BfpFile* bfpFile = NULL;

View file

@ -2741,9 +2741,13 @@ BFP_EXPORT BfpFile* BFP_CALLTYPE BfpFile_Create(const char* path, BfpFileCreateK
creationDisposition = CREATE_ALWAYS; creationDisposition = CREATE_ALWAYS;
} }
else if (createKind == BfpFileCreateKind_CreateIfNotExists) else if (createKind == BfpFileCreateKind_CreateIfNotExists)
{ {
creationDisposition = CREATE_NEW; creationDisposition = CREATE_NEW;
} }
else if (createKind == BfpFileCreateKind_OpenAlways)
{
creationDisposition = OPEN_ALWAYS;
}
else else
{ {
creationDisposition = OPEN_EXISTING; creationDisposition = OPEN_EXISTING;

View file

@ -234,6 +234,7 @@ namespace System
CreateAlways, CreateAlways,
CreateIfNotExists, CreateIfNotExists,
OpenExisting, OpenExisting,
OpenAlways,
}; };
public enum BfpFileCreateFlags : int32 public enum BfpFileCreateFlags : int32