mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-02 06:23:35 +01:00
ide: FindClose in try finally
This commit is contained in:
parent
44a97af383
commit
58fa8cf4d0
@ -289,26 +289,29 @@ var
|
||||
begin
|
||||
Dir:=AppendPathDelim(TrimFilename(Dir));
|
||||
if FindFirstUTF8(Dir+AllFilesMask,faAnyFile,FileInfo)=0 then begin
|
||||
repeat
|
||||
if (FileInfo.Name='') or (FileInfo.Name='.') or (FileInfo.Name='..')
|
||||
or (FileInfo.Name[1]='.')
|
||||
then
|
||||
continue;
|
||||
Filename:=Dir+FileInfo.Name;
|
||||
if faDirectory and FileInfo.Attr>0 then
|
||||
begin
|
||||
if Recursive then
|
||||
CleanDir(Filename)
|
||||
end
|
||||
else begin
|
||||
if FilenameExtIn(FileInfo.Name,['.ppu','.o','.rst','.rsj']) then begin
|
||||
if not DeleteFileUTF8(Filename) then
|
||||
debugln(['Error : (lazarus) Clean directory: failed to delete file "',Filename,'"']);
|
||||
try
|
||||
repeat
|
||||
if (FileInfo.Name='') or (FileInfo.Name='.') or (FileInfo.Name='..')
|
||||
or (FileInfo.Name[1]='.')
|
||||
then
|
||||
continue;
|
||||
Filename:=Dir+FileInfo.Name;
|
||||
if faDirectory and FileInfo.Attr>0 then
|
||||
begin
|
||||
if Recursive then
|
||||
CleanDir(Filename)
|
||||
end
|
||||
else begin
|
||||
if FilenameExtIn(FileInfo.Name,['.ppu','.o','.rst','.rsj']) then begin
|
||||
if not DeleteFileUTF8(Filename) then
|
||||
debugln(['Error : (lazarus) Clean directory: failed to delete file "',Filename,'"']);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
|
||||
procedure TLazarusBuilder.CleanLazarusSrcDir;
|
||||
|
||||
@ -1727,49 +1727,52 @@ begin
|
||||
ADirectory:=AppendPathDelim(ExtractFilePath(Filename));
|
||||
if FindFirstUTF8(ADirectory+GetAllFilesMask,faAnyFile,FileInfo)=0 then
|
||||
begin
|
||||
ShortFilename:=ExtractFileName(Filename);
|
||||
IsPascalUnit:=FilenameHasPascalExt(ShortFilename);
|
||||
AUnitName:=ExtractFilenameOnly(ShortFilename);
|
||||
repeat
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..')
|
||||
or (FileInfo.Name='')
|
||||
or ((FileInfo.Attr and faDirectory)<>0) then continue;
|
||||
if CompareFilenames(ShortFilename,FileInfo.Name)=0 then continue;
|
||||
try
|
||||
ShortFilename:=ExtractFileName(Filename);
|
||||
IsPascalUnit:=FilenameHasPascalExt(ShortFilename);
|
||||
AUnitName:=ExtractFilenameOnly(ShortFilename);
|
||||
repeat
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..')
|
||||
or (FileInfo.Name='')
|
||||
or ((FileInfo.Attr and faDirectory)<>0) then continue;
|
||||
if CompareFilenames(ShortFilename,FileInfo.Name)=0 then continue;
|
||||
|
||||
if (SysUtils.CompareText(ShortFilename,FileInfo.Name)=0)
|
||||
then begin
|
||||
// same name different case => ambiguous
|
||||
end else if IsPascalUnit and FilenameHasPascalExt(FileInfo.Name)
|
||||
and (SysUtils.CompareText(AUnitName,ExtractFilenameOnly(FileInfo.Name))=0)
|
||||
then begin
|
||||
// same unit name => ambiguous
|
||||
end else
|
||||
continue;
|
||||
if (SysUtils.CompareText(ShortFilename,FileInfo.Name)=0)
|
||||
then begin
|
||||
// same name different case => ambiguous
|
||||
end else if IsPascalUnit and FilenameHasPascalExt(FileInfo.Name)
|
||||
and (SysUtils.CompareText(AUnitName,ExtractFilenameOnly(FileInfo.Name))=0)
|
||||
then begin
|
||||
// same unit name => ambiguous
|
||||
end else
|
||||
continue;
|
||||
|
||||
CurFilename:=ADirectory+FileInfo.Name;
|
||||
if EnvironmentOptions.AmbiguousFileAction=afaAsk then begin
|
||||
if IDEMessageDialog(lisDeleteAmbiguousFile,
|
||||
Format(lisAmbiguousFileFoundThisFileCanBeMistakenWithDelete,
|
||||
[CurFilename, LineEnding, ShortFilename, LineEnding+LineEnding]),
|
||||
mtConfirmation,[mbYes,mbNo])=mrNo
|
||||
then continue;
|
||||
end;
|
||||
if EnvironmentOptions.AmbiguousFileAction in [afaAutoDelete,afaAsk]
|
||||
then begin
|
||||
Result:=DeleteFileInteractive(CurFilename);
|
||||
if not (Result in [mrOK,mrIgnore]) then exit(mrCancel);
|
||||
end else if EnvironmentOptions.AmbiguousFileAction=afaAutoRename then
|
||||
begin
|
||||
Result:=BackupFileForWrite(CurFilename);
|
||||
if not (Result in [mrOK,mrIgnore]) then exit(mrCancel);
|
||||
if FileExistsUTF8(CurFilename) then begin
|
||||
CurFilename:=ADirectory+FileInfo.Name;
|
||||
if EnvironmentOptions.AmbiguousFileAction=afaAsk then begin
|
||||
if IDEMessageDialog(lisDeleteAmbiguousFile,
|
||||
Format(lisAmbiguousFileFoundThisFileCanBeMistakenWithDelete,
|
||||
[CurFilename, LineEnding, ShortFilename, LineEnding+LineEnding]),
|
||||
mtConfirmation,[mbYes,mbNo])=mrNo
|
||||
then continue;
|
||||
end;
|
||||
if EnvironmentOptions.AmbiguousFileAction in [afaAutoDelete,afaAsk]
|
||||
then begin
|
||||
Result:=DeleteFileInteractive(CurFilename);
|
||||
if not (Result in [mrOK,mrIgnore]) then exit(mrCancel);
|
||||
end else if EnvironmentOptions.AmbiguousFileAction=afaAutoRename then
|
||||
begin
|
||||
Result:=BackupFileForWrite(CurFilename);
|
||||
if not (Result in [mrOK,mrIgnore]) then exit(mrCancel);
|
||||
if FileExistsUTF8(CurFilename) then begin
|
||||
Result:=DeleteFileInteractive(CurFilename);
|
||||
if not (Result in [mrOK,mrIgnore]) then exit(mrCancel);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
Result:=mrOk;
|
||||
end;
|
||||
|
||||
@ -705,19 +705,22 @@ begin
|
||||
//DebugLn(['TCheckCompilerOptsDlg.CheckFPCUnitPathsContainSources Directory="',Directory,'"']);
|
||||
if FindFirstUTF8(Directory+GetAllFilesMask,faAnyFile,FileInfo)=0
|
||||
then begin
|
||||
repeat
|
||||
// check if special file
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='') then
|
||||
continue;
|
||||
// check extension
|
||||
if FilenameHasPascalExt(FileInfo.Name) then begin
|
||||
AddWarning(lisCCOFPCUnitPathHasSource+Directory+FileInfo.Name);
|
||||
WarnedDirectories.Add(Directory);
|
||||
break;
|
||||
end;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
try
|
||||
repeat
|
||||
// check if special file
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='') then
|
||||
continue;
|
||||
// check extension
|
||||
if FilenameHasPascalExt(FileInfo.Name) then begin
|
||||
AddWarning(lisCCOFPCUnitPathHasSource+Directory+FileInfo.Name);
|
||||
WarnedDirectories.Add(Directory);
|
||||
break;
|
||||
end;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -340,24 +340,27 @@ var
|
||||
if FindFirstUTF8(MainDirectory+GetAllFilesMask,
|
||||
faAnyFile,FileInfo)=0
|
||||
then begin
|
||||
repeat
|
||||
// check if special file
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='')
|
||||
then continue;
|
||||
FullFilename:=MainDirectory+FileInfo.Name;
|
||||
if (FileInfo.Attr and faDirectory)>0 then begin
|
||||
if SubDirsCheckbox.Checked then begin
|
||||
// search recursively
|
||||
if not SearchInDirectory(AppendPathDelim(FullFilename),Lvl+1) then
|
||||
break;
|
||||
try
|
||||
repeat
|
||||
// check if special file
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='')
|
||||
then continue;
|
||||
FullFilename:=MainDirectory+FileInfo.Name;
|
||||
if (FileInfo.Attr and faDirectory)>0 then begin
|
||||
if SubDirsCheckbox.Checked then begin
|
||||
// search recursively
|
||||
if not SearchInDirectory(AppendPathDelim(FullFilename),Lvl+1) then
|
||||
break;
|
||||
end;
|
||||
end else begin
|
||||
if FileMatches(FullFilename) then
|
||||
List.Add(FullFilename);
|
||||
end;
|
||||
end else begin
|
||||
if FileMatches(FullFilename) then
|
||||
List.Add(FullFilename);
|
||||
end;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(FileInfo);
|
||||
Result:=true;
|
||||
end;
|
||||
|
||||
|
||||
@ -460,8 +460,8 @@ var
|
||||
SubFile:='bin/$(TargetCPU)-$(TargetOS)/'+ShortCompFile;
|
||||
if CheckFile(ADir+SubFile,List) then
|
||||
exit;
|
||||
try
|
||||
if FindFirstUTF8(ADir+AllFilesMask,faAnyFile,FileInfo)=0 then begin
|
||||
if FindFirstUTF8(ADir+AllFilesMask,faAnyFile,FileInfo)=0 then begin
|
||||
try
|
||||
repeat
|
||||
// check if special file
|
||||
if (FileInfo.Name='.') or (FileInfo.Name='..') or (FileInfo.Name='') then
|
||||
@ -470,9 +470,9 @@ var
|
||||
and CheckFile(ADir+FileInfo.Name+PathDelim+SubFile,List) then
|
||||
exit;
|
||||
until FindNextUTF8(FileInfo)<>0;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
finally
|
||||
FindCloseUTF8(FileInfo);
|
||||
end;
|
||||
Result:=false;
|
||||
end;
|
||||
|
||||
@ -565,11 +565,14 @@ begin
|
||||
xDir := ExtractFilePath(FFileName);
|
||||
if FindFirstUTF8(GetRequestPrefix+AllFilesMask, faAnyFile, xRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
DeleteFile(xDir+xRec.Name);
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
try
|
||||
repeat
|
||||
DeleteFile(xDir+xRec.Name);
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
finally
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
|
||||
function TIPCServer.DeleteRequest(const aRequestID: Integer): Boolean;
|
||||
@ -605,17 +608,20 @@ begin
|
||||
Result := -1;
|
||||
if FindFirstUTF8(GetRequestPrefix+AllFilesMask, faAnyFile, xRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
Result := RequestFileNameToID(xRec.Name);
|
||||
if Result >= 0 then
|
||||
begin
|
||||
outFileName := GetRequestFileName(Result);
|
||||
if not CanReadMessage(outFileName, outStream, outMsgType, outMsgLen) then
|
||||
Result := -1;
|
||||
end;
|
||||
until (Result >= 0) or (FindNextUTF8(xRec) <> 0);
|
||||
try
|
||||
repeat
|
||||
Result := RequestFileNameToID(xRec.Name);
|
||||
if Result >= 0 then
|
||||
begin
|
||||
outFileName := GetRequestFileName(Result);
|
||||
if not CanReadMessage(outFileName, outStream, outMsgType, outMsgLen) then
|
||||
Result := -1;
|
||||
end;
|
||||
until (Result >= 0) or (FindNextUTF8(xRec) <> 0);
|
||||
finally
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
|
||||
function TIPCServer.FindHighestPendingRequestId: Integer;
|
||||
@ -626,13 +632,16 @@ begin
|
||||
Result := -1;
|
||||
if FindFirstUTF8(GetRequestPrefix+AllFilesMask, faAnyFile, xRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
xRequestID := RequestFileNameToID(xRec.Name);
|
||||
if xRequestID > Result then
|
||||
Result := xRequestID;
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
try
|
||||
repeat
|
||||
xRequestID := RequestFileNameToID(xRec.Name);
|
||||
if xRequestID > Result then
|
||||
Result := xRequestID;
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
finally
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
|
||||
function TIPCServer.GetPendingRequestCount: Integer;
|
||||
@ -642,12 +651,15 @@ begin
|
||||
Result := 0;
|
||||
if FindFirstUTF8(GetRequestPrefix+AllFilesMask, faAnyFile, xRec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
if RequestFileNameToID(xRec.Name) >= 0 then
|
||||
Inc(Result);
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
try
|
||||
repeat
|
||||
if RequestFileNameToID(xRec.Name) >= 0 then
|
||||
Inc(Result);
|
||||
until FindNextUTF8(xRec) <> 0;
|
||||
finally
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(xRec);
|
||||
end;
|
||||
|
||||
function TIPCServer.PeekRequest(out outRequestID: Integer; out
|
||||
|
||||
@ -133,17 +133,20 @@ begin
|
||||
|
||||
if FindFirstUTF8('/proc/*', faDirectory, Rec) = 0 then
|
||||
begin
|
||||
repeat
|
||||
Val(Rec.Name, Pid, Code);
|
||||
if (Code = 0) then
|
||||
begin
|
||||
ProcName := GetProcName;
|
||||
item := TRunningProcessInfo.Create(Pid, ProcName);
|
||||
AList.Add(item);
|
||||
end;
|
||||
until FindNextUTF8(Rec) <> 0;
|
||||
try
|
||||
repeat
|
||||
Val(Rec.Name, Pid, Code);
|
||||
if (Code = 0) then
|
||||
begin
|
||||
ProcName := GetProcName;
|
||||
item := TRunningProcessInfo.Create(Pid, ProcName);
|
||||
AList.Add(item);
|
||||
end;
|
||||
until FindNextUTF8(Rec) <> 0;
|
||||
finally
|
||||
FindCloseUTF8(Rec);
|
||||
end;
|
||||
end;
|
||||
FindCloseUTF8(Rec);
|
||||
end;
|
||||
{$else}
|
||||
{$ifdef darwin}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user