summaryrefslogtreecommitdiff
path: root/internal.h
diff options
context:
space:
mode:
authornigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-02-24 21:39:09 +0000
committernigel <nigel@2f5784b3-3f2a-0410-8824-cb99058d5e15>2007-02-24 21:39:09 +0000
commit7301eeae8c520c3a24e15bbcbb4b5b5343646e2c (patch)
treed35c70beec2a868ca79c88dd4bb1d4d9f4d2f7a1 /internal.h
parent8413b86222848f277386e72706ca548a37dbc6ca (diff)
downloadpcre-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.h40
1 files changed, 24 insertions, 16 deletions
diff --git a/internal.h b/internal.h
index e162c96..ccad598 100644
--- a/internal.h
+++ b/internal.h
@@ -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;