@@ -21,7 +21,7 @@ pub const Diff = struct {
2121 pub fn format (value : Diff , _ : anytype , _ : anytype , writer : anytype ) ! void {
2222 try writer .print ("({s}, \" {s}\" )" , .{
2323 switch (value .operation ) {
24- .equal = > "" ,
24+ .equal = > "= " ,
2525 .insert = > "+" ,
2626 .delete = > "-" ,
2727 },
@@ -108,13 +108,13 @@ fn diffInternal(
108108 var trimmed_after = after [common_length .. ];
109109
110110 // Trim off common suffix (speedup).
111- common_length = diffCommonSuffix (before , after );
112- var common_suffix = before [ before .len - common_length .. ];
111+ common_length = diffCommonSuffix (trimmed_before , trimmed_after );
112+ var common_suffix = trimmed_before [ trimmed_before .len - common_length .. ];
113113 trimmed_before = trimmed_before [0 .. trimmed_before .len - common_length ];
114114 trimmed_after = trimmed_after [0 .. trimmed_after .len - common_length ];
115115
116116 // Compute the diff on the middle block.
117- diffs = try dmp .diffCompute (allocator , before , after , check_lines , deadline );
117+ diffs = try dmp .diffCompute (allocator , trimmed_before , trimmed_after , check_lines , deadline );
118118
119119 // Restore the prefix and suffix.
120120 if (common_prefix .len != 0 ) {
@@ -228,8 +228,10 @@ fn diffCompute(
228228 deadline ,
229229 );
230230 defer diffs_b .deinit (allocator );
231+
231232 var tmp_diffs = diffs ;
232233 defer tmp_diffs .deinit (allocator );
234+
233235 // Merge the results.
234236 diffs = diffs_a ;
235237 try diffs .append (allocator , Diff .init (.equal , half_match .common_middle ));
@@ -402,7 +404,7 @@ fn diffBisect(
402404 const delta = before_length - after_length ;
403405 // If the total number of characters is odd, then the front path will
404406 // collide with the reverse path.
405- const front = delta & 1 == 1 ;
407+ const front = ( @mod ( delta , 2 ) != 0 ) ;
406408 // Offsets for start and end of k loop.
407409 // Prevents mapping of space beyond the grid.
408410 var k1start : isize = 0 ;
@@ -422,8 +424,8 @@ fn diffBisect(
422424 while (k1 <= d - k1end ) : (k1 += 2 ) {
423425 var k1_offset = v_offset + k1 ;
424426 var x1 : isize = 0 ;
425- if (k1 == - d or k1 != d and
426- v1 .items [@intCast (usize , k1_offset - 1 )] < v1 .items [@intCast (usize , k1_offset + 1 )])
427+ if (k1 == - d or ( k1 != d and
428+ v1 .items [@intCast (usize , k1_offset - 1 )] < v1 .items [@intCast (usize , k1_offset + 1 )]))
427429 {
428430 x1 = v1 .items [@intCast (usize , k1_offset + 1 )];
429431 } else {
@@ -461,8 +463,8 @@ fn diffBisect(
461463 while (k2 <= d - k2end ) : (k2 += 2 ) {
462464 const k2_offset = v_offset + k2 ;
463465 var x2 : isize = 0 ;
464- if (k2 == - d or k2 != d and
465- v2 .items [@intCast (usize , k2_offset - 1 )] < v2 .items [@intCast (usize , k2_offset + 1 )])
466+ if (k2 == - d or ( k2 != d and
467+ v2 .items [@intCast (usize , k2_offset - 1 )] < v2 .items [@intCast (usize , k2_offset + 1 )]))
466468 {
467469 x2 = v2 .items [@intCast (usize , k2_offset + 1 )];
468470 } else {
0 commit comments