René Scharfe <l.s.r@xxxxxx> writes: > So let's see what your example does: > > $ git grep --column --not \( --not -e foo --or --not -e bar \) trace.h > trace.h:13: * #define foo(format, ...) bar(format, __VA_ARGS__) > $ git grep --column --not \( --not -e bar --or --not -e foo \) trace.h > trace.h:13: * #define foo(format, ...) bar(format, __VA_ARGS__) > > Impressive. That expression is confusing at first sight, but showing > the first matching column anyway requires no further explanation. I > like it. OK, obviously many people are a lot more math/logic minded than I am. I still think that any code that attempts to show the same result as '-e bar --and -e foo' from the above is over-engineered, but as long as it is done corretly and efficiently I won't have any objection. Thanks.