xref: /freebsd/contrib/less/pattern.h (revision a15691bf119a9d4b1ec5a237d2f7eda79cbf01ce)
1f0be0a1fSXin LI /*
2*a15691bfSXin LI  * Copyright (C) 1984-2015  Mark Nudelman
3f0be0a1fSXin LI  *
4f0be0a1fSXin LI  * You may distribute under the terms of either the GNU General Public
5f0be0a1fSXin LI  * License or the Less License, as specified in the README file.
6f0be0a1fSXin LI  *
796e55cc7SXin LI  * For more information, see the README file.
8f0be0a1fSXin LI  */
9f0be0a1fSXin LI 
1096e55cc7SXin LI #if HAVE_GNU_REGEX
1196e55cc7SXin LI #define __USE_GNU 1
1296e55cc7SXin LI #include <regex.h>
1396e55cc7SXin LI #define DEFINE_PATTERN(name)  struct re_pattern_buffer *name
1496e55cc7SXin LI #define CLEAR_PATTERN(name)   name = NULL
1596e55cc7SXin LI #endif
1696e55cc7SXin LI 
17f0be0a1fSXin LI #if HAVE_POSIX_REGCOMP
18f0be0a1fSXin LI #include <regex.h>
19f0be0a1fSXin LI #ifdef REG_EXTENDED
20f0be0a1fSXin LI extern int less_is_more;
21f0be0a1fSXin LI #define	REGCOMP_FLAG	(less_is_more ? 0 : REG_EXTENDED)
22f0be0a1fSXin LI #else
23f0be0a1fSXin LI #define	REGCOMP_FLAG	0
24f0be0a1fSXin LI #endif
25f0be0a1fSXin LI #define DEFINE_PATTERN(name)  regex_t *name
26f0be0a1fSXin LI #define CLEAR_PATTERN(name)   name = NULL
27f0be0a1fSXin LI #endif
28f0be0a1fSXin LI 
29f0be0a1fSXin LI #if HAVE_PCRE
30f0be0a1fSXin LI #include <pcre.h>
31f0be0a1fSXin LI #define DEFINE_PATTERN(name)  pcre *name
32f0be0a1fSXin LI #define CLEAR_PATTERN(name)   name = NULL
33f0be0a1fSXin LI #endif
34f0be0a1fSXin LI 
35f0be0a1fSXin LI #if HAVE_RE_COMP
36f0be0a1fSXin LI char *re_comp();
37f0be0a1fSXin LI int re_exec();
38f0be0a1fSXin LI #define DEFINE_PATTERN(name)  int name
39f0be0a1fSXin LI #define CLEAR_PATTERN(name)   name = 0
40f0be0a1fSXin LI #endif
41f0be0a1fSXin LI 
42f0be0a1fSXin LI #if HAVE_REGCMP
43f0be0a1fSXin LI char *regcmp();
44f0be0a1fSXin LI char *regex();
45f0be0a1fSXin LI extern char *__loc1;
46f0be0a1fSXin LI #define DEFINE_PATTERN(name)  char *name
47f0be0a1fSXin LI #define CLEAR_PATTERN(name)   name = NULL
48f0be0a1fSXin LI #endif
49f0be0a1fSXin LI 
50f0be0a1fSXin LI #if HAVE_V8_REGCOMP
51f0be0a1fSXin LI #include "regexp.h"
52*a15691bfSXin LI extern int reg_show_error;
53f0be0a1fSXin LI #define DEFINE_PATTERN(name)  struct regexp *name
54f0be0a1fSXin LI #define CLEAR_PATTERN(name)   name = NULL
55f0be0a1fSXin LI #endif
56f0be0a1fSXin LI 
5796e55cc7SXin LI #if NO_REGEX
5896e55cc7SXin LI #define DEFINE_PATTERN(name)
5996e55cc7SXin LI #define CLEAR_PATTERN(name)
6096e55cc7SXin LI #endif
61