TFileStreamUTF8.Create: fix error when mode = fmCreate or fmSomeShareMode.

Respect mode parameter when creating a file.

git-svn-id: trunk@41331 -
This commit is contained in:
bart 2013-05-20 16:47:52 +00:00
parent 514fa100d5
commit b759d82dab

View File

@ -79,24 +79,8 @@ begin
end;
constructor TFileStreamUTF8.Create(const AFileName: utf8string; Mode: Word);
var
lHandle: THandle;
begin
FFileName:= AFileName;
if Mode = fmcreate then
lHandle:= FileCreateUTF8(AFileName)
else
lHandle:= FileOpenUTF8(AFileName, Mode);
If (THandle(lHandle)=feInvalidHandle) then
begin
if Mode = fmCreate then
raise EFCreateError.createfmt({SFCreateError}'Unable to create file "%s"', [AFileName])
else
raise EFOpenError.Createfmt({SFOpenError}'Unable to open file "%s"', [AFilename]);
end
else
inherited Create(lHandle);
Create(AFileName,Mode,438);
end;
constructor TFileStreamUTF8.Create(const AFileName: utf8string; Mode: Word; Rights: Cardinal);
@ -104,8 +88,8 @@ var
lHandle: THandle;
begin
FFileName:=AFileName;
if Mode=fmcreate then
lHandle:=FileCreateUTF8(AFileName,Rights)
if (Mode and fmCreate) > 0 then
lHandle:=FileCreateUTF8(AFileName,Mode,Rights)
else
lHandle:=FileOpenUTF8(AFileName,Mode);