xref: /freebsd/contrib/less/pattern.h (revision 145992504973bd16cf3518af9ba5ce185fefa82a)
1 /*
2  * Copyright (C) 1984-2012  Mark Nudelman
3  *
4  * You may distribute under the terms of either the GNU General Public
5  * License or the Less License, as specified in the README file.
6  *
7  * For more information, see the README file.
8  */
9 
10 #if HAVE_GNU_REGEX
11 #define __USE_GNU 1
12 #include <regex.h>
13 #define DEFINE_PATTERN(name)  struct re_pattern_buffer *name
14 #define CLEAR_PATTERN(name)   name = NULL
15 #endif
16 
17 #if HAVE_POSIX_REGCOMP
18 #include <regex.h>
19 #ifdef REG_EXTENDED
20 extern int less_is_more;
21 #define	REGCOMP_FLAG	(less_is_more ? 0 : REG_EXTENDED)
22 #else
23 #define	REGCOMP_FLAG	0
24 #endif
25 #define DEFINE_PATTERN(name)  regex_t *name
26 #define CLEAR_PATTERN(name)   name = NULL
27 #endif
28 
29 #if HAVE_PCRE
30 #include <pcre.h>
31 #define DEFINE_PATTERN(name)  pcre *name
32 #define CLEAR_PATTERN(name)   name = NULL
33 #endif
34 
35 #if HAVE_RE_COMP
36 char *re_comp();
37 int re_exec();
38 #define DEFINE_PATTERN(name)  int name
39 #define CLEAR_PATTERN(name)   name = 0
40 #endif
41 
42 #if HAVE_REGCMP
43 char *regcmp();
44 char *regex();
45 extern char *__loc1;
46 #define DEFINE_PATTERN(name)  char *name
47 #define CLEAR_PATTERN(name)   name = NULL
48 #endif
49 
50 #if HAVE_V8_REGCOMP
51 #include "regexp.h"
52 #define DEFINE_PATTERN(name)  struct regexp *name
53 #define CLEAR_PATTERN(name)   name = NULL
54 #endif
55 
56 #if NO_REGEX
57 #define DEFINE_PATTERN(name)
58 #define CLEAR_PATTERN(name)
59 #endif
60