# HG changeset patch # User joachim99 # Date 1269549457 0 # Node ID 9000a9763f6f9d89fde72daf24cf313ee7927904 # Parent 6f42f5bd218ef6ecb1e412873136f910bf2df115 Fixed problem where destination directory would be renamed or deleted during copy operation. Now if the destination directory exists only the files inside will be copied. diff -r 6f42f5bd218e -r 9000a9763f6f kdiff3/src-QT4/directorymergewindow.cpp --- a/kdiff3/src-QT4/directorymergewindow.cpp Sun Feb 28 20:32:34 2010 +0000 +++ b/kdiff3/src-QT4/directorymergewindow.cpp Thu Mar 25 20:37:37 2010 +0000 @@ -2500,7 +2500,9 @@ if ( srcName == destName ) return true; - if ( FileAccess(destName, true).exists() ) + FileAccess fi( srcName ); + FileAccess faDest(destName, true); + if ( faDest.exists() && !( fi.isDir() && faDest.isDir() && (fi.isSymLink()==faDest.isSymLink())) ) { bool bSuccess = deleteFLD( destName, m_pOptions->m_bDmCreateBakFiles ); if ( !bSuccess ) @@ -2511,7 +2513,6 @@ } } - FileAccess fi( srcName ); if ( fi.isSymLink() && ((fi.isDir() && !m_bFollowDirLinks) || (!fi.isDir() && !m_bFollowFileLinks)) ) { @@ -2539,8 +2540,13 @@ if ( fi.isDir() ) { - bool bSuccess = makeDir( destName ); - return bSuccess; + if ( faDest.exists() ) + return true; + else + { + bool bSuccess = makeDir( destName ); + return bSuccess; + } } int pos=destName.lastIndexOf('/');