/[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

code/trunk/pcre.h.in revision 199 by ph10, Tue Jul 31 14:39:09 2007 UTC code/branches/pcre16/pcre.h.in revision 796 by zherczeg, Sat Dec 10 10:08:40 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 95  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 (Same as PCRE_UTF16) */
115  #define PCRE_PARTIAL            0x00008000  #define PCRE_UTF16              0x00000800  /* Compile (Same as PCRE_UTF8) */
116  #define PCRE_DFA_SHORTEST       0x00010000  #define PCRE_NO_AUTO_CAPTURE    0x00001000  /* Compile */
117  #define PCRE_DFA_RESTART        0x00020000  #define PCRE_NO_UTF8_CHECK      0x00002000  /* Compile, exec, DFA exec */
118  #define PCRE_FIRSTLINE          0x00040000  #define PCRE_AUTO_CALLOUT       0x00004000  /* Compile */
119  #define PCRE_DUPNAMES           0x00080000  #define PCRE_PARTIAL_SOFT       0x00008000  /* Exec, DFA exec */
120  #define PCRE_NEWLINE_CR         0x00100000  #define PCRE_PARTIAL            0x00008000  /* Backwards compatible synonym */
121  #define PCRE_NEWLINE_LF         0x00200000  #define PCRE_DFA_SHORTEST       0x00010000  /* DFA exec */
122  #define PCRE_NEWLINE_CRLF       0x00300000  #define PCRE_DFA_RESTART        0x00020000  /* DFA exec */
123  #define PCRE_NEWLINE_ANY        0x00400000  #define PCRE_FIRSTLINE          0x00040000  /* Compile */
124  #define PCRE_NEWLINE_ANYCRLF    0x00500000  #define PCRE_DUPNAMES           0x00080000  /* Compile */
125    #define PCRE_NEWLINE_CR         0x00100000  /* Compile, exec, DFA exec */
126    #define PCRE_NEWLINE_LF         0x00200000  /* Compile, exec, DFA exec */
127    #define PCRE_NEWLINE_CRLF       0x00300000  /* Compile, exec, DFA exec */
128    #define PCRE_NEWLINE_ANY        0x00400000  /* Compile, exec, DFA exec */
129    #define PCRE_NEWLINE_ANYCRLF    0x00500000  /* Compile, exec, DFA exec */
130    #define PCRE_BSR_ANYCRLF        0x00800000  /* Compile, exec, DFA exec */
131    #define PCRE_BSR_UNICODE        0x01000000  /* Compile, exec, DFA exec */
132    #define PCRE_JAVASCRIPT_COMPAT  0x02000000  /* Compile */
133    #define PCRE_NO_START_OPTIMIZE  0x04000000  /* Compile, exec, DFA exec */
134    #define PCRE_NO_START_OPTIMISE  0x04000000  /* Synonym */
135    #define PCRE_PARTIAL_HARD       0x08000000  /* Exec, DFA exec */
136    #define PCRE_NOTEMPTY_ATSTART   0x10000000  /* Exec, DFA exec */
137    #define PCRE_UCP                0x20000000  /* Compile */
138    
139  /* Exec-time and get/set-time error codes */  /* Exec-time and get/set-time error codes */
140    
# Line 147  extern "C" { Line 160  extern "C" {
160  #define PCRE_ERROR_DFA_WSSIZE     (-19)  #define PCRE_ERROR_DFA_WSSIZE     (-19)
161  #define PCRE_ERROR_DFA_RECURSE    (-20)  #define PCRE_ERROR_DFA_RECURSE    (-20)
162  #define PCRE_ERROR_RECURSIONLIMIT (-21)  #define PCRE_ERROR_RECURSIONLIMIT (-21)
163  #define PCRE_ERROR_NOTUSED        (-22)  #define PCRE_ERROR_NULLWSLIMIT    (-22)  /* No longer actually used */
164  #define PCRE_ERROR_BADNEWLINE     (-23)  #define PCRE_ERROR_BADNEWLINE     (-23)
165    #define PCRE_ERROR_BADOFFSET      (-24)
166    #define PCRE_ERROR_SHORTUTF8      (-25)
167    #define PCRE_ERROR_RECURSELOOP    (-26)
168    #define PCRE_ERROR_JIT_STACKLIMIT (-27)
169    #define PCRE_ERROR_BADMODE        (-28)
170    
171    /* Specific error codes for UTF-8 validity checks */
172    
173    #define PCRE_UTF8_ERR0               0
174    #define PCRE_UTF8_ERR1               1
175    #define PCRE_UTF8_ERR2               2
176    #define PCRE_UTF8_ERR3               3
177    #define PCRE_UTF8_ERR4               4
178    #define PCRE_UTF8_ERR5               5
179    #define PCRE_UTF8_ERR6               6
180    #define PCRE_UTF8_ERR7               7
181    #define PCRE_UTF8_ERR8               8
182    #define PCRE_UTF8_ERR9               9
183    #define PCRE_UTF8_ERR10             10
184    #define PCRE_UTF8_ERR11             11
185    #define PCRE_UTF8_ERR12             12
186    #define PCRE_UTF8_ERR13             13
187    #define PCRE_UTF8_ERR14             14
188    #define PCRE_UTF8_ERR15             15
189    #define PCRE_UTF8_ERR16             16
190    #define PCRE_UTF8_ERR17             17
191    #define PCRE_UTF8_ERR18             18
192    #define PCRE_UTF8_ERR19             19
193    #define PCRE_UTF8_ERR20             20
194    #define PCRE_UTF8_ERR21             21
195    
196    /* Specific error codes for UTF-16 validity checks */
197    
198    #define PCRE_UTF16_ERR0              0
199    #define PCRE_UTF16_ERR1              1
200    #define PCRE_UTF16_ERR2              2
201    #define PCRE_UTF16_ERR3              3
202    #define PCRE_UTF16_ERR4              4
203    
204  /* Request types for pcre_fullinfo() */  /* Request types for pcre_fullinfo() */
205    
# Line 167  extern "C" { Line 218  extern "C" {
218  #define PCRE_INFO_DEFAULT_TABLES    11  #define PCRE_INFO_DEFAULT_TABLES    11
219  #define PCRE_INFO_OKPARTIAL         12  #define PCRE_INFO_OKPARTIAL         12
220  #define PCRE_INFO_JCHANGED          13  #define PCRE_INFO_JCHANGED          13
221    #define PCRE_INFO_HASCRORLF         14
222    #define PCRE_INFO_MINLENGTH         15
223    #define PCRE_INFO_JIT               16
224    
225  /* 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
226  compatible. */  compatible. */
# Line 179  compatible. */ Line 233  compatible. */
233  #define PCRE_CONFIG_STACKRECURSE            5  #define PCRE_CONFIG_STACKRECURSE            5
234  #define PCRE_CONFIG_UNICODE_PROPERTIES      6  #define PCRE_CONFIG_UNICODE_PROPERTIES      6
235  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7  #define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7
236    #define PCRE_CONFIG_BSR                     8
237    #define PCRE_CONFIG_JIT                     9
238    #define PCRE_CONFIG_UTF16                  10
239    
240    /* Request types for pcre_study(). Do not re-arrange, in order to remain
241    compatible. */
242    
243    #define PCRE_STUDY_JIT_COMPILE            0x0001
244    
245  /* 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
246  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 188  these bits, just add new ones on the end Line 250  these bits, just add new ones on the end
250  #define PCRE_EXTRA_CALLOUT_DATA           0x0004  #define PCRE_EXTRA_CALLOUT_DATA           0x0004
251  #define PCRE_EXTRA_TABLES                 0x0008  #define PCRE_EXTRA_TABLES                 0x0008
252  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010  #define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010
253    #define PCRE_EXTRA_MARK                   0x0020
254    #define PCRE_EXTRA_EXECUTABLE_JIT         0x0040
255    
256  /* Types */  /* Types */
257    
258  struct real_pcre;                 /* declaration; the definition is private  */  struct real_pcre;                 /* declaration; the definition is private  */
259  typedef struct real_pcre pcre;  typedef struct real_pcre pcre;
260    
261    struct real_pcre_jit_stack;       /* declaration; the definition is private  */
262    typedef struct real_pcre_jit_stack pcre_jit_stack;
263    
264    /* If PCRE is compiled with 16 bit character support, PCRE_SCHAR16 must contain
265    a 16 bit wide signed data type. Otherwise it can be a dummy data type since
266    pcre16 functions are not implemented. There is a check for this in pcre_internal.h. */
267    #ifndef PCRE_SCHAR16
268    #define PCRE_SCHAR16 short
269    #endif
270    
271    #ifndef PCRE_SPTR16
272    #define PCRE_SPTR16 const PCRE_SCHAR16 *
273    #endif
274    
275  /* When PCRE is compiled as a C++ library, the subject pointer type can be  /* When PCRE is compiled as a C++ library, the subject pointer type can be
276  replaced with a custom type. For conventional use, the public interface is a  replaced with a custom type. For conventional use, the public interface is a
277  const char *. */  const char *. */
# Line 213  typedef struct pcre_extra { Line 291  typedef struct pcre_extra {
291    void *callout_data;             /* Data passed back in callouts */    void *callout_data;             /* Data passed back in callouts */
292    const unsigned char *tables;    /* Pointer to character tables */    const unsigned char *tables;    /* Pointer to character tables */
293    unsigned long int match_limit_recursion; /* Max recursive calls to match() */    unsigned long int match_limit_recursion; /* Max recursive calls to match() */
294      unsigned char **mark;           /* For passing back a mark pointer */
295      void *executable_jit;           /* Contains a pointer to a compiled jit code */
296  } pcre_extra;  } pcre_extra;
297    
298  /* 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 235  typedef struct pcre_callout_block { Line 315  typedef struct pcre_callout_block {
315    /* ------------------- Added for Version 1 -------------------------- */    /* ------------------- Added for Version 1 -------------------------- */
316    int          pattern_position;  /* Offset to next item in the pattern */    int          pattern_position;  /* Offset to next item in the pattern */
317    int          next_item_length;  /* Length of next item in the pattern */    int          next_item_length;  /* Length of next item in the pattern */
318      /* ------------------- Added for Version 2 -------------------------- */
319      const unsigned char *mark;      /* Pointer to current mark or NULL    */
320    /* ------------------------------------------------------------------ */    /* ------------------------------------------------------------------ */
321  } pcre_callout_block;  } pcre_callout_block;
322    
# Line 258  PCRE_EXP_DECL void pcre_stack_free(void Line 340  PCRE_EXP_DECL void pcre_stack_free(void
340  PCRE_EXP_DECL int   pcre_callout(pcre_callout_block *);  PCRE_EXP_DECL int   pcre_callout(pcre_callout_block *);
341  #endif  /* VPCOMPAT */  #endif  /* VPCOMPAT */
342    
343    /* User defined callback which provides a stack just before the match starts. */
344    
345    typedef pcre_jit_stack *(*pcre_jit_callback)(void *);
346    
347  /* Exported PCRE functions */  /* Exported PCRE functions */
348    
349  PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,  PCRE_EXP_DECL pcre *pcre_compile(const char *, int, const char **, int *,
350                    const unsigned char *);                    const unsigned char *);
351    PCRE_EXP_DECL pcre *pcre16_compile(PCRE_SPTR16, int, const char **, int *,
352                      const unsigned char *);
353  PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **,  PCRE_EXP_DECL pcre *pcre_compile2(const char *, int, int *, const char **,
354                    int *, const unsigned char *);                    int *, const unsigned char *);
355    PCRE_EXP_DECL pcre *pcre16_compile2(PCRE_SPTR16, int, int *, const char **,
356                      int *, const unsigned char *);
357  PCRE_EXP_DECL int  pcre_config(int, void *);  PCRE_EXP_DECL int  pcre_config(int, void *);
358    PCRE_EXP_DECL int  pcre16_config(int, void *);
359  PCRE_EXP_DECL int  pcre_copy_named_substring(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_copy_named_substring(const pcre *, const char *,
360                    int *, int, const char *, char *, int);                    int *, int, const char *, char *, int);
361  PCRE_EXP_DECL int  pcre_copy_substring(const char *, int *, int, int, char *,  PCRE_EXP_DECL int  pcre16_copy_named_substring(const pcre *, PCRE_SPTR16,
362                    int);                    int *, int, PCRE_SPTR16, PCRE_SCHAR16 *, int);
363    PCRE_EXP_DECL int  pcre_copy_substring(const char *, int *, int, int,
364                      char *, int);
365    PCRE_EXP_DECL int  pcre16_copy_substring(PCRE_SPTR16, int *, int, int,
366                      PCRE_SCHAR16 *, int);
367  PCRE_EXP_DECL int  pcre_dfa_exec(const pcre *, const pcre_extra *,  PCRE_EXP_DECL int  pcre_dfa_exec(const pcre *, const pcre_extra *,
368                    const char *, int, int, int, int *, int , int *, int);                    const char *, int, int, int, int *, int , int *, int);
369    PCRE_EXP_DECL int  pcre16_dfa_exec(const pcre *, const pcre_extra *,
370                      PCRE_SPTR16, int, int, int, int *, int , int *, int);
371  PCRE_EXP_DECL int  pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,  PCRE_EXP_DECL int  pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,
372                     int, int, int, int *, int);                     int, int, int, int *, int);
373    PCRE_EXP_DECL int  pcre16_exec(const pcre *, const pcre_extra *, PCRE_SPTR16,
374                       int, int, int, int *, int);
375  PCRE_EXP_DECL void pcre_free_substring(const char *);  PCRE_EXP_DECL void pcre_free_substring(const char *);
376    PCRE_EXP_DECL void pcre16_free_substring(PCRE_SPTR16);
377  PCRE_EXP_DECL void pcre_free_substring_list(const char **);  PCRE_EXP_DECL void pcre_free_substring_list(const char **);
378    PCRE_EXP_DECL void pcre16_free_substring_list(PCRE_SPTR16 *);
379  PCRE_EXP_DECL int  pcre_fullinfo(const pcre *, const pcre_extra *, int,  PCRE_EXP_DECL int  pcre_fullinfo(const pcre *, const pcre_extra *, int,
380                    void *);                    void *);
381    PCRE_EXP_DECL int  pcre16_fullinfo(const pcre *, const pcre_extra *, int,
382                      void *);
383  PCRE_EXP_DECL int  pcre_get_named_substring(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_get_named_substring(const pcre *, const char *,
384                    int *, int, const char *, const char **);                    int *, int, const char *, const char **);
385    PCRE_EXP_DECL int  pcre16_get_named_substring(const pcre *, PCRE_SPTR16,
386                      int *, int, PCRE_SPTR16, PCRE_SPTR16 *);
387  PCRE_EXP_DECL int  pcre_get_stringnumber(const pcre *, const char *);  PCRE_EXP_DECL int  pcre_get_stringnumber(const pcre *, const char *);
388    PCRE_EXP_DECL int  pcre16_get_stringnumber(const pcre *, PCRE_SPTR16);
389  PCRE_EXP_DECL int  pcre_get_stringtable_entries(const pcre *, const char *,  PCRE_EXP_DECL int  pcre_get_stringtable_entries(const pcre *, const char *,
390                    char **, char **);                    char **, char **);
391    PCRE_EXP_DECL int  pcre16_get_stringtable_entries(const pcre *, PCRE_SPTR16,
392                      PCRE_SCHAR16 **, PCRE_SCHAR16 **);
393  PCRE_EXP_DECL int  pcre_get_substring(const char *, int *, int, int,  PCRE_EXP_DECL int  pcre_get_substring(const char *, int *, int, int,
394                    const char **);                    const char **);
395    PCRE_EXP_DECL int  pcre16_get_substring(PCRE_SPTR16, int *, int, int,
396                      PCRE_SPTR16 *);
397  PCRE_EXP_DECL int  pcre_get_substring_list(const char *, int *, int,  PCRE_EXP_DECL int  pcre_get_substring_list(const char *, int *, int,
398                    const char ***);                    const char ***);
399    PCRE_EXP_DECL int  pcre16_get_substring_list(PCRE_SPTR16, int *, int,
400                      PCRE_SPTR16 **);
401  PCRE_EXP_DECL int  pcre_info(const pcre *, int *, int *);  PCRE_EXP_DECL int  pcre_info(const pcre *, int *, int *);
402    PCRE_EXP_DECL int  pcre16_info(const pcre *, int *, int *);
403  PCRE_EXP_DECL const unsigned char *pcre_maketables(void);  PCRE_EXP_DECL const unsigned char *pcre_maketables(void);
404    PCRE_EXP_DECL const unsigned char *pcre16_maketables(void);
405  PCRE_EXP_DECL int  pcre_refcount(pcre *, int);  PCRE_EXP_DECL int  pcre_refcount(pcre *, int);
406    PCRE_EXP_DECL int  pcre16_refcount(pcre *, int);
407  PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);  PCRE_EXP_DECL pcre_extra *pcre_study(const pcre *, int, const char **);
408    PCRE_EXP_DECL pcre_extra *pcre16_study(const pcre *, int, const char **);
409    PCRE_EXP_DECL void pcre_free_study(pcre_extra *);
410    PCRE_EXP_DECL void pcre16_free_study(pcre_extra *);
411  PCRE_EXP_DECL const char *pcre_version(void);  PCRE_EXP_DECL const char *pcre_version(void);
412    PCRE_EXP_DECL const char *pcre16_version(void);
413    
414    /* Utility functions. */
415    PCRE_EXP_DECL int  pcre16_utf16_to_host_byte_order(PCRE_SCHAR16 *,
416                      PCRE_SPTR16, int, int);
417    
418    /* JIT compiler related functions. */
419    
420    PCRE_EXP_DECL pcre_jit_stack *pcre_jit_stack_alloc(int, int);
421    PCRE_EXP_DECL pcre_jit_stack *pcre16_jit_stack_alloc(int, int);
422    PCRE_EXP_DECL void pcre_jit_stack_free(pcre_jit_stack *);
423    PCRE_EXP_DECL void pcre16_jit_stack_free(pcre_jit_stack *);
424    PCRE_EXP_DECL void pcre_assign_jit_stack(pcre_extra *,
425                      pcre_jit_callback, void *);
426    PCRE_EXP_DECL void pcre16_assign_jit_stack(pcre_extra *,
427                      pcre_jit_callback, void *);
428    
429  #ifdef __cplusplus  #ifdef __cplusplus
430  }  /* extern "C" */  }  /* extern "C" */

Legend:
Removed from v.199  
changed lines
  Added in v.796

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12