aboutsummaryrefslogtreecommitdiff
path: root/grep.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-09-13 14:21:44 -0700
committerJunio C Hamano <gitster@pobox.com>2012-09-14 10:10:35 -0700
commit17bf35a3c7b46df7131681bcc5bee5f12e1caec4 (patch)
tree26c22e3e4dce563d22a840d6a9b2f144a2335b57 /grep.h
parent785ee4960c3d334cbc2b17ab74d2cebdf1b4db64 (diff)
downloadgit-17bf35a3c7b46df7131681bcc5bee5f12e1caec4.tar.gz
git-17bf35a3c7b46df7131681bcc5bee5f12e1caec4.tar.xz
grep: teach --debug option to dump the parse tree
Our "grep" allows complex boolean expressions to be formed to match each individual line with operators like --and, '(', ')' and --not. Introduce the "--debug" option to show the parse tree to help people who want to debug and enhance it. Also "log" learns "--grep-debug" option to do the same. The command line parser to the log family is a lot more limited than the general "git grep" parser, but it has special handling for header matching (e.g. "--author"), and a parse tree is valuable when working on it. Note that "--all-match" is *not* any individual node in the parse tree. It is an instruction to the evaluator to check all the nodes in the top-level backbone have matched and reject a document as non-matching otherwise. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'grep.h')
-rw-r--r--grep.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/grep.h b/grep.h
index ed7de6bec..bf5be5ada 100644
--- a/grep.h
+++ b/grep.h
@@ -90,6 +90,7 @@ struct grep_opt {
int word_regexp;
int fixed;
int all_match;
+ int debug;
#define GREP_BINARY_DEFAULT 0
#define GREP_BINARY_NOMATCH 1
#define GREP_BINARY_TEXT 2