1195902Sdelphij/*
2240121Sdelphij * Copyright (C) 1984-2012  Mark Nudelman
3195902Sdelphij *
4195902Sdelphij * You may distribute under the terms of either the GNU General Public
5195902Sdelphij * License or the Less License, as specified in the README file.
6195902Sdelphij *
7240121Sdelphij * For more information, see the README file.
8195902Sdelphij */
9195902Sdelphij
10240121Sdelphij#if HAVE_GNU_REGEX
11240121Sdelphij#define __USE_GNU 1
12240121Sdelphij#include <regex.h>
13240121Sdelphij#define DEFINE_PATTERN(name)  struct re_pattern_buffer *name
14240121Sdelphij#define CLEAR_PATTERN(name)   name = NULL
15240121Sdelphij#endif
16240121Sdelphij
17195902Sdelphij#if HAVE_POSIX_REGCOMP
18195902Sdelphij#include <regex.h>
19195902Sdelphij#ifdef REG_EXTENDED
20195941Sdelphijextern int less_is_more;
21195941Sdelphij#define	REGCOMP_FLAG	(less_is_more ? 0 : REG_EXTENDED)
22195902Sdelphij#else
23195902Sdelphij#define	REGCOMP_FLAG	0
24195902Sdelphij#endif
25195902Sdelphij#define DEFINE_PATTERN(name)  regex_t *name
26195902Sdelphij#define CLEAR_PATTERN(name)   name = NULL
27195902Sdelphij#endif
28195902Sdelphij
29195902Sdelphij#if HAVE_PCRE
30195902Sdelphij#include <pcre.h>
31195902Sdelphij#define DEFINE_PATTERN(name)  pcre *name
32195902Sdelphij#define CLEAR_PATTERN(name)   name = NULL
33195902Sdelphij#endif
34195902Sdelphij
35195902Sdelphij#if HAVE_RE_COMP
36195902Sdelphijchar *re_comp();
37195902Sdelphijint re_exec();
38195902Sdelphij#define DEFINE_PATTERN(name)  int name
39195902Sdelphij#define CLEAR_PATTERN(name)   name = 0
40195902Sdelphij#endif
41195902Sdelphij
42195902Sdelphij#if HAVE_REGCMP
43195902Sdelphijchar *regcmp();
44195902Sdelphijchar *regex();
45195902Sdelphijextern char *__loc1;
46195902Sdelphij#define DEFINE_PATTERN(name)  char *name
47195902Sdelphij#define CLEAR_PATTERN(name)   name = NULL
48195902Sdelphij#endif
49195902Sdelphij
50195902Sdelphij#if HAVE_V8_REGCOMP
51195902Sdelphij#include "regexp.h"
52195902Sdelphij#define DEFINE_PATTERN(name)  struct regexp *name
53195902Sdelphij#define CLEAR_PATTERN(name)   name = NULL
54195902Sdelphij#endif
55195902Sdelphij
56240121Sdelphij#if NO_REGEX
57240121Sdelphij#define DEFINE_PATTERN(name)
58240121Sdelphij#define CLEAR_PATTERN(name)
59240121Sdelphij#endif
60