/[pcre]/code/branches/pcre16/pcre.h.in
ViewVC logotype

Diff of /code/branches/pcre16/pcre.h.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 117 by ph10, Fri Mar 9 15:59:06 2007 UTC revision 645 by ph10, Sun Jul 31 17:02:18 2011 UTC
# Line 5  Line 5 
5  /* This is the public header file for the PCRE library, to be #included by  /* This is the public header file for the PCRE library, to be #included by
6  applications that call the PCRE functions.  applications that call the PCRE functions.
7    
8             Copyright (c) 1997-2007 University of Cambridge             Copyright (c) 1997-2011 University of Cambridge
9    
10  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
11  Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
# Line 46  POSSIBILITY OF SUCH DAMAGE. Line 46  POSSIBILITY OF SUCH DAMAGE.
46  #define PCRE_PRERELEASE     @PCRE_PRERELEASE@  #define PCRE_PRERELEASE     @PCRE_PRERELEASE@
47  #define PCRE_DATE           @PCRE_DATE@  #define PCRE_DATE           @PCRE_DATE@
48    
49  /* Win32 uses DLL by default; it needs special stuff for exported functions  /* When an application links to a PCRE DLL in Windows, the symbols that are
50  when building PCRE. */  imported have to be identified as such. When building PCRE, the appropriate
51    export setting is defined in pcre_internal.h, which includes this file. So we
52  #ifdef _WIN32  don't change existing definitions of PCRE_EXP_DECL and PCRECPP_EXP_DECL. */
53  #  ifdef PCRE_DEFINITION  
54  #    ifdef DLL_EXPORT  #if defined(_WIN32) && !defined(PCRE_STATIC)
55  #      define PCRE_DATA_SCOPE __declspec(dllexport)  #  ifndef PCRE_EXP_DECL
56    #    define PCRE_EXP_DECL  extern __declspec(dllimport)
57    #  endif
58    #  ifdef __cplusplus
59    #    ifndef PCRECPP_EXP_DECL
60    #      define PCRECPP_EXP_DECL  extern __declspec(dllimport)
61  #    endif  #    endif
62  #  else  #    ifndef PCRECPP_EXP_DEFN
63  #    ifndef PCRE_STATIC  #      define PCRECPP_EXP_DEFN  __declspec(dllimport)
 #      define PCRE_DATA_SCOPE extern __declspec(dllimport)  
64  #    endif  #    endif
65  #  endif  #  endif
66  #endif  #endif
67    
68  /* Otherwise, we use the standard "extern". */  /* By default, we use the standard "extern" declarations. */
69    
70  #ifndef PCRE_DATA_SCOPE  #ifndef PCRE_EXP_DECL
71  #  ifdef __cplusplus  #  ifdef __cplusplus
72  #    define PCRE_DATA_SCOPE     extern "C"  #    define PCRE_EXP_DECL  extern "C"
73  #  else  #  else
74  #    define PCRE_DATA_SCOPE     extern  #    define PCRE_EXP_DECL  extern
75    #  endif
76    #endif
77    
78    #ifdef __cplusplus
79    #  ifndef PCRECPP_EXP_DECL
80    #    define PCRECPP_EXP_DECL  extern
81    #  endif
82    #  ifndef PCRECPP_EXP_DEFN
83    #    define PCRECPP_EXP_DEFN
84  #  endif  #  endif
85  #endif  #endif
86    
# Line 82  it is needed here for malloc. */ Line 95  it is needed here for malloc. */
95  extern "C" {  extern "C" {
96  #endif  #endif
97    
98  /* Options */  /* Options. Some are compile-time only, some are run-time only, and some are
99    both, so we keep them all distinct. However, almost all the bits in the options
100  #define PCRE_CASELESS           0x00000001  word are now used. In the long run, we may have to re-use some of the
101  #define PCRE_MULTILINE          0x00000002  compile-time only bits for runtime options, or vice versa. */
102  #define PCRE_DOTALL             0x00000004  
103  #define PCRE_EXTENDED           0x00000008  #define PCRE_CASELESS           0x00000001  /* Compile */
104  #define PCRE_ANCHORED           0x00000010  #define PCRE_MULTILINE          0x00000002  /* Compile */
105  #define PCRE_DOLLAR_ENDONLY     0x00000020  #define PCRE_DOTALL             0x00000004  /* Compile */
106  #define PCRE_EXTRA              0x00000040  #define PCRE_EXTENDED           0x00000008  /* Compile */
107  #define PCRE_NOTBOL             0x00000080  #define PCRE_ANCHORED           0x00000010  /* Compile, exec, DFA exec */
108  #define PCRE_NOTEOL             0x00000100  #define PCRE_DOLLAR_ENDONLY     0x00000020  /* Compile */
109  #define PCRE_UNGREEDY           0x00000200  #define PCRE_EXTRA              0x00000040  /* Compile */
110  #define PCRE_NOTEMPTY           0x00000400  #define PCRE_NOTBOL             0x00000080  /* Exec, DFA exec */
111  #define PCRE_UTF8               0x00000800  #define PCRE_NOTEOL             0x00000100  /* Exec, DFA exec */
112  #define PCRE_NO_AUTO_CAPTURE    0x00001000  #define PCRE_UNGREEDY           0x00000200  /* Compile */
113  #define PCRE_NO_UTF8_CHECK      0x00002000  #define PCRE_NOTEMPTY           0x00000400  /* Exec, DFA exec */
114  #define PCRE_AUTO_CALLOUT       0x00004000  #define PCRE_UTF8               0x00000800  /* Compile */
115  #define PCRE_PARTIAL            0x00008000  #define PCRE_NO_AUTO_CAPTURE    0x00001000  /* Compile */
116  #define PCRE_DFA_SHORTEST       0x00010000  #define PCRE_NO_UTF8_CHECK      0x00002000  /* Compile, exec, DFA exec */
117  #define PCRE_DFA_RESTART        0x00020000  #define PCRE_AUTO_CALLOUT       0x00004000  /* Compile */
118  #define PCRE_FIRSTLINE          0x00040000  #define PCRE_PARTIAL_SOFT       0x00008000  /* Exec, DFA exec */
119  #define PCRE_DUPNAMES           0x00080000  #define PCRE_PARTIAL            0x00008000  /* Backwards compatible synonym */
120  #define PCRE_NEWLINE_CR         0x00100000  #define PCRE_DFA_SHORTEST       0x00010000  /* DFA exec */
121  #define PCRE_NEWLINE_LF         0x00200000  #define PCRE_DFA_RESTART        0x00020000  /* DFA exec */
122  #define PCRE_NEWLINE_CRLF       0x00300000  #define PCRE_FIRSTLINE          0x00040000  /* Compile */
123  #define PCRE_NEWLINE_ANY        0x00400000  #define PCRE_DUPNAMES           0x00080000  /* Compile */
124    #define PCRE_NEWLINE_CR         0x00100000  /* Compile, exec, DFA exec */
125    #define PCRE_NEWLINE_LF         0x00200000  /* Compile, exec, DFA exec */
126    #define PCRE_NEWLINE_CRLF       0x00300000  /* Compile, exec, DFA exec */
127    #define PCRE_NEWLINE_ANY        0x00400000  /* Compile, exec, DFA exec */
128    #define PCRE_NEWLINE_ANYCRLF    0x00500000  /* Compile, exec, DFA exec */
129    #define PCRE_BSR_ANYCRLF        0x00800000  /* Compile, exec, DFA exec */
130    #define PCRE_BSR_UNICODE        0x01000000  /* Compile, exec, DFA exec */
131    #define PCRE_JAVASCRIPT_COMPAT  0x02000000  /* Compile */
132    #define PCRE_NO_START_OPTIMIZE  0x04000000  /* Compile, exec, DFA exec */
133    #define PCRE_NO_START_OPTIMISE  0x04000000  /* Synonym */
134    #define PCRE_PARTIAL_HARD       0x08000000  /* Exec, DFA exec */
135    #define PCRE_NOTEMPTY_ATSTART   0x10000000  /* Exec, DFA exec */
136    #define PCRE_UCP                0x20000000  /* Compile */
137    
138  /* Exec-time and get/set-time error codes */  /* Exec-time and get/set-time error codes */
139    
# Line 133  extern "C" { Line 159  extern "C" {
159  #define PCRE_ERROR_DFA_WSSIZE     (-19)  #define PCRE_ERROR_DFA_WSSIZE     (-19)
160  #define PCRE_ERROR_DFA_RECURSE    (-20)  #define PCRE_ERROR_DFA_RECURSE    (-20)
161  #define PCRE_ERROR_RECURSIONLIMIT (-21)  #define PCRE_ERROR_RECURSIONLIMIT (-21)
162  #define PCRE_ERROR_NULLWSLIMIT    (-22)  #define PCRE_ERROR_NULLWSLIMIT    (-22)  /* No longer actually used */
163  #define PCRE_ERROR_BADNEWLINE     (-23)  #define PCRE_ERROR_BADNEWLINE     (-23)
164    #define PCRE_ERROR_BADOFFSET      (-24)
165    #define PCRE_ERROR_SHORTUTF8      (-25)
166    #define PCRE_ERROR_RECURSELOOP    (-26)
167    
168    /* Specific error codes for UTF-8 validity checks */
169    
170    #define PCRE_UTF8_ERR0               0
171    #define PCRE_UTF8_ERR1               1
172    #define PCRE_UTF8_ERR2               2
173    #define PCRE_UTF8_ERR3               3
174    #define PCRE_UTF8_ERR4               4
175    #define PCRE_UTF8_ERR5               5
176    #define PCRE_UTF8_ERR6               6
177    #define PCRE_UTF8_ERR7               7
178    #define PCRE_UTF8_ERR8               8
179    #define PCRE_UTF8_ERR9               9
180    #define PCRE_UTF8_ERR10             10
181    #define PCRE_UTF8_ERR11             11
182    #define PCRE_UTF8_ERR12             12
183    #define PCRE_UTF8_ERR13             13
184    #define PCRE_UTF8_ERR14             14
185    #define PCRE_UTF8_ERR15             15
186    #define PCRE_UTF8_ERR16             16
187    #define PCRE_UTF8_ERR17             17
188    #define PCRE_UTF8_ERR18             18
189    #define PCRE_UTF8_ERR19             19
190    #define PCRE_UTF8_ERR20             20
191    #define PCRE_UTF8_ERR21             21
192    
193  /* Request types for pcre_fullinfo() */  /* Request types for pcre_fullinfo() */
194    
# Line 151  extern "C" { Line 205  extern "C" {
205  #define PCRE_INFO_NAMETABLE          9  #define PCRE_INFO_NAMETABLE          9
206  #define PCRE_INFO_STUDYSIZE         10  #define PCRE_INFO_STUDYSIZE         10
207  #define PCRE_INFO_DEFAULT_TABLES    11  #define PCRE_INFO_DEFAULT_TABLES    11
208    #define PCRE_INFO_OKPARTIAL         12
209    #define PCRE_INFO_JCHANGED          13
210    #define PCRE_INFO_HASCRORLF         14
211    #define PCRE_INFO_MINLENGTH         15
212    
213  /* Request types for pcre_config(). Do not re-arrange, in order to remain  /* Request types for pcre_config(). Do not re-arrange, in order to remain
214  compatible. */  compatible. */
# Line 163  compatible. */ Line 221  compatible. */
221  #define PCRE_CONFIG_STACKRECURSE            5  #define PCRE_CONFIG_STACKRECURSE            5
222  #define PCRE_CONFIG_UNICODE_PROPERTIES      6  #define PCRE_CONFIG_UNICODE_PROPERTIES      6
223  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7
224    #define PCRE_CONFIG_BSR                     8
225    
226  /* Bit flags for the pcre_extra structure. Do not re-arrange or redefine  /* Bit flags for the pcre_extra structure. Do not re-arrange or redefine
227  these bits, just add new ones on the end, in order to remain compatible. */  these bits, just add new ones on the end, in order to remain compatible. */
# Line 172  these bits, just add new ones on the end Line 231  these bits, just add new ones on the end
231  #define PCRE_EXTRA_CALLOUT_DATA           0x0004  #define PCRE_EXTRA_CALLOUT_DATA           0x0004
232  #define PCRE_EXTRA_TABLES                 0x0008  #define PCRE_EXTRA_TABLES                 0x0008
233  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010
234    #define PCRE_EXTRA_MARK                   0x0020
235    
236  /* Types */  /* Types */
237    
# Line 197  typedef struct pcre_extra { Line 257  typedef struct pcre_extra {
257    void *callout_data;             /* Data passed back in callouts */    void *callout_data;             /* Data passed back in callouts */
258    const unsigned char *tables;    /* Pointer to character tables */    const unsigned char *tables;    /* Pointer to character tables */
259    unsigned long int match_limit_recursion; /* Max recursive calls to match() */    unsigned long int match_limit_recursion; /* Max recursive calls to match() */
260      unsigned char **mark;           /* For passing back a mark pointer */
261  } pcre_extra;  } pcre_extra;
262    
263  /* The structure for passing out data via the pcre_callout_function. We use a  /* The structure for passing out data via the pcre_callout_function. We use a
# Line 219  typedef struct pcre_callout_block { Line 280  typedef struct pcre_callout_block {
280    /* ------------------- Added for Version 1 -------------------------- */    /* ------------------- Added for Version 1 -------------------------- */
281    int          pattern_position;  /* Offset to next item in the pattern */    int          pattern_position;  /* Offset to next item in the pattern */
282    int          next_item_length;  /* Length of next item in the pattern */    int          next_item_length;  /* Length of next item in the pattern */
283      /* ------------------- Added for Version 2 -------------------------- */
284      const unsigned char *mark;      /* Pointer to current mark or NULL    */
285    /* ------------------------------------------------------------------ */    /* ------------------------------------------------------------------ */
286  } pcre_callout_block;  } pcre_callout_block;
287    
# Line 229  that is triggered by the (?) regex item. Line 292  that is triggered by the (?) regex item.
292  have to take another form. */  have to take another form. */
293    
294  #ifndef VPCOMPAT  #ifndef VPCOMPAT
295  PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t);  PCRE_EXP_DECL void *(*pcre_malloc)(size_t);
296  PCRE_DATA_SCOPE void  (*pcre_free)(void *);  PCRE_EXP_DECL void  (*pcre_free)(void *);
297  PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t);  PCRE_EXP_DECL void *(*pcre_stack_malloc)(size_t);
298  PCRE_DATA_SCOPE void  (*pcre_stack_free)(void *);  PCRE_EXP_DECL void  (*pcre_stack_free)(void *);
299  PCRE_DATA_SCOPE int   (*pcre_callout)(pcre_callout_block *);  PCRE_EXP_DECL int   (*pcre_callout)(pcre_callout_block *);
300  #else   /* VPCOMPAT */  #else   /* VPCOMPAT */
301  PCRE_DATA_SCOPE void *pcre_malloc(size_t);  PCRE_EXP_DECL void *pcre_malloc(size_t);
302  PCRE_DATA_SCOPE void  pcre_free(void *);  PCRE_EXP_DECL void  pcre_free(void *);
303  PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t);  PCRE_EXP_DECL void *pcre_stack_malloc(size_t);
304  PCRE_DATA_SCOPE void  pcre_stack_free(void *);  PCRE_EXP_DECL void  pcre_stack_free(void *);
305  PCRE_DATA_SCOPE int   pcre_callout(pcre_callout_block *);  PCRE_EXP_DECL int   pcre_callout(pcre_callout_block *);
306  #endif  /* VPCOMPAT */  #endif  /* VPCOMPAT */
307    
308  /* Exported PCRE functions */  /* Exported PCRE functions */
309    
310  PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *,  PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,
311                    const unsigned char *);                    const unsigned char *);
312  PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **,  PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **,
313                    int *, const unsigned char *);                    int *, const unsigned char *);
314  PCRE_DATA_SCOPE int  pcre_config(int, void *);  PCRE_EXP_DECL int  pcre_config(int, void *);
315  PCRE_DATA_SCOPE int  pcre_copy_named_substring(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_copy_named_substring(const pcre *, const char *,
316                    int *, int, const char *, char *, int);                    int *, int, const char *, char *, int);
317  PCRE_DATA_SCOPE int  pcre_copy_substring(const char *, int *, int, int, char *,  PCRE_EXP_DECL int  pcre_copy_substring(const char *, int *, int, int, char *,
318                    int);                    int);
319  PCRE_DATA_SCOPE int  pcre_dfa_exec(const pcre *, const pcre_extra *,  PCRE_EXP_DECL int  pcre_dfa_exec(const pcre *, const pcre_extra *,
320                    const char *, int, int, int, int *, int , int *, int);                    const char *, int, int, int, int *, int , int *, int);
321  PCRE_DATA_SCOPE int  pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,  PCRE_EXP_DECL int  pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,
322                     int, int, int, int *, int);                     int, int, int, int *, int);
323  PCRE_DATA_SCOPE void pcre_free_substring(const char *);  PCRE_EXP_DECL void pcre_free_substring(const char *);
324  PCRE_DATA_SCOPE void pcre_free_substring_list(const char **);  PCRE_EXP_DECL void pcre_free_substring_list(const char **);
325  PCRE_DATA_SCOPE int  pcre_fullinfo(const pcre *, const pcre_extra *, int,  PCRE_EXP_DECL int  pcre_fullinfo(const pcre *, const pcre_extra *, int,
326                    void *);                    void *);
327  PCRE_DATA_SCOPE int  pcre_get_named_substring(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_get_named_substring(const pcre *, const char *,
328                    int *, int, const char *, const char **);                    int *, int, const char *, const char **);
329  PCRE_DATA_SCOPE int  pcre_get_stringnumber(const pcre *, const char *);  PCRE_EXP_DECL int  pcre_get_stringnumber(const pcre *, const char *);
330  PCRE_DATA_SCOPE int  pcre_get_stringtable_entries(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_get_stringtable_entries(const pcre *, const char *,
331                    char **, char **);                    char **, char **);
332  PCRE_DATA_SCOPE int  pcre_get_substring(const char *, int *, int, int,  PCRE_EXP_DECL int  pcre_get_substring(const char *, int *, int, int,
333                    const char **);                    const char **);
334  PCRE_DATA_SCOPE int  pcre_get_substring_list(const char *, int *, int,  PCRE_EXP_DECL int  pcre_get_substring_list(const char *, int *, int,
335                    const char ***);                    const char ***);
336  PCRE_DATA_SCOPE int  pcre_info(const pcre *, int *, int *);  PCRE_EXP_DECL int  pcre_info(const pcre *, int *, int *);
337  PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void);  PCRE_EXP_DECL const unsigned char *pcre_maketables(void);
338  PCRE_DATA_SCOPE int  pcre_refcount(pcre *, int);  PCRE_EXP_DECL int  pcre_refcount(pcre *, int);
339  PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **);  PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);
340  PCRE_DATA_SCOPE const char *pcre_version(void);  PCRE_EXP_DECL const char *pcre_version(void);
341    
342  #ifdef __cplusplus  #ifdef __cplusplus
343  }  /* extern "C" */  }  /* extern "C" */

Legend:
Removed from v.117  
changed lines
  Added in v.645

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12