mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-28 17:00:57 +02:00
lcl, codetools: don't request exclusive rights when IDE reads/writes units
git-svn-id: trunk@18251 -
This commit is contained in:
parent
133caf74fd
commit
7467771ed0
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user