tin  2.4.5
About: TIN is a threaded NNTP and spool based UseNet newsreader.
  Fossies Dox: tin-2.4.5.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

pcre_internal.h File Reference
#include "config.h"
#include <ctype.h>
#include <limits.h>
#include <setjmp.h>
#include <stdarg.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "pcre.h"
#include "ucp.h"
Include dependency graph for pcre_internal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  real_pcre
 
struct  pcre_study_data
 
struct  compile_data
 
struct  branch_chain
 
struct  recursion_info
 
struct  eptrblock
 
struct  match_data
 
struct  dfa_match_data
 
struct  ucp_type_table
 

Macros

#define DPRINTF(p)   /* Nothing */
 
#define PCRE_DEFINITION   /* Win32 __declspec(export) trigger for .dll */
 
#define NOTACHAR   0xffffffff
 
#define NLTYPE_FIXED   0 /* Newline is a fixed length string */
 
#define NLTYPE_ANY   1 /* Newline is any Unicode line ending */
 
#define IS_NEWLINE(p)
 
#define WAS_NEWLINE(p)
 
#define PCRE_SPTR   const char *
 
#define USPTR   const unsigned char *
 
#define memmove(a, b, c)   pcre_memmove(a, b, c)
 
#define PUTINC(a, n, d)   PUT(a,n,d), a += LINK_SIZE
 
#define PUT2(a, n, d)
 
#define GET2(a, n)    (((a)[n] << 8) | (a)[(n)+1])
 
#define PUT2INC(a, n, d)   PUT2(a,n,d), a += 2
 
#define GETCHAR(c, eptr)   c = *eptr;
 
#define GETCHARTEST(c, eptr)   c = *eptr;
 
#define GETCHARINC(c, eptr)   c = *eptr++;
 
#define GETCHARINCTEST(c, eptr)   c = *eptr++;
 
#define GETCHARLEN(c, eptr, len)   c = *eptr;
 
#define BACKCHAR(eptr)
 
#define offsetof(p_type, field)   ((size_t)&(((p_type *)0)->field))
 
#define PCRE_IMS   (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL)
 
#define PCRE_NOPARTIAL   0x80000000 /* can't use partial with this regex */
 
#define PCRE_FIRSTSET   0x40000000 /* first_byte is set */
 
#define PCRE_REQCHSET   0x20000000 /* req_byte is set */
 
#define PCRE_STARTLINE   0x10000000 /* start after \n for multiline */
 
#define PCRE_JCHANGED   0x08000000 /* j option changes within regex */
 
#define PCRE_STUDY_MAPPED   0x01 /* a map of starting chars exists */
 
#define PCRE_NEWLINE_BITS   (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY)
 
#define PUBLIC_OPTIONS
 
#define PUBLIC_EXEC_OPTIONS
 
#define PUBLIC_DFA_EXEC_OPTIONS
 
#define PUBLIC_STUDY_OPTIONS   0 /* None defined */
 
#define MAGIC_NUMBER   0x50435245UL /* 'PCRE' */
 
#define REQ_UNSET   (-2)
 
#define REQ_NONE   (-1)
 
#define REQ_BYTE_MAX   1000
 
#define REQ_CASELESS   0x0100 /* indicates caselessness */
 
#define REQ_VARY   0x0200 /* reqbyte followed non-literal item */
 
#define FALSE   0
 
#define TRUE   1
 
#define ESC_e   27
 
#define ESC_f   '\f'
 
#define ESC_n   '\n'
 
#define ESC_r   '\r'
 
#define ESC_tee   '\t'
 
#define PT_ANY   0 /* Any property - matches all chars */
 
#define PT_LAMP   1 /* L& - the union of Lu, Ll, Lt */
 
#define PT_GC   2 /* General characteristic (e.g. L) */
 
#define PT_PC   3 /* Particular characteristic (e.g. Lu) */
 
#define PT_SC   4 /* Script (e.g. Han) */
 
#define XCL_NOT   0x01 /* Flag: this is a negative class */
 
#define XCL_MAP   0x02 /* Flag: a 32-byte map is present */
 
#define XCL_END   0 /* Marks end of individual items */
 
#define XCL_SINGLE   1 /* Single item (one multibyte char) follows */
 
#define XCL_RANGE   2 /* A range (two multibyte chars) follows */
 
#define XCL_PROP   3 /* Unicode property (2-byte property code follows) */
 
#define XCL_NOTPROP   4 /* Unicode inverted property (ditto) */
 
#define OP_NAME_LIST
 
#define OP_LENGTHS
 
#define RREF_ANY   0xffff
 
#define ctype_space   0x01
 
#define ctype_letter   0x02
 
#define ctype_digit   0x04
 
#define ctype_xdigit   0x08
 
#define ctype_word   0x10 /* alphameric or '_' */
 
#define ctype_meta   0x80 /* regexp meta char or zero (end pattern) */
 
#define cbit_space   0 /* [:space:] or \s */
 
#define cbit_xdigit   32 /* [:xdigit:] */
 
#define cbit_digit   64 /* [:digit:] or \d */
 
#define cbit_upper   96 /* [:upper:] */
 
#define cbit_lower   128 /* [:lower:] */
 
#define cbit_word   160 /* [:word:] or \w */
 
#define cbit_graph   192 /* [:graph:] */
 
#define cbit_print   224 /* [:print:] */
 
#define cbit_punct   256 /* [:punct:] */
 
#define cbit_cntrl   288 /* [:cntrl:] */
 
#define cbit_length   320 /* Length of the cbits table */
 
#define lcc_offset   0
 
#define fcc_offset   256
 
#define cbits_offset   512
 
#define ctypes_offset   (cbits_offset + cbit_length)
 
#define tables_length   (ctypes_offset + 256)
 

Typedefs

typedef unsigned char uschar
 
typedef int BOOL
 
typedef struct real_pcre real_pcre
 
typedef struct pcre_study_data pcre_study_data
 
typedef struct compile_data compile_data
 
typedef struct branch_chain branch_chain
 
typedef struct recursion_info recursion_info
 
typedef struct eptrblock eptrblock
 
typedef struct match_data match_data
 
typedef struct dfa_match_data dfa_match_data
 

Enumerations

enum  {
  ESC_A = 1 , ESC_G , ESC_B , ESC_b ,
  ESC_D , ESC_d , ESC_S , ESC_s ,
  ESC_W , ESC_w , ESC_dum1 , ESC_C ,
  ESC_P , ESC_p , ESC_R , ESC_X ,
  ESC_Z , ESC_z , ESC_E , ESC_Q ,
  ESC_k , ESC_REF
}
 
enum  {
  OP_END , OP_SOD , OP_SOM , OP_NOT_WORD_BOUNDARY ,
  OP_WORD_BOUNDARY , OP_NOT_DIGIT , OP_DIGIT , OP_NOT_WHITESPACE ,
  OP_WHITESPACE , OP_NOT_WORDCHAR , OP_WORDCHAR , OP_ANY ,
  OP_ANYBYTE , OP_NOTPROP , OP_PROP , OP_ANYNL ,
  OP_EXTUNI , OP_EODN , OP_EOD , OP_OPT ,
  OP_CIRC , OP_DOLL , OP_CHAR , OP_CHARNC ,
  OP_NOT , OP_STAR , OP_MINSTAR , OP_PLUS ,
  OP_MINPLUS , OP_QUERY , OP_MINQUERY , OP_UPTO ,
  OP_MINUPTO , OP_EXACT , OP_POSSTAR , OP_POSPLUS ,
  OP_POSQUERY , OP_POSUPTO , OP_NOTSTAR , OP_NOTMINSTAR ,
  OP_NOTPLUS , OP_NOTMINPLUS , OP_NOTQUERY , OP_NOTMINQUERY ,
  OP_NOTUPTO , OP_NOTMINUPTO , OP_NOTEXACT , OP_NOTPOSSTAR ,
  OP_NOTPOSPLUS , OP_NOTPOSQUERY , OP_NOTPOSUPTO , OP_TYPESTAR ,
  OP_TYPEMINSTAR , OP_TYPEPLUS , OP_TYPEMINPLUS , OP_TYPEQUERY ,
  OP_TYPEMINQUERY , OP_TYPEUPTO , OP_TYPEMINUPTO , OP_TYPEEXACT ,
  OP_TYPEPOSSTAR , OP_TYPEPOSPLUS , OP_TYPEPOSQUERY , OP_TYPEPOSUPTO ,
  OP_CRSTAR , OP_CRMINSTAR , OP_CRPLUS , OP_CRMINPLUS ,
  OP_CRQUERY , OP_CRMINQUERY , OP_CRRANGE , OP_CRMINRANGE ,
  OP_CLASS , OP_NCLASS , OP_XCLASS , OP_REF ,
  OP_RECURSE , OP_CALLOUT , OP_ALT , OP_KET ,
  OP_KETRMAX , OP_KETRMIN , OP_ASSERT , OP_ASSERT_NOT ,
  OP_ASSERTBACK , OP_ASSERTBACK_NOT , OP_REVERSE , OP_ONCE ,
  OP_BRA , OP_CBRA , OP_COND , OP_SBRA ,
  OP_SCBRA , OP_SCOND , OP_CREF , OP_RREF ,
  OP_DEF , OP_BRAZERO , OP_BRAMINZERO
}
 
enum  {
  ERR0 , ERR1 , ERR2 , ERR3 ,
  ERR4 , ERR5 , ERR6 , ERR7 ,
  ERR8 , ERR9 , ERR10 , ERR11 ,
  ERR12 , ERR13 , ERR14 , ERR15 ,
  ERR16 , ERR17 , ERR18 , ERR19 ,
  ERR20 , ERR21 , ERR22 , ERR23 ,
  ERR24 , ERR25 , ERR26 , ERR27 ,
  ERR28 , ERR29 , ERR30 , ERR31 ,
  ERR32 , ERR33 , ERR34 , ERR35 ,
  ERR36 , ERR37 , ERR38 , ERR39 ,
  ERR40 , ERR41 , ERR42 , ERR43 ,
  ERR44 , ERR45 , ERR46 , ERR47 ,
  ERR48 , ERR49 , ERR50 , ERR51 ,
  ERR52 , ERR53 , ERR54 , ERR55 ,
  ERR56 , ERR57
}
 

Functions

static void * pcre_memmove (unsigned char *dest, const unsigned char *src, size_t n)
 
BOOL _pcre_is_newline (const uschar *, const uschar *, int *, BOOL)
 
int _pcre_ord2utf8 (int, uschar *)
 
real_pcre_pcre_try_flipped (const real_pcre *, real_pcre *, const pcre_study_data *, pcre_study_data *)
 
int _pcre_ucp_findprop (const unsigned int, int *, int *)
 
unsigned int _pcre_ucp_othercase (const unsigned int)
 
int _pcre_valid_utf8 (const uschar *, int)
 
BOOL _pcre_was_newline (const uschar *, const uschar *, int *, BOOL)
 
BOOL _pcre_xclass (int, const uschar *)
 

Variables

const int _pcre_utf8_table1 []
 
const int _pcre_utf8_table2 []
 
const int _pcre_utf8_table3 []
 
const uschar _pcre_utf8_table4 []
 
const int _pcre_utf8_table1_size
 
const ucp_type_table _pcre_utt []
 
const int _pcre_utt_size
 
const uschar _pcre_default_tables []
 
const uschar _pcre_OP_lengths []
 

Macro Definition Documentation

◆ BACKCHAR

#define BACKCHAR (   eptr)

Definition at line 311 of file pcre_internal.h.

◆ cbit_cntrl

#define cbit_cntrl   288 /* [:cntrl:] */

Definition at line 983 of file pcre_internal.h.

◆ cbit_digit

#define cbit_digit   64 /* [:digit:] or \d */

Definition at line 976 of file pcre_internal.h.

◆ cbit_graph

#define cbit_graph   192 /* [:graph:] */

Definition at line 980 of file pcre_internal.h.

◆ cbit_length

#define cbit_length   320 /* Length of the cbits table */

Definition at line 984 of file pcre_internal.h.

◆ cbit_lower

#define cbit_lower   128 /* [:lower:] */

Definition at line 978 of file pcre_internal.h.

◆ cbit_print

#define cbit_print   224 /* [:print:] */

Definition at line 981 of file pcre_internal.h.

◆ cbit_punct

#define cbit_punct   256 /* [:punct:] */

Definition at line 982 of file pcre_internal.h.

◆ cbit_space

#define cbit_space   0 /* [:space:] or \s */

Definition at line 974 of file pcre_internal.h.

◆ cbit_upper

#define cbit_upper   96 /* [:upper:] */

Definition at line 977 of file pcre_internal.h.

◆ cbit_word

#define cbit_word   160 /* [:word:] or \w */

Definition at line 979 of file pcre_internal.h.

◆ cbit_xdigit

#define cbit_xdigit   32 /* [:xdigit:] */

Definition at line 975 of file pcre_internal.h.

◆ cbits_offset

#define cbits_offset   512

Definition at line 991 of file pcre_internal.h.

◆ ctype_digit

#define ctype_digit   0x04

Definition at line 966 of file pcre_internal.h.

◆ ctype_letter

#define ctype_letter   0x02

Definition at line 965 of file pcre_internal.h.

◆ ctype_meta

#define ctype_meta   0x80 /* regexp meta char or zero (end pattern) */

Definition at line 969 of file pcre_internal.h.

◆ ctype_space

#define ctype_space   0x01

Definition at line 964 of file pcre_internal.h.

◆ ctype_word

#define ctype_word   0x10 /* alphameric or '_' */

Definition at line 968 of file pcre_internal.h.

◆ ctype_xdigit

#define ctype_xdigit   0x08

Definition at line 967 of file pcre_internal.h.

◆ ctypes_offset

#define ctypes_offset   (cbits_offset + cbit_length)

Definition at line 992 of file pcre_internal.h.

◆ DPRINTF

#define DPRINTF (   p)    /* Nothing */

Perl-Compatible Regular Expressions *

Definition at line 66 of file pcre_internal.h.

◆ ESC_e

#define ESC_e   27

Definition at line 491 of file pcre_internal.h.

◆ ESC_f

#define ESC_f   '\f'

Definition at line 495 of file pcre_internal.h.

◆ ESC_n

#define ESC_n   '\n'

Definition at line 499 of file pcre_internal.h.

◆ ESC_r

#define ESC_r   '\r'

Definition at line 503 of file pcre_internal.h.

◆ ESC_tee

#define ESC_tee   '\t'

Definition at line 510 of file pcre_internal.h.

◆ FALSE

#define FALSE   0

Definition at line 485 of file pcre_internal.h.

◆ fcc_offset

#define fcc_offset   256

Definition at line 990 of file pcre_internal.h.

◆ GET2

#define GET2 (   a,
 
)     (((a)[n] << 8) | (a)[(n)+1])

Definition at line 295 of file pcre_internal.h.

◆ GETCHAR

#define GETCHAR (   c,
  eptr 
)    c = *eptr;

Definition at line 306 of file pcre_internal.h.

◆ GETCHARINC

#define GETCHARINC (   c,
  eptr 
)    c = *eptr++;

Definition at line 308 of file pcre_internal.h.

◆ GETCHARINCTEST

#define GETCHARINCTEST (   c,
  eptr 
)    c = *eptr++;

Definition at line 309 of file pcre_internal.h.

◆ GETCHARLEN

#define GETCHARLEN (   c,
  eptr,
  len 
)    c = *eptr;

Definition at line 310 of file pcre_internal.h.

◆ GETCHARTEST

#define GETCHARTEST (   c,
  eptr 
)    c = *eptr;

Definition at line 307 of file pcre_internal.h.

◆ IS_NEWLINE

#define IS_NEWLINE (   p)
Value:
((NLBLOCK->nltype != NLTYPE_FIXED)? \
((p) < NLBLOCK->PSEND && \
_pcre_is_newline((p), NLBLOCK->PSEND, &(NLBLOCK->nllen), utf8) \
) \
: \
((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \
(p)[0] == NLBLOCK->nl[0] && \
(NLBLOCK->nllen == 1 || (p)[1] == NLBLOCK->nl[1]) \
) \
)
#define NLBLOCK
Definition: pcre_compile.c:45
#define NLTYPE_FIXED
static BOOL utf8
Definition: pcregrep.c:147

Definition at line 138 of file pcre_internal.h.

◆ lcc_offset

#define lcc_offset   0

Definition at line 989 of file pcre_internal.h.

◆ MAGIC_NUMBER

#define MAGIC_NUMBER   0x50435245UL /* 'PCRE' */

Definition at line 463 of file pcre_internal.h.

◆ memmove

#define memmove (   a,
  b,
 
)    pcre_memmove(a, b, c)

Definition at line 219 of file pcre_internal.h.

◆ NLTYPE_ANY

#define NLTYPE_ANY   1 /* Newline is any Unicode line ending */

Definition at line 134 of file pcre_internal.h.

◆ NLTYPE_FIXED

#define NLTYPE_FIXED   0 /* Newline is a fixed length string */

Definition at line 133 of file pcre_internal.h.

◆ NOTACHAR

#define NOTACHAR   0xffffffff

Definition at line 125 of file pcre_internal.h.

◆ offsetof

#define offsetof (   p_type,
  field 
)    ((size_t)&(((p_type *)0)->field))

Definition at line 415 of file pcre_internal.h.

◆ OP_LENGTHS

#define OP_LENGTHS

Definition at line 730 of file pcre_internal.h.

◆ OP_NAME_LIST

#define OP_NAME_LIST
Value:
"End", "\\A", "\\G", "\\B", "\\b", "\\D", "\\d", \
"\\S", "\\s", "\\W", "\\w", "Any", "Anybyte", \
"notprop", "prop", "anynl", "extuni", \
"\\Z", "\\z", \
"Opt", "^", "$", "char", "charnc", "not", \
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", \
"*+","++", "?+", "{", \
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", \
"*+","++", "?+", "{", \
"*", "*?", "+", "+?", "?", "??", "{", "{", "{", \
"*+","++", "?+", "{", \
"*", "*?", "+", "+?", "?", "??", "{", "{", \
"class", "nclass", "xclass", "Ref", "Recurse", "Callout", \
"Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \
"AssertB", "AssertB not", "Reverse", \
"Once", "Bra 0", "Bra", "Cond", "SBra 0", "SBra", "SCond", \
"Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero"

Definition at line 701 of file pcre_internal.h.

◆ PCRE_DEFINITION

#define PCRE_DEFINITION   /* Win32 __declspec(export) trigger for .dll */

Definition at line 87 of file pcre_internal.h.

◆ PCRE_FIRSTSET

#define PCRE_FIRSTSET   0x40000000 /* first_byte is set */

Definition at line 430 of file pcre_internal.h.

◆ PCRE_IMS

#define PCRE_IMS   (PCRE_CASELESS|PCRE_MULTILINE|PCRE_DOTALL)

Definition at line 421 of file pcre_internal.h.

◆ PCRE_JCHANGED

#define PCRE_JCHANGED   0x08000000 /* j option changes within regex */

Definition at line 433 of file pcre_internal.h.

◆ PCRE_NEWLINE_BITS

#define PCRE_NEWLINE_BITS   (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY)

Definition at line 442 of file pcre_internal.h.

◆ PCRE_NOPARTIAL

#define PCRE_NOPARTIAL   0x80000000 /* can't use partial with this regex */

Definition at line 429 of file pcre_internal.h.

◆ PCRE_REQCHSET

#define PCRE_REQCHSET   0x20000000 /* req_byte is set */

Definition at line 431 of file pcre_internal.h.

◆ PCRE_SPTR

#define PCRE_SPTR   const char *

Definition at line 177 of file pcre_internal.h.

◆ PCRE_STARTLINE

#define PCRE_STARTLINE   0x10000000 /* start after \n for multiline */

Definition at line 432 of file pcre_internal.h.

◆ PCRE_STUDY_MAPPED

#define PCRE_STUDY_MAPPED   0x01 /* a map of starting chars exists */

Definition at line 437 of file pcre_internal.h.

◆ PT_ANY

#define PT_ANY   0 /* Any property - matches all chars */

Definition at line 515 of file pcre_internal.h.

◆ PT_GC

#define PT_GC   2 /* General characteristic (e.g. L) */

Definition at line 517 of file pcre_internal.h.

◆ PT_LAMP

#define PT_LAMP   1 /* L& - the union of Lu, Ll, Lt */

Definition at line 516 of file pcre_internal.h.

◆ PT_PC

#define PT_PC   3 /* Particular characteristic (e.g. Lu) */

Definition at line 518 of file pcre_internal.h.

◆ PT_SC

#define PT_SC   4 /* Script (e.g. Han) */

Definition at line 519 of file pcre_internal.h.

◆ PUBLIC_DFA_EXEC_OPTIONS

#define PUBLIC_DFA_EXEC_OPTIONS
Value:
#define PCRE_NO_UTF8_CHECK
Definition: pcre.h:111
#define PCRE_NOTBOL
Definition: pcre.h:105
#define PCRE_DFA_SHORTEST
Definition: pcre.h:114
#define PCRE_NOTEOL
Definition: pcre.h:106
#define PCRE_NOTEMPTY
Definition: pcre.h:108
#define PCRE_ANCHORED
Definition: pcre.h:102
#define PCRE_DFA_RESTART
Definition: pcre.h:115
#define PCRE_NEWLINE_BITS

Definition at line 454 of file pcre_internal.h.

◆ PUBLIC_EXEC_OPTIONS

#define PUBLIC_EXEC_OPTIONS

◆ PUBLIC_OPTIONS

#define PUBLIC_OPTIONS
Value:
PCRE_DUPNAMES|PCRE_NEWLINE_BITS)
#define PCRE_FIRSTLINE
Definition: pcre.h:116
#define PCRE_UTF8
Definition: pcre.h:109
#define PCRE_EXTENDED
Definition: pcre.h:101
#define PCRE_CASELESS
Definition: pcre.h:98
#define PCRE_AUTO_CALLOUT
Definition: pcre.h:112
#define PCRE_MULTILINE
Definition: pcre.h:99
#define PCRE_DOLLAR_ENDONLY
Definition: pcre.h:103
#define PCRE_EXTRA
Definition: pcre.h:104
#define PCRE_UNGREEDY
Definition: pcre.h:107

Definition at line 444 of file pcre_internal.h.

◆ PUBLIC_STUDY_OPTIONS

#define PUBLIC_STUDY_OPTIONS   0 /* None defined */

Definition at line 458 of file pcre_internal.h.

◆ PUT2

#define PUT2 (   a,
  n,
 
)
Value:
a[n] = (d) >> 8; \
a[(n)+1] = (d) & 255

Definition at line 291 of file pcre_internal.h.

◆ PUT2INC

#define PUT2INC (   a,
  n,
 
)    PUT2(a,n,d), a += 2

Definition at line 298 of file pcre_internal.h.

◆ PUTINC

#define PUTINC (   a,
  n,
 
)    PUT(a,n,d), a += LINK_SIZE

Definition at line 284 of file pcre_internal.h.

◆ REQ_BYTE_MAX

#define REQ_BYTE_MAX   1000

Definition at line 473 of file pcre_internal.h.

◆ REQ_CASELESS

#define REQ_CASELESS   0x0100 /* indicates caselessness */

Definition at line 478 of file pcre_internal.h.

◆ REQ_NONE

#define REQ_NONE   (-1)

Definition at line 468 of file pcre_internal.h.

◆ REQ_UNSET

#define REQ_UNSET   (-2)

Definition at line 467 of file pcre_internal.h.

◆ REQ_VARY

#define REQ_VARY   0x0200 /* reqbyte followed non-literal item */

Definition at line 479 of file pcre_internal.h.

◆ RREF_ANY

#define RREF_ANY   0xffff

Definition at line 784 of file pcre_internal.h.

◆ tables_length

#define tables_length   (ctypes_offset + 256)

Definition at line 993 of file pcre_internal.h.

◆ TRUE

#define TRUE   1

Definition at line 486 of file pcre_internal.h.

◆ USPTR

#define USPTR   const unsigned char *

Definition at line 178 of file pcre_internal.h.

◆ WAS_NEWLINE

#define WAS_NEWLINE (   p)
Value:
((NLBLOCK->nltype != NLTYPE_FIXED)? \
((p) > NLBLOCK->PSSTART && \
_pcre_was_newline((p), NLBLOCK->PSSTART, &(NLBLOCK->nllen), utf8) \
) \
: \
((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \
(p)[-NLBLOCK->nllen] == NLBLOCK->nl[0] && \
(NLBLOCK->nllen == 1 || (p)[-NLBLOCK->nllen+1] == NLBLOCK->nl[1]) \
) \
)

Definition at line 152 of file pcre_internal.h.

◆ XCL_END

#define XCL_END   0 /* Marks end of individual items */

Definition at line 527 of file pcre_internal.h.

◆ XCL_MAP

#define XCL_MAP   0x02 /* Flag: a 32-byte map is present */

Definition at line 525 of file pcre_internal.h.

◆ XCL_NOT

#define XCL_NOT   0x01 /* Flag: this is a negative class */

Definition at line 524 of file pcre_internal.h.

◆ XCL_NOTPROP

#define XCL_NOTPROP   4 /* Unicode inverted property (ditto) */

Definition at line 531 of file pcre_internal.h.

◆ XCL_PROP

#define XCL_PROP   3 /* Unicode property (2-byte property code follows) */

Definition at line 530 of file pcre_internal.h.

◆ XCL_RANGE

#define XCL_RANGE   2 /* A range (two multibyte chars) follows */

Definition at line 529 of file pcre_internal.h.

◆ XCL_SINGLE

#define XCL_SINGLE   1 /* Single item (one multibyte char) follows */

Definition at line 528 of file pcre_internal.h.

Typedef Documentation

◆ BOOL

typedef int BOOL

Definition at line 483 of file pcre_internal.h.

◆ branch_chain

typedef struct branch_chain branch_chain

◆ compile_data

typedef struct compile_data compile_data

◆ dfa_match_data

◆ eptrblock

typedef struct eptrblock eptrblock

◆ match_data

typedef struct match_data match_data

◆ pcre_study_data

◆ real_pcre

typedef struct real_pcre real_pcre

◆ recursion_info

◆ uschar

typedef unsigned char uschar

Definition at line 119 of file pcre_internal.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
ESC_A 
ESC_G 
ESC_B 
ESC_b 
ESC_D 
ESC_d 
ESC_S 
ESC_s 
ESC_W 
ESC_w 
ESC_dum1 
ESC_C 
ESC_P 
ESC_p 
ESC_R 
ESC_X 
ESC_Z 
ESC_z 
ESC_E 
ESC_Q 
ESC_k 
ESC_REF 

Definition at line 544 of file pcre_internal.h.

◆ anonymous enum

anonymous enum
Enumerator
OP_END 
OP_SOD 
OP_SOM 
OP_NOT_WORD_BOUNDARY 
OP_WORD_BOUNDARY 
OP_NOT_DIGIT 
OP_DIGIT 
OP_NOT_WHITESPACE 
OP_WHITESPACE 
OP_NOT_WORDCHAR 
OP_WORDCHAR 
OP_ANY 
OP_ANYBYTE 
OP_NOTPROP 
OP_PROP 
OP_ANYNL 
OP_EXTUNI 
OP_EODN 
OP_EOD 
OP_OPT 
OP_CIRC 
OP_DOLL 
OP_CHAR 
OP_CHARNC 
OP_NOT 
OP_STAR 
OP_MINSTAR 
OP_PLUS 
OP_MINPLUS 
OP_QUERY 
OP_MINQUERY 
OP_UPTO 
OP_MINUPTO 
OP_EXACT 
OP_POSSTAR 
OP_POSPLUS 
OP_POSQUERY 
OP_POSUPTO 
OP_NOTSTAR 
OP_NOTMINSTAR 
OP_NOTPLUS 
OP_NOTMINPLUS 
OP_NOTQUERY 
OP_NOTMINQUERY 
OP_NOTUPTO 
OP_NOTMINUPTO 
OP_NOTEXACT 
OP_NOTPOSSTAR 
OP_NOTPOSPLUS 
OP_NOTPOSQUERY 
OP_NOTPOSUPTO 
OP_TYPESTAR 
OP_TYPEMINSTAR 
OP_TYPEPLUS 
OP_TYPEMINPLUS 
OP_TYPEQUERY 
OP_TYPEMINQUERY 
OP_TYPEUPTO 
OP_TYPEMINUPTO 
OP_TYPEEXACT 
OP_TYPEPOSSTAR 
OP_TYPEPOSPLUS 
OP_TYPEPOSQUERY 
OP_TYPEPOSUPTO 
OP_CRSTAR 
OP_CRMINSTAR 
OP_CRPLUS 
OP_CRMINPLUS 
OP_CRQUERY 
OP_CRMINQUERY 
OP_CRRANGE 
OP_CRMINRANGE 
OP_CLASS 
OP_NCLASS 
OP_XCLASS 
OP_REF 
OP_RECURSE 
OP_CALLOUT 
OP_ALT 
OP_KET 
OP_KETRMAX 
OP_KETRMIN 
OP_ASSERT 
OP_ASSERT_NOT 
OP_ASSERTBACK 
OP_ASSERTBACK_NOT 
OP_REVERSE 
OP_ONCE 
OP_BRA 
OP_CBRA 
OP_COND 
OP_SBRA 
OP_SCBRA 
OP_SCOND 
OP_CREF 
OP_RREF 
OP_DEF 
OP_BRAZERO 
OP_BRAMINZERO 

Definition at line 561 of file pcre_internal.h.

◆ anonymous enum

anonymous enum
Enumerator
ERR0 
ERR1 
ERR2 
ERR3 
ERR4 
ERR5 
ERR6 
ERR7 
ERR8 
ERR9 
ERR10 
ERR11 
ERR12 
ERR13 
ERR14 
ERR15 
ERR16 
ERR17 
ERR18 
ERR19 
ERR20 
ERR21 
ERR22 
ERR23 
ERR24 
ERR25 
ERR26 
ERR27 
ERR28 
ERR29 
ERR30 
ERR31 
ERR32 
ERR33 
ERR34 
ERR35 
ERR36 
ERR37 
ERR38 
ERR39 
ERR40 
ERR41 
ERR42 
ERR43 
ERR44 
ERR45 
ERR46 
ERR47 
ERR48 
ERR49 
ERR50 
ERR51 
ERR52 
ERR53 
ERR54 
ERR55 
ERR56 
ERR57 

Definition at line 789 of file pcre_internal.h.

Function Documentation

◆ _pcre_is_newline()

BOOL _pcre_is_newline ( const uschar ptr,
const uschar endptr,
int *  lenptr,
BOOL  utf8 
)

Perl-Compatible Regular Expressions * Check for newline at given position *

Definition at line 72 of file pcre_newline.c.

References FALSE, GETCHAR, TRUE, and utf8.

◆ _pcre_ord2utf8()

int _pcre_ord2utf8 ( int  cvalue,
uschar buffer 
)

Perl-Compatible Regular Expressions * Convert character value to UTF-8 *

Definition at line 63 of file pcre_ord2utf8.c.

References _pcre_utf8_table1, _pcre_utf8_table1_size, _pcre_utf8_table2, and buffer.

Referenced by compile_branch(), and match().

◆ _pcre_try_flipped()

◆ _pcre_ucp_findprop()

int _pcre_ucp_findprop ( const unsigned int  c,
int *  type_ptr,
int *  script_ptr 
)

◆ _pcre_ucp_othercase()

unsigned int _pcre_ucp_othercase ( const unsigned int  c)

Search table and return other case *

Definition at line 138 of file pcre_ucp_searchfuncs.c.

References cnode::f0, f0_charmask, f0_rangeflag, cnode::f1, f1_casemask, f1_caseneg, f1_rangemask, NOTACHAR, offset, and ucp_table.

Referenced by check_auto_possessive(), compile_branch(), internal_dfa_exec(), and match().

◆ _pcre_valid_utf8()

int _pcre_valid_utf8 ( const uschar string,
int  length 
)

Perl-Compatible Regular Expressions * Validate a UTF-8 string *

Definition at line 67 of file pcre_valid_utf8.c.

References _pcre_utf8_table4.

Referenced by pcre_compile2(), pcre_dfa_exec(), and pcre_exec().

◆ _pcre_was_newline()

BOOL _pcre_was_newline ( const uschar ptr,
const uschar startptr,
int *  lenptr,
BOOL  utf8 
)

Check for newline at previous position *

Definition at line 110 of file pcre_newline.c.

References BACKCHAR, FALSE, GETCHAR, TRUE, and utf8.

◆ _pcre_xclass()

BOOL _pcre_xclass ( int  c,
const uschar data 
)

Perl-Compatible Regular Expressions * Match character against an XCLASS *

Definition at line 64 of file pcre_xclass.c.

References _pcre_ucp_findprop(), FALSE, GETCHARINC, PT_ANY, PT_GC, PT_LAMP, PT_PC, PT_SC, ucp_Ll, ucp_Lt, ucp_Lu, XCL_END, XCL_MAP, XCL_NOT, XCL_PROP, XCL_RANGE, and XCL_SINGLE.

Referenced by internal_dfa_exec(), and match().

◆ pcre_memmove()

static void* pcre_memmove ( unsigned char *  dest,
const unsigned char *  src,
size_t  n 
)
static

Definition at line 211 of file pcre_internal.h.

Variable Documentation

◆ _pcre_default_tables

const uschar _pcre_default_tables[]
extern

◆ _pcre_OP_lengths

const uschar _pcre_OP_lengths[]
extern

Perl-Compatible Regular Expressions *

Definition at line 53 of file pcre_tables.c.

◆ _pcre_utf8_table1

const int _pcre_utf8_table1[]
extern

Tables for UTF-8 support *

Definition at line 64 of file pcre_tables.c.

◆ _pcre_utf8_table1_size

const int _pcre_utf8_table1_size
extern

Definition at line 67 of file pcre_tables.c.

◆ _pcre_utf8_table2

const int _pcre_utf8_table2[]
extern

Definition at line 72 of file pcre_tables.c.

◆ _pcre_utf8_table3

const int _pcre_utf8_table3[]
extern

Definition at line 73 of file pcre_tables.c.

◆ _pcre_utf8_table4

const uschar _pcre_utf8_table4[]
extern

Definition at line 78 of file pcre_tables.c.

◆ _pcre_utt

const ucp_type_table _pcre_utt[]
extern

Definition at line 87 of file pcre_tables.c.

◆ _pcre_utt_size

const int _pcre_utt_size
extern

Definition at line 195 of file pcre_tables.c.