[Winmerge-svn] SF.net SVN: winmerge: [4738] branches/R2_6/Src
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2007-11-11 16:54:57
|
Revision: 4738 http://winmerge.svn.sourceforge.net/winmerge/?rev=4738&view=rev Author: kimmov Date: 2007-11-11 08:54:52 -0800 (Sun, 11 Nov 2007) Log Message: ----------- PATCH: [ 1811745 ] Do not merge ignored differences (with multi selection) Modified Paths: -------------- branches/R2_6/Src/Changes.txt branches/R2_6/Src/MergeDoc.cpp Modified: branches/R2_6/Src/Changes.txt =================================================================== --- branches/R2_6/Src/Changes.txt 2007-11-11 12:43:23 UTC (rev 4737) +++ branches/R2_6/Src/Changes.txt 2007-11-11 16:54:52 UTC (rev 4738) @@ -2,6 +2,10 @@ Add new items to top. (This summarizes all changes to all files under Src, including Src\Languages.) +2007-11-11 Kimmo + PATCH: [ 1811745 ] Do not merge ignored differences (with multi selection) + Src: MergeDoc.cpp + 2007-11-11 Takashi BUG: [ 1829572 ] Visible area rect on location bar shakes Src: MergeEditView.cpp Modified: branches/R2_6/Src/MergeDoc.cpp =================================================================== --- branches/R2_6/Src/MergeDoc.cpp 2007-11-11 12:43:23 UTC (rev 4737) +++ branches/R2_6/Src/MergeDoc.cpp 2007-11-11 16:54:52 UTC (rev 4738) @@ -731,6 +731,8 @@ /** * @brief Copy range of diffs from one side to side. + * This function copies given range of differences from side to another. + * Ignored differences are skipped, and not copied. * @param [in] srcPane Source side from which diff is copied * @param [in] dstPane Destination side * @param [in] firstDiff First diff copied (0-based index) @@ -758,18 +760,21 @@ // because we don't rescan() so it does not change SetCurrentDiff(lastDiff); - bool bGroupWithPrevious=false; + bool bGroupWithPrevious = false; if (!ListCopy(srcPane, dstPane, -1, bGroupWithPrevious)) return; // sync failure // copy from bottom up is more efficient - for(int i = lastDiff - 1; i >= firstDiff; --i) + for (int i = lastDiff - 1; i >= firstDiff; --i) { - SetCurrentDiff(i); - // Group merge with previous (merge undo data to one action) - bGroupWithPrevious=true; - if (!ListCopy(srcPane, dstPane, -1, bGroupWithPrevious)) - return; // sync failure + if (m_diffList.IsDiffSignificant(i)) + { + SetCurrentDiff(i); + // Group merge with previous (merge undo data to one action) + bGroupWithPrevious = true; + if (!ListCopy(srcPane, dstPane, -1, bGroupWithPrevious)) + return; // sync failure + } } suppressRescan.Clear(); // done suppress Rescan This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |