Add a couple of special cases which fix the zero-context diff case.
This commit is contained in:
parent
6c1c81bbce
commit
f9bcb58eb3
1 changed files with 3 additions and 3 deletions
|
@ -47,7 +47,7 @@ pub fn make_diff(expected: &str, actual: &str, context_size: usize) -> Vec<Misma
|
||||||
for result in diff::lines(expected, actual) {
|
for result in diff::lines(expected, actual) {
|
||||||
match result {
|
match result {
|
||||||
diff::Result::Left(str) => {
|
diff::Result::Left(str) => {
|
||||||
if lines_since_mismatch >= context_size {
|
if lines_since_mismatch >= context_size && lines_since_mismatch > 0 {
|
||||||
results.push(mismatch);
|
results.push(mismatch);
|
||||||
mismatch = Mismatch::new(line_number - context_queue.len() as u32);
|
mismatch = Mismatch::new(line_number - context_queue.len() as u32);
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,7 @@ pub fn make_diff(expected: &str, actual: &str, context_size: usize) -> Vec<Misma
|
||||||
lines_since_mismatch = 0;
|
lines_since_mismatch = 0;
|
||||||
}
|
}
|
||||||
diff::Result::Right(str) => {
|
diff::Result::Right(str) => {
|
||||||
if lines_since_mismatch >= context_size {
|
if lines_since_mismatch >= context_size && lines_since_mismatch > 0 {
|
||||||
results.push(mismatch);
|
results.push(mismatch);
|
||||||
mismatch = Mismatch::new(line_number - context_queue.len() as u32);
|
mismatch = Mismatch::new(line_number - context_queue.len() as u32);
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ pub fn make_diff(expected: &str, actual: &str, context_size: usize) -> Vec<Misma
|
||||||
|
|
||||||
if lines_since_mismatch < context_size {
|
if lines_since_mismatch < context_size {
|
||||||
mismatch.lines.push(DiffLine::Context(str.to_owned()));
|
mismatch.lines.push(DiffLine::Context(str.to_owned()));
|
||||||
} else {
|
} else if context_size > 0 {
|
||||||
context_queue.push_back(str);
|
context_queue.push_back(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue