@@ -116,7 +116,13 @@ fn make_diff(expected: &[u8], actual: &[u8], stop_early: bool) -> Vec<Mismatch>
116116}
117117
118118#[ must_use]
119- pub fn diff ( expected : & [ u8 ] , actual : & [ u8 ] , stop_early : bool , expand_tabs : bool ) -> Vec < u8 > {
119+ pub fn diff (
120+ expected : & [ u8 ] ,
121+ actual : & [ u8 ] ,
122+ stop_early : bool ,
123+ expand_tabs : bool ,
124+ tabsize : usize ,
125+ ) -> Vec < u8 > {
120126 // See https://www.gnu.org/software/diffutils/manual/html_node/Detailed-Normal.html
121127 // for details on the syntax of the normal format.
122128 let mut output = Vec :: new ( ) ;
@@ -190,7 +196,7 @@ pub fn diff(expected: &[u8], actual: &[u8], stop_early: bool, expand_tabs: bool)
190196 }
191197 for expected in & result. expected {
192198 write ! ( & mut output, "< " ) . unwrap ( ) ;
193- do_write_line ( & mut output, expected, expand_tabs) . unwrap ( ) ;
199+ do_write_line ( & mut output, expected, expand_tabs, tabsize ) . unwrap ( ) ;
194200 writeln ! ( & mut output) . unwrap ( ) ;
195201 }
196202 if result. expected_missing_nl {
@@ -201,7 +207,7 @@ pub fn diff(expected: &[u8], actual: &[u8], stop_early: bool, expand_tabs: bool)
201207 }
202208 for actual in & result. actual {
203209 write ! ( & mut output, "> " ) . unwrap ( ) ;
204- do_write_line ( & mut output, actual, expand_tabs) . unwrap ( ) ;
210+ do_write_line ( & mut output, actual, expand_tabs, tabsize ) . unwrap ( ) ;
205211 writeln ! ( & mut output) . unwrap ( ) ;
206212 }
207213 if result. actual_missing_nl {
@@ -222,7 +228,7 @@ mod tests {
222228 a. write_all ( b"a\n " ) . unwrap ( ) ;
223229 let mut b = Vec :: new ( ) ;
224230 b. write_all ( b"b\n " ) . unwrap ( ) ;
225- let diff = diff ( & a, & b, false , false ) ;
231+ let diff = diff ( & a, & b, false , false , 8 ) ;
226232 let expected = b"1c1\n < a\n ---\n > b\n " . to_vec ( ) ;
227233 assert_eq ! ( diff, expected) ;
228234 }
@@ -275,7 +281,7 @@ mod tests {
275281 }
276282 // This test diff is intentionally reversed.
277283 // We want it to turn the alef into bet.
278- let diff = diff ( & alef, & bet, false , false ) ;
284+ let diff = diff ( & alef, & bet, false , false , 8 ) ;
279285 File :: create ( & format ! ( "{target}/ab.diff" ) )
280286 . unwrap ( )
281287 . write_all ( & diff)
@@ -367,7 +373,7 @@ mod tests {
367373 }
368374 // This test diff is intentionally reversed.
369375 // We want it to turn the alef into bet.
370- let diff = diff ( & alef, & bet, false , false ) ;
376+ let diff = diff ( & alef, & bet, false , false , 8 ) ;
371377 File :: create ( & format ! ( "{target}/abn.diff" ) )
372378 . unwrap ( )
373379 . write_all ( & diff)
@@ -441,7 +447,7 @@ mod tests {
441447 }
442448 // This test diff is intentionally reversed.
443449 // We want it to turn the alef into bet.
444- let diff = diff ( & alef, & bet, false , false ) ;
450+ let diff = diff ( & alef, & bet, false , false , 8 ) ;
445451 File :: create ( & format ! ( "{target}/ab_.diff" ) )
446452 . unwrap ( )
447453 . write_all ( & diff)
@@ -519,7 +525,7 @@ mod tests {
519525 }
520526 // This test diff is intentionally reversed.
521527 // We want it to turn the alef into bet.
522- let diff = diff ( & alef, & bet, false , false ) ;
528+ let diff = diff ( & alef, & bet, false , false , 8 ) ;
523529 File :: create ( & format ! ( "{target}/abr.diff" ) )
524530 . unwrap ( )
525531 . write_all ( & diff)
@@ -554,18 +560,18 @@ mod tests {
554560 let from = [ "a" , "b" , "c" ] . join ( "\n " ) ;
555561 let to = [ "a" , "d" , "c" ] . join ( "\n " ) ;
556562
557- let diff_full = diff ( from. as_bytes ( ) , to. as_bytes ( ) , false , false ) ;
563+ let diff_full = diff ( from. as_bytes ( ) , to. as_bytes ( ) , false , false , 8 ) ;
558564 let expected_full = [ "2c2" , "< b" , "---" , "> d" , "" ] . join ( "\n " ) ;
559565 assert_eq ! ( diff_full, expected_full. as_bytes( ) ) ;
560566
561- let diff_brief = diff ( from. as_bytes ( ) , to. as_bytes ( ) , true , false ) ;
567+ let diff_brief = diff ( from. as_bytes ( ) , to. as_bytes ( ) , true , false , 8 ) ;
562568 let expected_brief = "\0 " . as_bytes ( ) ;
563569 assert_eq ! ( diff_brief, expected_brief) ;
564570
565- let nodiff_full = diff ( from. as_bytes ( ) , from. as_bytes ( ) , false , false ) ;
571+ let nodiff_full = diff ( from. as_bytes ( ) , from. as_bytes ( ) , false , false , 8 ) ;
566572 assert ! ( nodiff_full. is_empty( ) ) ;
567573
568- let nodiff_brief = diff ( from. as_bytes ( ) , from. as_bytes ( ) , true , false ) ;
574+ let nodiff_brief = diff ( from. as_bytes ( ) , from. as_bytes ( ) , true , false , 8 ) ;
569575 assert ! ( nodiff_brief. is_empty( ) ) ;
570576 }
571577}
0 commit comments