/[pcre]/code/trunk/pcre_internal.h
ViewVC logotype

Diff of /code/trunk/pcre_internal.h

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

revision 462 by ph10, Sat Oct 17 19:55:02 2009 UTC revision 494 by ph10, Tue Mar 2 11:53:12 2010 UTC
# Line 7  Line 7 
7  and semantics are as close as possible to those of the Perl 5 language.  and semantics are as close as possible to those of the Perl 5 language.
8    
9                         Written by Philip Hazel                         Written by Philip Hazel
10             Copyright (c) 1997-2009 University of Cambridge             Copyright (c) 1997-2010 University of Cambridge
11    
12  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------
13  Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
# Line 45  functions whose names all begin with "_p Line 45  functions whose names all begin with "_p
45  #ifndef PCRE_INTERNAL_H  #ifndef PCRE_INTERNAL_H
46  #define PCRE_INTERNAL_H  #define PCRE_INTERNAL_H
47    
48  /* Define DEBUG to get debugging output on stdout. */  /* Define PCRE_DEBUG to get debugging output on stdout. */
49    
50  #if 0  #if 0
51  #define DEBUG  #define PCRE_DEBUG
52  #endif  #endif
53    
54  /* We do not support both EBCDIC and UTF-8 at the same time. The "configure"  /* We do not support both EBCDIC and UTF-8 at the same time. The "configure"
# Line 74  It turns out that the Mac Debugging.h he Line 74  It turns out that the Mac Debugging.h he
74  be absolutely sure we get our version. */  be absolutely sure we get our version. */
75    
76  #undef DPRINTF  #undef DPRINTF
77  #ifdef DEBUG  #ifdef PCRE_DEBUG
78  #define DPRINTF(p) printf p  #define DPRINTF(p) printf p
79  #else  #else
80  #define DPRINTF(p) /* Nothing */  #define DPRINTF(p) /* Nothing */
# Line 86  setjmp and stdarg are used is when NO_RE Line 86  setjmp and stdarg are used is when NO_RE
86    
87  #include <ctype.h>  #include <ctype.h>
88  #include <limits.h>  #include <limits.h>
 #include <setjmp.h>  
 #include <stdarg.h>  
89  #include <stddef.h>  #include <stddef.h>
90  #include <stdio.h>  #include <stdio.h>
91  #include <stdlib.h>  #include <stdlib.h>
# Line 186  preprocessor time in standard C environm Line 184  preprocessor time in standard C environm
184    #error Cannot determine a type for 32-bit unsigned integers    #error Cannot determine a type for 32-bit unsigned integers
185  #endif  #endif
186    
187    /* When checking for integer overflow in pcre_compile(), we need to handle
188    large integers. If a 64-bit integer type is available, we can use that.
189    Otherwise we have to cast to double, which of course requires floating point
190    arithmetic. Handle this by defining a macro for the appropriate type. If
191    stdint.h is available, include it; it may define INT64_MAX. Systems that do not
192    have stdint.h (e.g. Solaris) may have inttypes.h. The macro int64_t may be set
193    by "configure". */
194    
195    #if HAVE_STDINT_H
196    #include <stdint.h>
197    #elif HAVE_INTTYPES_H
198    #include <inttypes.h>
199    #endif
200    
201    #if defined INT64_MAX || defined int64_t
202    #define INT64_OR_DOUBLE int64_t
203    #else
204    #define INT64_OR_DOUBLE double
205    #endif
206    
207  /* All character handling must be done as unsigned characters. Otherwise there  /* All character handling must be done as unsigned characters. Otherwise there
208  are problems with top-bit-set characters and functions such as isspace().  are problems with top-bit-set characters and functions such as isspace().
209  However, we leave the interface to the outside world as char *, because that  However, we leave the interface to the outside world as char *, because that
# Line 1536  typedef struct pcre_study_data { Line 1554  typedef struct pcre_study_data {
1554    
1555  /* Structure for building a chain of open capturing subpatterns during  /* Structure for building a chain of open capturing subpatterns during
1556  compiling, so that instructions to close them can be compiled when (*ACCEPT) is  compiling, so that instructions to close them can be compiled when (*ACCEPT) is
1557  encountered. */  encountered. This is also used to identify subpatterns that contain recursive
1558    back references to themselves, so that they can be made atomic. */
1559    
1560  typedef struct open_capitem {  typedef struct open_capitem {
1561    struct open_capitem *next;    /* Chain link */    struct open_capitem *next;    /* Chain link */
1562    pcre_uint16 number;           /* Capture number */    pcre_uint16 number;           /* Capture number */
1563      pcre_uint16 flag;             /* Set TRUE if recursive back ref */
1564  } open_capitem;  } open_capitem;
1565    
1566  /* Structure for passing "static" information around between the functions  /* Structure for passing "static" information around between the functions
# Line 1579  branches, for testing for left recursion Line 1599  branches, for testing for left recursion
1599    
1600  typedef struct branch_chain {  typedef struct branch_chain {
1601    struct branch_chain *outer;    struct branch_chain *outer;
1602    uschar *current;    uschar *current_branch;
1603  } branch_chain;  } branch_chain;
1604    
1605  /* Structure for items in a linked list that represents an explicit recursive  /* Structure for items in a linked list that represents an explicit recursive
# Line 1738  one of the exported public functions. Th Line 1758  one of the exported public functions. Th
1758  sense, but are not part of the PCRE public API. */  sense, but are not part of the PCRE public API. */
1759    
1760  extern const uschar *_pcre_find_bracket(const uschar *, BOOL, int);  extern const uschar *_pcre_find_bracket(const uschar *, BOOL, int);
1761  extern BOOL          _pcre_is_newline(const uschar *, int, const uschar *,  extern BOOL          _pcre_is_newline(USPTR, int, USPTR, int *, BOOL);
                        int *, BOOL);  
1762  extern int           _pcre_ord2utf8(int, uschar *);  extern int           _pcre_ord2utf8(int, uschar *);
1763  extern real_pcre    *_pcre_try_flipped(const real_pcre *, real_pcre *,  extern real_pcre    *_pcre_try_flipped(const real_pcre *, real_pcre *,
1764                         const pcre_study_data *, pcre_study_data *);                         const pcre_study_data *, pcre_study_data *);
1765  extern int           _pcre_valid_utf8(const uschar *, int);  extern int           _pcre_valid_utf8(USPTR, int);
1766  extern BOOL          _pcre_was_newline(const uschar *, int, const uschar *,  extern BOOL          _pcre_was_newline(USPTR, int, USPTR, int *, BOOL);
                        int *, BOOL);  
1767  extern BOOL          _pcre_xclass(int, const uschar *);  extern BOOL          _pcre_xclass(int, const uschar *);
1768    
1769    

Legend:
Removed from v.462  
changed lines
  Added in v.494

  ViewVC Help
Powered by ViewVC 1.1.5