From ea3f36ed9daec1d02f70a19a2710123d6cb09d72 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 12 Jul 2020 23:44:17 +0100 Subject: [PATCH] Fix water File::copyDirectoryTo() to take into account symlinks Signed-off-by: falkTX --- source/modules/water/files/File.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/source/modules/water/files/File.cpp b/source/modules/water/files/File.cpp index 984477e48..a44ea3579 100644 --- a/source/modules/water/files/File.cpp +++ b/source/modules/water/files/File.cpp @@ -332,8 +332,21 @@ bool File::copyDirectoryTo (const File& newDirectory) const findChildFiles (subFiles, File::findFiles, false); for (int i = 0; i < subFiles.size(); ++i) - if (! subFiles.getReference(i).copyFileTo (newDirectory.getChildFile (subFiles.getReference(i).getFileName()))) - return false; + { + const File& src (subFiles.getReference(i)); + const File& dst (newDirectory.getChildFile (src.getFileName())); + + if (src.isSymbolicLink()) + { + if (! src.getLinkedTarget().createSymbolicLink (dst, true)) + return false; + } + else + { + if (! src.copyFileTo (dst)) + return false; + } + } subFiles.clear(); findChildFiles (subFiles, File::findDirectories, false);