A new automaton state is added to quickly step over false branches.This one took me a little while to understand while reading the patch, but mostly because of how diff doesn't handle moving things around.
"git diff -w --patience" may help.
Marking as ready for committer.
Here is a rebase. I made some tests use actual expressions instead of just 0 and 1. No other changes.
-- Fabien.