1126212Sache/* $FreeBSD$ */
2126212Sache#ifndef _REGEX_H
3251438Sjkim
4251438Sjkim#ifndef __USE_GNU
5251438Sjkim#define	__USE_GNU
6251438Sjkim#endif
7251438Sjkim
8126212Sache#include <posix/regex.h>
9218Sconklin
10126212Sache/* Document internal interfaces.  */
11251438Sjkimextern reg_syntax_t __re_set_syntax (reg_syntax_t __syntax);
12218Sconklin
13251438Sjkimextern const char *__re_compile_pattern (const char *__pattern, size_t __length,
14251438Sjkim					struct re_pattern_buffer *__buffer);
15218Sconklin
16251438Sjkimextern int __re_compile_fastmap (struct re_pattern_buffer *__buffer);
17218Sconklin
18251438Sjkimextern int __re_search (struct re_pattern_buffer *__buffer, const char *__string,
19251438Sjkim		       int __length, int __start, int __range,
20251438Sjkim		       struct re_registers *__regs);
21218Sconklin
22251438Sjkimextern int __re_search_2 (struct re_pattern_buffer *__buffer,
23251438Sjkim			 const char *__string1, int __length1,
24251438Sjkim			 const char *__string2, int __length2, int __start,
25251438Sjkim			 int __range, struct re_registers *__regs, int __stop);
26218Sconklin
27251438Sjkimextern int __re_match (struct re_pattern_buffer *__buffer, const char *__string,
28251438Sjkim		      int __length, int __start, struct re_registers *__regs);
29218Sconklin
30251438Sjkimextern int __re_match_2 (struct re_pattern_buffer *__buffer,
31251438Sjkim			const char *__string1, int __length1,
32251438Sjkim			const char *__string2, int __length2, int __start,
33251438Sjkim			struct re_registers *__regs, int __stop);
34218Sconklin
35251438Sjkimextern void __re_set_registers (struct re_pattern_buffer *__buffer,
36251438Sjkim			       struct re_registers *__regs,
37251438Sjkim			       unsigned int __num_regs,
38251438Sjkim			       regoff_t *__starts, regoff_t *__ends);
39218Sconklin
40251438Sjkimextern int __regcomp (regex_t *__restrict __preg,
41251438Sjkim		     const char *__restrict __pattern,
42251438Sjkim		     int __cflags);
43218Sconklin
44251438Sjkimextern int __regexec (const regex_t *__restrict __preg,
45251438Sjkim		     const char *__restrict __string, size_t __nmatch,
46251438Sjkim		     regmatch_t __pmatch[__restrict_arr],
47251438Sjkim		     int __eflags);
48218Sconklin
49251438Sjkimextern size_t __regerror (int __errcode, const regex_t *__restrict __preg,
50251438Sjkim			 char *__restrict __errbuf, size_t __errbuf_size);
5130578Sjraynard
52251438Sjkimextern void __regfree (regex_t *__preg);
53251438Sjkim
54251438Sjkim#endif	/* _REGEX_H */
55