| 1 |
nigel |
85 |
|
| 2 |
nigel |
87 |
/* On Unix-like systems config.in is converted by "configure" into config.h. |
| 3 |
|
|
Some other environments also support the use of "configure". PCRE is written in |
| 4 |
|
|
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 |
nigel |
85 |
|
| 7 |
nigel |
87 |
On a non-Unix-like system you should just copy this file into config.h, and set |
| 8 |
|
|
up the macros the way you need them. You should normally change the definitions |
| 9 |
|
|
of HAVE_STRERROR and HAVE_MEMMOVE to 1. Unfortunately, because of the way |
| 10 |
|
|
autoconf works, these cannot be made the defaults. If your system has bcopy() |
| 11 |
|
|
and not memmove(), change the definition of HAVE_BCOPY instead of HAVE_MEMMOVE. |
| 12 |
|
|
If your system has neither bcopy() nor memmove(), leave them both as 0; an |
| 13 |
|
|
emulation function will be used. */ |
| 14 |
nigel |
85 |
|
| 15 |
|
|
/* 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", |
| 17 |
|
|
this can be done via --enable-ebcdic. */ |
| 18 |
|
|
|
| 19 |
|
|
#ifndef EBCDIC |
| 20 |
|
|
#define EBCDIC 0 |
| 21 |
|
|
#endif |
| 22 |
|
|
|
| 23 |
nigel |
87 |
/* If you are compiling for a system other than a Unix-like system or Win32, |
| 24 |
|
|
and it needs some magic to be inserted before the definition of a function that |
| 25 |
|
|
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 |
nigel |
85 |
|
| 32 |
nigel |
87 |
/* #define PCRE_DATA_SCOPE */ |
| 33 |
nigel |
85 |
|
| 34 |
nigel |
87 |
/* Define the following macro to empty if the "const" keyword does not work. */ |
| 35 |
nigel |
85 |
|
| 36 |
|
|
#undef const |
| 37 |
|
|
|
| 38 |
nigel |
87 |
/* Define the following macro to "unsigned" if <stddef.h> does not define |
| 39 |
|
|
size_t. */ |
| 40 |
nigel |
85 |
|
| 41 |
|
|
#undef size_t |
| 42 |
|
|
|
| 43 |
|
|
/* The following two definitions are mainly for the benefit of SunOS4, which |
| 44 |
nigel |
87 |
does not have the strerror() or memmove() functions that should be present in |
| 45 |
nigel |
85 |
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 |
| 47 |
nigel |
87 |
cannot make this the default because "configure" files generated by autoconf |
| 48 |
nigel |
85 |
will only change 0 to 1; they won't change 1 to 0 if the functions are not |
| 49 |
|
|
found. */ |
| 50 |
|
|
|
| 51 |
|
|
#define HAVE_STRERROR 0 |
| 52 |
|
|
#define HAVE_MEMMOVE 0 |
| 53 |
|
|
|
| 54 |
nigel |
87 |
/* There are some non-Unix-like systems that don't even have bcopy(). If this |
| 55 |
|
|
macro is false, an emulation is used. If HAVE_MEMMOVE is set to 1, the value of |
| 56 |
nigel |
85 |
HAVE_BCOPY is not relevant. */ |
| 57 |
|
|
|
| 58 |
|
|
#define HAVE_BCOPY 0 |
| 59 |
|
|
|
| 60 |
|
|
/* 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. |
| 62 |
nigel |
87 |
On Unix-like systems, "configure" can be used to override this default. */ |
| 63 |
nigel |
85 |
|
| 64 |
|
|
#ifndef NEWLINE |
| 65 |
|
|
#define NEWLINE '\n' |
| 66 |
|
|
#endif |
| 67 |
|
|
|
| 68 |
nigel |
87 |
/* The value of LINK_SIZE determines the number of bytes used to store links as |
| 69 |
|
|
offsets within the compiled regex. The default is 2, which allows for compiled |
| 70 |
|
|
patterns up to 64K long. This covers the vast majority of cases. However, PCRE |
| 71 |
|
|
can also be compiled to use 3 or 4 bytes instead. This allows for longer |
| 72 |
|
|
patterns in extreme cases. On systems that support it, "configure" can be used |
| 73 |
|
|
to override this default. */ |
| 74 |
nigel |
85 |
|
| 75 |
|
|
#ifndef LINK_SIZE |
| 76 |
|
|
#define LINK_SIZE 2 |
| 77 |
|
|
#endif |
| 78 |
|
|
|
| 79 |
|
|
/* When calling PCRE via the POSIX interface, additional working storage is |
| 80 |
|
|
required for holding the pointers to capturing substrings because PCRE requires |
| 81 |
|
|
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 |
| 83 |
|
|
the stack, because this is faster than using malloc() for each call. The |
| 84 |
nigel |
87 |
threshold above which the stack is no longer used is defined by POSIX_MALLOC_ |
| 85 |
|
|
THRESHOLD. On systems that support it, "configure" can be used to override this |
| 86 |
|
|
default. */ |
| 87 |
nigel |
85 |
|
| 88 |
|
|
#ifndef POSIX_MALLOC_THRESHOLD |
| 89 |
|
|
#define POSIX_MALLOC_THRESHOLD 10 |
| 90 |
|
|
#endif |
| 91 |
|
|
|
| 92 |
|
|
/* 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. |
| 94 |
|
|
Define NO_RECURSE to get a version that doesn't use recursion in the match() |
| 95 |
nigel |
87 |
function; instead it creates its own stack by steam using pcre_recurse_malloc() |
| 96 |
|
|
to obtain memory from the heap. For more detail, see the comments and other |
| 97 |
|
|
stuff just above the match() function. On systems that support it, "configure" |
| 98 |
|
|
can be used to set this in the Makefile (use --disable-stack-for-recursion). */ |
| 99 |
nigel |
85 |
|
| 100 |
|
|
/* #define NO_RECURSE */ |
| 101 |
|
|
|
| 102 |
nigel |
87 |
/* 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 |
nigel |
91 |
/* These three limits are parameterized just in case anybody ever wants to |
| 128 |
|
|
change them. Care must be taken if they are increased, because they guard |
| 129 |
|
|
against integer overflow caused by enormously large patterns. */ |
| 130 |
|
|
|
| 131 |
|
|
#ifndef MAX_NAME_SIZE |
| 132 |
|
|
#define MAX_NAME_SIZE 32 |
| 133 |
|
|
#endif |
| 134 |
|
|
|
| 135 |
|
|
#ifndef MAX_NAME_COUNT |
| 136 |
|
|
#define MAX_NAME_COUNT 10000 |
| 137 |
|
|
#endif |
| 138 |
|
|
|
| 139 |
|
|
#ifndef MAX_DUPLENGTH |
| 140 |
|
|
#define MAX_DUPLENGTH 30000 |
| 141 |
|
|
#endif |
| 142 |
|
|
|
| 143 |
nigel |
85 |
/* End */ |