/[pcre]/code/tags/pcre-3.9/internal.h
ViewVC logotype

Diff of /code/tags/pcre-3.9/internal.h

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

revision 41 by nigel, Sat Feb 24 21:39:17 2007 UTC revision 49 by nigel, Sat Feb 24 21:39:33 2007 UTC
# Line 9  the file Tech.Notes for some information Line 9  the file Tech.Notes for some information
9    
10  Written by: Philip Hazel <ph10@cam.ac.uk>  Written by: Philip Hazel <ph10@cam.ac.uk>
11    
12             Copyright (c) 1997-1999 University of Cambridge             Copyright (c) 1997-2000 University of Cambridge
13    
14  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
15  Permission is granted to anyone to use this software for any purpose on any  Permission is granted to anyone to use this software for any purpose on any
# Line 40  modules, but which are not relevant to t Line 40  modules, but which are not relevant to t
40  #include "config.h"  #include "config.h"
41    
42  /* To cope with SunOS4 and other systems that lack memmove() but have bcopy(),  /* To cope with SunOS4 and other systems that lack memmove() but have bcopy(),
43  define a macro for memmove() if HAVE_MEMMOVE is not defined. */  define a macro for memmove() if HAVE_MEMMOVE is false, provided that HAVE_BCOPY
44    is set. Otherwise, include an emulating function for those systems that have
45    neither (there some non-Unix environments where this is the case). This assumes
46    that all calls to memmove are moving strings upwards in store, which is the
47    case in PCRE. */
48    
49  #ifndef HAVE_MEMMOVE  #if ! HAVE_MEMMOVE
50  #undef  memmove        /* some systems may have a macro */  #undef  memmove        /* some systems may have a macro */
51    #if HAVE_BCOPY
52  #define memmove(a, b, c) bcopy(b, a, c)  #define memmove(a, b, c) bcopy(b, a, c)
53    #else
54    void *
55    pcre_memmove(unsigned char *dest, const unsigned char *src, size_t n)
56    {
57    int i;
58    dest += n;
59    src += n;
60    for (i = 0; i < n; ++i) *(--dest) =  *(--src);
61    }
62    #define memmove(a, b, c) pcre_memmove(a, b, c)
63    #endif
64  #endif  #endif
65    
66  /* Standard C headers plus the external interface definition */  /* Standard C headers plus the external interface definition */
# Line 89  time, run time or study time, respective Line 105  time, run time or study time, respective
105    
106  #define PUBLIC_OPTIONS \  #define PUBLIC_OPTIONS \
107    (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \    (PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \
108     PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY)     PCRE_DOTALL|PCRE_DOLLAR_ENDONLY|PCRE_EXTRA|PCRE_UNGREEDY|PCRE_UTF8)
109    
110  #define PUBLIC_EXEC_OPTIONS \  #define PUBLIC_EXEC_OPTIONS \
111    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY)    (PCRE_ANCHORED|PCRE_NOTBOL|PCRE_NOTEOL|PCRE_NOTEMPTY)
# Line 188  enum { Line 204  enum {
204    
205    OP_CLASS,          /* Match a character class */    OP_CLASS,          /* Match a character class */
206    OP_REF,            /* Match a back reference */    OP_REF,            /* Match a back reference */
207      OP_RECURSE,        /* Match this pattern recursively */
208    
209    OP_ALT,            /* Start of alternation */    OP_ALT,            /* Start of alternation */
210    OP_KET,            /* End of group that doesn't have an unbounded repeat */    OP_KET,            /* End of group that doesn't have an unbounded repeat */
# Line 254  just to accommodate the POSIX wrapper. * Line 271  just to accommodate the POSIX wrapper. *
271  #define ERR26 "malformed number after (?("  #define ERR26 "malformed number after (?("
272  #define ERR27 "conditional group contains more than two branches"  #define ERR27 "conditional group contains more than two branches"
273  #define ERR28 "assertion expected after (?("  #define ERR28 "assertion expected after (?("
274    #define ERR29 "(?p must be followed by )"
275    #define ERR30 "unknown POSIX class name"
276    #define ERR31 "POSIX collating elements are not supported"
277    #define ERR32 "this version of PCRE is not compiled with PCRE_UTF8 support"
278    #define ERR33 "characters with values > 255 are not yet supported in classes"
279    #define ERR34 "character value in \\x{...} sequence is too large"
280    
281  /* All character handling must be done as unsigned characters. Otherwise there  /* All character handling must be done as unsigned characters. Otherwise there
282  are problems with top-bit-set characters and functions such as isspace().  are problems with top-bit-set characters and functions such as isspace().
# Line 269  runs on as long as necessary after the e Line 292  runs on as long as necessary after the e
292    
293  typedef struct real_pcre {  typedef struct real_pcre {
294    unsigned long int magic_number;    unsigned long int magic_number;
295      size_t size;
296    const unsigned char *tables;    const unsigned char *tables;
297    unsigned long int options;    unsigned long int options;
298    uschar top_bracket;    uschar top_bracket;
# Line 309  typedef struct match_data { Line 333  typedef struct match_data {
333    BOOL   offset_overflow;       /* Set if too many extractions */    BOOL   offset_overflow;       /* Set if too many extractions */
334    BOOL   notbol;                /* NOTBOL flag */    BOOL   notbol;                /* NOTBOL flag */
335    BOOL   noteol;                /* NOTEOL flag */    BOOL   noteol;                /* NOTEOL flag */
336      BOOL   utf8;                  /* UTF8 flag */
337    BOOL   endonly;               /* Dollar not before final \n */    BOOL   endonly;               /* Dollar not before final \n */
338    BOOL   notempty;              /* Empty string match not wanted */    BOOL   notempty;              /* Empty string match not wanted */
339      const uschar *start_pattern;  /* For use when recursing */
340    const uschar *start_subject;  /* Start of the subject string */    const uschar *start_subject;  /* Start of the subject string */
341    const uschar *end_subject;    /* End of the subject string */    const uschar *end_subject;    /* End of the subject string */
342    const uschar *start_match;    /* Start of this match attempt */    const uschar *start_match;    /* Start of this match attempt */
343    const uschar *end_match_ptr;  /* Subject position at end match */    const uschar *end_match_ptr;  /* Subject position at end match */
344    int     end_offset_top;       /* Highwater mark at end of match */    int    end_offset_top;        /* Highwater mark at end of match */
345  } match_data;  } match_data;
346    
347  /* Bit definitions for entries in the pcre_ctypes table. */  /* Bit definitions for entries in the pcre_ctypes table. */
# Line 328  typedef struct match_data { Line 354  typedef struct match_data {
354  #define ctype_meta    0x80   /* regexp meta char or zero (end pattern) */  #define ctype_meta    0x80   /* regexp meta char or zero (end pattern) */
355    
356  /* Offsets for the bitmap tables in pcre_cbits. Each table contains a set  /* Offsets for the bitmap tables in pcre_cbits. Each table contains a set
357  of bits for a class map. */  of bits for a class map. Some classes are built by combining these tables. */
358    
359  #define cbit_digit    0      /* for \d */  #define cbit_space     0      /* [:space:] or \s */
360  #define cbit_word    32      /* for \w */  #define cbit_xdigit   32      /* [:xdigit:] */
361  #define cbit_space   64      /* for \s */  #define cbit_digit    64      /* [:digit:] or \d */
362  #define cbit_length  96      /* Length of the cbits table */  #define cbit_upper    96      /* [:upper:] */
363    #define cbit_lower   128      /* [:lower:] */
364    #define cbit_word    160      /* [:word:] or \w */
365    #define cbit_graph   192      /* [:graph:] */
366    #define cbit_print   224      /* [:print:] */
367    #define cbit_punct   256      /* [:punct:] */
368    #define cbit_cntrl   288      /* [:cntrl:] */
369    #define cbit_length  320      /* Length of the cbits table */
370    
371  /* Offsets of the various tables from the base tables pointer, and  /* Offsets of the various tables from the base tables pointer, and
372  total length. */  total length. */

Legend:
Removed from v.41  
changed lines
  Added in v.49

  ViewVC Help
Powered by ViewVC 1.1.5