[Winmerge-svn] SF.net SVN: winmerge:[6084] trunk/Src/CompareEngines/ByteCompare.cpp
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2008-11-12 16:56:07
|
Revision: 6084 http://winmerge.svn.sourceforge.net/winmerge/?rev=6084&view=rev Author: kimmov Date: 2008-11-12 16:56:01 +0000 (Wed, 12 Nov 2008) Log Message: ----------- PATCH: [ 2120174 ] ByteCompare Fix bug in getting more data to compare buffers. Submitted by Matthias Mayer Modified Paths: -------------- trunk/Src/CompareEngines/ByteCompare.cpp Modified: trunk/Src/CompareEngines/ByteCompare.cpp =================================================================== --- trunk/Src/CompareEngines/ByteCompare.cpp 2008-11-12 16:47:29 UTC (rev 6083) +++ trunk/Src/CompareEngines/ByteCompare.cpp 2008-11-12 16:56:01 UTC (rev 6084) @@ -210,22 +210,22 @@ else if (result == ByteComparator::NEED_MORE_0) { const int m = ptr0 - &buff[0][0]; - const int l = end0 - ptr0 - 1; + const int l = end0 - ptr0; //move uncompared data to begin of buff0 memcpy( &buff[0][0], &buff[0][m], l ); bfstart[0] = 0; bfstart[1] = ptr1 - orig1; - bfend[0] = l + 1; + bfend[0] = l; } else if (result == ByteComparator::NEED_MORE_1) { const int m = ptr1 - &buff[1][0]; - const int l = end1 - ptr1 - 1; + const int l = end1 - ptr1; //move uncompared data to begin of buff1 - memcpy( &buff[1][0], &buff[0][m], l ); + memcpy( &buff[1][0], &buff[1][m], l ); bfstart[1]=0; bfstart[0]=ptr0 - orig0; - bfend[1] = l + 1; + bfend[1] = l; } else if (result == ByteComparator::NEED_MORE_BOTH) { @@ -241,20 +241,20 @@ if (ptr0 < end0) { const int m = ptr0 - orig0; - const int l = end0 - ptr0 - 1; + const int l = end0 - ptr0; //move uncompared data to begin of buff0 memcpy( &buff[0][0], &buff[0][m], l ); bfstart[0] = 0; - bfend[0] = l + 1; + bfend[0] = l; } if (ptr1 < end1) { const int m = ptr1 - orig1; - const int l = end1 - ptr1 - 1; + const int l = end1 - ptr1; //move uncompared data to begin of buff1 memcpy( &buff[1][0], &buff[1][ m], l ); bfstart[1] = 0; - bfend[1] = l + 1; + bfend[1] = l; } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |