[Winmerge-svn] SF.net SVN: winmerge:[5854] trunk/Src/DirScan.cpp
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <sdo...@us...> - 2008-08-24 12:05:39
|
Revision: 5854 http://winmerge.svn.sourceforge.net/winmerge/?rev=5854&view=rev Author: sdottaka Date: 2008-08-24 12:05:35 +0000 (Sun, 24 Aug 2008) Log Message: ----------- PATCH: [ 2018836 ] RFE:987590 hierarchical directory comparison result view (6) - Fix for unique folders Modified Paths: -------------- trunk/Src/DirScan.cpp Modified: trunk/Src/DirScan.cpp =================================================================== --- trunk/Src/DirScan.cpp 2008-08-24 10:38:57 UTC (rev 5853) +++ trunk/Src/DirScan.cpp 2008-08-24 12:05:35 UTC (rev 5854) @@ -332,18 +332,20 @@ WaitForSingleObject(myStruct->hSemaphore, INFINITE); POSITION curpos = pos; DIFFITEM &di = pCtxt->GetNextSiblingDiffRefPosition(pos); - if (di.diffcode.isDirectory() && di.diffcode.isSideBoth() && myStruct->bRecursive) + if (di.diffcode.isDirectory() && myStruct->bRecursive) { di.diffcode.diffcode &= ~(DIFFCODE::DIFF | DIFFCODE::SAME); int ndiff = DirScan_CompareItems(myStruct, curpos); if (ndiff > 0) { - di.diffcode.diffcode |= DIFFCODE::DIFF; + if (di.diffcode.isSideBoth()) + di.diffcode.diffcode |= DIFFCODE::DIFF; res += ndiff; } else if (ndiff == 0) { - di.diffcode.diffcode |= DIFFCODE::SAME; + if (di.diffcode.isSideBoth()) + di.diffcode.diffcode |= DIFFCODE::SAME; } } else @@ -382,18 +384,20 @@ POSITION curpos = pos; DIFFITEM &di = pCtxt->GetNextSiblingDiffRefPosition(pos); - if (di.diffcode.isDirectory() && di.diffcode.isSideBoth() && myStruct->bRecursive) + if (di.diffcode.isDirectory() && myStruct->bRecursive) { di.diffcode.diffcode &= ~(DIFFCODE::DIFF | DIFFCODE::SAME); int ndiff = DirScan_CompareRequestedItems(myStruct, curpos); if (ndiff > 0) { - di.diffcode.diffcode |= DIFFCODE::DIFF; + if (di.diffcode.isSideBoth()) + di.diffcode.diffcode |= DIFFCODE::DIFF; res += ndiff; } else if (ndiff == 0) { - di.diffcode.diffcode |= DIFFCODE::SAME; + if (di.diffcode.isSideBoth()) + di.diffcode.diffcode |= DIFFCODE::SAME; } } else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |