Mercurial > hg > easyhg-kdiff3
changeset 96:9000a9763f6f
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.
author | joachim99 |
---|---|
date | Thu, 25 Mar 2010 20:37:37 +0000 |
parents | 6f42f5bd218e |
children | 5024edf90636 |
files | kdiff3/src-QT4/directorymergewindow.cpp |
diffstat | 1 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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('/');