diff options
Diffstat (limited to 'ext/pcre/pcrelib/pcre.h')
-rw-r--r-- | ext/pcre/pcrelib/pcre.h | 60 |
1 files changed, 43 insertions, 17 deletions
diff --git a/ext/pcre/pcrelib/pcre.h b/ext/pcre/pcrelib/pcre.h index ff3577402..e16cc7096 100644 --- a/ext/pcre/pcrelib/pcre.h +++ b/ext/pcre/pcrelib/pcre.h @@ -2,8 +2,8 @@ * Perl-Compatible Regular Expressions * *************************************************/ -/* In its original form, this is the .in file that is transformed by -"configure" into pcre.h. +/* This is the public header file for the PCRE library, to be #included by +applications that call the PCRE functions. Copyright (c) 1997-2005 University of Cambridge @@ -38,17 +38,29 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef _PCRE_H #define _PCRE_H + +#include "php_compat.h" -/* The file pcre.h is build by "configure". Do not edit it; instead -make changes to pcre.in. */ +/* The current PCRE version information. */ -#include "php_compat.h" +/* NOTES FOR FUTURE MAINTAINERS: Do not use numbers with leading zeros, because +they may be treated as octal constants. The PCRE_PRERELEASE feature is for +identifying release candidates. It might be defined as -RC2, for example. In +real releases, it should be defined empty. Do not change the alignment of these +statments. The code in ./configure greps out the version numbers by using "cut" +to get values from column 29 onwards. These are substituted into pcre-config +and libpcre.pc. The values are not put into configure.ac and substituted here +(which would simplify this issue) because that makes life harder for those who +cannot run ./configure. As it now stands, this file need not be edited in that +circumstance. */ #define PCRE_MAJOR 6 -#define PCRE_MINOR 2 -#define PCRE_DATE 01-Aug-2005 +#define PCRE_MINOR 6 +#define PCRE_PRERELEASE +#define PCRE_DATE 06-Feb-2006 -/* Win32 uses DLL by default; it needs special stuff for exported functions. */ +/* Win32 uses DLL by default; it needs special stuff for exported functions +when building PCRE. */ #ifdef _WIN32 # ifdef PCRE_DEFINITION @@ -62,7 +74,7 @@ make changes to pcre.in. */ # endif #endif -/* For other operating systems, we use the standard "extern". */ +/* Otherwise, we use the standard "extern". */ #ifndef PCRE_DATA_SCOPE # ifdef __cplusplus @@ -127,6 +139,7 @@ extern "C" { #define PCRE_ERROR_DFA_UMLIMIT (-18) #define PCRE_ERROR_DFA_WSSIZE (-19) #define PCRE_ERROR_DFA_RECURSE (-20) +#define PCRE_ERROR_RECURSIONLIMIT (-21) /* Request types for pcre_fullinfo() */ @@ -144,7 +157,8 @@ extern "C" { #define PCRE_INFO_STUDYSIZE 10 #define PCRE_INFO_DEFAULT_TABLES 11 -/* Request types for pcre_config() */ +/* Request types for pcre_config(). Do not re-arrange, in order to remain +compatible. */ #define PCRE_CONFIG_UTF8 0 #define PCRE_CONFIG_NEWLINE 1 @@ -153,19 +167,30 @@ extern "C" { #define PCRE_CONFIG_MATCH_LIMIT 4 #define PCRE_CONFIG_STACKRECURSE 5 #define PCRE_CONFIG_UNICODE_PROPERTIES 6 +#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7 -/* Bit flags for the pcre_extra structure */ +/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine +these bits, just add new ones on the end, in order to remain compatible. */ -#define PCRE_EXTRA_STUDY_DATA 0x0001 -#define PCRE_EXTRA_MATCH_LIMIT 0x0002 -#define PCRE_EXTRA_CALLOUT_DATA 0x0004 -#define PCRE_EXTRA_TABLES 0x0008 +#define PCRE_EXTRA_STUDY_DATA 0x0001 +#define PCRE_EXTRA_MATCH_LIMIT 0x0002 +#define PCRE_EXTRA_CALLOUT_DATA 0x0004 +#define PCRE_EXTRA_TABLES 0x0008 +#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010 /* Types */ struct real_pcre; /* declaration; the definition is private */ typedef struct real_pcre pcre; +/* When PCRE is compiled as a C++ library, the subject pointer type can be +replaced with a custom type. For conventional use, the public interface is a +const char *. */ + +#ifndef PCRE_SPTR +#define PCRE_SPTR const char * +#endif + /* The structure for passing additional data to pcre_exec(). This is defined in such as way as to be extensible. Always add new fields at the end, in order to remain compatible. */ @@ -176,6 +201,7 @@ typedef struct pcre_extra { unsigned long int match_limit; /* Maximum number of calls to match() */ void *callout_data; /* Data passed back in callouts */ const unsigned char *tables; /* Pointer to character tables */ + unsigned long int match_limit_recursion; /* Max recursive calls to match() */ } pcre_extra; /* The structure for passing out data via the pcre_callout_function. We use a @@ -188,7 +214,7 @@ typedef struct pcre_callout_block { /* ------------------------ Version 0 ------------------------------- */ int callout_number; /* Number compiled into pattern */ int *offset_vector; /* The offset vector */ - const char *subject; /* The subject being matched */ + PCRE_SPTR subject; /* The subject being matched */ int subject_length; /* The length of the subject */ int start_match; /* Offset to start of this match attempt */ int current_position; /* Where we currently are in the subject */ @@ -234,7 +260,7 @@ PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *, int); PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *, const char *, int, int, int, int *, int , int *, int); -PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, const char *, +PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR, int, int, int, int *, int); PCRE_DATA_SCOPE void pcre_free_substring(const char *); PCRE_DATA_SCOPE void pcre_free_substring_list(const char **); |