1/* $FreeBSD$ */
2#ifndef _REGEX_H
3
4#ifndef __USE_GNU
5#define	__USE_GNU
6#endif
7
8#include <posix/regex.h>
9
10/* Document internal interfaces.  */
11extern reg_syntax_t __re_set_syntax (reg_syntax_t __syntax);
12
13extern const char *__re_compile_pattern (const char *__pattern, size_t __length,
14					struct re_pattern_buffer *__buffer);
15
16extern int __re_compile_fastmap (struct re_pattern_buffer *__buffer);
17
18extern int __re_search (struct re_pattern_buffer *__buffer, const char *__string,
19		       int __length, int __start, int __range,
20		       struct re_registers *__regs);
21
22extern int __re_search_2 (struct re_pattern_buffer *__buffer,
23			 const char *__string1, int __length1,
24			 const char *__string2, int __length2, int __start,
25			 int __range, struct re_registers *__regs, int __stop);
26
27extern int __re_match (struct re_pattern_buffer *__buffer, const char *__string,
28		      int __length, int __start, struct re_registers *__regs);
29
30extern int __re_match_2 (struct re_pattern_buffer *__buffer,
31			const char *__string1, int __length1,
32			const char *__string2, int __length2, int __start,
33			struct re_registers *__regs, int __stop);
34
35extern void __re_set_registers (struct re_pattern_buffer *__buffer,
36			       struct re_registers *__regs,
37			       unsigned int __num_regs,
38			       regoff_t *__starts, regoff_t *__ends);
39
40extern int __regcomp (regex_t *__restrict __preg,
41		     const char *__restrict __pattern,
42		     int __cflags);
43
44extern int __regexec (const regex_t *__restrict __preg,
45		     const char *__restrict __string, size_t __nmatch,
46		     regmatch_t __pmatch[__restrict_arr],
47		     int __eflags);
48
49extern size_t __regerror (int __errcode, const regex_t *__restrict __preg,
50			 char *__restrict __errbuf, size_t __errbuf_size);
51
52extern void __regfree (regex_t *__preg);
53
54#endif	/* _REGEX_H */
55