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

Diff of /code/branches/pcre16/pcre_internal.h

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

revision 461 by ph10, Mon Oct 5 10:59:35 2009 UTC revision 483 by ph10, Mon Jan 4 16:19:17 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. The macro int64_t
192    may be set by "configure". */
193    
194    #if HAVE_STDINT_H
195    #include <stdint.h>
196    #endif
197    
198    #if defined INT64_MAX || defined int64_t
199    #define INT64_OR_DOUBLE int64_t
200    #else
201    #define INT64_OR_DOUBLE double
202    #endif
203    
204  /* All character handling must be done as unsigned characters. Otherwise there  /* All character handling must be done as unsigned characters. Otherwise there
205  are problems with top-bit-set characters and functions such as isspace().  are problems with top-bit-set characters and functions such as isspace().
206  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 1210  enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, E Line 1225  enum { ESC_A = 1, ESC_G, ESC_K, ESC_B, E
1225  OP_EOD must correspond in order to the list of escapes immediately above.  OP_EOD must correspond in order to the list of escapes immediately above.
1226    
1227  *** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions  *** NOTE NOTE NOTE *** Whenever this list is updated, the two macro definitions
1228  that follow must also be updated to match. There is also a table called  that follow must also be updated to match. There are also tables called
1229  "coptable" in pcre_dfa_exec.c that must be updated. */  "coptable" and "poptable" in pcre_dfa_exec.c that must be updated. */
1230    
1231  enum {  enum {
1232    OP_END,            /* 0 End of pattern */    OP_END,            /* 0 End of pattern */
# Line 1376  enum { Line 1391  enum {
1391    OP_SKIPZERO        /* 114 */    OP_SKIPZERO        /* 114 */
1392  };  };
1393    
1394    /* *** NOTE NOTE NOTE *** Whenever the list above is updated, the two macro
1395    definitions that follow must also be updated to match. There are also tables
1396    called "coptable" cna "poptable" in pcre_dfa_exec.c that must be updated. */
1397    
1398    
1399  /* This macro defines textual names for all the opcodes. These are used only  /* This macro defines textual names for all the opcodes. These are used only
1400  for debugging. The macro is referenced only in pcre_printint.c. */  for debugging. The macro is referenced only in pcre_printint.c. */
# Line 1575  branches, for testing for left recursion Line 1594  branches, for testing for left recursion
1594    
1595  typedef struct branch_chain {  typedef struct branch_chain {
1596    struct branch_chain *outer;    struct branch_chain *outer;
1597    uschar *current;    uschar *current_branch;
1598  } branch_chain;  } branch_chain;
1599    
1600  /* 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 1734  one of the exported public functions. Th Line 1753  one of the exported public functions. Th
1753  sense, but are not part of the PCRE public API. */  sense, but are not part of the PCRE public API. */
1754    
1755  extern const uschar *_pcre_find_bracket(const uschar *, BOOL, int);  extern const uschar *_pcre_find_bracket(const uschar *, BOOL, int);
1756  extern BOOL          _pcre_is_newline(const uschar *, int, const uschar *,  extern BOOL          _pcre_is_newline(USPTR, int, USPTR, int *, BOOL);
                        int *, BOOL);  
1757  extern int           _pcre_ord2utf8(int, uschar *);  extern int           _pcre_ord2utf8(int, uschar *);
1758  extern real_pcre    *_pcre_try_flipped(const real_pcre *, real_pcre *,  extern real_pcre    *_pcre_try_flipped(const real_pcre *, real_pcre *,
1759                         const pcre_study_data *, pcre_study_data *);                         const pcre_study_data *, pcre_study_data *);
1760  extern int           _pcre_valid_utf8(const uschar *, int);  extern int           _pcre_valid_utf8(USPTR, int);
1761  extern BOOL          _pcre_was_newline(const uschar *, int, const uschar *,  extern BOOL          _pcre_was_newline(USPTR, int, USPTR, int *, BOOL);
                        int *, BOOL);  
1762  extern BOOL          _pcre_xclass(int, const uschar *);  extern BOOL          _pcre_xclass(int, const uschar *);
1763    
1764    

Legend:
Removed from v.461  
changed lines
  Added in v.483

  ViewVC Help
Powered by ViewVC 1.1.5