| 3 |
*************************************************/ |
*************************************************/ |
| 4 |
|
|
| 5 |
|
|
| 6 |
#define PCRE_VERSION "1.01 19-Nov-1997" |
#define PCRE_VERSION "1.04 22-Dec-1997" |
| 7 |
|
|
| 8 |
|
|
| 9 |
/* This is a library of functions to support regular expressions whose syntax |
/* This is a library of functions to support regular expressions whose syntax |
| 38 |
define a macro for memmove() if USE_BCOPY is defined. */ |
define a macro for memmove() if USE_BCOPY is defined. */ |
| 39 |
|
|
| 40 |
#ifdef USE_BCOPY |
#ifdef USE_BCOPY |
| 41 |
|
#undef memmove /* some systems may have a macro */ |
| 42 |
#define memmove(a, b, c) bcopy(b, a, c) |
#define memmove(a, b, c) bcopy(b, a, c) |
| 43 |
#endif |
#endif |
| 44 |
|
|
| 53 |
#include <string.h> |
#include <string.h> |
| 54 |
#include "pcre.h" |
#include "pcre.h" |
| 55 |
|
|
| 56 |
|
/* In case there is no definition of offsetof() provided - though any proper |
| 57 |
|
Standard C system should have one. */ |
| 58 |
|
|
| 59 |
|
#ifndef offsetof |
| 60 |
|
#define offsetof(p_type,field) ((size_t)&(((p_type *)0)->field)) |
| 61 |
|
#endif |
| 62 |
|
|
| 63 |
/* Private options flags start at the most significant end of the two bytes. |
/* Private options flags start at the most significant end of the two bytes. |
| 64 |
The public options defined in pcre.h start at the least significant end. Make |
The public options defined in pcre.h start at the least significant end. Make |
| 65 |
sure they don't overlap! */ |
sure they don't overlap! */ |
| 116 |
|
|
| 117 |
/* Opcode table: OP_BRA must be last, as all values >= it are used for brackets |
/* Opcode table: OP_BRA must be last, as all values >= it are used for brackets |
| 118 |
that extract substrings. Starting from 1 (i.e. after OP_END), the values up to |
that extract substrings. Starting from 1 (i.e. after OP_END), the values up to |
| 119 |
OP_EOL must correspond in order to the list of escapes immediately above. */ |
OP_EOD must correspond in order to the list of escapes immediately above. */ |
| 120 |
|
|
| 121 |
enum { |
enum { |
| 122 |
OP_END, /* End of pattern */ |
OP_END, /* End of pattern */ |
| 133 |
OP_NOT_WORDCHAR, /* \W */ |
OP_NOT_WORDCHAR, /* \W */ |
| 134 |
OP_WORDCHAR, /* \w */ |
OP_WORDCHAR, /* \w */ |
| 135 |
OP_CUT, /* The analogue of Prolog's "cut" operation (extension) */ |
OP_CUT, /* The analogue of Prolog's "cut" operation (extension) */ |
| 136 |
OP_EOD, /* End of data: or \Z. This must always be the last |
OP_EOD, /* End of data: \Z. */ |
|
of the backslashed meta values. */ |
|
| 137 |
|
|
| 138 |
OP_CIRC, /* Start of line - varies with multiline switch */ |
OP_CIRC, /* Start of line - varies with multiline switch */ |
| 139 |
OP_DOLL, /* End of line - varies with multiline switch */ |
OP_DOLL, /* End of line - varies with multiline switch */ |