Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/less/pattern.h
39476 views
1
/*
2
* Copyright (C) 1984-2025 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 PATTERN_TYPE struct re_pattern_buffer *
14
#define SET_NULL_PATTERN(name) name = NULL
15
#endif
16
17
/* ---- POSIX ---- */
18
#if HAVE_POSIX_REGCOMP
19
#include <regex.h>
20
#ifdef REG_EXTENDED
21
extern int less_is_more;
22
#define REGCOMP_FLAG (less_is_more ? 0 : REG_EXTENDED)
23
#else
24
#define REGCOMP_FLAG 0
25
#endif
26
#define PATTERN_TYPE regex_t *
27
#define SET_NULL_PATTERN(name) name = NULL
28
#define re_handles_caseless TRUE
29
#endif
30
31
/* ---- PCRE ---- */
32
#if HAVE_PCRE
33
#include <pcre.h>
34
#define PATTERN_TYPE pcre *
35
#define SET_NULL_PATTERN(name) name = NULL
36
#define re_handles_caseless TRUE
37
#endif
38
39
/* ---- PCRE2 ---- */
40
#if HAVE_PCRE2
41
#define PCRE2_CODE_UNIT_WIDTH 8
42
#include <pcre2.h>
43
#define PATTERN_TYPE pcre2_code *
44
#define SET_NULL_PATTERN(name) name = NULL
45
#define re_handles_caseless TRUE
46
#endif
47
48
/* ---- RE_COMP ---- */
49
#if HAVE_RE_COMP
50
constant char *re_comp(constant char*);
51
int re_exec(constant char*);
52
#define PATTERN_TYPE int
53
#define SET_NULL_PATTERN(name) name = 0
54
#endif
55
56
/* ---- REGCMP ---- */
57
#if HAVE_REGCMP
58
char *regcmp(char*);
59
char *regex(char**, char*);
60
extern char *__loc1;
61
#define PATTERN_TYPE char **
62
#define SET_NULL_PATTERN(name) name = NULL
63
#endif
64
65
/* ---- REGCOMP ---- */
66
#if HAVE_V8_REGCOMP
67
#include "regexp.h"
68
extern int reg_show_error;
69
#define PATTERN_TYPE struct regexp *
70
#define SET_NULL_PATTERN(name) name = NULL
71
#endif
72
73
/* ---- NONE ---- */
74
#if NO_REGEX
75
#define PATTERN_TYPE void *
76
#define SET_NULL_PATTERN(name)
77
#endif
78
79
#ifndef re_handles_caseless
80
#define re_handles_caseless FALSE
81
#endif
82
83