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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 63 - (hide annotations) (download)
Sat Feb 24 21:40:03 2007 UTC (6 years, 3 months ago) by nigel
Original Path: code/trunk/pcre.in
File size: 6632 byte(s)
Load pcre-4.0 into code/trunk.

1 nigel 43 /*************************************************
2     * Perl-Compatible Regular Expressions *
3     *************************************************/
4    
5 nigel 63 /* Copyright (c) 1997-2003 University of Cambridge */
6 nigel 43
7     #ifndef _PCRE_H
8     #define _PCRE_H
9    
10 nigel 47 /* The file pcre.h is build by "configure". Do not edit it; instead
11     make changes to pcre.in. */
12    
13 nigel 53 #define PCRE_MAJOR @PCRE_MAJOR@
14     #define PCRE_MINOR @PCRE_MINOR@
15     #define PCRE_DATE @PCRE_DATE@
16 nigel 43
17     /* Win32 uses DLL by default */
18    
19     #ifdef _WIN32
20 nigel 63 # 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 nigel 43 #endif
30 nigel 63 #ifndef PCRE_DATA_SCOPE
31     # define PCRE_DATA_SCOPE extern
32     #endif
33 nigel 43
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 nigel 63 #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 nigel 43
61 nigel 63 /* Exec-time and get/set-time error codes */
62 nigel 43
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 nigel 63 #define PCRE_ERROR_MATCHLIMIT (-8)
71     #define PCRE_ERROR_CALLOUT (-9) /* Never used by PCRE itself */
72 nigel 43
73     /* Request types for pcre_fullinfo() */
74    
75 nigel 63 #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 nigel 43
88 nigel 63 /* 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 nigel 43 /* Types */
103    
104 nigel 63 struct real_pcre; /* declaration; the definition is private */
105 nigel 53 typedef struct real_pcre pcre;
106    
107 nigel 63 /* The structure for passing additional data to pcre_exec(). This is defined in
108     such as way as to be extensible. */
109 nigel 43
110 nigel 63 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 nigel 43
117 nigel 63 /* 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 nigel 43
122 nigel 63 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 nigel 43
137 nigel 63 /* 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 nigel 49 extern void pcre_free_substring(const char *);
165     extern void pcre_free_substring_list(const char **);
166 nigel 63 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 nigel 49 extern int pcre_info(const pcre *, int *, int *);
176 nigel 53 extern const unsigned char *pcre_maketables(void);
177 nigel 43 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