diff options
author | nigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-02-24 21:39:09 +0000 |
---|---|---|
committer | nigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15> | 2007-02-24 21:39:09 +0000 |
commit | 7301eeae8c520c3a24e15bbcbb4b5b5343646e2c (patch) | |
tree | d35c70beec2a868ca79c88dd4bb1d4d9f4d2f7a1 /internal.h | |
parent | 8413b86222848f277386e72706ca548a37dbc6ca (diff) | |
download | pcre-7301eeae8c520c3a24e15bbcbb4b5b5343646e2c.tar.gz |
Load pcre-2.07 into code/trunk.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@37 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'internal.h')
-rw-r--r-- | internal.h | 40 |
1 files changed, 24 insertions, 16 deletions
@@ -3,7 +3,7 @@ *************************************************/ -#define PCRE_VERSION "2.06 21-Jun-1999" +#define PCRE_VERSION "2.07 29-Jul-1999" /* This is a library of functions to support regular expressions whose syntax @@ -67,13 +67,17 @@ Standard C system should have one. */ #define PCRE_IMS (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL) -/* Private options flags start at the most significant end of the two bytes. -The public options defined in pcre.h start at the least significant end. Make -sure they don't overlap! */ +/* Private options flags start at the most significant end of the four bytes, +but skip the top bit so we can use ints for convenience without getting tangled +with negative values. The public options defined in pcre.h start at the least +significant end. Make sure they don't overlap, though now that we have expanded +to four bytes there is plenty of space. */ -#define PCRE_FIRSTSET 0x8000 /* first_char is set */ -#define PCRE_STARTLINE 0x4000 /* start after \n for multiline */ -#define PCRE_INGROUP 0x2000 /* compiling inside a group */ +#define PCRE_FIRSTSET 0x40000000 /* first_char is set */ +#define PCRE_REQCHSET 0x20000000 /* req_char is set */ +#define PCRE_STARTLINE 0x10000000 /* start after \n for multiline */ +#define PCRE_INGROUP 0x08000000 /* compiling inside a group */ +#define PCRE_ICHANGED 0x04000000 /* i option changes within regex */ /* Options for the "extra" block produced by pcre_study(). */ @@ -86,7 +90,8 @@ time, run time or study time, respectively. */ (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY) -#define PUBLIC_EXEC_OPTIONS (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL) +#define PUBLIC_EXEC_OPTIONS \ + (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY) #define PUBLIC_STUDY_OPTIONS 0 /* None defined */ @@ -264,18 +269,19 @@ runs on as long as necessary after the end. */ typedef struct real_pcre { unsigned long int magic_number; const unsigned char *tables; - unsigned short int options; - unsigned char top_bracket; - unsigned char top_backref; - unsigned char first_char; - unsigned char code[1]; + unsigned long int options; + uschar top_bracket; + uschar top_backref; + uschar first_char; + uschar req_char; + uschar code[1]; } real_pcre; /* The real format of the extra block returned by pcre_study(). */ typedef struct real_pcre_extra { - unsigned char options; - unsigned char start_bits[32]; + uschar options; + uschar start_bits[32]; } real_pcre_extra; @@ -284,7 +290,7 @@ doing the compiling, so that they are thread-safe. */ typedef struct compile_data { const uschar *lcc; /* Points to lower casing table */ - const uschar *fcc; /* Points to case-flippint table */ + const uschar *fcc; /* Points to case-flipping table */ const uschar *cbits; /* Points to character type table */ const uschar *ctypes; /* Points to table of type maps */ } compile_data; @@ -303,8 +309,10 @@ typedef struct match_data { BOOL notbol; /* NOTBOL flag */ BOOL noteol; /* NOTEOL flag */ BOOL endonly; /* Dollar not before final \n */ + BOOL notempty; /* Empty string match not wanted */ const uschar *start_subject; /* Start of the subject string */ const uschar *end_subject; /* End of the subject string */ + const uschar *start_match; /* Start of this match attempt */ const uschar *end_match_ptr; /* Subject position at end match */ int end_offset_top; /* Highwater mark at end of match */ } match_data; |