grep --all-match

This lets you say:

	git grep --all-match -e A -e B -e C

to find lines that match A or B or C but limit the matches from
the files that have all of A, B and C.

This is different from

	git grep -e A --and -e B --and -e C

in that the latter looks for a single line that has all of these
at the same time.

Signed-off-by: Junio C Hamano <junkio@cox.net>
diff --git a/grep.h b/grep.h
index af9098c..d252dd2 100644
--- a/grep.h
+++ b/grep.h
@@ -35,6 +35,7 @@
 
 struct grep_expr {
 	enum grep_expr_node node;
+	unsigned hit;
 	union {
 		struct grep_pat *atom;
 		struct grep_expr *unary;
@@ -59,6 +60,7 @@
 	unsigned count:1;
 	unsigned word_regexp:1;
 	unsigned fixed:1;
+	unsigned all_match:1;
 #define GREP_BINARY_DEFAULT	0
 #define GREP_BINARY_NOMATCH	1
 #define GREP_BINARY_TEXT	2