When comparing some C or Bash sources with diff -u, diff assume some lines in the middle of the hunk as common.
For example qqqq www eeee -text1 +text3 common1 -text4 +text5 aaa bbb cccc
I'm talking about line "common1". One frequent situation is that diff assume lines "fi", "}", "{", "else" as common lines. In the middle of the patch it's not always good for reading result.
In all those cases, it is appropriate to remove this line (mark with "-" ) in old place and than add it ( mark with "+" ) in new place. In other words, i want new option:
-O regex. Lines in the middle of the hunk, matched this regex will be considered different if it really equal.
Diff should not think, that "fi", "}", "{", "else" is good context in resulting patches.
Other option, that will solve my problem too -- "do not allow less than n lines of context".
Correct patch after specifying such options should be: