lcl, codetools: don't request exclusive rights when IDE reads/writes units

git-svn-id: trunk@18251 -
This commit is contained in:
paul 2009-01-11 08:30:43 +00:00
parent 133caf74fd
commit 7467771ed0
2 changed files with 27 additions and 23 deletions

View File

@ -657,25 +657,26 @@ begin
end;
function TSourceLog.LoadFromFile(const Filename: string): boolean;
var s: string;
var
s: string;
fs: TFileStream;
begin
Result:=true;
Result := True;
try
fs:=TFileStream.Create(UTF8ToSys(Filename), fmOpenRead);
fs := TFileStream.Create(UTF8ToSys(Filename), fmOpenRead or fmShareDenyNone);
try
SetLength(s,fs.Size);
if s<>'' then
fs.Read(s[1],length(s));
FDiskEncoding:='';
FMemEncoding:='';
DecodeLoaded(Filename,s,FDiskEncoding,FMemEncoding);
Source:=s;
SetLength(s, fs.Size);
if s <> '' then
fs.Read(s[1], length(s));
FDiskEncoding := '';
FMemEncoding := '';
DecodeLoaded(Filename, s, FDiskEncoding, FMemEncoding);
Source := s;
finally
fs.Free;
end;
except
Result:=false;
Result := False;
end;
end;
@ -695,22 +696,25 @@ var
s: String;
begin
//DebugLn('TSourceLog.SaveToFile Self=',DbgS(Self));
Result:=true;
Result := True;
try
InvalidateFileStateCache;
// keep filename case on disk
TheFilename:=FindDiskFilename(Filename);
fs:=TFileStream.Create(UTF8ToSys(TheFilename), fmCreate);
TheFilename := FindDiskFilename(Filename);
if FileExistsUTF8(TheFilename) then
fs := TFileStream.Create(UTF8ToSys(TheFilename), fmOpenWrite or fmShareDenyNone)
else
fs := TFileStream.Create(UTF8ToSys(TheFilename), fmCreate);
try
s:=Source;
EncodeSaving(Filename,s);
if s<>'' then
fs.Write(s[1],length(s));
s := Source;
EncodeSaving(Filename, s);
if s <> '' then
fs.Write(s[1], length(s));
finally
fs.Free;
end;
except
Result:=false;
Result := False;
end;
end;

View File

@ -723,9 +723,9 @@ begin
if FileReadable then ;
end;
function FileIsText(const AFilename: string; out FileReadable: boolean
): boolean;
var fs: TFileStream;
function FileIsText(const AFilename: string; out FileReadable: boolean): boolean;
var
fs: TFileStream;
Buf: string;
Len, i: integer;
NewLine: boolean;
@ -734,7 +734,7 @@ begin
Result:=false;
FileReadable:=true;
try
fs:=TFileStream.Create(UTF8ToSys(AFilename),fmOpenRead);
fs := TFileStream.Create(UTF8ToSys(AFilename), fmOpenRead or fmShareDenyNone);
try
// read the first 1024 bytes
Len:=1024;