1 |
|
|
2 |
/* On Unix systems config.in is converted by configure into config.h. PCRE is |
/* On Unix-like systems config.in is converted by "configure" into config.h. |
3 |
written in Standard C, but there are a few non-standard things it can cope |
Some other environments also support the use of "configure". PCRE is written in |
4 |
with, allowing it to run on SunOS4 and other "close to standard" systems. |
Standard C, but there are a few non-standard things it can cope with, allowing |
5 |
|
it to run on SunOS4 and other "close to standard" systems. |
6 |
On a non-Unix system you should just copy this file into config.h, and set up |
|
7 |
the macros the way you need them. You should normally change the definitions of |
On a non-Unix-like system you should just copy this file into config.h, and set |
8 |
HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way autoconf |
up the macros the way you need them. You should normally change the definitions |
9 |
works, these cannot be made the defaults. If your system has bcopy() and not |
of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way |
10 |
memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. If your |
autoconf works, these cannot be made the defaults. If your system has bcopy() |
11 |
system has neither bcopy() nor memmove(), leave them both as 0; an emulation |
and not memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. |
12 |
function will be used. */ |
If your system has neither bcopy() nor memmove(), leave them both as 0; an |
13 |
|
emulation function will be used. */ |
14 |
|
|
15 |
/* If you are compiling for a system that uses EBCDIC instead of ASCII |
/* If you are compiling for a system that uses EBCDIC instead of ASCII |
16 |
character codes, define this macro as 1. On systems that can use "configure", |
character codes, define this macro as 1. On systems that can use "configure", |
20 |
#define EBCDIC 0 |
#define EBCDIC 0 |
21 |
#endif |
#endif |
22 |
|
|
23 |
/* If you are compiling for a system that needs some magic to be inserted |
/* If you are compiling for a system other than a Unix-like system or Win32, |
24 |
before the definition of an exported function, define this macro to contain the |
and it needs some magic to be inserted before the definition of a function that |
25 |
relevant magic. It apears at the start of every exported function. */ |
is exported by the library, define this macro to contain the relevant magic. If |
26 |
|
you do not define this macro, it defaults to "extern" for a C compiler and |
27 |
|
"extern C" for a C++ compiler on non-Win32 systems. This macro apears at the |
28 |
|
start of every exported function that is part of the external API. It does not |
29 |
|
appear on functions that are "external" in the C sense, but which are internal |
30 |
|
to the library. */ |
31 |
|
|
32 |
#define PCRE_EXPORT |
/* #define PCRE_DATA_SCOPE */ |
33 |
|
|
34 |
/* Define to empty if the "const" keyword does not work. */ |
/* Define the following macro to empty if the "const" keyword does not work. */ |
35 |
|
|
36 |
#undef const |
#undef const |
37 |
|
|
38 |
/* Define to "unsigned" if <stddef.h> doesn't define size_t. */ |
/* Define the following macro to "unsigned" if <stddef.h> does not define |
39 |
|
size_t. */ |
40 |
|
|
41 |
#undef size_t |
#undef size_t |
42 |
|
|
43 |
/* The following two definitions are mainly for the benefit of SunOS4, which |
/* The following two definitions are mainly for the benefit of SunOS4, which |
44 |
doesn't have the strerror() or memmove() functions that should be present in |
does not have the strerror() or memmove() functions that should be present in |
45 |
all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should |
all Standard C libraries. The macros HAVE_STRERROR and HAVE_MEMMOVE should |
46 |
normally be defined with the value 1 for other systems, but unfortunately we |
normally be defined with the value 1 for other systems, but unfortunately we |
47 |
can't make this the default because "configure" files generated by autoconf |
cannot make this the default because "configure" files generated by autoconf |
48 |
will only change 0 to 1; they won't change 1 to 0 if the functions are not |
will only change 0 to 1; they won't change 1 to 0 if the functions are not |
49 |
found. */ |
found. */ |
50 |
|
|
51 |
#define HAVE_STRERROR 0 |
#define HAVE_STRERROR 0 |
52 |
#define HAVE_MEMMOVE 0 |
#define HAVE_MEMMOVE 0 |
53 |
|
|
54 |
/* There are some non-Unix systems that don't even have bcopy(). If this macro |
/* There are some non-Unix-like systems that don't even have bcopy(). If this |
55 |
is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of |
macro is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of |
56 |
HAVE_BCOPY is not relevant. */ |
HAVE_BCOPY is not relevant. */ |
57 |
|
|
58 |
#define HAVE_BCOPY 0 |
#define HAVE_BCOPY 0 |
59 |
|
|
60 |
/* The value of NEWLINE determines the newline character. The default is to |
/* The value of NEWLINE determines the newline character. The default is to |
61 |
leave it up to the compiler, but some sites want to force a particular value. |
leave it up to the compiler, but some sites want to force a particular value. |
62 |
On Unix systems, "configure" can be used to override this default. */ |
On Unix-like systems, "configure" can be used to override this default. */ |
63 |
|
|
64 |
#ifndef NEWLINE |
#ifndef NEWLINE |
65 |
#define NEWLINE '\n' |
#define NEWLINE '\n' |
66 |
#endif |
#endif |
67 |
|
|
68 |
/* The value of LINK_SIZE determines the number of bytes used to store |
/* The value of LINK_SIZE determines the number of bytes used to store links as |
69 |
links as offsets within the compiled regex. The default is 2, which allows for |
offsets within the compiled regex. The default is 2, which allows for compiled |
70 |
compiled patterns up to 64K long. This covers the vast majority of cases. |
patterns up to 64K long. This covers the vast majority of cases. However, PCRE |
71 |
However, PCRE can also be compiled to use 3 or 4 bytes instead. This allows for |
can also be compiled to use 3 or 4 bytes instead. This allows for longer |
72 |
longer patterns in extreme cases. On Unix systems, "configure" can be used to |
patterns in extreme cases. On systems that support it, "configure" can be used |
73 |
override this default. */ |
to override this default. */ |
74 |
|
|
75 |
#ifndef LINK_SIZE |
#ifndef LINK_SIZE |
76 |
#define LINK_SIZE 2 |
#define LINK_SIZE 2 |
77 |
#endif |
#endif |
78 |
|
|
|
/* The value of MATCH_LIMIT determines the default number of times the match() |
|
|
function can be called during a single execution of pcre_exec(). (There is a |
|
|
runtime method of setting a different limit.) The limit exists in order to |
|
|
catch runaway regular expressions that take for ever to determine that they do |
|
|
not match. The default is set very large so that it does not accidentally catch |
|
|
legitimate cases. On Unix systems, "configure" can be used to override this |
|
|
default default. */ |
|
|
|
|
|
#ifndef MATCH_LIMIT |
|
|
#define MATCH_LIMIT 10000000 |
|
|
#endif |
|
|
|
|
79 |
/* When calling PCRE via the POSIX interface, additional working storage is |
/* When calling PCRE via the POSIX interface, additional working storage is |
80 |
required for holding the pointers to capturing substrings because PCRE requires |
required for holding the pointers to capturing substrings because PCRE requires |
81 |
three integers per substring, whereas the POSIX interface provides only two. If |
three integers per substring, whereas the POSIX interface provides only two. If |
82 |
the number of expected substrings is small, the wrapper function uses space on |
the number of expected substrings is small, the wrapper function uses space on |
83 |
the stack, because this is faster than using malloc() for each call. The |
the stack, because this is faster than using malloc() for each call. The |
84 |
threshold above which the stack is no longer use is defined by POSIX_MALLOC_ |
threshold above which the stack is no longer used is defined by POSIX_MALLOC_ |
85 |
THRESHOLD. On Unix systems, "configure" can be used to override this default. |
THRESHOLD. On systems that support it, "configure" can be used to override this |
86 |
*/ |
default. */ |
87 |
|
|
88 |
#ifndef POSIX_MALLOC_THRESHOLD |
#ifndef POSIX_MALLOC_THRESHOLD |
89 |
#define POSIX_MALLOC_THRESHOLD 10 |
#define POSIX_MALLOC_THRESHOLD 10 |
92 |
/* PCRE uses recursive function calls to handle backtracking while matching. |
/* PCRE uses recursive function calls to handle backtracking while matching. |
93 |
This can sometimes be a problem on systems that have stacks of limited size. |
This can sometimes be a problem on systems that have stacks of limited size. |
94 |
Define NO_RECURSE to get a version that doesn't use recursion in the match() |
Define NO_RECURSE to get a version that doesn't use recursion in the match() |
95 |
function; instead it creates its own stack by steam using pcre_recurse_malloc |
function; instead it creates its own stack by steam using pcre_recurse_malloc() |
96 |
to get memory. For more detail, see comments and other stuff just above the |
to obtain memory from the heap. For more detail, see the comments and other |
97 |
match() function. On Unix systems, "configure" can be used to set this in the |
stuff just above the match() function. On systems that support it, "configure" |
98 |
Makefile (use --disable-stack-for-recursion). */ |
can be used to set this in the Makefile (use --disable-stack-for-recursion). */ |
99 |
|
|
100 |
/* #define NO_RECURSE */ |
/* #define NO_RECURSE */ |
101 |
|
|
102 |
|
/* The value of MATCH_LIMIT determines the default number of times the internal |
103 |
|
match() function can be called during a single execution of pcre_exec(). There |
104 |
|
is a runtime interface for setting a different limit. The limit exists in order |
105 |
|
to catch runaway regular expressions that take for ever to determine that they |
106 |
|
do not match. The default is set very large so that it does not accidentally |
107 |
|
catch legitimate cases. On systems that support it, "configure" can be used to |
108 |
|
override this default default. */ |
109 |
|
|
110 |
|
#ifndef MATCH_LIMIT |
111 |
|
#define MATCH_LIMIT 10000000 |
112 |
|
#endif |
113 |
|
|
114 |
|
/* The above limit applies to all calls of match(), whether or not they |
115 |
|
increase the recursion depth. In some environments it is desirable to limit the |
116 |
|
depth of recursive calls of match() more strictly, in order to restrict the |
117 |
|
maximum amount of stack (or heap, if NO_RECURSE is defined) that is used. The |
118 |
|
value of MATCH_LIMIT_RECURSION applies only to recursive calls of match(). To |
119 |
|
have any useful effect, it must be less than the value of MATCH_LIMIT. There is |
120 |
|
a runtime method for setting a different limit. On systems that support it, |
121 |
|
"configure" can be used to override this default default. */ |
122 |
|
|
123 |
|
#ifndef MATCH_LIMIT_RECURSION |
124 |
|
#define MATCH_LIMIT_RECURSION MATCH_LIMIT |
125 |
|
#endif |
126 |
|
|
127 |
/* End */ |
/* End */ |