Author: ericwa
Date: Fri Mar 14 06:57:11 2014
New Revision: 10558

URL: http://svn.gna.org/viewcvs/etoile?rev=10558&view=rev
Log:
Fix a diff bug

Modified:
    trunk/Etoile/Frameworks/CoreObject/Diff/diff.hh
    trunk/Etoile/Frameworks/CoreObject/Tests/Diff/TestDiffCAPI.m

Modified: trunk/Etoile/Frameworks/CoreObject/Diff/diff.hh
URL: 
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Diff/diff.hh?rev=10558&r1=10557&r2=10558&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Diff/diff.hh     (original)
+++ trunk/Etoile/Frameworks/CoreObject/Diff/diff.hh     Fri Mar 14 06:57:11 2014
@@ -489,8 +489,7 @@
                if (modifiedRangeB == NULL)
                        return false;
 
-               // TODO: Check and explain the reasoning behind this condition
-               if (modifiedRangeA->location > modifiedRangeB->location + 
offset)
+               if (modifiedRangeB->location == posB)
                        return true;
 
                return false;

Modified: trunk/Etoile/Frameworks/CoreObject/Tests/Diff/TestDiffCAPI.m
URL: 
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Frameworks/CoreObject/Tests/Diff/TestDiffCAPI.m?rev=10558&r1=10557&r2=10558&view=diff
==============================================================================
--- trunk/Etoile/Frameworks/CoreObject/Tests/Diff/TestDiffCAPI.m        
(original)
+++ trunk/Etoile/Frameworks/CoreObject/Tests/Diff/TestDiffCAPI.m        Fri Mar 
14 06:57:11 2014
@@ -224,4 +224,24 @@
        diff_free(diff);
 }
 
+- (void) testInsertCopyInsertCopyDelete
+{
+       const char *array1 = "aca";
+       const char *array2 = "cabc";
+       
+       diffresult_t *diff = diff_arrays(strlen(array1), strlen(array2), 
arraycomparefn, array1, array2);
+       
+       // NOTE: This produces an ugly (but correct) diff. The more intuitive 
diff would be delete 'a', insert 'bc'
+       
+       UKIntsEqual(5, diff_editcount(diff));
+       
+       [self checkEdit: diff_edit_at_index(diff, 0) isInsertAtLocA:0 
fromLocB:0 length:1];
+       [self checkEdit: diff_edit_at_index(diff, 1) isCopyFromLocA:0 length:1 
toLocB:1];
+       [self checkEdit: diff_edit_at_index(diff, 2) isInsertAtLocA:1 
fromLocB:2 length:1];
+       [self checkEdit: diff_edit_at_index(diff, 3) isCopyFromLocA:1 length:1 
toLocB:3];
+       [self checkEdit: diff_edit_at_index(diff, 4) isDeleteFromLocA:2 
length:1];
+       
+       diff_free(diff);
+}
+
 @end


_______________________________________________
Etoile-cvs mailing list
Etoile-cvs@gna.org
https://mail.gna.org/listinfo/etoile-cvs

Reply via email to