Unidiff1 files changed, 67 insertions, 1 deletions
|
diff --git a/git.h b/git.h index 922a167..b1e4828 100644 --- a/ git.h+++ b/ git.h |
|
@@ -31,7 +31,7 @@ |
31 | #include <sys/types.h> |
31 | #include <sys/types.h> |
32 | #include <dirent.h> |
32 | #include <dirent.h> |
33 | #include <time.h> |
33 | #include <time.h> |
34 | |
34 | #include <regex.h> |
35 | |
35 | |
36 | /* On most systems <limits.h> would have given us this, but |
36 | /* On most systems <limits.h> would have given us this, but |
37 | * not on some systems (e.g. GNU/Hurd). |
37 | * not on some systems (e.g. GNU/Hurd). |
@@ -156,6 +156,72 @@ static inline void hashclr(unsigned char *hash) |
156 | } |
156 | } |
157 | |
157 | |
158 | |
158 | |
| |
159 | /* |
| |
160 | * from git:grep.h |
| |
161 | */ |
| |
162 | |
| |
163 | enum grep_pat_token { |
| |
164 | GREP_PATTERN, |
| |
165 | GREP_PATTERN_HEAD, |
| |
166 | GREP_PATTERN_BODY, |
| |
167 | GREP_AND, |
| |
168 | GREP_OPEN_PAREN, |
| |
169 | GREP_CLOSE_PAREN, |
| |
170 | GREP_NOT, |
| |
171 | GREP_OR, |
| |
172 | }; |
| |
173 | |
| |
174 | enum grep_context { |
| |
175 | GREP_CONTEXT_HEAD, |
| |
176 | GREP_CONTEXT_BODY, |
| |
177 | }; |
| |
178 | |
| |
179 | struct grep_pat { |
| |
180 | struct grep_pat *next; |
| |
181 | const char *origin; |
| |
182 | int no; |
| |
183 | enum grep_pat_token token; |
| |
184 | const char *pattern; |
| |
185 | regex_t regexp; |
| |
186 | }; |
| |
187 | |
| |
188 | enum grep_expr_node { |
| |
189 | GREP_NODE_ATOM, |
| |
190 | GREP_NODE_NOT, |
| |
191 | GREP_NODE_AND, |
| |
192 | GREP_NODE_OR, |
| |
193 | }; |
| |
194 | |
| |
195 | struct grep_opt { |
| |
196 | struct grep_pat *pattern_list; |
| |
197 | struct grep_pat **pattern_tail; |
| |
198 | struct grep_expr *pattern_expression; |
| |
199 | int prefix_length; |
| |
200 | regex_t regexp; |
| |
201 | unsigned linenum:1; |
| |
202 | unsigned invert:1; |
| |
203 | unsigned status_only:1; |
| |
204 | unsigned name_only:1; |
| |
205 | unsigned unmatch_name_only:1; |
| |
206 | unsigned count:1; |
| |
207 | unsigned word_regexp:1; |
| |
208 | unsigned fixed:1; |
| |
209 | unsigned all_match:1; |
| |
210 | #define GREP_BINARY_DEFAULT 0 |
| |
211 | #define GREP_BINARY_NOMATCH 1 |
| |
212 | #define GREP_BINARY_TEXT 2 |
| |
213 | unsigned binary:2; |
| |
214 | unsigned extended:1; |
| |
215 | unsigned relative:1; |
| |
216 | unsigned pathname:1; |
| |
217 | int regflags; |
| |
218 | unsigned pre_context; |
| |
219 | unsigned post_context; |
| |
220 | }; |
| |
221 | |
| |
222 | |
| |
223 | extern void compile_grep_patterns(struct grep_opt *opt); |
| |
224 | extern void free_grep_patterns(struct grep_opt *opt); |
159 | |
225 | |
160 | |
226 | |
161 | /* |
227 | /* |
|