Lines Matching full:pattern
11 * Routines to do pattern matching.
21 * Compile a search pattern, for future use by match_pattern.
23 static int compile_pattern2(constant char *pattern, int search_type, PATTERN_TYPE *comp_pattern, in… in compile_pattern2() argument
32 if (re_compile_pattern(pattern, strlen(pattern), comp)) in compile_pattern2()
36 error("Invalid pattern", NULL_PARG); in compile_pattern2()
48 if (regcomp(comp, pattern, REGCOMP_FLAG | (is_caseless ? REG_ICASE : 0))) in compile_pattern2()
52 error("Invalid pattern", NULL_PARG); in compile_pattern2()
66 pcre *comp = pcre_compile(pattern, in compile_pattern2()
83 pcre2_code *comp = pcre2_compile((PCRE2_SPTR)pattern, strlen(pattern), in compile_pattern2()
102 if ((parg.p_string = re_comp(pattern)) != NULL) in compile_pattern2()
112 if ((comp = regcmp(pattern, 0)) == NULL) in compile_pattern2()
115 error("Invalid pattern", NULL_PARG); in compile_pattern2()
125 comp = regcomp(pattern); in compile_pattern2()
144 * Like compile_pattern2, but convert the pattern to lowercase if necessary.
146 public int compile_pattern(constant char *pattern, int search_type, int show_error, PATTERN_TYPE *c… in compile_pattern() argument
152 result = compile_pattern2(pattern, search_type, comp_pattern, show_error); in compile_pattern()
155 char *cvt_pattern = (char*) ecalloc(1, cvt_length(strlen(pattern), CVT_TO_LC)); in compile_pattern()
156 cvt_text(cvt_pattern, pattern, NULL, NULL, CVT_TO_LC); in compile_pattern()
164 * Forget that we have a compiled pattern.
166 public void uncompile_pattern(PATTERN_TYPE *pattern) in uncompile_pattern() argument
169 if (*pattern != NULL) in uncompile_pattern()
171 regfree(*pattern); in uncompile_pattern()
172 free(*pattern); in uncompile_pattern()
174 *pattern = NULL; in uncompile_pattern()
177 if (*pattern != NULL) in uncompile_pattern()
179 regfree(*pattern); in uncompile_pattern()
180 free(*pattern); in uncompile_pattern()
182 *pattern = NULL; in uncompile_pattern()
185 if (*pattern != NULL) in uncompile_pattern()
186 pcre_free(*pattern); in uncompile_pattern()
187 *pattern = NULL; in uncompile_pattern()
190 if (*pattern != NULL) in uncompile_pattern()
191 pcre2_code_free(*pattern); in uncompile_pattern()
192 *pattern = NULL; in uncompile_pattern()
195 *pattern = 0; in uncompile_pattern()
198 if (*pattern != NULL) in uncompile_pattern()
199 free(*pattern); in uncompile_pattern()
200 *pattern = NULL; in uncompile_pattern()
203 if (*pattern != NULL) in uncompile_pattern()
204 free(*pattern); in uncompile_pattern()
205 *pattern = NULL; in uncompile_pattern()
211 * Can a pattern be successfully compiled?
213 public int valid_pattern(char *pattern)
219 result = compile_pattern2(pattern, 0, &comp_pattern, 0);
228 * Is a compiled pattern null?
230 public lbool is_null_pattern(PATTERN_TYPE pattern) in is_null_pattern() argument
233 return (pattern == NULL); in is_null_pattern()
236 return (pattern == NULL); in is_null_pattern()
239 return (pattern == NULL); in is_null_pattern()
242 return (pattern == NULL); in is_null_pattern()
245 return (pattern == 0); in is_null_pattern()
248 return (pattern == NULL); in is_null_pattern()
251 return (pattern == NULL); in is_null_pattern()
254 return (pattern == NULL); in is_null_pattern()
258 * Simple pattern matching function.
261 static int match(constant char *pattern, size_t pattern_len, constant char *buf, int buf_len, const… in match() argument
265 constant char *pattern_end = pattern + pattern_len; in match()
271 for (pp = pattern, lp = buf; ; pp++, lp++) in match()
294 * Perform a pattern match with the previously compiled pattern.
299 static lbool match_pattern1(PATTERN_TYPE pattern, constant char *tpattern, constant char *line, siz… in match_pattern1() argument
314 pattern->not_bol = notbol; in match_pattern1()
315 pattern->regs_allocated = REGS_UNALLOCATED; in match_pattern1()
316 matched = re_search(pattern, line, line_len, line_off, line_len - line_off, &search_regs) >= 0; in match_pattern1()
336 matched = !regexec(pattern, line, RM_COUNT, rm, flags); in match_pattern1()
372 int mcount = pcre_exec(pattern, NULL, line, line_len, in match_pattern1()
395 int mcount = pcre2_match(pattern, (PCRE2_SPTR)line, line_len, in match_pattern1()
427 matched = ((*ep++ = regex(pattern, line + line_off)) != NULL); in match_pattern1()
433 matched = regexec2(pattern, line + line_off, notbol); in match_pattern1()
435 matched = regexec(pattern, line + line_off); in match_pattern1()
439 *sp++ = pattern->startp[0]; in match_pattern1()
440 *ep++ = pattern->endp[0]; in match_pattern1()
464 public lbool match_pattern(PATTERN_TYPE pattern, constant char *tpattern, constant char *line, size… in match_pattern() argument
469 …lbool matched = match_pattern1(pattern, tpattern, line, line_len, line_off, sp, ep, nsp, notbol, s… in match_pattern()
485 * Return the name of the pattern matching library.