summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-14 08:06:54 +0000
committerpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2021-04-14 08:06:54 +0000
commit58336a92c303e0cd91bc11c424fe2f25e4e7dd0b (patch)
tree06edf3284a998689233538ccb16743b0cf380474
parentce603f099a5c119ae76ed7b766c15d2d62b0cca4 (diff)
downloadfpc-58336a92c303e0cd91bc11c424fe2f25e4e7dd0b.tar.gz
Also delete file before copying if destination is a directory on Darwin OS
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49202 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/fpmkunit/src/fpmkunit.pp14
1 files changed, 12 insertions, 2 deletions
diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp
index 9572af4ea4..70b51d34e9 100644
--- a/packages/fpmkunit/src/fpmkunit.pp
+++ b/packages/fpmkunit/src/fpmkunit.pp
@@ -6199,8 +6199,18 @@ Var
{$endif UNIX}
begin
{ First delete file on Darwin OS to avoid codesign issues }
- if (Defaults.SourceOS=Darwin) and FileExists(Dest) then
- SysDeleteFile(Dest);
+ if (Defaults.SourceOS=Darwin) then
+ begin
+ D:=IncludeTrailingPathDelimiter(Dest);
+ If DirectoryExists(D) then
+ begin
+ D:=D+ExtractFileName(Src);
+ if FileExists(D) then
+ SysDeleteFile(D);
+ end
+ else if FileExists(Dest) then
+ SysDeleteFile(Dest);
+ end;
Log(vlInfo,SInfoCopyingFile,[Src,Dest]);
FIn:=TFileStream.Create(Src,fmopenRead or fmShareDenyNone);
Try