/[pcre]/code/tags/pcre-4.3/pcre.in
ViewVC logotype

Contents of /code/tags/pcre-4.3/pcre.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 70 - (show annotations) (download)
Sat Feb 24 21:40:20 2007 UTC (7 years, 1 month ago) by nigel
File size: 6632 byte(s)
Tag code/trunk as code/tags/pcre-4.3.

1 /*************************************************
2 * Perl-Compatible Regular Expressions *
3 *************************************************/
4
5 /* Copyright (c) 1997-2003 University of Cambridge */
6
7 #ifndef _PCRE_H
8 #define _PCRE_H
9
10 /* The file pcre.h is build by "configure". Do not edit it; instead
11 make changes to pcre.in. */
12
13 #define PCRE_MAJOR @PCRE_MAJOR@
14 #define PCRE_MINOR @PCRE_MINOR@
15 #define PCRE_DATE @PCRE_DATE@
16
17 /* Win32 uses DLL by default */
18
19 #ifdef _WIN32
20 # ifdef PCRE_DEFINITION
21 # ifdef DLL_EXPORT
22 # define PCRE_DATA_SCOPE __declspec(dllexport)
23 # endif
24 # else
25 # ifndef PCRE_STATIC
26 # define PCRE_DATA_SCOPE __declspec(dllimport)
27 # endif
28 # endif
29 #endif
30 #ifndef PCRE_DATA_SCOPE
31 # define PCRE_DATA_SCOPE extern
32 #endif
33
34 /* Have to include stdlib.h in order to ensure that size_t is defined;
35 it is needed here for malloc. */
36
37 #include <stdlib.h>
38
39 /* Allow for C++ users */
40
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44
45 /* Options */
46
47 #define PCRE_CASELESS 0x0001
48 #define PCRE_MULTILINE 0x0002
49 #define PCRE_DOTALL 0x0004
50 #define PCRE_EXTENDED 0x0008
51 #define PCRE_ANCHORED 0x0010
52 #define PCRE_DOLLAR_ENDONLY 0x0020
53 #define PCRE_EXTRA 0x0040
54 #define PCRE_NOTBOL 0x0080
55 #define PCRE_NOTEOL 0x0100
56 #define PCRE_UNGREEDY 0x0200
57 #define PCRE_NOTEMPTY 0x0400
58 #define PCRE_UTF8 0x0800
59 #define PCRE_NO_AUTO_CAPTURE 0x1000
60
61 /* Exec-time and get/set-time error codes */
62
63 #define PCRE_ERROR_NOMATCH (-1)
64 #define PCRE_ERROR_NULL (-2)
65 #define PCRE_ERROR_BADOPTION (-3)
66 #define PCRE_ERROR_BADMAGIC (-4)
67 #define PCRE_ERROR_UNKNOWN_NODE (-5)
68 #define PCRE_ERROR_NOMEMORY (-6)
69 #define PCRE_ERROR_NOSUBSTRING (-7)
70 #define PCRE_ERROR_MATCHLIMIT (-8)
71 #define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */
72
73 /* Request types for pcre_fullinfo() */
74
75 #define PCRE_INFO_OPTIONS 0
76 #define PCRE_INFO_SIZE 1
77 #define PCRE_INFO_CAPTURECOUNT 2
78 #define PCRE_INFO_BACKREFMAX 3
79 #define PCRE_INFO_FIRSTBYTE 4
80 #define PCRE_INFO_FIRSTCHAR 4 /* For backwards compatibility */
81 #define PCRE_INFO_FIRSTTABLE 5
82 #define PCRE_INFO_LASTLITERAL 6
83 #define PCRE_INFO_NAMEENTRYSIZE 7
84 #define PCRE_INFO_NAMECOUNT 8
85 #define PCRE_INFO_NAMETABLE 9
86 #define PCRE_INFO_STUDYSIZE 10
87
88 /* Request types for pcre_config() */
89
90 #define PCRE_CONFIG_UTF8 0
91 #define PCRE_CONFIG_NEWLINE 1
92 #define PCRE_CONFIG_LINK_SIZE 2
93 #define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD 3
94 #define PCRE_CONFIG_MATCH_LIMIT 4
95
96 /* Bit flags for the pcre_extra structure */
97
98 #define PCRE_EXTRA_STUDY_DATA 0x0001
99 #define PCRE_EXTRA_MATCH_LIMIT 0x0002
100 #define PCRE_EXTRA_CALLOUT_DATA 0x0004
101
102 /* Types */
103
104 struct real_pcre; /* declaration; the definition is private */
105 typedef struct real_pcre pcre;
106
107 /* The structure for passing additional data to pcre_exec(). This is defined in
108 such as way as to be extensible. */
109
110 typedef struct pcre_extra {
111 unsigned long int flags; /* Bits for which fields are set */
112 void *study_data; /* Opaque data from pcre_study() */
113 unsigned long int match_limit; /* Maximum number of calls to match() */
114 void *callout_data; /* Data passed back in callouts */
115 } pcre_extra;
116
117 /* The structure for passing out data via the pcre_callout_function. We use a
118 structure so that new fields can be added on the end in future versions,
119 without changing the API of the function, thereby allowing old clients to work
120 without modification. */
121
122 typedef struct pcre_callout_block {
123 int version; /* Identifies version of block */
124 /* ------------------------ Version 0 ------------------------------- */
125 int callout_number; /* Number compiled into pattern */
126 int *offset_vector; /* The offset vector */
127 const char *subject; /* The subject being matched */
128 int subject_length; /* The length of the subject */
129 int start_match; /* Offset to start of this match attempt */
130 int current_position; /* Where we currently are */
131 int capture_top; /* Max current capture */
132 int capture_last; /* Most recently closed capture */
133 void *callout_data; /* Data passed in with the call */
134 /* ------------------------------------------------------------------ */
135 } pcre_callout_block;
136
137 /* Indirection for store get and free functions. These can be set to
138 alternative malloc/free functions if required. There is also an optional
139 callout function that is triggered by the (?) regex item. Some magic is
140 required for Win32 DLL; it is null on other OS. For Virtual Pascal, these
141 have to be different again. */
142
143 #ifndef VPCOMPAT
144 PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t);
145 PCRE_DATA_SCOPE void (*pcre_free)(void *);
146 PCRE_DATA_SCOPE int (*pcre_callout)(pcre_callout_block *);
147 #else /* VPCOMPAT */
148 extern void *pcre_malloc(size_t);
149 extern void pcre_free(void *);
150 extern int pcre_callout(pcre_callout_block *);
151 #endif /* VPCOMPAT */
152
153 /* Exported PCRE functions */
154
155 extern pcre *pcre_compile(const char *, int, const char **,
156 int *, const unsigned char *);
157 extern int pcre_config(int, void *);
158 extern int pcre_copy_named_substring(const pcre *, const char *,
159 int *, int, const char *, char *, int);
160 extern int pcre_copy_substring(const char *, int *, int, int,
161 char *, int);
162 extern int pcre_exec(const pcre *, const pcre_extra *,
163 const char *, int, int, int, int *, int);
164 extern void pcre_free_substring(const char *);
165 extern void pcre_free_substring_list(const char **);
166 extern int pcre_fullinfo(const pcre *, const pcre_extra *, int,
167 void *);
168 extern int pcre_get_named_substring(const pcre *, const char *,
169 int *, int, const char *, const char **);
170 extern int pcre_get_stringnumber(const pcre *, const char *);
171 extern int pcre_get_substring(const char *, int *, int, int,
172 const char **);
173 extern int pcre_get_substring_list(const char *, int *, int,
174 const char ***);
175 extern int pcre_info(const pcre *, int *, int *);
176 extern const unsigned char *pcre_maketables(void);
177 extern pcre_extra *pcre_study(const pcre *, int, const char **);
178 extern const char *pcre_version(void);
179
180 #ifdef __cplusplus
181 } /* extern "C" */
182 #endif
183
184 #endif /* End of pcre.h */

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12