From 732d68d240b95dc428c92fc94bce9adb8912094e Mon Sep 17 00:00:00 2001 From: Lars Hjemli Date: Thu, 28 Dec 2006 02:45:28 +0100 Subject: Add basic log filtering This enables case-insensitive grep on logentris using the new search box Signed-off-by: Lars Hjemli --- git.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) (limited to 'git.h') diff --git a/git.h b/git.h index 922a167..b1e4828 100644 --- a/git.h +++ b/git.h @@ -31,7 +31,7 @@ #include #include #include - +#include /* On most systems would have given us this, but * not on some systems (e.g. GNU/Hurd). @@ -156,6 +156,72 @@ static inline void hashclr(unsigned char *hash) } +/* + * from git:grep.h + */ + +enum grep_pat_token { + GREP_PATTERN, + GREP_PATTERN_HEAD, + GREP_PATTERN_BODY, + GREP_AND, + GREP_OPEN_PAREN, + GREP_CLOSE_PAREN, + GREP_NOT, + GREP_OR, +}; + +enum grep_context { + GREP_CONTEXT_HEAD, + GREP_CONTEXT_BODY, +}; + +struct grep_pat { + struct grep_pat *next; + const char *origin; + int no; + enum grep_pat_token token; + const char *pattern; + regex_t regexp; +}; + +enum grep_expr_node { + GREP_NODE_ATOM, + GREP_NODE_NOT, + GREP_NODE_AND, + GREP_NODE_OR, +}; + +struct grep_opt { + struct grep_pat *pattern_list; + struct grep_pat **pattern_tail; + struct grep_expr *pattern_expression; + int prefix_length; + regex_t regexp; + unsigned linenum:1; + unsigned invert:1; + unsigned status_only:1; + unsigned name_only:1; + unsigned unmatch_name_only:1; + 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 + unsigned binary:2; + unsigned extended:1; + unsigned relative:1; + unsigned pathname:1; + int regflags; + unsigned pre_context; + unsigned post_context; +}; + + +extern void compile_grep_patterns(struct grep_opt *opt); +extern void free_grep_patterns(struct grep_opt *opt); /* -- cgit v1.2.3-59-g8ed1b