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

Diff of /code/tags/pcre-3.5/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 43 by nigel, Sat Feb 24 21:39:21 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. */
44    
45  #ifndef HAVE_MEMMOVE  #if ! HAVE_MEMMOVE
46  #undef  memmove        /* some systems may have a macro */  #undef  memmove        /* some systems may have a macro */
47  #define memmove(a, b, c) bcopy(b, a, c)  #define memmove(a, b, c) bcopy(b, a, c)
48  #endif  #endif
# Line 188  enum { Line 188  enum {
188    
189    OP_CLASS,          /* Match a character class */    OP_CLASS,          /* Match a character class */
190    OP_REF,            /* Match a back reference */    OP_REF,            /* Match a back reference */
191      OP_RECURSE,        /* Match this pattern recursively */
192    
193    OP_ALT,            /* Start of alternation */    OP_ALT,            /* Start of alternation */
194    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 255  just to accommodate the POSIX wrapper. *
255  #define ERR26 "malformed number after (?("  #define ERR26 "malformed number after (?("
256  #define ERR27 "conditional group contains more than two branches"  #define ERR27 "conditional group contains more than two branches"
257  #define ERR28 "assertion expected after (?("  #define ERR28 "assertion expected after (?("
258    #define ERR29 "(?p must be followed by )"
259    #define ERR30 "unknown POSIX class name"
260    #define ERR31 "POSIX collating elements are not supported"
261    
262  /* All character handling must be done as unsigned characters. Otherwise there  /* All character handling must be done as unsigned characters. Otherwise there
263  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 273  runs on as long as necessary after the e
273    
274  typedef struct real_pcre {  typedef struct real_pcre {
275    unsigned long int magic_number;    unsigned long int magic_number;
276      size_t size;
277    const unsigned char *tables;    const unsigned char *tables;
278    unsigned long int options;    unsigned long int options;
279    uschar top_bracket;    uschar top_bracket;
# Line 311  typedef struct match_data { Line 316  typedef struct match_data {
316    BOOL   noteol;                /* NOTEOL flag */    BOOL   noteol;                /* NOTEOL flag */
317    BOOL   endonly;               /* Dollar not before final \n */    BOOL   endonly;               /* Dollar not before final \n */
318    BOOL   notempty;              /* Empty string match not wanted */    BOOL   notempty;              /* Empty string match not wanted */
319      const uschar *start_pattern;  /* For use when recursing */
320    const uschar *start_subject;  /* Start of the subject string */    const uschar *start_subject;  /* Start of the subject string */
321    const uschar *end_subject;    /* End of the subject string */    const uschar *end_subject;    /* End of the subject string */
322    const uschar *start_match;    /* Start of this match attempt */    const uschar *start_match;    /* Start of this match attempt */
323    const uschar *end_match_ptr;  /* Subject position at end match */    const uschar *end_match_ptr;  /* Subject position at end match */
324    int     end_offset_top;       /* Highwater mark at end of match */    int    end_offset_top;        /* Highwater mark at end of match */
325  } match_data;  } match_data;
326    
327  /* 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 334  typedef struct match_data {
334  #define ctype_meta    0x80   /* regexp meta char or zero (end pattern) */  #define ctype_meta    0x80   /* regexp meta char or zero (end pattern) */
335    
336  /* 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
337  of bits for a class map. */  of bits for a class map. Some classes are built by combining these tables. */
338    
339  #define cbit_digit    0      /* for \d */  #define cbit_space     0      /* [:space:] or \s */
340  #define cbit_word    32      /* for \w */  #define cbit_xdigit   32      /* [:xdigit:] */
341  #define cbit_space   64      /* for \s */  #define cbit_digit    64      /* [:digit:] or \d */
342  #define cbit_length  96      /* Length of the cbits table */  #define cbit_upper    96      /* [:upper:] */
343    #define cbit_lower   128      /* [:lower:] */
344    #define cbit_word    160      /* [:word:] or \w */
345    #define cbit_graph   192      /* [:graph:] */
346    #define cbit_print   224      /* [:print:] */
347    #define cbit_punct   256      /* [:punct:] */
348    #define cbit_cntrl   288      /* [:cntrl:] */
349    #define cbit_length  320      /* Length of the cbits table */
350    
351  /* Offsets of the various tables from the base tables pointer, and  /* Offsets of the various tables from the base tables pointer, and
352  total length. */  total length. */

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12