diff --git a/bin/mechanicaldiff.py b/bin/mechanicaldiff.py index 54441fc..4a8ed1f 100755 --- a/bin/mechanicaldiff.py +++ b/bin/mechanicaldiff.py @@ -4,6 +4,20 @@ import sys def should_include_change(change_lines: list[str], search: str, replace: str) -> bool: + removed_lines = [] + added_lines = [] + phase = "minus" + for line in change_lines: + if line.startswith("-"): + if phase != "minus": + raise ValueError("Non-consecutive '-' and '+' lines in change block.") + removed_lines.append(line[1:]) + continue + if line.startswith("+"): + phase = "plus" + added_lines.append(line[1:]) + continue + raise ValueError("Unexpected non-change line in change block.") return True